From 6c18ac4770e9d819ba8a20ebb608a2ae3e184edd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=88=90=E5=88=9A?= Date: Wed, 1 Nov 2023 17:02:53 +0800 Subject: [PATCH] feat: update python-aiohttp to 3.8.6 --- CHANGES.rst | 481 +- CONTRIBUTORS.txt | 33 + LICENSE.txt | 190 +- Makefile | 70 +- PKG-INFO | 1168 +- README.rst | 23 +- aiohttp.egg-info/PKG-INFO | 1168 +- aiohttp.egg-info/SOURCES.txt | 117 +- aiohttp.egg-info/not-zip-safe | 1 + aiohttp.egg-info/requires.txt | 15 +- aiohttp/.hash/_cparser.pxd.hash | 2 +- aiohttp/.hash/_frozenlist.pyx.hash | 1 - aiohttp/.hash/_http_parser.pyx.hash | 2 +- aiohttp/.hash/_http_writer.pyx.hash | 2 +- aiohttp/.hash/frozenlist.pyi.hash | 1 - aiohttp/.hash/hdrs.py.hash | 2 +- aiohttp/.hash/signals.pyi.hash | 1 - aiohttp/__init__.py | 9 +- aiohttp/_cparser.pxd | 270 +- aiohttp/_frozenlist.c | 7512 ------------ aiohttp/_frozenlist.pyx | 108 - aiohttp/_helpers.c | 589 +- aiohttp/_http_parser.c | 7211 ++++++----- aiohttp/_http_parser.pyx | 345 +- aiohttp/_http_writer.c | 845 +- aiohttp/_http_writer.pyx | 12 + aiohttp/_websocket.c | 310 +- aiohttp/abc.py | 13 +- aiohttp/base_protocol.py | 23 +- aiohttp/client.py | 142 +- aiohttp/client_exceptions.py | 39 +- aiohttp/client_proto.py | 14 +- aiohttp/client_reqrep.py | 162 +- aiohttp/client_ws.py | 43 +- aiohttp/connector.py | 320 +- aiohttp/cookiejar.py | 132 +- aiohttp/formdata.py | 16 +- aiohttp/frozenlist.py | 72 - aiohttp/frozenlist.pyi | 46 - aiohttp/hdrs.py | 184 +- aiohttp/helpers.py | 273 +- aiohttp/http.py | 8 +- aiohttp/http_exceptions.py | 10 +- aiohttp/http_parser.py | 338 +- aiohttp/http_websocket.py | 41 +- aiohttp/http_writer.py | 56 +- aiohttp/locks.py | 18 +- aiohttp/multipart.py | 94 +- aiohttp/payload.py | 67 +- aiohttp/payload_streamer.py | 5 +- aiohttp/pytest_plugin.py | 95 +- aiohttp/resolver.py | 41 +- aiohttp/signals.py | 34 - aiohttp/signals.pyi | 12 - aiohttp/streams.py | 97 +- aiohttp/tcp_helpers.py | 1 - aiohttp/test_utils.py | 156 +- aiohttp/tracing.py | 164 +- aiohttp/typedefs.py | 30 +- aiohttp/web.py | 85 +- aiohttp/web_app.py | 59 +- aiohttp/web_exceptions.py | 2 +- aiohttp/web_fileresponse.py | 77 +- aiohttp/web_log.py | 10 +- aiohttp/web_middlewares.py | 20 +- aiohttp/web_protocol.py | 264 +- aiohttp/web_request.py | 146 +- aiohttp/web_response.py | 96 +- aiohttp/web_routedef.py | 15 +- aiohttp/web_runner.py | 22 +- aiohttp/web_server.py | 2 +- aiohttp/web_urldispatcher.py | 139 +- aiohttp/web_ws.py | 74 +- aiohttp/worker.py | 53 +- debian/changelog | 61 + debian/control | 15 +- debian/gbp.conf | 1 + ...tton-from-docs-to-prevent-privacy-br.patch | 10 +- ...move-sphinxcontrib.towncrier-for-now.patch | 54 + debian/patches/series | 1 + debian/py3dist-overrides | 2 + debian/rules | 2 +- debian/source/options | 1 + docs/Makefile | 2 +- .../cchardet-unmaintained-admonition.rst | 5 + docs/_static/aiohttp-icon-128x128.png | Bin 4519 -> 0 bytes docs/_static/css/logo-adjustments.css | 7 + docs/abc.rst | 50 +- docs/aiohttp-icon.svg | 63 +- docs/aiohttp-plain.svg | 63 +- docs/built_with.rst | 2 + docs/changes.rst | 12 + docs/client_advanced.rst | 81 +- docs/client_quickstart.rst | 35 +- docs/client_reference.rst | 242 +- docs/conf.py | 147 +- docs/contributing.rst | 16 +- docs/deployment.rst | 34 +- docs/glossary.rst | 9 +- docs/http_request_lifecycle.rst | 6 +- docs/index.rst | 40 +- docs/multipart.rst | 4 +- docs/multipart_reference.rst | 4 +- docs/new_router.rst | 8 +- docs/powered_by.rst | 1 - docs/signals.rst | 45 - docs/spelling_wordlist.txt | 194 +- docs/streams.rst | 17 +- docs/testing.rst | 98 +- docs/third_party.rst | 101 +- docs/tracing_reference.rst | 31 +- docs/utilities.rst | 1 - docs/web_advanced.rst | 84 +- docs/web_lowlevel.rst | 10 +- docs/web_quickstart.rst | 18 +- docs/web_reference.rst | 173 +- docs/websocket_utilities.rst | 16 +- docs/whats_new_1_1.rst | 6 +- examples/__init__.py | 0 examples/background_tasks.py | 4 +- examples/client_json.py | 2 +- examples/client_ws.py | 5 +- examples/fake_server.py | 8 +- examples/legacy/crawl.py | 108 - examples/legacy/srv.py | 178 - examples/legacy/tcp_protocol_parser.py | 172 - examples/web_classview.py | 7 +- examples/web_cookies.py | 24 +- examples/web_rewrite_headers_middleware.py | 7 +- examples/web_srv.py | 3 +- examples/web_srv_route_deco.py | 4 +- examples/web_srv_route_table.py | 4 +- examples/web_ws.py | 3 +- pyproject.toml | 12 + setup.cfg | 149 +- setup.py | 149 +- tests/autobahn/Dockerfile.aiohttp | 7 + tests/autobahn/Dockerfile.autobahn | 6 + tests/autobahn/client.py | 52 - tests/autobahn/client/client.py | 41 + .../autobahn/{ => client}/fuzzingserver.json | 0 tests/autobahn/fuzzingclient.json | 10 - tests/autobahn/server.py | 58 - tests/autobahn/server/fuzzingclient.json | 16 + tests/autobahn/server/server.py | 51 + tests/autobahn/test_autobahn.py | 136 + tests/conftest.py | 123 +- tests/sample.txt | 202 + tests/test___all__.py | 22 + tests/test_base_protocol.py | 26 +- tests/test_circular_imports.py | 120 + tests/test_client_fingerprint.py | 12 +- tests/test_client_functional.py | 183 +- tests/test_client_proto.py | 14 + tests/test_client_request.py | 108 +- tests/test_client_response.py | 67 +- tests/test_client_session.py | 258 +- tests/test_client_ws.py | 24 + tests/test_client_ws_functional.py | 2 +- tests/test_connector.py | 118 +- tests/test_cookiejar.py | 139 +- tests/test_formdata.py | 36 +- tests/test_frozenlist.py | 230 - tests/test_helpers.py | 302 +- tests/test_http_exceptions.py | 22 +- tests/test_http_parser.py | 388 +- tests/test_http_writer.py | 27 + tests/test_locks.py | 6 +- tests/test_loop.py | 31 +- tests/test_multipart.py | 1242 +- tests/test_payload.py | 19 +- tests/test_proxy.py | 68 +- tests/test_proxy_functional.py | 299 +- tests/test_resolver.py | 53 +- tests/test_route_def.py | 16 + tests/test_run_app.py | 193 +- tests/test_signals.py | 167 - tests/test_streams.py | 162 +- tests/test_tcp_helpers.py | 3 +- tests/test_test_utils.py | 56 +- tests/test_tracing.py | 1 + tests/test_web_app.py | 82 +- tests/test_web_exceptions.py | 42 +- tests/test_web_functional.py | 312 +- tests/test_web_log.py | 3 +- tests/test_web_middleware.py | 158 +- tests/test_web_protocol.py | 758 -- tests/test_web_request.py | 105 +- tests/test_web_response.py | 109 +- tests/test_web_runner.py | 36 +- tests/test_web_sendfile.py | 25 +- tests/test_web_sendfile_functional.py | 492 +- tests/test_web_server.py | 24 +- tests/test_web_urldispatcher.py | 56 +- tests/test_web_websocket.py | 5 +- tests/test_web_websocket_functional.py | 28 +- tests/test_worker.py | 10 +- vendor/README.rst | 23 + vendor/http-parser/.gitignore | 30 - vendor/http-parser/.mailmap | 8 - vendor/http-parser/.travis.yml | 13 - vendor/http-parser/AUTHORS | 68 - vendor/http-parser/LICENSE-MIT | 19 - vendor/http-parser/Makefile | 160 - vendor/http-parser/README.md | 246 - vendor/http-parser/bench.c | 128 - vendor/http-parser/contrib/parsertrace.c | 157 - vendor/http-parser/contrib/url_parser.c | 47 - vendor/http-parser/http_parser.c | 2568 ---- vendor/http-parser/http_parser.gyp | 111 - vendor/http-parser/http_parser.h | 443 - vendor/http-parser/test.c | 4600 ------- vendor/llhttp/.dockerignore | 6 + vendor/llhttp/.eslintrc.js | 31 + vendor/llhttp/.github/workflows/aiohttp.yml | 61 + vendor/llhttp/.github/workflows/ci.yaml | 117 + vendor/llhttp/.gitignore | 6 + vendor/llhttp/.npmrc | 1 + vendor/llhttp/CMakeLists.txt | 117 + vendor/llhttp/CNAME | 1 + vendor/llhttp/CODE_OF_CONDUCT.md | 4 + vendor/llhttp/Dockerfile | 13 + vendor/llhttp/LICENSE-MIT | 22 + vendor/llhttp/Makefile | 93 + vendor/llhttp/README.md | 501 + vendor/llhttp/_config.yml | 1 + vendor/llhttp/bench/index.ts | 71 + vendor/llhttp/bin/build_wasm.ts | 95 + vendor/llhttp/bin/generate.ts | 47 + vendor/llhttp/build/c/llhttp.c | 10102 ++++++++++++++++ vendor/llhttp/build/llhttp.h | 898 ++ vendor/llhttp/docs/releasing.md | 65 + vendor/llhttp/examples/wasm.ts | 248 + vendor/llhttp/images/http-loose-none.png | Bin 0 -> 3571702 bytes vendor/llhttp/images/http-strict-none.png | Bin 0 -> 4166480 bytes vendor/llhttp/libllhttp.pc.in | 10 + vendor/llhttp/package-lock.json | 2995 +++++ vendor/llhttp/package.json | 60 + vendor/llhttp/src/common.gypi | 46 + vendor/llhttp/src/llhttp.gyp | 22 + vendor/llhttp/src/llhttp.ts | 7 + vendor/llhttp/src/llhttp/c-headers.ts | 106 + vendor/llhttp/src/llhttp/constants.ts | 540 + vendor/llhttp/src/llhttp/http.ts | 1298 ++ vendor/llhttp/src/llhttp/url.ts | 220 + vendor/llhttp/src/llhttp/utils.ts | 27 + vendor/llhttp/src/native/api.c | 510 + vendor/llhttp/src/native/api.h | 355 + vendor/llhttp/src/native/http.c | 170 + vendor/llhttp/test/fixtures/extra.c | 457 + vendor/llhttp/test/fixtures/index.ts | 116 + vendor/llhttp/test/fuzzers/fuzz_parser.c | 45 + vendor/llhttp/test/md-test.ts | 269 + vendor/llhttp/test/request/connection.md | 732 ++ vendor/llhttp/test/request/content-length.md | 482 + vendor/llhttp/test/request/finish.md | 69 + vendor/llhttp/test/request/invalid.md | 586 + vendor/llhttp/test/request/lenient-headers.md | 145 + vendor/llhttp/test/request/lenient-version.md | 23 + vendor/llhttp/test/request/method.md | 450 + vendor/llhttp/test/request/pausing.md | 381 + vendor/llhttp/test/request/pipelining.md | 66 + vendor/llhttp/test/request/sample.md | 629 + .../llhttp/test/request/transfer-encoding.md | 1187 ++ vendor/llhttp/test/request/uri.md | 243 + vendor/llhttp/test/response/connection.md | 647 + vendor/llhttp/test/response/content-length.md | 158 + vendor/llhttp/test/response/finish.md | 23 + vendor/llhttp/test/response/invalid.md | 285 + .../llhttp/test/response/lenient-version.md | 20 + vendor/llhttp/test/response/pausing.md | 330 + vendor/llhttp/test/response/pipelining.md | 60 + vendor/llhttp/test/response/sample.md | 653 + .../llhttp/test/response/transfer-encoding.md | 410 + vendor/llhttp/test/url.md | 261 + vendor/llhttp/tsconfig.json | 15 + vendor/llhttp/tslint.json | 14 + 277 files changed, 42147 insertions(+), 28366 deletions(-) create mode 100644 aiohttp.egg-info/not-zip-safe delete mode 100644 aiohttp/.hash/_frozenlist.pyx.hash delete mode 100644 aiohttp/.hash/frozenlist.pyi.hash delete mode 100644 aiohttp/.hash/signals.pyi.hash delete mode 100644 aiohttp/_frozenlist.c delete mode 100644 aiohttp/_frozenlist.pyx delete mode 100644 aiohttp/frozenlist.py delete mode 100644 aiohttp/frozenlist.pyi delete mode 100644 aiohttp/signals.py delete mode 100644 aiohttp/signals.pyi create mode 100644 debian/patches/0004-remove-sphinxcontrib.towncrier-for-now.patch create mode 100644 debian/py3dist-overrides create mode 100644 debian/source/options create mode 100644 docs/_snippets/cchardet-unmaintained-admonition.rst delete mode 100644 docs/_static/aiohttp-icon-128x128.png create mode 100644 docs/_static/css/logo-adjustments.css delete mode 100644 docs/signals.rst create mode 100644 examples/__init__.py delete mode 100755 examples/legacy/crawl.py delete mode 100755 examples/legacy/srv.py delete mode 100755 examples/legacy/tcp_protocol_parser.py create mode 100644 tests/autobahn/Dockerfile.aiohttp create mode 100644 tests/autobahn/Dockerfile.autobahn delete mode 100644 tests/autobahn/client.py create mode 100644 tests/autobahn/client/client.py rename tests/autobahn/{ => client}/fuzzingserver.json (100%) delete mode 100644 tests/autobahn/fuzzingclient.json delete mode 100644 tests/autobahn/server.py create mode 100644 tests/autobahn/server/fuzzingclient.json create mode 100644 tests/autobahn/server/server.py create mode 100644 tests/autobahn/test_autobahn.py create mode 100644 tests/sample.txt create mode 100644 tests/test___all__.py create mode 100644 tests/test_circular_imports.py delete mode 100644 tests/test_frozenlist.py delete mode 100644 tests/test_signals.py delete mode 100644 tests/test_web_protocol.py create mode 100644 vendor/README.rst delete mode 100644 vendor/http-parser/.gitignore delete mode 100644 vendor/http-parser/.mailmap delete mode 100644 vendor/http-parser/.travis.yml delete mode 100644 vendor/http-parser/AUTHORS delete mode 100644 vendor/http-parser/LICENSE-MIT delete mode 100644 vendor/http-parser/Makefile delete mode 100644 vendor/http-parser/README.md delete mode 100644 vendor/http-parser/bench.c delete mode 100644 vendor/http-parser/contrib/parsertrace.c delete mode 100644 vendor/http-parser/contrib/url_parser.c delete mode 100644 vendor/http-parser/http_parser.c delete mode 100644 vendor/http-parser/http_parser.gyp delete mode 100644 vendor/http-parser/http_parser.h delete mode 100644 vendor/http-parser/test.c create mode 100644 vendor/llhttp/.dockerignore create mode 100644 vendor/llhttp/.eslintrc.js create mode 100644 vendor/llhttp/.github/workflows/aiohttp.yml create mode 100644 vendor/llhttp/.github/workflows/ci.yaml create mode 100644 vendor/llhttp/.gitignore create mode 100644 vendor/llhttp/.npmrc create mode 100644 vendor/llhttp/CMakeLists.txt create mode 100644 vendor/llhttp/CNAME create mode 100644 vendor/llhttp/CODE_OF_CONDUCT.md create mode 100644 vendor/llhttp/Dockerfile create mode 100644 vendor/llhttp/LICENSE-MIT create mode 100644 vendor/llhttp/Makefile create mode 100644 vendor/llhttp/README.md create mode 100644 vendor/llhttp/_config.yml create mode 100644 vendor/llhttp/bench/index.ts create mode 100644 vendor/llhttp/bin/build_wasm.ts create mode 100755 vendor/llhttp/bin/generate.ts create mode 100644 vendor/llhttp/build/c/llhttp.c create mode 100644 vendor/llhttp/build/llhttp.h create mode 100644 vendor/llhttp/docs/releasing.md create mode 100644 vendor/llhttp/examples/wasm.ts create mode 100644 vendor/llhttp/images/http-loose-none.png create mode 100644 vendor/llhttp/images/http-strict-none.png create mode 100644 vendor/llhttp/libllhttp.pc.in create mode 100644 vendor/llhttp/package-lock.json create mode 100644 vendor/llhttp/package.json create mode 100644 vendor/llhttp/src/common.gypi create mode 100644 vendor/llhttp/src/llhttp.gyp create mode 100644 vendor/llhttp/src/llhttp.ts create mode 100644 vendor/llhttp/src/llhttp/c-headers.ts create mode 100644 vendor/llhttp/src/llhttp/constants.ts create mode 100644 vendor/llhttp/src/llhttp/http.ts create mode 100644 vendor/llhttp/src/llhttp/url.ts create mode 100644 vendor/llhttp/src/llhttp/utils.ts create mode 100644 vendor/llhttp/src/native/api.c create mode 100644 vendor/llhttp/src/native/api.h create mode 100644 vendor/llhttp/src/native/http.c create mode 100644 vendor/llhttp/test/fixtures/extra.c create mode 100644 vendor/llhttp/test/fixtures/index.ts create mode 100644 vendor/llhttp/test/fuzzers/fuzz_parser.c create mode 100644 vendor/llhttp/test/md-test.ts create mode 100644 vendor/llhttp/test/request/connection.md create mode 100644 vendor/llhttp/test/request/content-length.md create mode 100644 vendor/llhttp/test/request/finish.md create mode 100644 vendor/llhttp/test/request/invalid.md create mode 100644 vendor/llhttp/test/request/lenient-headers.md create mode 100644 vendor/llhttp/test/request/lenient-version.md create mode 100644 vendor/llhttp/test/request/method.md create mode 100644 vendor/llhttp/test/request/pausing.md create mode 100644 vendor/llhttp/test/request/pipelining.md create mode 100644 vendor/llhttp/test/request/sample.md create mode 100644 vendor/llhttp/test/request/transfer-encoding.md create mode 100644 vendor/llhttp/test/request/uri.md create mode 100644 vendor/llhttp/test/response/connection.md create mode 100644 vendor/llhttp/test/response/content-length.md create mode 100644 vendor/llhttp/test/response/finish.md create mode 100644 vendor/llhttp/test/response/invalid.md create mode 100644 vendor/llhttp/test/response/lenient-version.md create mode 100644 vendor/llhttp/test/response/pausing.md create mode 100644 vendor/llhttp/test/response/pipelining.md create mode 100644 vendor/llhttp/test/response/sample.md create mode 100644 vendor/llhttp/test/response/transfer-encoding.md create mode 100644 vendor/llhttp/test/url.md create mode 100644 vendor/llhttp/tsconfig.json create mode 100644 vendor/llhttp/tslint.json diff --git a/CHANGES.rst b/CHANGES.rst index e0f2b6d..fc3740c 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,7 +1,3 @@ -========= -Changelog -========= - .. You should *NOT* be adding new change log entries to this file, this file is managed by towncrier. You *may* edit previous change logs to @@ -14,7 +10,482 @@ Changelog .. towncrier release notes start -3.7.3 (2021-02-25) +3.8.6 (2023-10-07) +================== + +Security bugfixes +----------------- + +- Upgraded the vendored copy of llhttp_ to v9.1.3 -- by :user:`Dreamsorcerer` + + Thanks to :user:`kenballus` for reporting this, see + https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9. + + .. _llhttp: https://llhttp.org + + `#7647 `_ + +- Updated Python parser to comply with RFCs 9110/9112 -- by :user:`Dreamorcerer` + + Thanks to :user:`kenballus` for reporting this, see + https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg. + + `#7663 `_ + + +Deprecation +----------- + +- Added ``fallback_charset_resolver`` parameter in ``ClientSession`` to allow a user-supplied + character set detection function. + + Character set detection will no longer be included in 3.9 as a default. If this feature is needed, + please use `fallback_charset_resolver `_. + + `#7561 `_ + + +Features +-------- + +- Enabled lenient response parsing for more flexible parsing in the client + (this should resolve some regressions when dealing with badly formatted HTTP responses). -- by :user:`Dreamsorcerer` + + `#7490 `_ + + + +Bugfixes +-------- + +- Fixed ``PermissionError`` when ``.netrc`` is unreadable due to permissions. + + `#7237 `_ + +- Fixed output of parsing errors pointing to a ``\n``. -- by :user:`Dreamsorcerer` + + `#7468 `_ + +- Fixed ``GunicornWebWorker`` max_requests_jitter not working. + + `#7518 `_ + +- Fixed sorting in ``filter_cookies`` to use cookie with longest path. -- by :user:`marq24`. + + `#7577 `_ + +- Fixed display of ``BadStatusLine`` messages from llhttp_. -- by :user:`Dreamsorcerer` + + `#7651 `_ + + +---- + + +3.8.5 (2023-07-19) +================== + +Security bugfixes +----------------- + +- Upgraded the vendored copy of llhttp_ to v8.1.1 -- by :user:`webknjaz` + and :user:`Dreamsorcerer`. + + Thanks to :user:`sethmlarson` for reporting this and providing us with + comprehensive reproducer, workarounds and fixing details! For more + information, see + https://github.com/aio-libs/aiohttp/security/advisories/GHSA-45c4-8wx5-qw6w. + + .. _llhttp: https://llhttp.org + + `#7346 `_ + + +Features +-------- + +- Added information to C parser exceptions to show which character caused the error. -- by :user:`Dreamsorcerer` + + `#7366 `_ + + +Bugfixes +-------- + +- Fixed a transport is :data:`None` error -- by :user:`Dreamsorcerer`. + + `#3355 `_ + + +---- + + +3.8.4 (2023-02-12) +================== + +Bugfixes +-------- + +- Fixed incorrectly overwriting cookies with the same name and domain, but different path. + `#6638 `_ +- Fixed ``ConnectionResetError`` not being raised after client disconnection in SSL environments. + `#7180 `_ + + +---- + + +3.8.3 (2022-09-21) +================== + +.. attention:: + + This is the last :doc:`aiohttp ` release tested under + Python 3.6. The 3.9 stream is dropping it from the CI and the + distribution package metadata. + +Bugfixes +-------- + +- Increased the upper boundary of the :doc:`multidict:index` dependency + to allow for the version 6 -- by :user:`hugovk`. + + It used to be limited below version 7 in :doc:`aiohttp ` v3.8.1 but + was lowered in v3.8.2 via :pr:`6550` and never brought back, causing + problems with dependency pins when upgrading. :doc:`aiohttp ` v3.8.3 + fixes that by recovering the original boundary of ``< 7``. + `#6950 `_ + + +---- + + +3.8.2 (2022-09-20, subsequently yanked on 2022-09-21) +===================================================== + +.. note:: + + This release has some compatibility fixes for Python 3.11 but it may + still have some quirks. Some tests are still flaky in the CI. + +.. caution:: + + This release has been yanked from PyPI. Modern pip will not pick it + up automatically. The reason is that is has ``multidict < 6`` set in + the distribution package metadata (see :pr:`6950`). Please, use + ``aiohttp ~= 3.8.3, != 3.8.1`` instead, if you can. + +Bugfixes +-------- + +- Added support for registering :rfc:`OPTIONS <9110#OPTIONS>` + HTTP method handlers via :py:class:`~aiohttp.web.RouteTableDef`. + `#4663 `_ +- Started supporting :rfc:`authority-form <9112#authority-form>` and + :rfc:`absolute-form <9112#absolute-form>` URLs on the server-side. + `#6227 `_ +- Fixed Python 3.11 incompatibilities by using Cython 0.29.25. + `#6396 `_ +- Extended the ``sock`` argument typing declaration of the + :py:func:`~aiohttp.web.run_app` function as optionally + accepting iterables. + `#6401 `_ +- Fixed a regression where :py:exc:`~asyncio.CancelledError` + occurs on client disconnection. + `#6719 `_ +- Started exporting :py:class:`~aiohttp.web.PrefixedSubAppResource` + under :py:mod:`aiohttp.web` -- by :user:`Dreamsorcerer`. + + This fixes a regression introduced by :pr:`3469`. + `#6889 `_ +- Dropped the :class:`object` type possibility from + the :py:attr:`aiohttp.ClientSession.timeout` + property return type declaration. + `#6917 `_, + `#6923 `_ + + +Improved Documentation +---------------------- + +- Added clarification on configuring the app object with + settings such as a database connection. + `#4137 `_ +- Extended the ``sock`` argument typing declaration of the + :py:func:`~aiohttp.web.run_app` function as optionally + accepting iterables. + `#6401 `_ +- Dropped the :class:`object` type possibility from + the :py:attr:`aiohttp.ClientSession.timeout` + property return type declaration. + `#6917 `_, + `#6923 `_ + + +Deprecations and Removals +------------------------- + +- Dropped Python 3.5 support, :doc:`aiohttp ` only works + under Python 3.6 and higher from now on. + `#4046 `_ + + +Misc +---- + +- Removed a deprecated usage of :py:func:`pytest.warns(None) + ` in tests. + `#6663 `_ +- `#6369 `_, `#6399 `_, `#6550 `_, `#6708 `_, `#6757 `_, `#6857 `_, `#6872 `_. + + +---- + + +3.8.1 (2021-11-14) +================== + +Bugfixes +-------- + +- Fix the error in handling the return value of `getaddrinfo`. + `getaddrinfo` will return an `(int, bytes)` tuple, if CPython could not handle the address family. + It will cause a index out of range error in aiohttp. For example, if user compile CPython with + `--disable-ipv6` option but his system enable the ipv6. + `#5901 `_ +- Do not install "examples" as a top-level package. + `#6189 `_ +- Restored ability to connect IPv6-only host. + `#6195 `_ +- Remove ``Signal`` from ``__all__``, replace ``aiohttp.Signal`` with ``aiosignal.Signal`` in docs + `#6201 `_ +- Made chunked encoding HTTP header check stricter. + `#6305 `_ + + +Improved Documentation +---------------------- + +- update quick starter demo codes. + `#6240 `_ +- Added an explanation of how tiny timeouts affect performance to the client reference document. + `#6274 `_ +- Add flake8-docstrings to flake8 configuration, enable subset of checks. + `#6276 `_ +- Added information on running complex applications with additional tasks/processes -- :user:`Dreamsorcerer`. + `#6278 `_ + + +Misc +---- + +- `#6205 `_ + + +---- + + +3.8.0 (2021-10-31) +================== + +Features +-------- + +- Added a ``GunicornWebWorker`` feature for extending the aiohttp server configuration by allowing the 'wsgi' coroutine to return ``web.AppRunner`` object. + `#2988 `_ +- Switch from ``http-parser`` to ``llhttp`` + `#3561 `_ +- Use Brotli instead of brotlipy + `#3803 `_ +- Disable implicit switch-back to pure python mode. The build fails loudly if aiohttp + cannot be compiled with C Accelerators. Use AIOHTTP_NO_EXTENSIONS=1 to explicitly + disable C Extensions complication and switch to Pure-Python mode. Note that Pure-Python + mode is significantly slower than compiled one. + `#3828 `_ +- Make access log use local time with timezone + `#3853 `_ +- Implemented ``readuntil`` in ``StreamResponse`` + `#4054 `_ +- FileResponse now supports ETag. + `#4594 `_ +- Add a request handler type alias ``aiohttp.typedefs.Handler``. + `#4686 `_ +- ``AioHTTPTestCase`` is more async friendly now. + + For people who use unittest and are used to use :py:exc:`~unittest.TestCase` + it will be easier to write new test cases like the sync version of the :py:exc:`~unittest.TestCase` class, + without using the decorator `@unittest_run_loop`, just `async def test_*`. + The only difference is that for the people using python3.7 and below a new dependency is needed, it is ``asynctestcase``. + `#4700 `_ +- Add validation of HTTP header keys and values to prevent header injection. + `#4818 `_ +- Add predicate to ``AbstractCookieJar.clear``. + Add ``AbstractCookieJar.clear_domain`` to clean all domain and subdomains cookies only. + `#4942 `_ +- Add keepalive_timeout parameter to web.run_app. + `#5094 `_ +- Tracing for client sent headers + `#5105 `_ +- Make type hints for http parser stricter + `#5267 `_ +- Add final declarations for constants. + `#5275 `_ +- Switch to external frozenlist and aiosignal libraries. + `#5293 `_ +- Don't send secure cookies by insecure transports. + + By default, the transport is secure if https or wss scheme is used. + Use `CookieJar(treat_as_secure_origin="http://127.0.0.1")` to override the default security checker. + `#5571 `_ +- Always create a new event loop in ``aiohttp.web.run_app()``. + This adds better compatibility with ``asyncio.run()`` or if trying to run multiple apps in sequence. + `#5572 `_ +- Add ``aiohttp.pytest_plugin.AiohttpClient`` for static typing of pytest plugin. + `#5585 `_ +- Added a ``socket_factory`` argument to ``BaseTestServer``. + `#5844 `_ +- Add compression strategy parameter to enable_compression method. + `#5909 `_ +- Added support for Python 3.10 to Github Actions CI/CD workflows and fix the related deprecation warnings -- :user:`Hanaasagi`. + `#5927 `_ +- Switched ``chardet`` to ``charset-normalizer`` for guessing the HTTP payload body encoding -- :user:`Ousret`. + `#5930 `_ +- Added optional auto_decompress argument for HttpRequestParser + `#5957 `_ +- Added support for HTTPS proxies to the extent CPython's + :py:mod:`asyncio` supports it -- by :user:`bmbouter`, + :user:`jborean93` and :user:`webknjaz`. + `#5992 `_ +- Added ``base_url`` parameter to the initializer of :class:`~aiohttp.ClientSession`. + `#6013 `_ +- Add Trove classifier and create binary wheels for 3.10. -- :user:`hugovk`. + `#6079 `_ +- Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes — :user:`asvetlov`. + `#6139 `_ +- Started shipping platform-specific arm64 wheels for Apple Silicon — :user:`asvetlov`. + `#6139 `_ + + +Bugfixes +-------- + +- Modify _drain_helper() to handle concurrent `await resp.write(...)` or `ws.send_json(...)` calls without race-condition. + `#2934 `_ +- Started using `MultiLoopChildWatcher` when it's available under POSIX while setting up the test I/O loop. + `#3450 `_ +- Only encode content-disposition filename parameter using percent-encoding. + Other parameters are encoded to quoted-string or RFC2231 extended parameter + value. + `#4012 `_ +- Fixed HTTP client requests to honor ``no_proxy`` environment variables. + `#4431 `_ +- Fix supporting WebSockets proxies configured via environment variables. + `#4648 `_ +- Change return type on URLDispatcher to UrlMappingMatchInfo to improve type annotations. + `#4748 `_ +- Ensure a cleanup context is cleaned up even when an exception occurs during startup. + `#4799 `_ +- Added a new exception type for Unix socket client errors which provides a more useful error message. + `#4984 `_ +- Remove Transfer-Encoding and Content-Type headers for 204 in StreamResponse + `#5106 `_ +- Only depend on typing_extensions for Python <3.8 + `#5107 `_ +- Add ABNORMAL_CLOSURE and BAD_GATEWAY to WSCloseCode + `#5192 `_ +- Fix cookies disappearing from HTTPExceptions. + `#5233 `_ +- StaticResource prefixes no longer match URLs with a non-folder prefix. For example ``routes.static('/foo', '/foo')`` no longer matches the URL ``/foobar``. Previously, this would attempt to load the file ``/foo/ar``. + `#5250 `_ +- Acquire the connection before running traces to prevent race condition. + `#5259 `_ +- Add missing slots to ```_RequestContextManager`` and ``_WSRequestContextManager`` + `#5329 `_ +- Ensure sending a zero byte file does not throw an exception (round 2) + `#5380 `_ +- Set "text/plain" when data is an empty string in client requests. + `#5392 `_ +- Stop automatically releasing the ``ClientResponse`` object on calls to the ``ok`` property for the failed requests. + `#5403 `_ +- Include query parameters from `params` keyword argument in tracing `URL`. + `#5432 `_ +- Fix annotations + `#5466 `_ +- Fixed the multipart POST requests processing to always release file + descriptors for the ``tempfile.Temporaryfile``-created + ``_io.BufferedRandom`` instances of files sent within multipart request + bodies via HTTP POST requests -- by :user:`webknjaz`. + `#5494 `_ +- Fix 0 being incorrectly treated as an immediate timeout. + `#5527 `_ +- Fixes failing tests when an environment variable _proxy is set. + `#5554 `_ +- Replace deprecated app handler design in ``tests/autobahn/server.py`` with call to ``web.run_app``; replace deprecated ``aiohttp.ws_connect`` calls in ``tests/autobahn/client.py`` with ``aiohttp.ClienSession.ws_connect``. + `#5606 `_ +- Fixed test for ``HTTPUnauthorized`` that access the ``text`` argument. This is not used in any part of the code, so it's removed now. + `#5657 `_ +- Remove incorrect default from docs + `#5727 `_ +- Remove external test dependency to http://httpbin.org + `#5840 `_ +- Don't cancel current task when entering a cancelled timer. + `#5853 `_ +- Added ``params`` keyword argument to ``ClientSession.ws_connect``. -- :user:`hoh`. + `#5868 `_ +- Uses :py:class:`~asyncio.ThreadedChildWatcher` under POSIX to allow setting up test loop in non-main thread. + `#5877 `_ +- Fix the error in handling the return value of `getaddrinfo`. + `getaddrinfo` will return an `(int, bytes)` tuple, if CPython could not handle the address family. + It will cause a index out of range error in aiohttp. For example, if user compile CPython with + `--disable-ipv6` option but his system enable the ipv6. + `#5901 `_ +- Removed the deprecated ``loop`` argument from the ``asyncio.sleep``/``gather`` calls + `#5905 `_ +- Return ``None`` from ``request.if_modified_since``, ``request.if_unmodified_since``, ``request.if_range`` and ``response.last_modified`` when corresponding http date headers are invalid. + `#5925 `_ +- Fix resetting `SIGCHLD` signals in Gunicorn aiohttp Worker to fix `subprocesses` that capture output having an incorrect `returncode`. + `#6130 `_ +- Raise ``400: Content-Length can't be present with Transfer-Encoding`` if both ``Content-Length`` and ``Transfer-Encoding`` are sent by peer by both C and Python implementations + `#6182 `_ + + +Improved Documentation +---------------------- + +- Refactored OpenAPI/Swagger aiohttp addons, added ``aio-openapi`` + `#5326 `_ +- Fixed docs on request cookies type, so it matches what is actually used in the code (a + read-only dictionary-like object). + `#5725 `_ +- Documented that the HTTP client ``Authorization`` header is removed + on redirects to a different host or protocol. + `#5850 `_ + + +Misc +---- + +- `#3927 `_, `#4247 `_, `#4247 `_, `#5389 `_, `#5457 `_, `#5486 `_, `#5494 `_, `#5515 `_, `#5625 `_, `#5635 `_, `#5648 `_, `#5657 `_, `#5890 `_, `#5914 `_, `#5932 `_, `#6002 `_, `#6045 `_, `#6131 `_, `#6156 `_, `#6165 `_, `#6166 `_ + + +---- + + +3.7.4.post0 (2021-03-06) +======================== + +Misc +---- + +- Bumped upper bound of the ``chardet`` runtime dependency + to allow their v4.0 version stream. + `#5366 `_ + + +---- + + +3.7.4 (2021-02-25) ================== Bugfixes diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index ad63ce9..f8a8df5 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -3,9 +3,11 @@ A. Jesse Jiryu Davis Adam Bannister Adam Cooper +Adam Horacek Adam Mills Adrian Krupa Adrián Chaves +Ahmed Tahri Alan Tse Alec Hanefeld Alejandro Gómez @@ -30,6 +32,7 @@ Alexey Stepanov Amin Etesamian Amit Tulshyan Amy Boyle +Anas El Amraoui Anders Melchiorsen Andrei Ursulenko Andrej Antonov @@ -38,21 +41,27 @@ Andrew Lytvyn Andrew Svetlov Andrew Zhou Andrii Soldatenko +Anes Abismail Antoine Pietri Anton Kasyanov Anton Zhdan-Pushkin Arseny Timoniq Artem Yushkovskiy Arthur Darcet +Austin Scola Ben Bader +Ben Greiner Ben Timby Benedikt Reinartz +Bob Haddleton Boris Feld Boyi Chen Brett Cannon +Brian Bouterse Brian C. Lane Brian Muller Bruce Merry +Bruno Souza Cabral Bryan Kok Bryce Drennan Carl George @@ -67,6 +76,7 @@ Claudiu Popa Colin Dunklau Cong Xu Damien Nadé +Dan King Dan Xu Daniel García Daniel Grossmann-Kavanagh @@ -76,6 +86,7 @@ David Bibb David Michael Brown Denilson Amorim Denis Matiychuk +Denis Moshensky Dennis Kliban Dima Veselov Dimitar Dimitrov @@ -106,6 +117,7 @@ Felix Yan Fernanda Guimarães FichteFoll Florian Scheffler +Franek Magiera Frederik Gladhorn Frederik Peter Aalund Gabriel Tremblay @@ -119,10 +131,13 @@ Gustavo Carneiro Günther Jena Hans Adema Harmon Y. +Harry Liu +Hiroshi Ogawa Hrishikesh Paranjape Hu Bo Hugh Young Hugo Herter +Hugo van Kemenade Hynek Schlawack Igor Alexandrov Igor Davydenko @@ -137,6 +152,8 @@ Jaesung Lee Jake Davis Jakob Ackermann Jakub Wilk +Jan Buchar +Jan Gosmann Jashandeep Sohi Jens Steinhauser Jeonghun Lee @@ -146,12 +163,14 @@ Jesus Cea Jian Zeng Jinkyu Yi Joel Watts +John Parton Jon Nabozny Jonas Krüger Svensson Jonas Obrist Jonathan Wright Jonny Tan Joongi Kim +Jordan Borean Josep Cugat Josh Junon Joshu Coats @@ -186,13 +205,17 @@ Manuel Miranda Marat Sharafutdinov Marco Paolini Mariano Anaya +Mariusz Masztalerczuk +Marko Kohtala Martijn Pieters Martin Melka Martin Richard Mathias Fröjdman Mathieu Dugré +Matthias Marquardt Matthieu Hauglustaine Matthieu Rigal +Meet Mangukiya Michael Ihnatenko Michał Górny Mikhail Burshteyn @@ -208,6 +231,8 @@ Navid Sheikhol Nicolas Braem Nikolay Kim Nikolay Novik +Nikolay Tiunov +Nándor Mátravölgyi Oisin Aylward Olaf Conradi Pahaz Blinov @@ -219,11 +244,14 @@ Paulius Šileikis Paulus Schoutsen Pavel Kamaev Pavel Polyakov +Pavel Sapezhko +Pavol Vargovčík Pawel Kowalski Pawel Miech Pepe Osca Philipp A. Pieter van Beek +Qiao Han Rafael Viotti Raphael Bialon Raúl Cumplido @@ -250,6 +278,7 @@ Stanislav Prokop Stefan Tjarks Stepan Pletnev Stephan Jaensch +Stephen Cirelli Stephen Granade Steven Seguin Sunghyun Hwang @@ -292,6 +321,7 @@ Vladyslav Bondar W. Trevor King Wei Lin Weiwei Wang +Will Fatherley Will McGugan Willem de Groot William Grzybowski @@ -305,8 +335,11 @@ Yegor Roganov Yifei Kong Young-Ho Cha Yuriy Shatrov +Yury Pliner Yury Selivanov Yusuke Tsutsumi +Yuval Ofir +Zeal Wierslee Zlatan Sičanica Марк Коренберг Семён Марьясин diff --git a/LICENSE.txt b/LICENSE.txt index 90c9d01..e497a32 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,192 +1,4 @@ -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 2013-2020 aiohttp maintainers + Copyright aio-libs contributors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/Makefile b/Makefile index 13cd764..98a8812 100644 --- a/Makefile +++ b/Makefile @@ -7,9 +7,10 @@ CYS := $(wildcard aiohttp/*.pyx) $(wildcard aiohttp/*.pyi) $(wildcard aiohttp/* PYXS := $(wildcard aiohttp/*.pyx) CS := $(wildcard aiohttp/*.c) PYS := $(wildcard aiohttp/*.py) -REQS := $(wildcard requirements/*.txt) +IN := doc-spelling lint cython dev ALLS := $(sort $(CYS) $(CS) $(PYS) $(REQS)) + .PHONY: all all: test @@ -45,9 +46,11 @@ endif # Enumerate intermediate files to don't remove them automatically. .SECONDARY: $(call to-hash,$(ALLS)) +.update-pip: + @python -m pip install --upgrade pip -.install-cython: $(call to-hash,requirements/cython.txt) - pip install -r requirements/cython.txt +.install-cython: .update-pip $(call to-hash,requirements/cython.txt) + @python -m pip install -r requirements/cython.txt -c requirements/constraints.txt @touch .install-cython aiohttp/_find_header.c: $(call to-hash,aiohttp/hdrs.py ./tools/gen.py) @@ -55,14 +58,23 @@ aiohttp/_find_header.c: $(call to-hash,aiohttp/hdrs.py ./tools/gen.py) # _find_headers generator creates _headers.pyi as well aiohttp/%.c: aiohttp/%.pyx $(call to-hash,$(CYS)) aiohttp/_find_header.c - cython -3 -o $@ $< -I aiohttp + cython -3 -o $@ $< -I aiohttp -Werror + +vendor/llhttp/node_modules: vendor/llhttp/package.json + cd vendor/llhttp; npm install + +.llhttp-gen: vendor/llhttp/node_modules + $(MAKE) -C vendor/llhttp generate + @touch .llhttp-gen +.PHONY: generate-llhttp +generate-llhttp: .llhttp-gen .PHONY: cythonize cythonize: .install-cython $(PYXS:.pyx=.c) .install-deps: .install-cython $(PYXS:.pyx=.c) $(call to-hash,$(CYS) $(REQS)) - pip install -r requirements/dev.txt + @python -m pip install -r requirements/dev.txt -c requirements/constraints.txt @touch .install-deps .PHONY: lint @@ -74,10 +86,10 @@ fmt format: .PHONY: mypy mypy: - mypy aiohttp + mypy -.develop: .install-deps $(call to-hash,$(PYS) $(CYS) $(CS)) - pip install -e . +.develop: .install-deps generate-llhttp $(call to-hash,$(PYS) $(CYS) $(CS)) + python -m pip install -e . -c requirements/constraints.txt @touch .develop .PHONY: test @@ -92,6 +104,30 @@ vtest: .develop vvtest: .develop @pytest -vv + +define run_tests_in_docker + DOCKER_BUILDKIT=1 docker build --build-arg PYTHON_VERSION=$(1) --build-arg AIOHTTP_NO_EXTENSIONS=$(2) -t "aiohttp-test-$(1)-$(2)" -f tools/testing/Dockerfile . + docker run --rm -ti -v `pwd`:/src -w /src "aiohttp-test-$(1)-$(2)" $(TEST_SPEC) +endef + +.PHONY: test-3.7-no-extensions test-3.7 test-3.8-no-extensions test-3.8 test-3.9-no-extensions test-3.9 test-3.10-no-extensions test-3.10 +test-3.7-no-extensions: + $(call run_tests_in_docker,3.7,y) +test-3.7: + $(call run_tests_in_docker,3.7,n) +test-3.8-no-extensions: + $(call run_tests_in_docker,3.8,y) +test-3.8: + $(call run_tests_in_docker,3.8,n) +test-3.9-no-extensions: + $(call run_tests_in_docker,3.9,y) +test-3.9: + $(call run_tests_in_docker,3.9,n) +test-3.10-no-extensions: + $(call run_tests_in_docker,3.10,y) +test-3.10: + $(call run_tests_in_docker,3.10,n) + .PHONY: clean clean: @rm -rf `find . -name __pycache__` @@ -125,20 +161,28 @@ clean: @rm -rf aiohttp.egg-info @rm -f .install-deps @rm -f .install-cython + @rm -rf vendor/llhttp/node_modules + @rm -f .llhttp-gen + @$(MAKE) -C vendor/llhttp clean .PHONY: doc doc: - @make -C docs html SPHINXOPTS="-W -E" + @make -C docs html SPHINXOPTS="-W --keep-going -n -E" @echo "open file://`pwd`/docs/_build/html/index.html" .PHONY: doc-spelling doc-spelling: - @make -C docs spelling SPHINXOPTS="-W -E" + @make -C docs spelling SPHINXOPTS="-W --keep-going -n -E" + +.PHONY: compile-deps +compile-deps: .update-pip $(REQS) + pip-compile --no-header --allow-unsafe -q --strip-extras \ + -o requirements/constraints.txt \ + requirements/constraints.in .PHONY: install -install: - @pip install -U 'pip' - @pip install -Ur requirements/dev.txt +install: .update-pip + @python -m pip install -r requirements/dev.txt -c requirements/constraints.txt .PHONY: install-dev install-dev: .develop diff --git a/PKG-INFO b/PKG-INFO index 51ea8f8..b2d329d 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,952 +1,254 @@ Metadata-Version: 2.1 Name: aiohttp -Version: 3.7.4 +Version: 3.8.6 Summary: Async http client/server framework (asyncio) Home-page: https://github.com/aio-libs/aiohttp -Author: Nikolay Kim -Author-email: fafhrd91@gmail.com -Maintainer: Nikolay Kim , Andrew Svetlov -Maintainer-email: aio-libs@googlegroups.com +Maintainer: aiohttp team +Maintainer-email: team@aiohttp.org License: Apache 2 -Project-URL: Chat: Gitter, https://gitter.im/aio-libs/Lobby -Project-URL: CI: Azure Pipelines, https://dev.azure.com/aio-libs/aiohttp/_build +Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org +Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org +Project-URL: CI: GitHub Actions, https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/aiohttp +Project-URL: Docs: Changelog, https://docs.aiohttp.org/en/stable/changes.html Project-URL: Docs: RTD, https://docs.aiohttp.org Project-URL: GitHub: issues, https://github.com/aio-libs/aiohttp/issues Project-URL: GitHub: repo, https://github.com/aio-libs/aiohttp -Description: ================================== - Async http client/server framework - ================================== - - .. image:: https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/_static/aiohttp-icon-128x128.png - :height: 64px - :width: 64px - :alt: aiohttp logo - - | - - .. image:: https://github.com/aio-libs/aiohttp/workflows/CI/badge.svg - :target: https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI - :alt: GitHub Actions status for master branch - - .. image:: https://codecov.io/gh/aio-libs/aiohttp/branch/master/graph/badge.svg - :target: https://codecov.io/gh/aio-libs/aiohttp - :alt: codecov.io status for master branch - - .. image:: https://badge.fury.io/py/aiohttp.svg - :target: https://pypi.org/project/aiohttp - :alt: Latest PyPI package version - - .. image:: https://readthedocs.org/projects/aiohttp/badge/?version=latest - :target: https://docs.aiohttp.org/ - :alt: Latest Read The Docs - - .. image:: https://img.shields.io/discourse/status?server=https%3A%2F%2Faio-libs.discourse.group - :target: https://aio-libs.discourse.group - :alt: Discourse status - - .. image:: https://badges.gitter.im/Join%20Chat.svg - :target: https://gitter.im/aio-libs/Lobby - :alt: Chat on Gitter - - - Key Features - ============ - - - Supports both client and server side of HTTP protocol. - - Supports both client and server Web-Sockets out-of-the-box and avoids - Callback Hell. - - Provides Web-server with middlewares and plugable routing. - - - Getting started - =============== - - Client - ------ - - To get something from the web: - - .. code-block:: python - - import aiohttp - import asyncio - - async def main(): - - async with aiohttp.ClientSession() as session: - async with session.get('http://python.org') as response: - - print("Status:", response.status) - print("Content-type:", response.headers['content-type']) - - html = await response.text() - print("Body:", html[:15], "...") - - loop = asyncio.get_event_loop() - loop.run_until_complete(main()) - - This prints: - - .. code-block:: - - Status: 200 - Content-type: text/html; charset=utf-8 - Body: ... - - Coming from `requests `_ ? Read `why we need so many lines `_. - - Server - ------ - - An example using a simple server: - - .. code-block:: python - - # examples/server_simple.py - from aiohttp import web - - async def handle(request): - name = request.match_info.get('name', "Anonymous") - text = "Hello, " + name - return web.Response(text=text) - - async def wshandle(request): - ws = web.WebSocketResponse() - await ws.prepare(request) - - async for msg in ws: - if msg.type == web.WSMsgType.text: - await ws.send_str("Hello, {}".format(msg.data)) - elif msg.type == web.WSMsgType.binary: - await ws.send_bytes(msg.data) - elif msg.type == web.WSMsgType.close: - break - - return ws - - - app = web.Application() - app.add_routes([web.get('/', handle), - web.get('/echo', wshandle), - web.get('/{name}', handle)]) - - if __name__ == '__main__': - web.run_app(app) - - - Documentation - ============= - - https://aiohttp.readthedocs.io/ - - - Demos - ===== - - https://github.com/aio-libs/aiohttp-demos - - - External links - ============== - - * `Third party libraries - `_ - * `Built with aiohttp - `_ - * `Powered by aiohttp - `_ - - Feel free to make a Pull Request for adding your link to these pages! - - - Communication channels - ====================== - - *aio-libs discourse group*: https://aio-libs.discourse.group - - *gitter chat* https://gitter.im/aio-libs/Lobby - - We support `Stack Overflow - `_. - Please add *aiohttp* tag to your question there. - - Requirements - ============ - - - Python >= 3.6 - - async-timeout_ - - attrs_ - - chardet_ - - multidict_ - - yarl_ - - Optionally you may install the cChardet_ and aiodns_ libraries (highly - recommended for sake of speed). - - .. _chardet: https://pypi.python.org/pypi/chardet - .. _aiodns: https://pypi.python.org/pypi/aiodns - .. _attrs: https://github.com/python-attrs/attrs - .. _multidict: https://pypi.python.org/pypi/multidict - .. _yarl: https://pypi.python.org/pypi/yarl - .. _async-timeout: https://pypi.python.org/pypi/async_timeout - .. _cChardet: https://pypi.python.org/pypi/cchardet - - License - ======= - - ``aiohttp`` is offered under the Apache 2 license. - - - Keepsafe - ======== - - The aiohttp community would like to thank Keepsafe - (https://www.getkeepsafe.com) for its support in the early days of - the project. - - - Source code - =========== - - The latest developer version is available in a GitHub repository: - https://github.com/aio-libs/aiohttp - - Benchmarks - ========== - - If you are interested in efficiency, the AsyncIO community maintains a - list of benchmarks on the official wiki: - https://github.com/python/asyncio/wiki/Benchmarks - - ========= - Changelog - ========= - - .. - You should *NOT* be adding new change log entries to this file, this - file is managed by towncrier. You *may* edit previous change logs to - fix problems like typo corrections or such. - To add a new change log entry, please see - https://pip.pypa.io/en/latest/development/#adding-a-news-entry - we named the news folder "changes". - - WARNING: Don't drop the next directive! - - .. towncrier release notes start - - 3.7.3 (2021-02-25) - ================== - - Bugfixes - -------- - - - **(SECURITY BUG)** Started preventing open redirects in the - ``aiohttp.web.normalize_path_middleware`` middleware. For - more details, see - https://github.com/aio-libs/aiohttp/security/advisories/GHSA-v6wp-4m6f-gcjg. - - Thanks to `Beast Glatisant `__ for - finding the first instance of this issue and `Jelmer Vernooij - `__ for reporting and tracking it down - in aiohttp. - `#5497 `_ - - Fix interpretation difference of the pure-Python and the Cython-based - HTTP parsers construct a ``yarl.URL`` object for HTTP request-target. - - Before this fix, the Python parser would turn the URI's absolute-path - for ``//some-path`` into ``/`` while the Cython code preserved it as - ``//some-path``. Now, both do the latter. - `#5498 `_ - - - ---- - - - 3.7.3 (2020-11-18) - ================== - - Features - -------- - - - Use Brotli instead of brotlipy - `#3803 `_ - - Made exceptions pickleable. Also changed the repr of some exceptions. - `#4077 `_ - - - Bugfixes - -------- - - - Raise a ClientResponseError instead of an AssertionError for a blank - HTTP Reason Phrase. - `#3532 `_ - - Fix ``web_middlewares.normalize_path_middleware`` behavior for patch without slash. - `#3669 `_ - - Fix overshadowing of overlapped sub-applications prefixes. - `#3701 `_ - - Make `BaseConnector.close()` a coroutine and wait until the client closes all connections. Drop deprecated "with Connector():" syntax. - `#3736 `_ - - Reset the ``sock_read`` timeout each time data is received for a ``aiohttp.client`` response. - `#3808 `_ - - Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of View - `#3880 `_ - - Fixed querying the address families from DNS that the current host supports. - `#5156 `_ - - Change return type of MultipartReader.__aiter__() and BodyPartReader.__aiter__() to AsyncIterator. - `#5163 `_ - - Provide x86 Windows wheels. - `#5230 `_ - - - Improved Documentation - ---------------------- - - - Add documentation for ``aiohttp.web.FileResponse``. - `#3958 `_ - - Removed deprecation warning in tracing example docs - `#3964 `_ - - Fixed wrong "Usage" docstring of ``aiohttp.client.request``. - `#4603 `_ - - Add aiohttp-pydantic to third party libraries - `#5228 `_ - - - Misc - ---- - - - `#4102 `_ - - - ---- - - - 3.7.2 (2020-10-27) - ================== - - Bugfixes - -------- - - - Fixed static files handling for loops without ``.sendfile()`` support - `#5149 `_ - - - ---- - - - 3.7.1 (2020-10-25) - ================== - - Bugfixes - -------- - - - Fixed a type error caused by the conditional import of `Protocol`. - `#5111 `_ - - Server doesn't send Content-Length for 1xx or 204 - `#4901 `_ - - Fix run_app typing - `#4957 `_ - - Always require ``typing_extensions`` library. - `#5107 `_ - - Fix a variable-shadowing bug causing `ThreadedResolver.resolve` to - return the resolved IP as the ``hostname`` in each record, which prevented - validation of HTTPS connections. - `#5110 `_ - - Added annotations to all public attributes. - `#5115 `_ - - Fix flaky test_when_timeout_smaller_second - `#5116 `_ - - Ensure sending a zero byte file does not throw an exception - `#5124 `_ - - Fix a bug in ``web.run_app()`` about Python version checking on Windows - `#5127 `_ - - - ---- - - - 3.7.0 (2020-10-24) - ================== - - Features - -------- - - - Response headers are now prepared prior to running ``on_response_prepare`` hooks, directly before headers are sent to the client. - `#1958 `_ - - Add a ``quote_cookie`` option to ``CookieJar``, a way to skip quotation wrapping of cookies containing special characters. - `#2571 `_ - - Call ``AccessLogger.log`` with the current exception available from ``sys.exc_info()``. - `#3557 `_ - - `web.UrlDispatcher.add_routes` and `web.Application.add_routes` return a list - of registered `AbstractRoute` instances. `AbstractRouteDef.register` (and all - subclasses) return a list of registered resources registered resource. - `#3866 `_ - - Added properties of default ClientSession params to ClientSession class so it is available for introspection - `#3882 `_ - - Don't cancel web handler on peer disconnection, raise `OSError` on reading/writing instead. - `#4080 `_ - - Implement BaseRequest.get_extra_info() to access a protocol transports' extra info. - `#4189 `_ - - Added `ClientSession.timeout` property. - `#4191 `_ - - allow use of SameSite in cookies. - `#4224 `_ - - Use ``loop.sendfile()`` instead of custom implementation if available. - `#4269 `_ - - Apply SO_REUSEADDR to test server's socket. - `#4393 `_ - - Use .raw_host instead of slower .host in client API - `#4402 `_ - - Allow configuring the buffer size of input stream by passing ``read_bufsize`` argument. - `#4453 `_ - - Pass tests on Python 3.8 for Windows. - `#4513 `_ - - Add `method` and `url` attributes to `TraceRequestChunkSentParams` and `TraceResponseChunkReceivedParams`. - `#4674 `_ - - Add ClientResponse.ok property for checking status code under 400. - `#4711 `_ - - Don't ceil timeouts that are smaller than 5 seconds. - `#4850 `_ - - TCPSite now listens by default on all interfaces instead of just IPv4 when `None` is passed in as the host. - `#4894 `_ - - Bump ``http_parser`` to 2.9.4 - `#5070 `_ - - - Bugfixes - -------- - - - Fix keepalive connections not being closed in time - `#3296 `_ - - Fix failed websocket handshake leaving connection hanging. - `#3380 `_ - - Fix tasks cancellation order on exit. The run_app task needs to be cancelled first for cleanup hooks to run with all tasks intact. - `#3805 `_ - - Don't start heartbeat until _writer is set - `#4062 `_ - - Fix handling of multipart file uploads without a content type. - `#4089 `_ - - Preserve view handler function attributes across middlewares - `#4174 `_ - - Fix the string representation of ``ServerDisconnectedError``. - `#4175 `_ - - Raising RuntimeError when trying to get encoding from not read body - `#4214 `_ - - Remove warning messages from noop. - `#4282 `_ - - Raise ClientPayloadError if FormData re-processed. - `#4345 `_ - - Fix a warning about unfinished task in ``web_protocol.py`` - `#4408 `_ - - Fixed 'deflate' compression. According to RFC 2616 now. - `#4506 `_ - - Fixed OverflowError on platforms with 32-bit time_t - `#4515 `_ - - Fixed request.body_exists returns wrong value for methods without body. - `#4528 `_ - - Fix connecting to link-local IPv6 addresses. - `#4554 `_ - - Fix a problem with connection waiters that are never awaited. - `#4562 `_ - - Always make sure transport is not closing before reuse a connection. - - Reuse a protocol based on keepalive in headers is unreliable. - For example, uWSGI will not support keepalive even it serves a - HTTP 1.1 request, except explicitly configure uWSGI with a - ``--http-keepalive`` option. - - Servers designed like uWSGI could cause aiohttp intermittently - raise a ConnectionResetException when the protocol poll runs - out and some protocol is reused. - `#4587 `_ - - Handle the last CRLF correctly even if it is received via separate TCP segment. - `#4630 `_ - - Fix the register_resource function to validate route name before splitting it so that route name can include python keywords. - `#4691 `_ - - Improve typing annotations for ``web.Request``, ``aiohttp.ClientResponse`` and - ``multipart`` module. - `#4736 `_ - - Fix resolver task is not awaited when connector is cancelled - `#4795 `_ - - Fix a bug "Aiohttp doesn't return any error on invalid request methods" - `#4798 `_ - - Fix HEAD requests for static content. - `#4809 `_ - - Fix incorrect size calculation for memoryview - `#4890 `_ - - Add HTTPMove to _all__. - `#4897 `_ - - Fixed the type annotations in the ``tracing`` module. - `#4912 `_ - - Fix typing for multipart ``__aiter__``. - `#4931 `_ - - Fix for race condition on connections in BaseConnector that leads to exceeding the connection limit. - `#4936 `_ - - Add forced UTF-8 encoding for ``application/rdap+json`` responses. - `#4938 `_ - - Fix inconsistency between Python and C http request parsers in parsing pct-encoded URL. - `#4972 `_ - - Fix connection closing issue in HEAD request. - `#5012 `_ - - Fix type hint on BaseRunner.addresses (from ``List[str]`` to ``List[Any]``) - `#5086 `_ - - Make `web.run_app()` more responsive to Ctrl+C on Windows for Python < 3.8. It slightly - increases CPU load as a side effect. - `#5098 `_ - - - Improved Documentation - ---------------------- - - - Fix example code in client quick-start - `#3376 `_ - - Updated the docs so there is no contradiction in ``ttl_dns_cache`` default value - `#3512 `_ - - Add 'Deploy with SSL' to docs. - `#4201 `_ - - Change typing of the secure argument on StreamResponse.set_cookie from ``Optional[str]`` to ``Optional[bool]`` - `#4204 `_ - - Changes ``ttl_dns_cache`` type from int to Optional[int]. - `#4270 `_ - - Simplify README hello word example and add a documentation page for people coming from requests. - `#4272 `_ - - Improve some code examples in the documentation involving websockets and starting a simple HTTP site with an AppRunner. - `#4285 `_ - - Fix typo in code example in Multipart docs - `#4312 `_ - - Fix code example in Multipart section. - `#4314 `_ - - Update contributing guide so new contributors read the most recent version of that guide. Update command used to create test coverage reporting. - `#4810 `_ - - Spelling: Change "canonize" to "canonicalize". - `#4986 `_ - - Add ``aiohttp-sse-client`` library to third party usage list. - `#5084 `_ - - - Misc - ---- - - - `#2856 `_, `#4218 `_, `#4250 `_ - - - ---- - - - 3.6.3 (2020-10-12) - ================== - - Bugfixes - -------- - - - Pin yarl to ``<1.6.0`` to avoid buggy behavior that will be fixed by the next aiohttp - release. - - 3.6.2 (2019-10-09) - ================== - - Features - -------- - - - Made exceptions pickleable. Also changed the repr of some exceptions. - `#4077 `_ - - Use ``Iterable`` type hint instead of ``Sequence`` for ``Application`` *middleware* - parameter. `#4125 `_ - - - Bugfixes - -------- - - - Reset the ``sock_read`` timeout each time data is received for a - ``aiohttp.ClientResponse``. `#3808 - `_ - - Fix handling of expired cookies so they are not stored in CookieJar. - `#4063 `_ - - Fix misleading message in the string representation of ``ClientConnectorError``; - ``self.ssl == None`` means default SSL context, not SSL disabled `#4097 - `_ - - Don't clobber HTTP status when using FileResponse. - `#4106 `_ - - - Improved Documentation - ---------------------- - - - Added minimal required logging configuration to logging documentation. - `#2469 `_ - - Update docs to reflect proxy support. - `#4100 `_ - - Fix typo in code example in testing docs. - `#4108 `_ - - - Misc - ---- - - - `#4102 `_ - - - ---- - - - 3.6.1 (2019-09-19) - ================== - - Features - -------- - - - Compatibility with Python 3.8. - `#4056 `_ - - - Bugfixes - -------- - - - correct some exception string format - `#4068 `_ - - Emit a warning when ``ssl.OP_NO_COMPRESSION`` is - unavailable because the runtime is built against - an outdated OpenSSL. - `#4052 `_ - - Update multidict requirement to >= 4.5 - `#4057 `_ - - - Improved Documentation - ---------------------- - - - Provide pytest-aiohttp namespace for pytest fixtures in docs. - `#3723 `_ - - - ---- - - - 3.6.0 (2019-09-06) - ================== - - Features - -------- - - - Add support for Named Pipes (Site and Connector) under Windows. This feature requires - Proactor event loop to work. `#3629 - `_ - - Removed ``Transfer-Encoding: chunked`` header from websocket responses to be - compatible with more http proxy servers. `#3798 - `_ - - Accept non-GET request for starting websocket handshake on server side. - `#3980 `_ - - - Bugfixes - -------- - - - Raise a ClientResponseError instead of an AssertionError for a blank - HTTP Reason Phrase. - `#3532 `_ - - Fix an issue where cookies would sometimes not be set during a redirect. - `#3576 `_ - - Change normalize_path_middleware to use 308 redirect instead of 301. - - This behavior should prevent clients from being unable to use PUT/POST - methods on endpoints that are redirected because of a trailing slash. - `#3579 `_ - - Drop the processed task from ``all_tasks()`` list early. It prevents logging about a - task with unhandled exception when the server is used in conjunction with - ``asyncio.run()``. `#3587 `_ - - ``Signal`` type annotation changed from ``Signal[Callable[['TraceConfig'], - Awaitable[None]]]`` to ``Signal[Callable[ClientSession, SimpleNamespace, ...]``. - `#3595 `_ - - Use sanitized URL as Location header in redirects - `#3614 `_ - - Improve typing annotations for multipart.py along with changes required - by mypy in files that references multipart.py. - `#3621 `_ - - Close session created inside ``aiohttp.request`` when unhandled exception occurs - `#3628 `_ - - Cleanup per-chunk data in generic data read. Memory leak fixed. - `#3631 `_ - - Use correct type for add_view and family - `#3633 `_ - - Fix _keepalive field in __slots__ of ``RequestHandler``. - `#3644 `_ - - Properly handle ConnectionResetError, to silence the "Cannot write to closing - transport" exception when clients disconnect uncleanly. - `#3648 `_ - - Suppress pytest warnings due to ``test_utils`` classes - `#3660 `_ - - Fix overshadowing of overlapped sub-application prefixes. - `#3701 `_ - - Fixed return type annotation for WSMessage.json() - `#3720 `_ - - Properly expose TooManyRedirects publicly as documented. - `#3818 `_ - - Fix missing brackets for IPv6 in proxy CONNECT request - `#3841 `_ - - Make the signature of ``aiohttp.test_utils.TestClient.request`` match - ``asyncio.ClientSession.request`` according to the docs `#3852 - `_ - - Use correct style for re-exported imports, makes mypy ``--strict`` mode happy. - `#3868 `_ - - Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of - View `#3880 `_ - - Made cython HTTP parser set Reason-Phrase of the response to an empty string if it is - missing. `#3906 `_ - - Add URL to the string representation of ClientResponseError. - `#3959 `_ - - Accept ``istr`` keys in ``LooseHeaders`` type hints. - `#3976 `_ - - Fixed race conditions in _resolve_host caching and throttling when tracing is enabled. - `#4013 `_ - - For URLs like "unix://localhost/..." set Host HTTP header to "localhost" instead of - "localhost:None". `#4039 `_ - - - Improved Documentation - ---------------------- - - - Modify documentation for Background Tasks to remove deprecated usage of event loop. - `#3526 `_ - - use ``if __name__ == '__main__':`` in server examples. - `#3775 `_ - - Update documentation reference to the default access logger. - `#3783 `_ - - Improve documentation for ``web.BaseRequest.path`` and ``web.BaseRequest.raw_path``. - `#3791 `_ - - Removed deprecation warning in tracing example docs - `#3964 `_ - - - ---- - - - 3.5.4 (2019-01-12) - ================== - - Bugfixes - -------- - - - Fix stream ``.read()`` / ``.readany()`` / ``.iter_any()`` which used to return a - partial content only in case of compressed content - `#3525 `_ - - - 3.5.3 (2019-01-10) - ================== - - Bugfixes - -------- - - - Fix type stubs for ``aiohttp.web.run_app(access_log=True)`` and fix edge case of - ``access_log=True`` and the event loop being in debug mode. `#3504 - `_ - - Fix ``aiohttp.ClientTimeout`` type annotations to accept ``None`` for fields - `#3511 `_ - - Send custom per-request cookies even if session jar is empty - `#3515 `_ - - Restore Linux binary wheels publishing on PyPI - - ---- - - - 3.5.2 (2019-01-08) - ================== - - Features - -------- - - - ``FileResponse`` from ``web_fileresponse.py`` uses a ``ThreadPoolExecutor`` to work - with files asynchronously. I/O based payloads from ``payload.py`` uses a - ``ThreadPoolExecutor`` to work with I/O objects asynchronously. `#3313 - `_ - - Internal Server Errors in plain text if the browser does not support HTML. - `#3483 `_ - - - Bugfixes - -------- - - - Preserve MultipartWriter parts headers on write. Refactor the way how - ``Payload.headers`` are handled. Payload instances now always have headers and - Content-Type defined. Fix Payload Content-Disposition header reset after initial - creation. `#3035 `_ - - Log suppressed exceptions in ``GunicornWebWorker``. - `#3464 `_ - - Remove wildcard imports. - `#3468 `_ - - Use the same task for app initialization and web server handling in gunicorn workers. - It allows to use Python3.7 context vars smoothly. - `#3471 `_ - - Fix handling of chunked+gzipped response when first chunk does not give uncompressed - data `#3477 `_ - - Replace ``collections.MutableMapping`` with ``collections.abc.MutableMapping`` to - avoid a deprecation warning. `#3480 - `_ - - ``Payload.size`` type annotation changed from ``Optional[float]`` to - ``Optional[int]``. `#3484 `_ - - Ignore done tasks when cancels pending activities on ``web.run_app`` finalization. - `#3497 `_ - - - Improved Documentation - ---------------------- - - - Add documentation for ``aiohttp.web.HTTPException``. - `#3490 `_ - - - Misc - ---- - - - `#3487 `_ - - - ---- - - - 3.5.1 (2018-12-24) - ==================== - - - Fix a regression about ``ClientSession._requote_redirect_url`` modification in debug - mode. - - 3.5.0 (2018-12-22) - ==================== - - Features - -------- - - - The library type annotations are checked in strict mode now. - - Add support for setting cookies for individual request (`#2387 - `_) - - Application.add_domain implementation (`#2809 - `_) - - The default ``app`` in the request returned by ``test_utils.make_mocked_request`` can - now have objects assigned to it and retrieved using the ``[]`` operator. (`#3174 - `_) - - Make ``request.url`` accessible when transport is closed. (`#3177 - `_) - - Add ``zlib_executor_size`` argument to ``Response`` constructor to allow compression - to run in a background executor to avoid blocking the main thread and potentially - triggering health check failures. (`#3205 - `_) - - Enable users to set ``ClientTimeout`` in ``aiohttp.request`` (`#3213 - `_) - - Don't raise a warning if ``NETRC`` environment variable is not set and ``~/.netrc`` - file doesn't exist. (`#3267 `_) - - Add default logging handler to web.run_app If the ``Application.debug``` flag is set - and the default logger ``aiohttp.access`` is used, access logs will now be output - using a *stderr* ``StreamHandler`` if no handlers are attached. Furthermore, if the - default logger has no log level set, the log level will be set to ``DEBUG``. (`#3324 - `_) - - Add method argument to ``session.ws_connect()``. Sometimes server API requires a - different HTTP method for WebSocket connection establishment. For example, ``Docker - exec`` needs POST. (`#3378 `_) - - Create a task per request handling. (`#3406 - `_) - - - Bugfixes - -------- - - - Enable passing ``access_log_class`` via ``handler_args`` (`#3158 - `_) - - Return empty bytes with end-of-chunk marker in empty stream reader. (`#3186 - `_) - - Accept ``CIMultiDictProxy`` instances for ``headers`` argument in ``web.Response`` - constructor. (`#3207 `_) - - Don't uppercase HTTP method in parser (`#3233 - `_) - - Make method match regexp RFC-7230 compliant (`#3235 - `_) - - Add ``app.pre_frozen`` state to properly handle startup signals in - sub-applications. (`#3237 `_) - - Enhanced parsing and validation of helpers.BasicAuth.decode. (`#3239 - `_) - - Change imports from collections module in preparation for 3.8. (`#3258 - `_) - - Ensure Host header is added first to ClientRequest to better replicate browser (`#3265 - `_) - - Fix forward compatibility with Python 3.8: importing ABCs directly from the - collections module will not be supported anymore. (`#3273 - `_) - - Keep the query string by ``normalize_path_middleware``. (`#3278 - `_) - - Fix missing parameter ``raise_for_status`` for aiohttp.request() (`#3290 - `_) - - Bracket IPv6 addresses in the HOST header (`#3304 - `_) - - Fix default message for server ping and pong frames. (`#3308 - `_) - - Fix tests/test_connector.py typo and tests/autobahn/server.py duplicate loop - def. (`#3337 `_) - - Fix false-negative indicator end_of_HTTP_chunk in StreamReader.readchunk function - (`#3361 `_) - - Release HTTP response before raising status exception (`#3364 - `_) - - Fix task cancellation when ``sendfile()`` syscall is used by static file - handling. (`#3383 `_) - - Fix stack trace for ``asyncio.TimeoutError`` which was not logged, when it is caught - in the handler. (`#3414 `_) - - - Improved Documentation - ---------------------- - - - Improve documentation of ``Application.make_handler`` parameters. (`#3152 - `_) - - Fix BaseRequest.raw_headers doc. (`#3215 - `_) - - Fix typo in TypeError exception reason in ``web.Application._handle`` (`#3229 - `_) - - Make server access log format placeholder %b documentation reflect - behavior and docstring. (`#3307 `_) - - - Deprecations and Removals - ------------------------- - - - Deprecate modification of ``session.requote_redirect_url`` (`#2278 - `_) - - Deprecate ``stream.unread_data()`` (`#3260 - `_) - - Deprecated use of boolean in ``resp.enable_compression()`` (`#3318 - `_) - - Encourage creation of aiohttp public objects inside a coroutine (`#3331 - `_) - - Drop dead ``Connection.detach()`` and ``Connection.writer``. Both methods were broken - for more than 2 years. (`#3358 `_) - - Deprecate ``app.loop``, ``request.loop``, ``client.loop`` and ``connector.loop`` - properties. (`#3374 `_) - - Deprecate explicit debug argument. Use asyncio debug mode instead. (`#3381 - `_) - - Deprecate body parameter in HTTPException (and derived classes) constructor. (`#3385 - `_) - - Deprecate bare connector close, use ``async with connector:`` and ``await - connector.close()`` instead. (`#3417 - `_) - - Deprecate obsolete ``read_timeout`` and ``conn_timeout`` in ``ClientSession`` - constructor. (`#3438 `_) - - - Misc - ---- - - - #3341, #3351 -Platform: UNKNOWN -Classifier: License :: OSI Approved :: Apache Software License +Classifier: Development Status :: 5 - Production/Stable +Classifier: Framework :: AsyncIO Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: Microsoft :: Windows Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 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: Development Status :: 5 - Production/Stable -Classifier: Operating System :: POSIX -Classifier: Operating System :: MacOS :: MacOS X -Classifier: Operating System :: Microsoft :: Windows +Classifier: Programming Language :: Python :: 3.10 Classifier: Topic :: Internet :: WWW/HTTP -Classifier: Framework :: AsyncIO Requires-Python: >=3.6 +Description-Content-Type: text/x-rst +License-File: LICENSE.txt +Requires-Dist: attrs>=17.3.0 +Requires-Dist: charset-normalizer<4.0,>=2.0 +Requires-Dist: multidict<7.0,>=4.5 +Requires-Dist: async_timeout<5.0,>=4.0.0a3 +Requires-Dist: asynctest==0.13.0; python_version < "3.8" +Requires-Dist: yarl<2.0,>=1.0 +Requires-Dist: idna-ssl>=1.0; python_version < "3.7" +Requires-Dist: typing_extensions>=3.7.4; python_version < "3.8" +Requires-Dist: frozenlist>=1.1.1 +Requires-Dist: aiosignal>=1.1.2 Provides-Extra: speedups +Requires-Dist: aiodns; extra == "speedups" +Requires-Dist: Brotli; extra == "speedups" +Requires-Dist: cchardet; python_version < "3.10" and extra == "speedups" + +================================== +Async http client/server framework +================================== + +.. image:: https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/aiohttp-plain.svg + :height: 64px + :width: 64px + :alt: aiohttp logo + +| + +.. image:: https://github.com/aio-libs/aiohttp/workflows/CI/badge.svg + :target: https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI + :alt: GitHub Actions status for master branch + +.. image:: https://codecov.io/gh/aio-libs/aiohttp/branch/master/graph/badge.svg + :target: https://codecov.io/gh/aio-libs/aiohttp + :alt: codecov.io status for master branch + +.. image:: https://badge.fury.io/py/aiohttp.svg + :target: https://pypi.org/project/aiohttp + :alt: Latest PyPI package version + +.. image:: https://readthedocs.org/projects/aiohttp/badge/?version=latest + :target: https://docs.aiohttp.org/ + :alt: Latest Read The Docs + +.. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat + :target: https://matrix.to/#/%23aio-libs:matrix.org + :alt: Matrix Room — #aio-libs:matrix.org + +.. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat + :target: https://matrix.to/#/%23aio-libs-space:matrix.org + :alt: Matrix Space — #aio-libs-space:matrix.org + + +Key Features +============ + +- Supports both client and server side of HTTP protocol. +- Supports both client and server Web-Sockets out-of-the-box and avoids + Callback Hell. +- Provides Web-server with middlewares and plugable routing. + + +Getting started +=============== + +Client +------ + +To get something from the web: + +.. code-block:: python + + import aiohttp + import asyncio + + async def main(): + + async with aiohttp.ClientSession() as session: + async with session.get('http://python.org') as response: + + print("Status:", response.status) + print("Content-type:", response.headers['content-type']) + + html = await response.text() + print("Body:", html[:15], "...") + + asyncio.run(main()) + +This prints: + +.. code-block:: + + Status: 200 + Content-type: text/html; charset=utf-8 + Body: ... + +Coming from `requests `_ ? Read `why we need so many lines `_. + +Server +------ + +An example using a simple server: + +.. code-block:: python + + # examples/server_simple.py + from aiohttp import web + + async def handle(request): + name = request.match_info.get('name', "Anonymous") + text = "Hello, " + name + return web.Response(text=text) + + async def wshandle(request): + ws = web.WebSocketResponse() + await ws.prepare(request) + + async for msg in ws: + if msg.type == web.WSMsgType.text: + await ws.send_str("Hello, {}".format(msg.data)) + elif msg.type == web.WSMsgType.binary: + await ws.send_bytes(msg.data) + elif msg.type == web.WSMsgType.close: + break + + return ws + + + app = web.Application() + app.add_routes([web.get('/', handle), + web.get('/echo', wshandle), + web.get('/{name}', handle)]) + + if __name__ == '__main__': + web.run_app(app) + + +Documentation +============= + +https://aiohttp.readthedocs.io/ + + +Demos +===== + +https://github.com/aio-libs/aiohttp-demos + + +External links +============== + +* `Third party libraries + `_ +* `Built with aiohttp + `_ +* `Powered by aiohttp + `_ + +Feel free to make a Pull Request for adding your link to these pages! + + +Communication channels +====================== + +*aio-libs discourse group*: https://aio-libs.discourse.group + +*gitter chat* https://gitter.im/aio-libs/Lobby + +We support `Stack Overflow +`_. +Please add *aiohttp* tag to your question there. + +Requirements +============ + +- Python >= 3.6 +- async-timeout_ +- attrs_ +- charset-normalizer_ +- multidict_ +- yarl_ +- frozenlist_ + +Optionally you may install the cChardet_ and aiodns_ libraries (highly +recommended for sake of speed). + +.. _charset-normalizer: https://pypi.org/project/charset-normalizer +.. _aiodns: https://pypi.python.org/pypi/aiodns +.. _attrs: https://github.com/python-attrs/attrs +.. _multidict: https://pypi.python.org/pypi/multidict +.. _frozenlist: https://pypi.org/project/frozenlist/ +.. _yarl: https://pypi.python.org/pypi/yarl +.. _async-timeout: https://pypi.python.org/pypi/async_timeout +.. _cChardet: https://pypi.python.org/pypi/cchardet + +License +======= + +``aiohttp`` is offered under the Apache 2 license. + + +Keepsafe +======== + +The aiohttp community would like to thank Keepsafe +(https://www.getkeepsafe.com) for its support in the early days of +the project. + + +Source code +=========== + +The latest developer version is available in a GitHub repository: +https://github.com/aio-libs/aiohttp + +Benchmarks +========== + +If you are interested in efficiency, the AsyncIO community maintains a +list of benchmarks on the official wiki: +https://github.com/python/asyncio/wiki/Benchmarks diff --git a/README.rst b/README.rst index 338adbc..5841cbc 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,7 @@ Async http client/server framework ================================== -.. image:: https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/_static/aiohttp-icon-128x128.png +.. image:: https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/aiohttp-plain.svg :height: 64px :width: 64px :alt: aiohttp logo @@ -25,13 +25,13 @@ Async http client/server framework :target: https://docs.aiohttp.org/ :alt: Latest Read The Docs -.. image:: https://img.shields.io/discourse/status?server=https%3A%2F%2Faio-libs.discourse.group - :target: https://aio-libs.discourse.group - :alt: Discourse status +.. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat + :target: https://matrix.to/#/%23aio-libs:matrix.org + :alt: Matrix Room — #aio-libs:matrix.org -.. image:: https://badges.gitter.im/Join%20Chat.svg - :target: https://gitter.im/aio-libs/Lobby - :alt: Chat on Gitter +.. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat + :target: https://matrix.to/#/%23aio-libs-space:matrix.org + :alt: Matrix Space — #aio-libs-space:matrix.org Key Features @@ -67,8 +67,7 @@ To get something from the web: html = await response.text() print("Body:", html[:15], "...") - loop = asyncio.get_event_loop() - loop.run_until_complete(main()) + asyncio.run(main()) This prints: @@ -161,17 +160,19 @@ Requirements - Python >= 3.6 - async-timeout_ - attrs_ -- chardet_ +- charset-normalizer_ - multidict_ - yarl_ +- frozenlist_ Optionally you may install the cChardet_ and aiodns_ libraries (highly recommended for sake of speed). -.. _chardet: https://pypi.python.org/pypi/chardet +.. _charset-normalizer: https://pypi.org/project/charset-normalizer .. _aiodns: https://pypi.python.org/pypi/aiodns .. _attrs: https://github.com/python-attrs/attrs .. _multidict: https://pypi.python.org/pypi/multidict +.. _frozenlist: https://pypi.org/project/frozenlist/ .. _yarl: https://pypi.python.org/pypi/yarl .. _async-timeout: https://pypi.python.org/pypi/async_timeout .. _cChardet: https://pypi.python.org/pypi/cchardet diff --git a/aiohttp.egg-info/PKG-INFO b/aiohttp.egg-info/PKG-INFO index 51ea8f8..b2d329d 100644 --- a/aiohttp.egg-info/PKG-INFO +++ b/aiohttp.egg-info/PKG-INFO @@ -1,952 +1,254 @@ Metadata-Version: 2.1 Name: aiohttp -Version: 3.7.4 +Version: 3.8.6 Summary: Async http client/server framework (asyncio) Home-page: https://github.com/aio-libs/aiohttp -Author: Nikolay Kim -Author-email: fafhrd91@gmail.com -Maintainer: Nikolay Kim , Andrew Svetlov -Maintainer-email: aio-libs@googlegroups.com +Maintainer: aiohttp team +Maintainer-email: team@aiohttp.org License: Apache 2 -Project-URL: Chat: Gitter, https://gitter.im/aio-libs/Lobby -Project-URL: CI: Azure Pipelines, https://dev.azure.com/aio-libs/aiohttp/_build +Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org +Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org +Project-URL: CI: GitHub Actions, https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/aiohttp +Project-URL: Docs: Changelog, https://docs.aiohttp.org/en/stable/changes.html Project-URL: Docs: RTD, https://docs.aiohttp.org Project-URL: GitHub: issues, https://github.com/aio-libs/aiohttp/issues Project-URL: GitHub: repo, https://github.com/aio-libs/aiohttp -Description: ================================== - Async http client/server framework - ================================== - - .. image:: https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/_static/aiohttp-icon-128x128.png - :height: 64px - :width: 64px - :alt: aiohttp logo - - | - - .. image:: https://github.com/aio-libs/aiohttp/workflows/CI/badge.svg - :target: https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI - :alt: GitHub Actions status for master branch - - .. image:: https://codecov.io/gh/aio-libs/aiohttp/branch/master/graph/badge.svg - :target: https://codecov.io/gh/aio-libs/aiohttp - :alt: codecov.io status for master branch - - .. image:: https://badge.fury.io/py/aiohttp.svg - :target: https://pypi.org/project/aiohttp - :alt: Latest PyPI package version - - .. image:: https://readthedocs.org/projects/aiohttp/badge/?version=latest - :target: https://docs.aiohttp.org/ - :alt: Latest Read The Docs - - .. image:: https://img.shields.io/discourse/status?server=https%3A%2F%2Faio-libs.discourse.group - :target: https://aio-libs.discourse.group - :alt: Discourse status - - .. image:: https://badges.gitter.im/Join%20Chat.svg - :target: https://gitter.im/aio-libs/Lobby - :alt: Chat on Gitter - - - Key Features - ============ - - - Supports both client and server side of HTTP protocol. - - Supports both client and server Web-Sockets out-of-the-box and avoids - Callback Hell. - - Provides Web-server with middlewares and plugable routing. - - - Getting started - =============== - - Client - ------ - - To get something from the web: - - .. code-block:: python - - import aiohttp - import asyncio - - async def main(): - - async with aiohttp.ClientSession() as session: - async with session.get('http://python.org') as response: - - print("Status:", response.status) - print("Content-type:", response.headers['content-type']) - - html = await response.text() - print("Body:", html[:15], "...") - - loop = asyncio.get_event_loop() - loop.run_until_complete(main()) - - This prints: - - .. code-block:: - - Status: 200 - Content-type: text/html; charset=utf-8 - Body: ... - - Coming from `requests `_ ? Read `why we need so many lines `_. - - Server - ------ - - An example using a simple server: - - .. code-block:: python - - # examples/server_simple.py - from aiohttp import web - - async def handle(request): - name = request.match_info.get('name', "Anonymous") - text = "Hello, " + name - return web.Response(text=text) - - async def wshandle(request): - ws = web.WebSocketResponse() - await ws.prepare(request) - - async for msg in ws: - if msg.type == web.WSMsgType.text: - await ws.send_str("Hello, {}".format(msg.data)) - elif msg.type == web.WSMsgType.binary: - await ws.send_bytes(msg.data) - elif msg.type == web.WSMsgType.close: - break - - return ws - - - app = web.Application() - app.add_routes([web.get('/', handle), - web.get('/echo', wshandle), - web.get('/{name}', handle)]) - - if __name__ == '__main__': - web.run_app(app) - - - Documentation - ============= - - https://aiohttp.readthedocs.io/ - - - Demos - ===== - - https://github.com/aio-libs/aiohttp-demos - - - External links - ============== - - * `Third party libraries - `_ - * `Built with aiohttp - `_ - * `Powered by aiohttp - `_ - - Feel free to make a Pull Request for adding your link to these pages! - - - Communication channels - ====================== - - *aio-libs discourse group*: https://aio-libs.discourse.group - - *gitter chat* https://gitter.im/aio-libs/Lobby - - We support `Stack Overflow - `_. - Please add *aiohttp* tag to your question there. - - Requirements - ============ - - - Python >= 3.6 - - async-timeout_ - - attrs_ - - chardet_ - - multidict_ - - yarl_ - - Optionally you may install the cChardet_ and aiodns_ libraries (highly - recommended for sake of speed). - - .. _chardet: https://pypi.python.org/pypi/chardet - .. _aiodns: https://pypi.python.org/pypi/aiodns - .. _attrs: https://github.com/python-attrs/attrs - .. _multidict: https://pypi.python.org/pypi/multidict - .. _yarl: https://pypi.python.org/pypi/yarl - .. _async-timeout: https://pypi.python.org/pypi/async_timeout - .. _cChardet: https://pypi.python.org/pypi/cchardet - - License - ======= - - ``aiohttp`` is offered under the Apache 2 license. - - - Keepsafe - ======== - - The aiohttp community would like to thank Keepsafe - (https://www.getkeepsafe.com) for its support in the early days of - the project. - - - Source code - =========== - - The latest developer version is available in a GitHub repository: - https://github.com/aio-libs/aiohttp - - Benchmarks - ========== - - If you are interested in efficiency, the AsyncIO community maintains a - list of benchmarks on the official wiki: - https://github.com/python/asyncio/wiki/Benchmarks - - ========= - Changelog - ========= - - .. - You should *NOT* be adding new change log entries to this file, this - file is managed by towncrier. You *may* edit previous change logs to - fix problems like typo corrections or such. - To add a new change log entry, please see - https://pip.pypa.io/en/latest/development/#adding-a-news-entry - we named the news folder "changes". - - WARNING: Don't drop the next directive! - - .. towncrier release notes start - - 3.7.3 (2021-02-25) - ================== - - Bugfixes - -------- - - - **(SECURITY BUG)** Started preventing open redirects in the - ``aiohttp.web.normalize_path_middleware`` middleware. For - more details, see - https://github.com/aio-libs/aiohttp/security/advisories/GHSA-v6wp-4m6f-gcjg. - - Thanks to `Beast Glatisant `__ for - finding the first instance of this issue and `Jelmer Vernooij - `__ for reporting and tracking it down - in aiohttp. - `#5497 `_ - - Fix interpretation difference of the pure-Python and the Cython-based - HTTP parsers construct a ``yarl.URL`` object for HTTP request-target. - - Before this fix, the Python parser would turn the URI's absolute-path - for ``//some-path`` into ``/`` while the Cython code preserved it as - ``//some-path``. Now, both do the latter. - `#5498 `_ - - - ---- - - - 3.7.3 (2020-11-18) - ================== - - Features - -------- - - - Use Brotli instead of brotlipy - `#3803 `_ - - Made exceptions pickleable. Also changed the repr of some exceptions. - `#4077 `_ - - - Bugfixes - -------- - - - Raise a ClientResponseError instead of an AssertionError for a blank - HTTP Reason Phrase. - `#3532 `_ - - Fix ``web_middlewares.normalize_path_middleware`` behavior for patch without slash. - `#3669 `_ - - Fix overshadowing of overlapped sub-applications prefixes. - `#3701 `_ - - Make `BaseConnector.close()` a coroutine and wait until the client closes all connections. Drop deprecated "with Connector():" syntax. - `#3736 `_ - - Reset the ``sock_read`` timeout each time data is received for a ``aiohttp.client`` response. - `#3808 `_ - - Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of View - `#3880 `_ - - Fixed querying the address families from DNS that the current host supports. - `#5156 `_ - - Change return type of MultipartReader.__aiter__() and BodyPartReader.__aiter__() to AsyncIterator. - `#5163 `_ - - Provide x86 Windows wheels. - `#5230 `_ - - - Improved Documentation - ---------------------- - - - Add documentation for ``aiohttp.web.FileResponse``. - `#3958 `_ - - Removed deprecation warning in tracing example docs - `#3964 `_ - - Fixed wrong "Usage" docstring of ``aiohttp.client.request``. - `#4603 `_ - - Add aiohttp-pydantic to third party libraries - `#5228 `_ - - - Misc - ---- - - - `#4102 `_ - - - ---- - - - 3.7.2 (2020-10-27) - ================== - - Bugfixes - -------- - - - Fixed static files handling for loops without ``.sendfile()`` support - `#5149 `_ - - - ---- - - - 3.7.1 (2020-10-25) - ================== - - Bugfixes - -------- - - - Fixed a type error caused by the conditional import of `Protocol`. - `#5111 `_ - - Server doesn't send Content-Length for 1xx or 204 - `#4901 `_ - - Fix run_app typing - `#4957 `_ - - Always require ``typing_extensions`` library. - `#5107 `_ - - Fix a variable-shadowing bug causing `ThreadedResolver.resolve` to - return the resolved IP as the ``hostname`` in each record, which prevented - validation of HTTPS connections. - `#5110 `_ - - Added annotations to all public attributes. - `#5115 `_ - - Fix flaky test_when_timeout_smaller_second - `#5116 `_ - - Ensure sending a zero byte file does not throw an exception - `#5124 `_ - - Fix a bug in ``web.run_app()`` about Python version checking on Windows - `#5127 `_ - - - ---- - - - 3.7.0 (2020-10-24) - ================== - - Features - -------- - - - Response headers are now prepared prior to running ``on_response_prepare`` hooks, directly before headers are sent to the client. - `#1958 `_ - - Add a ``quote_cookie`` option to ``CookieJar``, a way to skip quotation wrapping of cookies containing special characters. - `#2571 `_ - - Call ``AccessLogger.log`` with the current exception available from ``sys.exc_info()``. - `#3557 `_ - - `web.UrlDispatcher.add_routes` and `web.Application.add_routes` return a list - of registered `AbstractRoute` instances. `AbstractRouteDef.register` (and all - subclasses) return a list of registered resources registered resource. - `#3866 `_ - - Added properties of default ClientSession params to ClientSession class so it is available for introspection - `#3882 `_ - - Don't cancel web handler on peer disconnection, raise `OSError` on reading/writing instead. - `#4080 `_ - - Implement BaseRequest.get_extra_info() to access a protocol transports' extra info. - `#4189 `_ - - Added `ClientSession.timeout` property. - `#4191 `_ - - allow use of SameSite in cookies. - `#4224 `_ - - Use ``loop.sendfile()`` instead of custom implementation if available. - `#4269 `_ - - Apply SO_REUSEADDR to test server's socket. - `#4393 `_ - - Use .raw_host instead of slower .host in client API - `#4402 `_ - - Allow configuring the buffer size of input stream by passing ``read_bufsize`` argument. - `#4453 `_ - - Pass tests on Python 3.8 for Windows. - `#4513 `_ - - Add `method` and `url` attributes to `TraceRequestChunkSentParams` and `TraceResponseChunkReceivedParams`. - `#4674 `_ - - Add ClientResponse.ok property for checking status code under 400. - `#4711 `_ - - Don't ceil timeouts that are smaller than 5 seconds. - `#4850 `_ - - TCPSite now listens by default on all interfaces instead of just IPv4 when `None` is passed in as the host. - `#4894 `_ - - Bump ``http_parser`` to 2.9.4 - `#5070 `_ - - - Bugfixes - -------- - - - Fix keepalive connections not being closed in time - `#3296 `_ - - Fix failed websocket handshake leaving connection hanging. - `#3380 `_ - - Fix tasks cancellation order on exit. The run_app task needs to be cancelled first for cleanup hooks to run with all tasks intact. - `#3805 `_ - - Don't start heartbeat until _writer is set - `#4062 `_ - - Fix handling of multipart file uploads without a content type. - `#4089 `_ - - Preserve view handler function attributes across middlewares - `#4174 `_ - - Fix the string representation of ``ServerDisconnectedError``. - `#4175 `_ - - Raising RuntimeError when trying to get encoding from not read body - `#4214 `_ - - Remove warning messages from noop. - `#4282 `_ - - Raise ClientPayloadError if FormData re-processed. - `#4345 `_ - - Fix a warning about unfinished task in ``web_protocol.py`` - `#4408 `_ - - Fixed 'deflate' compression. According to RFC 2616 now. - `#4506 `_ - - Fixed OverflowError on platforms with 32-bit time_t - `#4515 `_ - - Fixed request.body_exists returns wrong value for methods without body. - `#4528 `_ - - Fix connecting to link-local IPv6 addresses. - `#4554 `_ - - Fix a problem with connection waiters that are never awaited. - `#4562 `_ - - Always make sure transport is not closing before reuse a connection. - - Reuse a protocol based on keepalive in headers is unreliable. - For example, uWSGI will not support keepalive even it serves a - HTTP 1.1 request, except explicitly configure uWSGI with a - ``--http-keepalive`` option. - - Servers designed like uWSGI could cause aiohttp intermittently - raise a ConnectionResetException when the protocol poll runs - out and some protocol is reused. - `#4587 `_ - - Handle the last CRLF correctly even if it is received via separate TCP segment. - `#4630 `_ - - Fix the register_resource function to validate route name before splitting it so that route name can include python keywords. - `#4691 `_ - - Improve typing annotations for ``web.Request``, ``aiohttp.ClientResponse`` and - ``multipart`` module. - `#4736 `_ - - Fix resolver task is not awaited when connector is cancelled - `#4795 `_ - - Fix a bug "Aiohttp doesn't return any error on invalid request methods" - `#4798 `_ - - Fix HEAD requests for static content. - `#4809 `_ - - Fix incorrect size calculation for memoryview - `#4890 `_ - - Add HTTPMove to _all__. - `#4897 `_ - - Fixed the type annotations in the ``tracing`` module. - `#4912 `_ - - Fix typing for multipart ``__aiter__``. - `#4931 `_ - - Fix for race condition on connections in BaseConnector that leads to exceeding the connection limit. - `#4936 `_ - - Add forced UTF-8 encoding for ``application/rdap+json`` responses. - `#4938 `_ - - Fix inconsistency between Python and C http request parsers in parsing pct-encoded URL. - `#4972 `_ - - Fix connection closing issue in HEAD request. - `#5012 `_ - - Fix type hint on BaseRunner.addresses (from ``List[str]`` to ``List[Any]``) - `#5086 `_ - - Make `web.run_app()` more responsive to Ctrl+C on Windows for Python < 3.8. It slightly - increases CPU load as a side effect. - `#5098 `_ - - - Improved Documentation - ---------------------- - - - Fix example code in client quick-start - `#3376 `_ - - Updated the docs so there is no contradiction in ``ttl_dns_cache`` default value - `#3512 `_ - - Add 'Deploy with SSL' to docs. - `#4201 `_ - - Change typing of the secure argument on StreamResponse.set_cookie from ``Optional[str]`` to ``Optional[bool]`` - `#4204 `_ - - Changes ``ttl_dns_cache`` type from int to Optional[int]. - `#4270 `_ - - Simplify README hello word example and add a documentation page for people coming from requests. - `#4272 `_ - - Improve some code examples in the documentation involving websockets and starting a simple HTTP site with an AppRunner. - `#4285 `_ - - Fix typo in code example in Multipart docs - `#4312 `_ - - Fix code example in Multipart section. - `#4314 `_ - - Update contributing guide so new contributors read the most recent version of that guide. Update command used to create test coverage reporting. - `#4810 `_ - - Spelling: Change "canonize" to "canonicalize". - `#4986 `_ - - Add ``aiohttp-sse-client`` library to third party usage list. - `#5084 `_ - - - Misc - ---- - - - `#2856 `_, `#4218 `_, `#4250 `_ - - - ---- - - - 3.6.3 (2020-10-12) - ================== - - Bugfixes - -------- - - - Pin yarl to ``<1.6.0`` to avoid buggy behavior that will be fixed by the next aiohttp - release. - - 3.6.2 (2019-10-09) - ================== - - Features - -------- - - - Made exceptions pickleable. Also changed the repr of some exceptions. - `#4077 `_ - - Use ``Iterable`` type hint instead of ``Sequence`` for ``Application`` *middleware* - parameter. `#4125 `_ - - - Bugfixes - -------- - - - Reset the ``sock_read`` timeout each time data is received for a - ``aiohttp.ClientResponse``. `#3808 - `_ - - Fix handling of expired cookies so they are not stored in CookieJar. - `#4063 `_ - - Fix misleading message in the string representation of ``ClientConnectorError``; - ``self.ssl == None`` means default SSL context, not SSL disabled `#4097 - `_ - - Don't clobber HTTP status when using FileResponse. - `#4106 `_ - - - Improved Documentation - ---------------------- - - - Added minimal required logging configuration to logging documentation. - `#2469 `_ - - Update docs to reflect proxy support. - `#4100 `_ - - Fix typo in code example in testing docs. - `#4108 `_ - - - Misc - ---- - - - `#4102 `_ - - - ---- - - - 3.6.1 (2019-09-19) - ================== - - Features - -------- - - - Compatibility with Python 3.8. - `#4056 `_ - - - Bugfixes - -------- - - - correct some exception string format - `#4068 `_ - - Emit a warning when ``ssl.OP_NO_COMPRESSION`` is - unavailable because the runtime is built against - an outdated OpenSSL. - `#4052 `_ - - Update multidict requirement to >= 4.5 - `#4057 `_ - - - Improved Documentation - ---------------------- - - - Provide pytest-aiohttp namespace for pytest fixtures in docs. - `#3723 `_ - - - ---- - - - 3.6.0 (2019-09-06) - ================== - - Features - -------- - - - Add support for Named Pipes (Site and Connector) under Windows. This feature requires - Proactor event loop to work. `#3629 - `_ - - Removed ``Transfer-Encoding: chunked`` header from websocket responses to be - compatible with more http proxy servers. `#3798 - `_ - - Accept non-GET request for starting websocket handshake on server side. - `#3980 `_ - - - Bugfixes - -------- - - - Raise a ClientResponseError instead of an AssertionError for a blank - HTTP Reason Phrase. - `#3532 `_ - - Fix an issue where cookies would sometimes not be set during a redirect. - `#3576 `_ - - Change normalize_path_middleware to use 308 redirect instead of 301. - - This behavior should prevent clients from being unable to use PUT/POST - methods on endpoints that are redirected because of a trailing slash. - `#3579 `_ - - Drop the processed task from ``all_tasks()`` list early. It prevents logging about a - task with unhandled exception when the server is used in conjunction with - ``asyncio.run()``. `#3587 `_ - - ``Signal`` type annotation changed from ``Signal[Callable[['TraceConfig'], - Awaitable[None]]]`` to ``Signal[Callable[ClientSession, SimpleNamespace, ...]``. - `#3595 `_ - - Use sanitized URL as Location header in redirects - `#3614 `_ - - Improve typing annotations for multipart.py along with changes required - by mypy in files that references multipart.py. - `#3621 `_ - - Close session created inside ``aiohttp.request`` when unhandled exception occurs - `#3628 `_ - - Cleanup per-chunk data in generic data read. Memory leak fixed. - `#3631 `_ - - Use correct type for add_view and family - `#3633 `_ - - Fix _keepalive field in __slots__ of ``RequestHandler``. - `#3644 `_ - - Properly handle ConnectionResetError, to silence the "Cannot write to closing - transport" exception when clients disconnect uncleanly. - `#3648 `_ - - Suppress pytest warnings due to ``test_utils`` classes - `#3660 `_ - - Fix overshadowing of overlapped sub-application prefixes. - `#3701 `_ - - Fixed return type annotation for WSMessage.json() - `#3720 `_ - - Properly expose TooManyRedirects publicly as documented. - `#3818 `_ - - Fix missing brackets for IPv6 in proxy CONNECT request - `#3841 `_ - - Make the signature of ``aiohttp.test_utils.TestClient.request`` match - ``asyncio.ClientSession.request`` according to the docs `#3852 - `_ - - Use correct style for re-exported imports, makes mypy ``--strict`` mode happy. - `#3868 `_ - - Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of - View `#3880 `_ - - Made cython HTTP parser set Reason-Phrase of the response to an empty string if it is - missing. `#3906 `_ - - Add URL to the string representation of ClientResponseError. - `#3959 `_ - - Accept ``istr`` keys in ``LooseHeaders`` type hints. - `#3976 `_ - - Fixed race conditions in _resolve_host caching and throttling when tracing is enabled. - `#4013 `_ - - For URLs like "unix://localhost/..." set Host HTTP header to "localhost" instead of - "localhost:None". `#4039 `_ - - - Improved Documentation - ---------------------- - - - Modify documentation for Background Tasks to remove deprecated usage of event loop. - `#3526 `_ - - use ``if __name__ == '__main__':`` in server examples. - `#3775 `_ - - Update documentation reference to the default access logger. - `#3783 `_ - - Improve documentation for ``web.BaseRequest.path`` and ``web.BaseRequest.raw_path``. - `#3791 `_ - - Removed deprecation warning in tracing example docs - `#3964 `_ - - - ---- - - - 3.5.4 (2019-01-12) - ================== - - Bugfixes - -------- - - - Fix stream ``.read()`` / ``.readany()`` / ``.iter_any()`` which used to return a - partial content only in case of compressed content - `#3525 `_ - - - 3.5.3 (2019-01-10) - ================== - - Bugfixes - -------- - - - Fix type stubs for ``aiohttp.web.run_app(access_log=True)`` and fix edge case of - ``access_log=True`` and the event loop being in debug mode. `#3504 - `_ - - Fix ``aiohttp.ClientTimeout`` type annotations to accept ``None`` for fields - `#3511 `_ - - Send custom per-request cookies even if session jar is empty - `#3515 `_ - - Restore Linux binary wheels publishing on PyPI - - ---- - - - 3.5.2 (2019-01-08) - ================== - - Features - -------- - - - ``FileResponse`` from ``web_fileresponse.py`` uses a ``ThreadPoolExecutor`` to work - with files asynchronously. I/O based payloads from ``payload.py`` uses a - ``ThreadPoolExecutor`` to work with I/O objects asynchronously. `#3313 - `_ - - Internal Server Errors in plain text if the browser does not support HTML. - `#3483 `_ - - - Bugfixes - -------- - - - Preserve MultipartWriter parts headers on write. Refactor the way how - ``Payload.headers`` are handled. Payload instances now always have headers and - Content-Type defined. Fix Payload Content-Disposition header reset after initial - creation. `#3035 `_ - - Log suppressed exceptions in ``GunicornWebWorker``. - `#3464 `_ - - Remove wildcard imports. - `#3468 `_ - - Use the same task for app initialization and web server handling in gunicorn workers. - It allows to use Python3.7 context vars smoothly. - `#3471 `_ - - Fix handling of chunked+gzipped response when first chunk does not give uncompressed - data `#3477 `_ - - Replace ``collections.MutableMapping`` with ``collections.abc.MutableMapping`` to - avoid a deprecation warning. `#3480 - `_ - - ``Payload.size`` type annotation changed from ``Optional[float]`` to - ``Optional[int]``. `#3484 `_ - - Ignore done tasks when cancels pending activities on ``web.run_app`` finalization. - `#3497 `_ - - - Improved Documentation - ---------------------- - - - Add documentation for ``aiohttp.web.HTTPException``. - `#3490 `_ - - - Misc - ---- - - - `#3487 `_ - - - ---- - - - 3.5.1 (2018-12-24) - ==================== - - - Fix a regression about ``ClientSession._requote_redirect_url`` modification in debug - mode. - - 3.5.0 (2018-12-22) - ==================== - - Features - -------- - - - The library type annotations are checked in strict mode now. - - Add support for setting cookies for individual request (`#2387 - `_) - - Application.add_domain implementation (`#2809 - `_) - - The default ``app`` in the request returned by ``test_utils.make_mocked_request`` can - now have objects assigned to it and retrieved using the ``[]`` operator. (`#3174 - `_) - - Make ``request.url`` accessible when transport is closed. (`#3177 - `_) - - Add ``zlib_executor_size`` argument to ``Response`` constructor to allow compression - to run in a background executor to avoid blocking the main thread and potentially - triggering health check failures. (`#3205 - `_) - - Enable users to set ``ClientTimeout`` in ``aiohttp.request`` (`#3213 - `_) - - Don't raise a warning if ``NETRC`` environment variable is not set and ``~/.netrc`` - file doesn't exist. (`#3267 `_) - - Add default logging handler to web.run_app If the ``Application.debug``` flag is set - and the default logger ``aiohttp.access`` is used, access logs will now be output - using a *stderr* ``StreamHandler`` if no handlers are attached. Furthermore, if the - default logger has no log level set, the log level will be set to ``DEBUG``. (`#3324 - `_) - - Add method argument to ``session.ws_connect()``. Sometimes server API requires a - different HTTP method for WebSocket connection establishment. For example, ``Docker - exec`` needs POST. (`#3378 `_) - - Create a task per request handling. (`#3406 - `_) - - - Bugfixes - -------- - - - Enable passing ``access_log_class`` via ``handler_args`` (`#3158 - `_) - - Return empty bytes with end-of-chunk marker in empty stream reader. (`#3186 - `_) - - Accept ``CIMultiDictProxy`` instances for ``headers`` argument in ``web.Response`` - constructor. (`#3207 `_) - - Don't uppercase HTTP method in parser (`#3233 - `_) - - Make method match regexp RFC-7230 compliant (`#3235 - `_) - - Add ``app.pre_frozen`` state to properly handle startup signals in - sub-applications. (`#3237 `_) - - Enhanced parsing and validation of helpers.BasicAuth.decode. (`#3239 - `_) - - Change imports from collections module in preparation for 3.8. (`#3258 - `_) - - Ensure Host header is added first to ClientRequest to better replicate browser (`#3265 - `_) - - Fix forward compatibility with Python 3.8: importing ABCs directly from the - collections module will not be supported anymore. (`#3273 - `_) - - Keep the query string by ``normalize_path_middleware``. (`#3278 - `_) - - Fix missing parameter ``raise_for_status`` for aiohttp.request() (`#3290 - `_) - - Bracket IPv6 addresses in the HOST header (`#3304 - `_) - - Fix default message for server ping and pong frames. (`#3308 - `_) - - Fix tests/test_connector.py typo and tests/autobahn/server.py duplicate loop - def. (`#3337 `_) - - Fix false-negative indicator end_of_HTTP_chunk in StreamReader.readchunk function - (`#3361 `_) - - Release HTTP response before raising status exception (`#3364 - `_) - - Fix task cancellation when ``sendfile()`` syscall is used by static file - handling. (`#3383 `_) - - Fix stack trace for ``asyncio.TimeoutError`` which was not logged, when it is caught - in the handler. (`#3414 `_) - - - Improved Documentation - ---------------------- - - - Improve documentation of ``Application.make_handler`` parameters. (`#3152 - `_) - - Fix BaseRequest.raw_headers doc. (`#3215 - `_) - - Fix typo in TypeError exception reason in ``web.Application._handle`` (`#3229 - `_) - - Make server access log format placeholder %b documentation reflect - behavior and docstring. (`#3307 `_) - - - Deprecations and Removals - ------------------------- - - - Deprecate modification of ``session.requote_redirect_url`` (`#2278 - `_) - - Deprecate ``stream.unread_data()`` (`#3260 - `_) - - Deprecated use of boolean in ``resp.enable_compression()`` (`#3318 - `_) - - Encourage creation of aiohttp public objects inside a coroutine (`#3331 - `_) - - Drop dead ``Connection.detach()`` and ``Connection.writer``. Both methods were broken - for more than 2 years. (`#3358 `_) - - Deprecate ``app.loop``, ``request.loop``, ``client.loop`` and ``connector.loop`` - properties. (`#3374 `_) - - Deprecate explicit debug argument. Use asyncio debug mode instead. (`#3381 - `_) - - Deprecate body parameter in HTTPException (and derived classes) constructor. (`#3385 - `_) - - Deprecate bare connector close, use ``async with connector:`` and ``await - connector.close()`` instead. (`#3417 - `_) - - Deprecate obsolete ``read_timeout`` and ``conn_timeout`` in ``ClientSession`` - constructor. (`#3438 `_) - - - Misc - ---- - - - #3341, #3351 -Platform: UNKNOWN -Classifier: License :: OSI Approved :: Apache Software License +Classifier: Development Status :: 5 - Production/Stable +Classifier: Framework :: AsyncIO Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: Microsoft :: Windows Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 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: Development Status :: 5 - Production/Stable -Classifier: Operating System :: POSIX -Classifier: Operating System :: MacOS :: MacOS X -Classifier: Operating System :: Microsoft :: Windows +Classifier: Programming Language :: Python :: 3.10 Classifier: Topic :: Internet :: WWW/HTTP -Classifier: Framework :: AsyncIO Requires-Python: >=3.6 +Description-Content-Type: text/x-rst +License-File: LICENSE.txt +Requires-Dist: attrs>=17.3.0 +Requires-Dist: charset-normalizer<4.0,>=2.0 +Requires-Dist: multidict<7.0,>=4.5 +Requires-Dist: async_timeout<5.0,>=4.0.0a3 +Requires-Dist: asynctest==0.13.0; python_version < "3.8" +Requires-Dist: yarl<2.0,>=1.0 +Requires-Dist: idna-ssl>=1.0; python_version < "3.7" +Requires-Dist: typing_extensions>=3.7.4; python_version < "3.8" +Requires-Dist: frozenlist>=1.1.1 +Requires-Dist: aiosignal>=1.1.2 Provides-Extra: speedups +Requires-Dist: aiodns; extra == "speedups" +Requires-Dist: Brotli; extra == "speedups" +Requires-Dist: cchardet; python_version < "3.10" and extra == "speedups" + +================================== +Async http client/server framework +================================== + +.. image:: https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/aiohttp-plain.svg + :height: 64px + :width: 64px + :alt: aiohttp logo + +| + +.. image:: https://github.com/aio-libs/aiohttp/workflows/CI/badge.svg + :target: https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI + :alt: GitHub Actions status for master branch + +.. image:: https://codecov.io/gh/aio-libs/aiohttp/branch/master/graph/badge.svg + :target: https://codecov.io/gh/aio-libs/aiohttp + :alt: codecov.io status for master branch + +.. image:: https://badge.fury.io/py/aiohttp.svg + :target: https://pypi.org/project/aiohttp + :alt: Latest PyPI package version + +.. image:: https://readthedocs.org/projects/aiohttp/badge/?version=latest + :target: https://docs.aiohttp.org/ + :alt: Latest Read The Docs + +.. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat + :target: https://matrix.to/#/%23aio-libs:matrix.org + :alt: Matrix Room — #aio-libs:matrix.org + +.. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat + :target: https://matrix.to/#/%23aio-libs-space:matrix.org + :alt: Matrix Space — #aio-libs-space:matrix.org + + +Key Features +============ + +- Supports both client and server side of HTTP protocol. +- Supports both client and server Web-Sockets out-of-the-box and avoids + Callback Hell. +- Provides Web-server with middlewares and plugable routing. + + +Getting started +=============== + +Client +------ + +To get something from the web: + +.. code-block:: python + + import aiohttp + import asyncio + + async def main(): + + async with aiohttp.ClientSession() as session: + async with session.get('http://python.org') as response: + + print("Status:", response.status) + print("Content-type:", response.headers['content-type']) + + html = await response.text() + print("Body:", html[:15], "...") + + asyncio.run(main()) + +This prints: + +.. code-block:: + + Status: 200 + Content-type: text/html; charset=utf-8 + Body: ... + +Coming from `requests `_ ? Read `why we need so many lines `_. + +Server +------ + +An example using a simple server: + +.. code-block:: python + + # examples/server_simple.py + from aiohttp import web + + async def handle(request): + name = request.match_info.get('name', "Anonymous") + text = "Hello, " + name + return web.Response(text=text) + + async def wshandle(request): + ws = web.WebSocketResponse() + await ws.prepare(request) + + async for msg in ws: + if msg.type == web.WSMsgType.text: + await ws.send_str("Hello, {}".format(msg.data)) + elif msg.type == web.WSMsgType.binary: + await ws.send_bytes(msg.data) + elif msg.type == web.WSMsgType.close: + break + + return ws + + + app = web.Application() + app.add_routes([web.get('/', handle), + web.get('/echo', wshandle), + web.get('/{name}', handle)]) + + if __name__ == '__main__': + web.run_app(app) + + +Documentation +============= + +https://aiohttp.readthedocs.io/ + + +Demos +===== + +https://github.com/aio-libs/aiohttp-demos + + +External links +============== + +* `Third party libraries + `_ +* `Built with aiohttp + `_ +* `Powered by aiohttp + `_ + +Feel free to make a Pull Request for adding your link to these pages! + + +Communication channels +====================== + +*aio-libs discourse group*: https://aio-libs.discourse.group + +*gitter chat* https://gitter.im/aio-libs/Lobby + +We support `Stack Overflow +`_. +Please add *aiohttp* tag to your question there. + +Requirements +============ + +- Python >= 3.6 +- async-timeout_ +- attrs_ +- charset-normalizer_ +- multidict_ +- yarl_ +- frozenlist_ + +Optionally you may install the cChardet_ and aiodns_ libraries (highly +recommended for sake of speed). + +.. _charset-normalizer: https://pypi.org/project/charset-normalizer +.. _aiodns: https://pypi.python.org/pypi/aiodns +.. _attrs: https://github.com/python-attrs/attrs +.. _multidict: https://pypi.python.org/pypi/multidict +.. _frozenlist: https://pypi.org/project/frozenlist/ +.. _yarl: https://pypi.python.org/pypi/yarl +.. _async-timeout: https://pypi.python.org/pypi/async_timeout +.. _cChardet: https://pypi.python.org/pypi/cchardet + +License +======= + +``aiohttp`` is offered under the Apache 2 license. + + +Keepsafe +======== + +The aiohttp community would like to thank Keepsafe +(https://www.getkeepsafe.com) for its support in the early days of +the project. + + +Source code +=========== + +The latest developer version is available in a GitHub repository: +https://github.com/aio-libs/aiohttp + +Benchmarks +========== + +If you are interested in efficiency, the AsyncIO community maintains a +list of benchmarks on the official wiki: +https://github.com/python/asyncio/wiki/Benchmarks diff --git a/aiohttp.egg-info/SOURCES.txt b/aiohttp.egg-info/SOURCES.txt index e006e2a..6aed10d 100644 --- a/aiohttp.egg-info/SOURCES.txt +++ b/aiohttp.egg-info/SOURCES.txt @@ -12,8 +12,6 @@ aiohttp/_cparser.pxd aiohttp/_find_header.c aiohttp/_find_header.h aiohttp/_find_header.pxd -aiohttp/_frozenlist.c -aiohttp/_frozenlist.pyx aiohttp/_headers.pxi aiohttp/_helpers.c aiohttp/_helpers.pyi @@ -34,8 +32,6 @@ aiohttp/client_ws.py aiohttp/connector.py aiohttp/cookiejar.py aiohttp/formdata.py -aiohttp/frozenlist.py -aiohttp/frozenlist.pyi aiohttp/hdrs.py aiohttp/helpers.py aiohttp/http.py @@ -51,8 +47,6 @@ aiohttp/payload_streamer.py aiohttp/py.typed aiohttp/pytest_plugin.py aiohttp/resolver.py -aiohttp/signals.py -aiohttp/signals.pyi aiohttp/streams.py aiohttp/tcp_helpers.py aiohttp/test_utils.py @@ -76,19 +70,17 @@ aiohttp/worker.py aiohttp.egg-info/PKG-INFO aiohttp.egg-info/SOURCES.txt aiohttp.egg-info/dependency_links.txt +aiohttp.egg-info/not-zip-safe aiohttp.egg-info/requires.txt aiohttp.egg-info/top_level.txt aiohttp/.hash/_cparser.pxd.hash aiohttp/.hash/_find_header.pxd.hash -aiohttp/.hash/_frozenlist.pyx.hash aiohttp/.hash/_helpers.pyi.hash aiohttp/.hash/_helpers.pyx.hash aiohttp/.hash/_http_parser.pyx.hash aiohttp/.hash/_http_writer.pyx.hash aiohttp/.hash/_websocket.pyx.hash -aiohttp/.hash/frozenlist.pyi.hash aiohttp/.hash/hdrs.py.hash -aiohttp/.hash/signals.pyi.hash docs/Makefile docs/abc.rst docs/aiohttp-icon.svg @@ -119,7 +111,6 @@ docs/new_router.rst docs/old-logo.png docs/old-logo.svg docs/powered_by.rst -docs/signals.rst docs/spelling_wordlist.txt docs/streams.rst docs/structures.rst @@ -135,7 +126,9 @@ docs/web_reference.rst docs/websocket_utilities.rst docs/whats_new_1_1.rst docs/whats_new_3_0.rst -docs/_static/aiohttp-icon-128x128.png +docs/_snippets/cchardet-unmaintained-admonition.rst +docs/_static/css/logo-adjustments.css +examples/__init__.py examples/background_tasks.py examples/cli_app.py examples/client_auth.py @@ -157,16 +150,16 @@ examples/web_srv_route_deco.py examples/web_srv_route_table.py examples/web_ws.py examples/websocket.html -examples/legacy/crawl.py -examples/legacy/srv.py -examples/legacy/tcp_protocol_parser.py tests/aiohttp.jpg tests/aiohttp.png tests/conftest.py tests/data.unknown_mime_type tests/data.zero_bytes tests/hello.txt.gz +tests/sample.txt +tests/test___all__.py tests/test_base_protocol.py +tests/test_circular_imports.py tests/test_classbasedview.py tests/test_client_connection.py tests/test_client_exceptions.py @@ -182,7 +175,6 @@ tests/test_connector.py tests/test_cookiejar.py tests/test_flowcontrol_streams.py tests/test_formdata.py -tests/test_frozenlist.py tests/test_helpers.py tests/test_http_exceptions.py tests/test_http_parser.py @@ -198,7 +190,6 @@ tests/test_pytest_plugin.py tests/test_resolver.py tests/test_route_def.py tests/test_run_app.py -tests/test_signals.py tests/test_streams.py tests/test_tcp_helpers.py tests/test_test_utils.py @@ -210,7 +201,6 @@ tests/test_web_exceptions.py tests/test_web_functional.py tests/test_web_log.py tests/test_web_middleware.py -tests/test_web_protocol.py tests/test_web_request.py tests/test_web_request_handler.py tests/test_web_response.py @@ -225,22 +215,77 @@ tests/test_websocket_handshake.py tests/test_websocket_parser.py tests/test_websocket_writer.py tests/test_worker.py -tests/autobahn/client.py -tests/autobahn/fuzzingclient.json -tests/autobahn/fuzzingserver.json -tests/autobahn/server.py -vendor/http-parser/.git -vendor/http-parser/.gitignore -vendor/http-parser/.mailmap -vendor/http-parser/.travis.yml -vendor/http-parser/AUTHORS -vendor/http-parser/LICENSE-MIT -vendor/http-parser/Makefile -vendor/http-parser/README.md -vendor/http-parser/bench.c -vendor/http-parser/http_parser.c -vendor/http-parser/http_parser.gyp -vendor/http-parser/http_parser.h -vendor/http-parser/test.c -vendor/http-parser/contrib/parsertrace.c -vendor/http-parser/contrib/url_parser.c \ No newline at end of file +tests/autobahn/Dockerfile.aiohttp +tests/autobahn/Dockerfile.autobahn +tests/autobahn/test_autobahn.py +tests/autobahn/client/client.py +tests/autobahn/client/fuzzingserver.json +tests/autobahn/server/fuzzingclient.json +tests/autobahn/server/server.py +vendor/README.rst +vendor/llhttp/.dockerignore +vendor/llhttp/.eslintrc.js +vendor/llhttp/.git +vendor/llhttp/.gitignore +vendor/llhttp/.npmrc +vendor/llhttp/CMakeLists.txt +vendor/llhttp/CNAME +vendor/llhttp/CODE_OF_CONDUCT.md +vendor/llhttp/Dockerfile +vendor/llhttp/LICENSE-MIT +vendor/llhttp/Makefile +vendor/llhttp/README.md +vendor/llhttp/_config.yml +vendor/llhttp/libllhttp.pc.in +vendor/llhttp/package-lock.json +vendor/llhttp/package.json +vendor/llhttp/tsconfig.json +vendor/llhttp/tslint.json +vendor/llhttp/.github/workflows/aiohttp.yml +vendor/llhttp/.github/workflows/ci.yaml +vendor/llhttp/bench/index.ts +vendor/llhttp/bin/build_wasm.ts +vendor/llhttp/bin/generate.ts +vendor/llhttp/build/llhttp.h +vendor/llhttp/build/c/llhttp.c +vendor/llhttp/docs/releasing.md +vendor/llhttp/examples/wasm.ts +vendor/llhttp/images/http-loose-none.png +vendor/llhttp/images/http-strict-none.png +vendor/llhttp/src/common.gypi +vendor/llhttp/src/llhttp.gyp +vendor/llhttp/src/llhttp.ts +vendor/llhttp/src/llhttp/c-headers.ts +vendor/llhttp/src/llhttp/constants.ts +vendor/llhttp/src/llhttp/http.ts +vendor/llhttp/src/llhttp/url.ts +vendor/llhttp/src/llhttp/utils.ts +vendor/llhttp/src/native/api.c +vendor/llhttp/src/native/api.h +vendor/llhttp/src/native/http.c +vendor/llhttp/test/md-test.ts +vendor/llhttp/test/url.md +vendor/llhttp/test/fixtures/extra.c +vendor/llhttp/test/fixtures/index.ts +vendor/llhttp/test/fuzzers/fuzz_parser.c +vendor/llhttp/test/request/connection.md +vendor/llhttp/test/request/content-length.md +vendor/llhttp/test/request/finish.md +vendor/llhttp/test/request/invalid.md +vendor/llhttp/test/request/lenient-headers.md +vendor/llhttp/test/request/lenient-version.md +vendor/llhttp/test/request/method.md +vendor/llhttp/test/request/pausing.md +vendor/llhttp/test/request/pipelining.md +vendor/llhttp/test/request/sample.md +vendor/llhttp/test/request/transfer-encoding.md +vendor/llhttp/test/request/uri.md +vendor/llhttp/test/response/connection.md +vendor/llhttp/test/response/content-length.md +vendor/llhttp/test/response/finish.md +vendor/llhttp/test/response/invalid.md +vendor/llhttp/test/response/lenient-version.md +vendor/llhttp/test/response/pausing.md +vendor/llhttp/test/response/pipelining.md +vendor/llhttp/test/response/sample.md +vendor/llhttp/test/response/transfer-encoding.md \ No newline at end of file diff --git a/aiohttp.egg-info/not-zip-safe b/aiohttp.egg-info/not-zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/aiohttp.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/aiohttp.egg-info/requires.txt b/aiohttp.egg-info/requires.txt index ea57466..7c8bd86 100644 --- a/aiohttp.egg-info/requires.txt +++ b/aiohttp.egg-info/requires.txt @@ -1,14 +1,21 @@ attrs>=17.3.0 -chardet<4.0,>=2.0 +charset-normalizer<4.0,>=2.0 multidict<7.0,>=4.5 -async_timeout<4.0,>=3.0 +async_timeout<5.0,>=4.0.0a3 yarl<2.0,>=1.0 -typing_extensions>=3.6.5 +frozenlist>=1.1.1 +aiosignal>=1.1.2 [:python_version < "3.7"] idna-ssl>=1.0 +[:python_version < "3.8"] +asynctest==0.13.0 +typing_extensions>=3.7.4 + [speedups] aiodns -brotlipy +Brotli + +[speedups:python_version < "3.10"] cchardet diff --git a/aiohttp/.hash/_cparser.pxd.hash b/aiohttp/.hash/_cparser.pxd.hash index 7f4060a..65e3d4b 100644 --- a/aiohttp/.hash/_cparser.pxd.hash +++ b/aiohttp/.hash/_cparser.pxd.hash @@ -1 +1 @@ -b60c37d122fa91049ccf318c94c871d82ba17ff3bc3fc64f8a65426fce7120b7 /home/runner/work/aiohttp/aiohttp/aiohttp/_cparser.pxd +f2318883e549f69de597009a914603b0f1b10381e265ef5d98af499ad973fb98 /home/runner/work/aiohttp/aiohttp/aiohttp/_cparser.pxd diff --git a/aiohttp/.hash/_frozenlist.pyx.hash b/aiohttp/.hash/_frozenlist.pyx.hash deleted file mode 100644 index ccad753..0000000 --- a/aiohttp/.hash/_frozenlist.pyx.hash +++ /dev/null @@ -1 +0,0 @@ -043f0b704444c6c59da38ab3bae43ce1ff8bfe91d5ce45103b494400e7b71688 /home/runner/work/aiohttp/aiohttp/aiohttp/_frozenlist.pyx diff --git a/aiohttp/.hash/_http_parser.pyx.hash b/aiohttp/.hash/_http_parser.pyx.hash index ea0ea79..8e5a141 100644 --- a/aiohttp/.hash/_http_parser.pyx.hash +++ b/aiohttp/.hash/_http_parser.pyx.hash @@ -1 +1 @@ -f0688fb2e81ea92bf0a17822260d9591a30979101da12a4b873113fc459fb5fa /home/runner/work/aiohttp/aiohttp/aiohttp/_http_parser.pyx +7f32b0c1595c1a71957a218ece8d3977ed9171caad97df8fcd82aa80addfc5d2 /home/runner/work/aiohttp/aiohttp/aiohttp/_http_parser.pyx diff --git a/aiohttp/.hash/_http_writer.pyx.hash b/aiohttp/.hash/_http_writer.pyx.hash index b325e7d..8e1aaab 100644 --- a/aiohttp/.hash/_http_writer.pyx.hash +++ b/aiohttp/.hash/_http_writer.pyx.hash @@ -1 +1 @@ -4e7b7f7baa5c65954e85a5b7c8db7786a0ec3498081b0a9420f792a803086281 /home/runner/work/aiohttp/aiohttp/aiohttp/_http_writer.pyx +6881c0a7c838655e646c645d99971efaf5e310bc3633a7c62b226e39d81842ac /home/runner/work/aiohttp/aiohttp/aiohttp/_http_writer.pyx diff --git a/aiohttp/.hash/frozenlist.pyi.hash b/aiohttp/.hash/frozenlist.pyi.hash deleted file mode 100644 index e461073..0000000 --- a/aiohttp/.hash/frozenlist.pyi.hash +++ /dev/null @@ -1 +0,0 @@ -6d134aa08da3d6ba0f76d81fc7f9ec7836a7bc1a99b1950d1c3aa65ed7e3951a /home/runner/work/aiohttp/aiohttp/aiohttp/frozenlist.pyi diff --git a/aiohttp/.hash/hdrs.py.hash b/aiohttp/.hash/hdrs.py.hash index 0e34777..1c8653f 100644 --- a/aiohttp/.hash/hdrs.py.hash +++ b/aiohttp/.hash/hdrs.py.hash @@ -1 +1 @@ -5ac8c3258003604c8993bfa8357361036337330b722e4849024972ccbb5c95f5 /home/runner/work/aiohttp/aiohttp/aiohttp/hdrs.py +a30351c34760a1d7835b2a1b0552e463cf1d2db90da0cdb473313dc66e34a031 /home/runner/work/aiohttp/aiohttp/aiohttp/hdrs.py diff --git a/aiohttp/.hash/signals.pyi.hash b/aiohttp/.hash/signals.pyi.hash deleted file mode 100644 index 29acd69..0000000 --- a/aiohttp/.hash/signals.pyi.hash +++ /dev/null @@ -1 +0,0 @@ -48b4df50f771d7e8385524ea0a7057ca1482974f8a43e674982b04b08bc17d5e /home/runner/work/aiohttp/aiohttp/aiohttp/signals.pyi diff --git a/aiohttp/__init__.py b/aiohttp/__init__.py index 23cd5c9..8bc7a4a 100644 --- a/aiohttp/__init__.py +++ b/aiohttp/__init__.py @@ -1,4 +1,4 @@ -__version__ = "3.7.4" +__version__ = "3.8.6" from typing import Tuple @@ -38,7 +38,7 @@ ) from .cookiejar import CookieJar as CookieJar, DummyCookieJar as DummyCookieJar from .formdata import FormData as FormData -from .helpers import BasicAuth as BasicAuth, ChainMapProxy as ChainMapProxy +from .helpers import BasicAuth, ChainMapProxy, ETag from .http import ( HttpVersion as HttpVersion, HttpVersion10 as HttpVersion10, @@ -78,7 +78,6 @@ DefaultResolver as DefaultResolver, ThreadedResolver as ThreadedResolver, ) -from .signals import Signal as Signal from .streams import ( EMPTY_PAYLOAD as EMPTY_PAYLOAD, DataQueue as DataQueue, @@ -147,6 +146,7 @@ # helpers "BasicAuth", "ChainMapProxy", + "ETag", # http "HttpVersion", "HttpVersion10", @@ -183,8 +183,7 @@ "AsyncResolver", "DefaultResolver", "ThreadedResolver", - # signals - "Signal", + # streams "DataQueue", "EMPTY_PAYLOAD", "EofStream", diff --git a/aiohttp/_cparser.pxd b/aiohttp/_cparser.pxd index 0f9fc00..c2cd5a9 100644 --- a/aiohttp/_cparser.pxd +++ b/aiohttp/_cparser.pxd @@ -1,140 +1,158 @@ -from libc.stdint cimport uint16_t, uint32_t, uint64_t +from libc.stdint cimport int32_t, uint8_t, uint16_t, uint64_t -cdef extern from "../vendor/http-parser/http_parser.h": - ctypedef int (*http_data_cb) (http_parser*, - const char *at, - size_t length) except -1 +cdef extern from "../vendor/llhttp/build/llhttp.h": - ctypedef int (*http_cb) (http_parser*) except -1 - - struct http_parser: - unsigned int type - unsigned int flags - unsigned int state - unsigned int header_state - unsigned int index - - uint32_t nread + struct llhttp__internal_s: + int32_t _index + void* _span_pos0 + void* _span_cb0 + int32_t error + const char* reason + const char* error_pos + void* data + void* _current uint64_t content_length - - unsigned short http_major - unsigned short http_minor - unsigned int status_code - unsigned int method - unsigned int http_errno - - unsigned int upgrade - - void *data - - struct http_parser_settings: - http_cb on_message_begin - http_data_cb on_url - http_data_cb on_status - http_data_cb on_header_field - http_data_cb on_header_value - http_cb on_headers_complete - http_data_cb on_body - http_cb on_message_complete - http_cb on_chunk_header - http_cb on_chunk_complete - - enum http_parser_type: - HTTP_REQUEST, - HTTP_RESPONSE, - HTTP_BOTH - - enum http_errno: + uint8_t type + uint8_t method + uint8_t http_major + uint8_t http_minor + uint8_t header_state + uint8_t lenient_flags + uint8_t upgrade + uint8_t finish + uint16_t flags + uint16_t status_code + void* settings + + ctypedef llhttp__internal_s llhttp__internal_t + ctypedef llhttp__internal_t llhttp_t + + ctypedef int (*llhttp_data_cb)(llhttp_t*, const char *at, size_t length) except -1 + ctypedef int (*llhttp_cb)(llhttp_t*) except -1 + + struct llhttp_settings_s: + llhttp_cb on_message_begin + llhttp_data_cb on_url + llhttp_data_cb on_status + llhttp_data_cb on_header_field + llhttp_data_cb on_header_value + llhttp_cb on_headers_complete + llhttp_data_cb on_body + llhttp_cb on_message_complete + llhttp_cb on_chunk_header + llhttp_cb on_chunk_complete + + llhttp_cb on_url_complete + llhttp_cb on_status_complete + llhttp_cb on_header_field_complete + llhttp_cb on_header_value_complete + + ctypedef llhttp_settings_s llhttp_settings_t + + enum llhttp_errno: HPE_OK, - HPE_CB_message_begin, - HPE_CB_url, - HPE_CB_header_field, - HPE_CB_header_value, - HPE_CB_headers_complete, - HPE_CB_body, - HPE_CB_message_complete, - HPE_CB_status, - HPE_CB_chunk_header, - HPE_CB_chunk_complete, - HPE_INVALID_EOF_STATE, - HPE_HEADER_OVERFLOW, + HPE_INTERNAL, + HPE_STRICT, + HPE_LF_EXPECTED, + HPE_UNEXPECTED_CONTENT_LENGTH, HPE_CLOSED_CONNECTION, - HPE_INVALID_VERSION, - HPE_INVALID_STATUS, HPE_INVALID_METHOD, HPE_INVALID_URL, - HPE_INVALID_HOST, - HPE_INVALID_PORT, - HPE_INVALID_PATH, - HPE_INVALID_QUERY_STRING, - HPE_INVALID_FRAGMENT, - HPE_LF_EXPECTED, + HPE_INVALID_CONSTANT, + HPE_INVALID_VERSION, HPE_INVALID_HEADER_TOKEN, HPE_INVALID_CONTENT_LENGTH, HPE_INVALID_CHUNK_SIZE, - HPE_INVALID_CONSTANT, - HPE_INVALID_INTERNAL_STATE, - HPE_STRICT, + HPE_INVALID_STATUS, + HPE_INVALID_EOF_STATE, + HPE_INVALID_TRANSFER_ENCODING, + HPE_CB_MESSAGE_BEGIN, + HPE_CB_HEADERS_COMPLETE, + HPE_CB_MESSAGE_COMPLETE, + HPE_CB_CHUNK_HEADER, + HPE_CB_CHUNK_COMPLETE, HPE_PAUSED, - HPE_UNKNOWN + HPE_PAUSED_UPGRADE, + HPE_USER - enum flags: + ctypedef llhttp_errno llhttp_errno_t + + enum llhttp_flags: F_CHUNKED, - F_CONNECTION_KEEP_ALIVE, - F_CONNECTION_CLOSE, - F_CONNECTION_UPGRADE, - F_TRAILING, - F_UPGRADE, - F_SKIPBODY, - F_CONTENTLENGTH - - enum http_method: - DELETE, GET, HEAD, POST, PUT, CONNECT, OPTIONS, TRACE, COPY, - LOCK, MKCOL, MOVE, PROPFIND, PROPPATCH, SEARCH, UNLOCK, BIND, - REBIND, UNBIND, ACL, REPORT, MKACTIVITY, CHECKOUT, MERGE, - MSEARCH, NOTIFY, SUBSCRIBE, UNSUBSCRIBE, PATCH, PURGE, MKCALENDAR, - LINK, UNLINK - - void http_parser_init(http_parser *parser, http_parser_type type) - - size_t http_parser_execute(http_parser *parser, - const http_parser_settings *settings, - const char *data, - size_t len) - - int http_should_keep_alive(const http_parser *parser) - - void http_parser_settings_init(http_parser_settings *settings) - - const char *http_errno_name(http_errno err) - const char *http_errno_description(http_errno err) - const char *http_method_str(http_method m) - - # URL Parser - - enum http_parser_url_fields: - UF_SCHEMA = 0, - UF_HOST = 1, - UF_PORT = 2, - UF_PATH = 3, - UF_QUERY = 4, - UF_FRAGMENT = 5, - UF_USERINFO = 6, - UF_MAX = 7 - - struct http_parser_url_field_data: - uint16_t off - uint16_t len - - struct http_parser_url: - uint16_t field_set - uint16_t port - http_parser_url_field_data[UF_MAX] field_data - - void http_parser_url_init(http_parser_url *u) - - int http_parser_parse_url(const char *buf, - size_t buflen, - int is_connect, - http_parser_url *u) + F_CONTENT_LENGTH + + enum llhttp_type: + HTTP_REQUEST, + HTTP_RESPONSE, + HTTP_BOTH + + enum llhttp_method: + HTTP_DELETE, + HTTP_GET, + HTTP_HEAD, + HTTP_POST, + HTTP_PUT, + HTTP_CONNECT, + HTTP_OPTIONS, + HTTP_TRACE, + HTTP_COPY, + HTTP_LOCK, + HTTP_MKCOL, + HTTP_MOVE, + HTTP_PROPFIND, + HTTP_PROPPATCH, + HTTP_SEARCH, + HTTP_UNLOCK, + HTTP_BIND, + HTTP_REBIND, + HTTP_UNBIND, + HTTP_ACL, + HTTP_REPORT, + HTTP_MKACTIVITY, + HTTP_CHECKOUT, + HTTP_MERGE, + HTTP_MSEARCH, + HTTP_NOTIFY, + HTTP_SUBSCRIBE, + HTTP_UNSUBSCRIBE, + HTTP_PATCH, + HTTP_PURGE, + HTTP_MKCALENDAR, + HTTP_LINK, + HTTP_UNLINK, + HTTP_SOURCE, + HTTP_PRI, + HTTP_DESCRIBE, + HTTP_ANNOUNCE, + HTTP_SETUP, + HTTP_PLAY, + HTTP_PAUSE, + HTTP_TEARDOWN, + HTTP_GET_PARAMETER, + HTTP_SET_PARAMETER, + HTTP_REDIRECT, + HTTP_RECORD, + HTTP_FLUSH + + ctypedef llhttp_method llhttp_method_t; + + void llhttp_settings_init(llhttp_settings_t* settings) + void llhttp_init(llhttp_t* parser, llhttp_type type, + const llhttp_settings_t* settings) + + llhttp_errno_t llhttp_execute(llhttp_t* parser, const char* data, size_t len) + + int llhttp_should_keep_alive(const llhttp_t* parser) + + void llhttp_resume_after_upgrade(llhttp_t* parser) + + llhttp_errno_t llhttp_get_errno(const llhttp_t* parser) + const char* llhttp_get_error_reason(const llhttp_t* parser) + const char* llhttp_get_error_pos(const llhttp_t* parser) + + const char* llhttp_method_name(llhttp_method_t method) + + void llhttp_set_lenient_headers(llhttp_t* parser, int enabled) + void llhttp_set_lenient_optional_cr_before_lf(llhttp_t* parser, int enabled) + void llhttp_set_lenient_spaces_after_chunk_size(llhttp_t* parser, int enabled) diff --git a/aiohttp/_frozenlist.c b/aiohttp/_frozenlist.c deleted file mode 100644 index 4a9d382..0000000 --- a/aiohttp/_frozenlist.c +++ /dev/null @@ -1,7512 +0,0 @@ -/* Generated by Cython 0.29.21 */ - -#define PY_SSIZE_T_CLEAN -#include "Python.h" -#ifndef Py_PYTHON_H - #error Python headers needed to compile C extensions, please install development version of Python. -#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) - #error Cython requires Python 2.6+ or Python 3.3+. -#else -#define CYTHON_ABI "0_29_21" -#define CYTHON_HEX_VERSION 0x001D15F0 -#define CYTHON_FUTURE_DIVISION 1 -#include -#ifndef offsetof - #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) -#endif -#if !defined(WIN32) && !defined(MS_WINDOWS) - #ifndef __stdcall - #define __stdcall - #endif - #ifndef __cdecl - #define __cdecl - #endif - #ifndef __fastcall - #define __fastcall - #endif -#endif -#ifndef DL_IMPORT - #define DL_IMPORT(t) t -#endif -#ifndef DL_EXPORT - #define DL_EXPORT(t) t -#endif -#define __PYX_COMMA , -#ifndef HAVE_LONG_LONG - #if PY_VERSION_HEX >= 0x02070000 - #define HAVE_LONG_LONG - #endif -#endif -#ifndef PY_LONG_LONG - #define PY_LONG_LONG LONG_LONG -#endif -#ifndef Py_HUGE_VAL - #define Py_HUGE_VAL HUGE_VAL -#endif -#ifdef PYPY_VERSION - #define CYTHON_COMPILING_IN_PYPY 1 - #define CYTHON_COMPILING_IN_PYSTON 0 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #undef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 0 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #if PY_VERSION_HEX < 0x03050000 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #undef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #undef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 1 - #undef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 0 - #undef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 0 - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 -#elif defined(PYSTON_VERSION) - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_PYSTON 1 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 -#else - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_PYSTON 0 - #define CYTHON_COMPILING_IN_CPYTHON 1 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #if PY_VERSION_HEX < 0x02070000 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) - #define CYTHON_USE_PYTYPE_LOOKUP 1 - #endif - #if PY_MAJOR_VERSION < 3 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #if PY_VERSION_HEX < 0x02070000 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #elif !defined(CYTHON_USE_PYLONG_INTERNALS) - #define CYTHON_USE_PYLONG_INTERNALS 1 - #endif - #ifndef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 1 - #endif - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #if PY_VERSION_HEX < 0x030300F0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #elif !defined(CYTHON_USE_UNICODE_WRITER) - #define CYTHON_USE_UNICODE_WRITER 1 - #endif - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #ifndef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 1 - #endif - #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 - #endif - #ifndef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) - #endif - #ifndef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) - #endif - #ifndef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) - #endif - #ifndef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) - #endif -#endif -#if !defined(CYTHON_FAST_PYCCALL) -#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) -#endif -#if CYTHON_USE_PYLONG_INTERNALS - #include "longintrepr.h" - #undef SHIFT - #undef BASE - #undef MASK - #ifdef SIZEOF_VOID_P - enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; - #endif -#endif -#ifndef __has_attribute - #define __has_attribute(x) 0 -#endif -#ifndef __has_cpp_attribute - #define __has_cpp_attribute(x) 0 -#endif -#ifndef CYTHON_RESTRICT - #if defined(__GNUC__) - #define CYTHON_RESTRICT __restrict__ - #elif defined(_MSC_VER) && _MSC_VER >= 1400 - #define CYTHON_RESTRICT __restrict - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_RESTRICT restrict - #else - #define CYTHON_RESTRICT - #endif -#endif -#ifndef CYTHON_UNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -#endif -#ifndef CYTHON_MAYBE_UNUSED_VAR -# if defined(__cplusplus) - template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } -# else -# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) -# endif -#endif -#ifndef CYTHON_NCP_UNUSED -# if CYTHON_COMPILING_IN_CPYTHON -# define CYTHON_NCP_UNUSED -# else -# define CYTHON_NCP_UNUSED CYTHON_UNUSED -# endif -#endif -#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) -#ifdef _MSC_VER - #ifndef _MSC_STDINT_H_ - #if _MSC_VER < 1300 - typedef unsigned char uint8_t; - typedef unsigned int uint32_t; - #else - typedef unsigned __int8 uint8_t; - typedef unsigned __int32 uint32_t; - #endif - #endif -#else - #include -#endif -#ifndef CYTHON_FALLTHROUGH - #if defined(__cplusplus) && __cplusplus >= 201103L - #if __has_cpp_attribute(fallthrough) - #define CYTHON_FALLTHROUGH [[fallthrough]] - #elif __has_cpp_attribute(clang::fallthrough) - #define CYTHON_FALLTHROUGH [[clang::fallthrough]] - #elif __has_cpp_attribute(gnu::fallthrough) - #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] - #endif - #endif - #ifndef CYTHON_FALLTHROUGH - #if __has_attribute(fallthrough) - #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) - #else - #define CYTHON_FALLTHROUGH - #endif - #endif - #if defined(__clang__ ) && defined(__apple_build_version__) - #if __apple_build_version__ < 7000000 - #undef CYTHON_FALLTHROUGH - #define CYTHON_FALLTHROUGH - #endif - #endif -#endif - -#ifndef CYTHON_INLINE - #if defined(__clang__) - #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) - #elif defined(__GNUC__) - #define CYTHON_INLINE __inline__ - #elif defined(_MSC_VER) - #define CYTHON_INLINE __inline - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_INLINE inline - #else - #define CYTHON_INLINE - #endif -#endif - -#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) - #define Py_OptimizeFlag 0 -#endif -#define __PYX_BUILD_PY_SSIZE_T "n" -#define CYTHON_FORMAT_SSIZE_T "z" -#if PY_MAJOR_VERSION < 3 - #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) - #define __Pyx_DefaultClassType PyClass_Type -#else - #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#else - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#endif - #define __Pyx_DefaultClassType PyType_Type -#endif -#ifndef Py_TPFLAGS_CHECKTYPES - #define Py_TPFLAGS_CHECKTYPES 0 -#endif -#ifndef Py_TPFLAGS_HAVE_INDEX - #define Py_TPFLAGS_HAVE_INDEX 0 -#endif -#ifndef Py_TPFLAGS_HAVE_NEWBUFFER - #define Py_TPFLAGS_HAVE_NEWBUFFER 0 -#endif -#ifndef Py_TPFLAGS_HAVE_FINALIZE - #define Py_TPFLAGS_HAVE_FINALIZE 0 -#endif -#ifndef METH_STACKLESS - #define METH_STACKLESS 0 -#endif -#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) - #ifndef METH_FASTCALL - #define METH_FASTCALL 0x80 - #endif - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); - typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, - Py_ssize_t nargs, PyObject *kwnames); -#else - #define __Pyx_PyCFunctionFast _PyCFunctionFast - #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords -#endif -#if CYTHON_FAST_PYCCALL -#define __Pyx_PyFastCFunction_Check(func)\ - ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) -#else -#define __Pyx_PyFastCFunction_Check(func) 0 -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) - #define PyObject_Malloc(s) PyMem_Malloc(s) - #define PyObject_Free(p) PyMem_Free(p) - #define PyObject_Realloc(p) PyMem_Realloc(p) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 - #define PyMem_RawMalloc(n) PyMem_Malloc(n) - #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) - #define PyMem_RawFree(p) PyMem_Free(p) -#endif -#if CYTHON_COMPILING_IN_PYSTON - #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) -#else - #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) -#endif -#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#elif PY_VERSION_HEX >= 0x03060000 - #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() -#elif PY_VERSION_HEX >= 0x03000000 - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#else - #define __Pyx_PyThreadState_Current _PyThreadState_Current -#endif -#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) -#include "pythread.h" -#define Py_tss_NEEDS_INIT 0 -typedef int Py_tss_t; -static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { - *key = PyThread_create_key(); - return 0; -} -static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { - Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); - *key = Py_tss_NEEDS_INIT; - return key; -} -static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { - PyObject_Free(key); -} -static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { - return *key != Py_tss_NEEDS_INIT; -} -static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { - PyThread_delete_key(*key); - *key = Py_tss_NEEDS_INIT; -} -static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { - return PyThread_set_key_value(*key, value); -} -static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - return PyThread_get_key_value(*key); -} -#endif -#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) -#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) -#else -#define __Pyx_PyDict_NewPresized(n) PyDict_New() -#endif -#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION - #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) -#else - #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS -#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) -#else -#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) -#endif -#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) - #define CYTHON_PEP393_ENABLED 1 - #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ - 0 : _PyUnicode_Ready((PyObject *)(op))) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) - #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) - #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) - #else - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) - #endif -#else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 - #define PyUnicode_2BYTE_KIND 2 - #define PyUnicode_4BYTE_KIND 4 - #define __Pyx_PyUnicode_READY(op) (0) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) - #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) - #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) - #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) -#endif -#if CYTHON_COMPILING_IN_PYPY - #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) -#else - #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ - PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) - #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) - #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) - #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) -#endif -#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) -#else - #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) -#endif -#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) - #define PyObject_ASCII(o) PyObject_Repr(o) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBaseString_Type PyUnicode_Type - #define PyStringObject PyUnicodeObject - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str -#endif -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -#else - #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) - #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) -#endif -#ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) -#endif -#if PY_VERSION_HEX >= 0x030900A4 - #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) - #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -#else - #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) - #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -#endif -#if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) -#else - #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyIntObject PyLongObject - #define PyInt_Type PyLong_Type - #define PyInt_Check(op) PyLong_Check(op) - #define PyInt_CheckExact(op) PyLong_CheckExact(op) - #define PyInt_FromString PyLong_FromString - #define PyInt_FromUnicode PyLong_FromUnicode - #define PyInt_FromLong PyLong_FromLong - #define PyInt_FromSize_t PyLong_FromSize_t - #define PyInt_FromSsize_t PyLong_FromSsize_t - #define PyInt_AsLong PyLong_AsLong - #define PyInt_AS_LONG PyLong_AS_LONG - #define PyInt_AsSsize_t PyLong_AsSsize_t - #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask - #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask - #define PyNumber_Int PyNumber_Long -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBoolObject PyLongObject -#endif -#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY - #ifndef PyUnicode_InternFromString - #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) - #endif -#endif -#if PY_VERSION_HEX < 0x030200A4 - typedef long Py_hash_t; - #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong -#else - #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) -#else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) -#endif -#if CYTHON_USE_ASYNC_SLOTS - #if PY_VERSION_HEX >= 0x030500B1 - #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods - #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) - #else - #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) - #endif -#else - #define __Pyx_PyType_AsAsync(obj) NULL -#endif -#ifndef __Pyx_PyAsyncMethodsStruct - typedef struct { - unaryfunc am_await; - unaryfunc am_aiter; - unaryfunc am_anext; - } __Pyx_PyAsyncMethodsStruct; -#endif - -#if defined(WIN32) || defined(MS_WINDOWS) - #define _USE_MATH_DEFINES -#endif -#include -#ifdef NAN -#define __PYX_NAN() ((float) NAN) -#else -static CYTHON_INLINE float __PYX_NAN() { - float value; - memset(&value, 0xFF, sizeof(value)); - return value; -} -#endif -#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) -#define __Pyx_truncl trunc -#else -#define __Pyx_truncl truncl -#endif - -#define __PYX_MARK_ERR_POS(f_index, lineno) \ - { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } -#define __PYX_ERR(f_index, lineno, Ln_error) \ - { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - -#ifndef __PYX_EXTERN_C - #ifdef __cplusplus - #define __PYX_EXTERN_C extern "C" - #else - #define __PYX_EXTERN_C extern - #endif -#endif - -#define __PYX_HAVE__aiohttp___frozenlist -#define __PYX_HAVE_API__aiohttp___frozenlist -/* Early includes */ -#ifdef _OPENMP -#include -#endif /* _OPENMP */ - -#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) -#define CYTHON_WITHOUT_ASSERTIONS -#endif - -typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; - const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; - -#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) -#define __PYX_DEFAULT_STRING_ENCODING "" -#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString -#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#define __Pyx_uchar_cast(c) ((unsigned char)c) -#define __Pyx_long_cast(x) ((long)x) -#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ - (sizeof(type) < sizeof(Py_ssize_t)) ||\ - (sizeof(type) > sizeof(Py_ssize_t) &&\ - likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX) &&\ - (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ - v == (type)PY_SSIZE_T_MIN))) ||\ - (sizeof(type) == sizeof(Py_ssize_t) &&\ - (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX))) ) -static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { - return (size_t) i < (size_t) limit; -} -#if defined (__cplusplus) && __cplusplus >= 201103L - #include - #define __Pyx_sst_abs(value) std::abs(value) -#elif SIZEOF_INT >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) abs(value) -#elif SIZEOF_LONG >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) labs(value) -#elif defined (_MSC_VER) - #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) -#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define __Pyx_sst_abs(value) llabs(value) -#elif defined (__GNUC__) - #define __Pyx_sst_abs(value) __builtin_llabs(value) -#else - #define __Pyx_sst_abs(value) ((value<0) ? -value : value) -#endif -static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); -#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) -#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) -#define __Pyx_PyBytes_FromString PyBytes_FromString -#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#else - #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize -#endif -#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) -#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) -#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) -#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) -#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) -static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { - const Py_UNICODE *u_end = u; - while (*u_end++) ; - return (size_t)(u_end - u - 1); -} -#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) -#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode -#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode -#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) -#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); -static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); -#define __Pyx_PySequence_Tuple(obj)\ - (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); -#if CYTHON_ASSUME_SAFE_MACROS -#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) -#else -#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) -#endif -#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) -#if PY_MAJOR_VERSION >= 3 -#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) -#else -#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) -#endif -#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII -static int __Pyx_sys_getdefaultencoding_not_ascii; -static int __Pyx_init_sys_getdefaultencoding_params(void) { - PyObject* sys; - PyObject* default_encoding = NULL; - PyObject* ascii_chars_u = NULL; - PyObject* ascii_chars_b = NULL; - const char* default_encoding_c; - sys = PyImport_ImportModule("sys"); - if (!sys) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); - Py_DECREF(sys); - if (!default_encoding) goto bad; - default_encoding_c = PyBytes_AsString(default_encoding); - if (!default_encoding_c) goto bad; - if (strcmp(default_encoding_c, "ascii") == 0) { - __Pyx_sys_getdefaultencoding_not_ascii = 0; - } else { - char ascii_chars[128]; - int c; - for (c = 0; c < 128; c++) { - ascii_chars[c] = c; - } - __Pyx_sys_getdefaultencoding_not_ascii = 1; - ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); - if (!ascii_chars_u) goto bad; - ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); - if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { - PyErr_Format( - PyExc_ValueError, - "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", - default_encoding_c); - goto bad; - } - Py_DECREF(ascii_chars_u); - Py_DECREF(ascii_chars_b); - } - Py_DECREF(default_encoding); - return 0; -bad: - Py_XDECREF(default_encoding); - Py_XDECREF(ascii_chars_u); - Py_XDECREF(ascii_chars_b); - return -1; -} -#endif -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) -#else -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -static char* __PYX_DEFAULT_STRING_ENCODING; -static int __Pyx_init_sys_getdefaultencoding_params(void) { - PyObject* sys; - PyObject* default_encoding = NULL; - char* default_encoding_c; - sys = PyImport_ImportModule("sys"); - if (!sys) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); - Py_DECREF(sys); - if (!default_encoding) goto bad; - default_encoding_c = PyBytes_AsString(default_encoding); - if (!default_encoding_c) goto bad; - __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); - if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; - strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); - Py_DECREF(default_encoding); - return 0; -bad: - Py_XDECREF(default_encoding); - return -1; -} -#endif -#endif - - -/* Test for GCC > 2.95 */ -#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) - #define likely(x) __builtin_expect(!!(x), 1) - #define unlikely(x) __builtin_expect(!!(x), 0) -#else /* !__GNUC__ or GCC < 2.95 */ - #define likely(x) (x) - #define unlikely(x) (x) -#endif /* __GNUC__ */ -static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } - -static PyObject *__pyx_m = NULL; -static PyObject *__pyx_d; -static PyObject *__pyx_b; -static PyObject *__pyx_cython_runtime = NULL; -static PyObject *__pyx_empty_tuple; -static PyObject *__pyx_empty_bytes; -static PyObject *__pyx_empty_unicode; -static int __pyx_lineno; -static int __pyx_clineno = 0; -static const char * __pyx_cfilenm= __FILE__; -static const char *__pyx_filename; - - -static const char *__pyx_f[] = { - "aiohttp/_frozenlist.pyx", - "stringsource", -}; - -/*--- Type declarations ---*/ -struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList; - -/* "aiohttp/_frozenlist.pyx":4 - * - * - * cdef class FrozenList: # <<<<<<<<<<<<<< - * - * cdef readonly bint frozen - */ -struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList { - PyObject_HEAD - struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *__pyx_vtab; - int frozen; - PyObject *_items; -}; - - - -struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList { - PyObject *(*_check_frozen)(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *); - PyObject *(*_fast_len)(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *); -}; -static struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *__pyx_vtabptr_7aiohttp_11_frozenlist_FrozenList; -static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_11_frozenlist_10FrozenList__fast_len(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *); - -/* --- Runtime support code (head) --- */ -/* Refnanny.proto */ -#ifndef CYTHON_REFNANNY - #define CYTHON_REFNANNY 0 -#endif -#if CYTHON_REFNANNY - typedef struct { - void (*INCREF)(void*, PyObject*, int); - void (*DECREF)(void*, PyObject*, int); - void (*GOTREF)(void*, PyObject*, int); - void (*GIVEREF)(void*, PyObject*, int); - void* (*SetupContext)(const char*, int, const char*); - void (*FinishContext)(void**); - } __Pyx_RefNannyAPIStruct; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); - #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; -#ifdef WITH_THREAD - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - if (acquire_gil) {\ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ - PyGILState_Release(__pyx_gilstate_save);\ - } else {\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ - } -#else - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) -#endif - #define __Pyx_RefNannyFinishContext()\ - __Pyx_RefNanny->FinishContext(&__pyx_refnanny) - #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) - #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) - #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) - #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) -#else - #define __Pyx_RefNannyDeclarations - #define __Pyx_RefNannySetupContext(name, acquire_gil) - #define __Pyx_RefNannyFinishContext() - #define __Pyx_INCREF(r) Py_INCREF(r) - #define __Pyx_DECREF(r) Py_DECREF(r) - #define __Pyx_GOTREF(r) - #define __Pyx_GIVEREF(r) - #define __Pyx_XINCREF(r) Py_XINCREF(r) - #define __Pyx_XDECREF(r) Py_XDECREF(r) - #define __Pyx_XGOTREF(r) - #define __Pyx_XGIVEREF(r) -#endif -#define __Pyx_XDECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_XDECREF(tmp);\ - } while (0) -#define __Pyx_DECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_DECREF(tmp);\ - } while (0) -#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) -#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) - -/* PyObjectGetAttrStr.proto */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) -#endif - -/* GetBuiltinName.proto */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name); - -/* RaiseDoubleKeywords.proto */ -static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); - -/* ParseKeywords.proto */ -static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ - PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ - const char* function_name); - -/* RaiseArgTupleInvalid.proto */ -static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, - Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); - -/* PyObjectCall.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); -#else -#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) -#endif - -/* PyThreadStateGet.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; -#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type -#else -#define __Pyx_PyThreadState_declare -#define __Pyx_PyThreadState_assign -#define __Pyx_PyErr_Occurred() PyErr_Occurred() -#endif - -/* PyErrFetchRestore.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) -#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) -#else -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#endif -#else -#define __Pyx_PyErr_Clear() PyErr_Clear() -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) -#endif - -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - -/* GetItemInt.proto */ -#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ - (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ - __Pyx_GetItemInt_Generic(o, to_py_func(i)))) -#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ - (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, - int wraparound, int boundscheck); -#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ - (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, - int wraparound, int boundscheck); -static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, - int is_list, int wraparound, int boundscheck); - -/* ObjectGetItem.proto */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key); -#else -#define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) -#endif - -/* PyFunctionFastCall.proto */ -#if CYTHON_FAST_PYCALL -#define __Pyx_PyFunction_FastCall(func, args, nargs)\ - __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) -#if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); -#else -#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) -#endif -#define __Pyx_BUILD_ASSERT_EXPR(cond)\ - (sizeof(char [1 - 2*!(cond)]) - 1) -#ifndef Py_MEMBER_SIZE -#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) -#endif - static size_t __pyx_pyframe_localsplus_offset = 0; - #include "frameobject.h" - #define __Pxy_PyFrame_Initialize_Offsets()\ - ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ - (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) - #define __Pyx_PyFrame_GetLocalsplus(frame)\ - (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) -#endif - -/* PyObjectCallMethO.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); -#endif - -/* PyObjectCallNoArg.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); -#else -#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) -#endif - -/* PyCFunctionFastCall.proto */ -#if CYTHON_FAST_PYCCALL -static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); -#else -#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) -#endif - -/* PyObjectCallOneArg.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); - -/* PyIntCompare.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace); - -/* PySequenceContains.proto */ -static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { - int result = PySequence_Contains(seq, item); - return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); -} - -/* PyObjectCall2Args.proto */ -static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); - -/* PyObjectGetMethod.proto */ -static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); - -/* PyObjectCallMethod1.proto */ -static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); - -/* pop_index.proto */ -static PyObject* __Pyx__PyObject_PopNewIndex(PyObject* L, PyObject* py_ix); -static PyObject* __Pyx__PyObject_PopIndex(PyObject* L, PyObject* py_ix); -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static PyObject* __Pyx__PyList_PopIndex(PyObject* L, PyObject* py_ix, Py_ssize_t ix); -#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ - (likely(PyList_CheckExact(L) && __Pyx_fits_Py_ssize_t(ix, type, is_signed))) ?\ - __Pyx__PyList_PopIndex(L, py_ix, ix) : (\ - (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ - __Pyx__PyObject_PopIndex(L, py_ix))) -#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ - __Pyx_fits_Py_ssize_t(ix, type, is_signed) ?\ - __Pyx__PyList_PopIndex(L, py_ix, ix) : (\ - (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ - __Pyx__PyObject_PopIndex(L, py_ix))) -#else -#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func)\ - __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) -#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ - (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ - __Pyx__PyObject_PopIndex(L, py_ix)) -#endif - -/* ListAppend.proto */ -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { - PyListObject* L = (PyListObject*) list; - Py_ssize_t len = Py_SIZE(list); - if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { - Py_INCREF(x); - PyList_SET_ITEM(list, len, x); - __Pyx_SET_SIZE(list, len + 1); - return 0; - } - return PyList_Append(list, x); -} -#else -#define __Pyx_PyList_Append(L,x) PyList_Append(L,x) -#endif - -/* PyErrExceptionMatches.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) -static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); -#else -#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) -#endif - -/* GetAttr.proto */ -static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); - -/* GetAttr3.proto */ -static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); - -/* PyDictVersioning.proto */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) -#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ - (version_var) = __PYX_GET_DICT_VERSION(dict);\ - (cache_var) = (value); -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ - static PY_UINT64_T __pyx_dict_version = 0;\ - static PyObject *__pyx_dict_cached_value = NULL;\ - if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ - (VAR) = __pyx_dict_cached_value;\ - } else {\ - (VAR) = __pyx_dict_cached_value = (LOOKUP);\ - __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ - }\ -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); -#else -#define __PYX_GET_DICT_VERSION(dict) (0) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); -#endif - -/* GetModuleGlobalName.proto */ -#if CYTHON_USE_DICT_VERSIONS -#define __Pyx_GetModuleGlobalName(var, name) {\ - static PY_UINT64_T __pyx_dict_version = 0;\ - static PyObject *__pyx_dict_cached_value = NULL;\ - (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ - (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ - __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ -} -#define __Pyx_GetModuleGlobalNameUncached(var, name) {\ - PY_UINT64_T __pyx_dict_version;\ - PyObject *__pyx_dict_cached_value;\ - (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ -} -static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); -#else -#define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) -#define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) -static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); -#endif - -/* Import.proto */ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); - -/* ImportFrom.proto */ -static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); - -/* HasAttr.proto */ -static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); - -/* PyObject_GenericGetAttrNoDict.proto */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr -#endif - -/* PyObject_GenericGetAttr.proto */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr -#endif - -/* SetVTable.proto */ -static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -/* PyObjectGetAttrStrNoError.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); - -/* SetupReduce.proto */ -static int __Pyx_setup_reduce(PyObject* type_obj); - -/* CLineInTraceback.proto */ -#ifdef CYTHON_CLINE_IN_TRACEBACK -#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) -#else -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); -#endif - -/* CodeObjectCache.proto */ -typedef struct { - PyCodeObject* code_object; - int code_line; -} __Pyx_CodeObjectCacheEntry; -struct __Pyx_CodeObjectCache { - int count; - int max_count; - __Pyx_CodeObjectCacheEntry* entries; -}; -static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); -static PyCodeObject *__pyx_find_code_object(int code_line); -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); - -/* AddTraceback.proto */ -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* FastTypeChecks.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); -#else -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) -#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) -#endif -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) - -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(void); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - -static PyObject *__pyx_f_7aiohttp_11_frozenlist_10FrozenList__check_frozen(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self); /* proto*/ -static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_11_frozenlist_10FrozenList__fast_len(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self); /* proto*/ - -/* Module declarations from 'aiohttp._frozenlist' */ -static PyTypeObject *__pyx_ptype_7aiohttp_11_frozenlist_FrozenList = 0; -static PyObject *__pyx_f_7aiohttp_11_frozenlist___pyx_unpickle_FrozenList__set_state(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *, PyObject *); /*proto*/ -#define __Pyx_MODULE_NAME "aiohttp._frozenlist" -extern int __pyx_module_is_main_aiohttp___frozenlist; -int __pyx_module_is_main_aiohttp___frozenlist = 0; - -/* Implementation of 'aiohttp._frozenlist' */ -static PyObject *__pyx_builtin_RuntimeError; -static const char __pyx_k_new[] = "__new__"; -static const char __pyx_k_pop[] = "pop"; -static const char __pyx_k_pos[] = "pos"; -static const char __pyx_k_dict[] = "__dict__"; -static const char __pyx_k_item[] = "item"; -static const char __pyx_k_iter[] = "__iter__"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_name[] = "__name__"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_clear[] = "clear"; -static const char __pyx_k_count[] = "count"; -static const char __pyx_k_index[] = "index"; -static const char __pyx_k_items[] = "items"; -static const char __pyx_k_format[] = "format"; -static const char __pyx_k_import[] = "__import__"; -static const char __pyx_k_pickle[] = "pickle"; -static const char __pyx_k_reduce[] = "__reduce__"; -static const char __pyx_k_remove[] = "remove"; -static const char __pyx_k_update[] = "update"; -static const char __pyx_k_getstate[] = "__getstate__"; -static const char __pyx_k_pyx_type[] = "__pyx_type"; -static const char __pyx_k_register[] = "register"; -static const char __pyx_k_reversed[] = "__reversed__"; -static const char __pyx_k_setstate[] = "__setstate__"; -static const char __pyx_k_pyx_state[] = "__pyx_state"; -static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; -static const char __pyx_k_FrozenList[] = "FrozenList"; -static const char __pyx_k_pyx_result[] = "__pyx_result"; -static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; -static const char __pyx_k_PickleError[] = "PickleError"; -static const char __pyx_k_RuntimeError[] = "RuntimeError"; -static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; -static const char __pyx_k_stringsource[] = "stringsource"; -static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; -static const char __pyx_k_MutableSequence[] = "MutableSequence"; -static const char __pyx_k_collections_abc[] = "collections.abc"; -static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; -static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; -static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_FrozenList_frozen_r[] = ""; -static const char __pyx_k_aiohttp__frozenlist[] = "aiohttp._frozenlist"; -static const char __pyx_k_pyx_unpickle_FrozenList[] = "__pyx_unpickle_FrozenList"; -static const char __pyx_k_Cannot_modify_frozen_list[] = "Cannot modify frozen list."; -static const char __pyx_k_Incompatible_checksums_s_vs_0x94[] = "Incompatible checksums (%s vs 0x949a143 = (_items, frozen))"; -static PyObject *__pyx_kp_u_Cannot_modify_frozen_list; -static PyObject *__pyx_n_s_FrozenList; -static PyObject *__pyx_kp_u_FrozenList_frozen_r; -static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x94; -static PyObject *__pyx_n_s_MutableSequence; -static PyObject *__pyx_n_s_PickleError; -static PyObject *__pyx_n_s_RuntimeError; -static PyObject *__pyx_n_s_aiohttp__frozenlist; -static PyObject *__pyx_n_s_clear; -static PyObject *__pyx_n_s_cline_in_traceback; -static PyObject *__pyx_n_s_collections_abc; -static PyObject *__pyx_n_s_count; -static PyObject *__pyx_n_s_dict; -static PyObject *__pyx_n_s_format; -static PyObject *__pyx_n_s_getstate; -static PyObject *__pyx_n_s_import; -static PyObject *__pyx_n_s_index; -static PyObject *__pyx_n_s_item; -static PyObject *__pyx_n_s_items; -static PyObject *__pyx_n_s_iter; -static PyObject *__pyx_n_s_main; -static PyObject *__pyx_n_s_name; -static PyObject *__pyx_n_s_new; -static PyObject *__pyx_n_s_pickle; -static PyObject *__pyx_n_s_pop; -static PyObject *__pyx_n_s_pos; -static PyObject *__pyx_n_s_pyx_PickleError; -static PyObject *__pyx_n_s_pyx_checksum; -static PyObject *__pyx_n_s_pyx_result; -static PyObject *__pyx_n_s_pyx_state; -static PyObject *__pyx_n_s_pyx_type; -static PyObject *__pyx_n_s_pyx_unpickle_FrozenList; -static PyObject *__pyx_n_s_pyx_vtable; -static PyObject *__pyx_n_s_reduce; -static PyObject *__pyx_n_s_reduce_cython; -static PyObject *__pyx_n_s_reduce_ex; -static PyObject *__pyx_n_s_register; -static PyObject *__pyx_n_s_remove; -static PyObject *__pyx_n_s_reversed; -static PyObject *__pyx_n_s_setstate; -static PyObject *__pyx_n_s_setstate_cython; -static PyObject *__pyx_kp_s_stringsource; -static PyObject *__pyx_n_s_test; -static PyObject *__pyx_n_s_update; -static int __pyx_pf_7aiohttp_11_frozenlist_10FrozenList___init__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_items); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_2freeze(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_4__getitem__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ -static int __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_6__setitem__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */ -static int __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_8__delitem__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ -static Py_ssize_t __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_10__len__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_12__iter__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_14__reversed__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_16__richcmp__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_other, PyObject *__pyx_v_op); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_18insert(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_pos, PyObject *__pyx_v_item); /* proto */ -static int __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_20__contains__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_22__iadd__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_items); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_24index(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_26remove(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_28clear(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_30extend(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_items); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_32reverse(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_34pop(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_36append(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_38count(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_40__repr__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_6frozen___get__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_42__reduce_cython__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_44__setstate_cython__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_7aiohttp_11_frozenlist___pyx_unpickle_FrozenList(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_tp_new_7aiohttp_11_frozenlist_FrozenList(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_int_0; -static PyObject *__pyx_int_1; -static PyObject *__pyx_int_2; -static PyObject *__pyx_int_3; -static PyObject *__pyx_int_4; -static PyObject *__pyx_int_5; -static PyObject *__pyx_int_155820355; -static PyObject *__pyx_int_neg_1; -static PyObject *__pyx_tuple_; -static PyObject *__pyx_tuple__2; -static PyObject *__pyx_codeobj__3; -/* Late includes */ - -/* "aiohttp/_frozenlist.pyx":9 - * cdef list _items - * - * def __init__(self, items=None): # <<<<<<<<<<<<<< - * self.frozen = False - * if items is not None: - */ - -/* Python wrapper */ -static int __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_items = 0; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_items,0}; - PyObject* values[1] = {0}; - values[0] = ((PyObject *)Py_None); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (kw_args > 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_items); - if (value) { values[0] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 9, __pyx_L3_error) - } - } else { - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_items = values[0]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 9, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList___init__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), __pyx_v_items); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_7aiohttp_11_frozenlist_10FrozenList___init__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_items) { - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); - __Pyx_INCREF(__pyx_v_items); - - /* "aiohttp/_frozenlist.pyx":10 - * - * def __init__(self, items=None): - * self.frozen = False # <<<<<<<<<<<<<< - * if items is not None: - * items = list(items) - */ - __pyx_v_self->frozen = 0; - - /* "aiohttp/_frozenlist.pyx":11 - * def __init__(self, items=None): - * self.frozen = False - * if items is not None: # <<<<<<<<<<<<<< - * items = list(items) - * else: - */ - __pyx_t_1 = (__pyx_v_items != Py_None); - __pyx_t_2 = (__pyx_t_1 != 0); - if (__pyx_t_2) { - - /* "aiohttp/_frozenlist.pyx":12 - * self.frozen = False - * if items is not None: - * items = list(items) # <<<<<<<<<<<<<< - * else: - * items = [] - */ - __pyx_t_3 = PySequence_List(__pyx_v_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF_SET(__pyx_v_items, __pyx_t_3); - __pyx_t_3 = 0; - - /* "aiohttp/_frozenlist.pyx":11 - * def __init__(self, items=None): - * self.frozen = False - * if items is not None: # <<<<<<<<<<<<<< - * items = list(items) - * else: - */ - goto __pyx_L3; - } - - /* "aiohttp/_frozenlist.pyx":14 - * items = list(items) - * else: - * items = [] # <<<<<<<<<<<<<< - * self._items = items - * - */ - /*else*/ { - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF_SET(__pyx_v_items, __pyx_t_3); - __pyx_t_3 = 0; - } - __pyx_L3:; - - /* "aiohttp/_frozenlist.pyx":15 - * else: - * items = [] - * self._items = items # <<<<<<<<<<<<<< - * - * cdef object _check_frozen(self): - */ - if (!(likely(PyList_CheckExact(__pyx_v_items))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_items)->tp_name), 0))) __PYX_ERR(0, 15, __pyx_L1_error) - __pyx_t_3 = __pyx_v_items; - __Pyx_INCREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_v_self->_items); - __Pyx_DECREF(__pyx_v_self->_items); - __pyx_v_self->_items = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "aiohttp/_frozenlist.pyx":9 - * cdef list _items - * - * def __init__(self, items=None): # <<<<<<<<<<<<<< - * self.frozen = False - * if items is not None: - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_items); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":17 - * self._items = items - * - * cdef object _check_frozen(self): # <<<<<<<<<<<<<< - * if self.frozen: - * raise RuntimeError("Cannot modify frozen list.") - */ - -static PyObject *__pyx_f_7aiohttp_11_frozenlist_10FrozenList__check_frozen(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_check_frozen", 0); - - /* "aiohttp/_frozenlist.pyx":18 - * - * cdef object _check_frozen(self): - * if self.frozen: # <<<<<<<<<<<<<< - * raise RuntimeError("Cannot modify frozen list.") - * - */ - __pyx_t_1 = (__pyx_v_self->frozen != 0); - if (unlikely(__pyx_t_1)) { - - /* "aiohttp/_frozenlist.pyx":19 - * cdef object _check_frozen(self): - * if self.frozen: - * raise RuntimeError("Cannot modify frozen list.") # <<<<<<<<<<<<<< - * - * cdef inline object _fast_len(self): - */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 19, __pyx_L1_error) - - /* "aiohttp/_frozenlist.pyx":18 - * - * cdef object _check_frozen(self): - * if self.frozen: # <<<<<<<<<<<<<< - * raise RuntimeError("Cannot modify frozen list.") - * - */ - } - - /* "aiohttp/_frozenlist.pyx":17 - * self._items = items - * - * cdef object _check_frozen(self): # <<<<<<<<<<<<<< - * if self.frozen: - * raise RuntimeError("Cannot modify frozen list.") - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList._check_frozen", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":21 - * raise RuntimeError("Cannot modify frozen list.") - * - * cdef inline object _fast_len(self): # <<<<<<<<<<<<<< - * return len(self._items) - * - */ - -static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_11_frozenlist_10FrozenList__fast_len(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_fast_len", 0); - - /* "aiohttp/_frozenlist.pyx":22 - * - * cdef inline object _fast_len(self): - * return len(self._items) # <<<<<<<<<<<<<< - * - * def freeze(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_v_self->_items; - __Pyx_INCREF(__pyx_t_1); - if (unlikely(__pyx_t_1 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 22, __pyx_L1_error) - } - __pyx_t_2 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 22, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":21 - * raise RuntimeError("Cannot modify frozen list.") - * - * cdef inline object _fast_len(self): # <<<<<<<<<<<<<< - * return len(self._items) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList._fast_len", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":24 - * return len(self._items) - * - * def freeze(self): # <<<<<<<<<<<<<< - * self.frozen = True - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_3freeze(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_3freeze(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("freeze (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_2freeze(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_2freeze(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("freeze", 0); - - /* "aiohttp/_frozenlist.pyx":25 - * - * def freeze(self): - * self.frozen = True # <<<<<<<<<<<<<< - * - * def __getitem__(self, index): - */ - __pyx_v_self->frozen = 1; - - /* "aiohttp/_frozenlist.pyx":24 - * return len(self._items) - * - * def freeze(self): # <<<<<<<<<<<<<< - * self.frozen = True - * - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":27 - * self.frozen = True - * - * def __getitem__(self, index): # <<<<<<<<<<<<<< - * return self._items[index] - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_5__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_5__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_4__getitem__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v_index)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_4__getitem__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_index) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__getitem__", 0); - - /* "aiohttp/_frozenlist.pyx":28 - * - * def __getitem__(self, index): - * return self._items[index] # <<<<<<<<<<<<<< - * - * def __setitem__(self, index, value): - */ - __Pyx_XDECREF(__pyx_r); - if (unlikely(__pyx_v_self->_items == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 28, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->_items, __pyx_v_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":27 - * self.frozen = True - * - * def __getitem__(self, index): # <<<<<<<<<<<<<< - * return self._items[index] - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":30 - * return self._items[index] - * - * def __setitem__(self, index, value): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items[index] = value - */ - -/* Python wrapper */ -static int __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_7__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ -static int __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_7__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_6__setitem__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_6__setitem__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setitem__", 0); - - /* "aiohttp/_frozenlist.pyx":31 - * - * def __setitem__(self, index, value): - * self._check_frozen() # <<<<<<<<<<<<<< - * self._items[index] = value - * - */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self->__pyx_vtab)->_check_frozen(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":32 - * def __setitem__(self, index, value): - * self._check_frozen() - * self._items[index] = value # <<<<<<<<<<<<<< - * - * def __delitem__(self, index): - */ - if (unlikely(__pyx_v_self->_items == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 32, __pyx_L1_error) - } - if (unlikely(PyObject_SetItem(__pyx_v_self->_items, __pyx_v_index, __pyx_v_value) < 0)) __PYX_ERR(0, 32, __pyx_L1_error) - - /* "aiohttp/_frozenlist.pyx":30 - * return self._items[index] - * - * def __setitem__(self, index, value): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items[index] = value - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":34 - * self._items[index] = value - * - * def __delitem__(self, index): # <<<<<<<<<<<<<< - * self._check_frozen() - * del self._items[index] - */ - -/* Python wrapper */ -static int __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_9__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ -static int __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_9__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__delitem__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_8__delitem__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v_index)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_8__delitem__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_index) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__delitem__", 0); - - /* "aiohttp/_frozenlist.pyx":35 - * - * def __delitem__(self, index): - * self._check_frozen() # <<<<<<<<<<<<<< - * del self._items[index] - * - */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self->__pyx_vtab)->_check_frozen(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":36 - * def __delitem__(self, index): - * self._check_frozen() - * del self._items[index] # <<<<<<<<<<<<<< - * - * def __len__(self): - */ - if (unlikely(__pyx_v_self->_items == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 36, __pyx_L1_error) - } - if (unlikely(PyObject_DelItem(__pyx_v_self->_items, __pyx_v_index) < 0)) __PYX_ERR(0, 36, __pyx_L1_error) - - /* "aiohttp/_frozenlist.pyx":34 - * self._items[index] = value - * - * def __delitem__(self, index): # <<<<<<<<<<<<<< - * self._check_frozen() - * del self._items[index] - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__delitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":38 - * del self._items[index] - * - * def __len__(self): # <<<<<<<<<<<<<< - * return self._fast_len() - * - */ - -/* Python wrapper */ -static Py_ssize_t __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_11__len__(PyObject *__pyx_v_self); /*proto*/ -static Py_ssize_t __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_11__len__(PyObject *__pyx_v_self) { - Py_ssize_t __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_10__len__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static Py_ssize_t __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_10__len__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self) { - Py_ssize_t __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__len__", 0); - - /* "aiohttp/_frozenlist.pyx":39 - * - * def __len__(self): - * return self._fast_len() # <<<<<<<<<<<<<< - * - * def __iter__(self): - */ - __pyx_t_1 = __pyx_f_7aiohttp_11_frozenlist_10FrozenList__fast_len(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 39, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 39, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_r = __pyx_t_2; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":38 - * del self._items[index] - * - * def __len__(self): # <<<<<<<<<<<<<< - * return self._fast_len() - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":41 - * return self._fast_len() - * - * def __iter__(self): # <<<<<<<<<<<<<< - * return self._items.__iter__() - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_13__iter__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_13__iter__(PyObject *__pyx_v_self) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_12__iter__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_12__iter__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__iter__", 0); - - /* "aiohttp/_frozenlist.pyx":42 - * - * def __iter__(self): - * return self._items.__iter__() # <<<<<<<<<<<<<< - * - * def __reversed__(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_items, __pyx_n_s_iter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":41 - * return self._fast_len() - * - * def __iter__(self): # <<<<<<<<<<<<<< - * return self._items.__iter__() - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":44 - * return self._items.__iter__() - * - * def __reversed__(self): # <<<<<<<<<<<<<< - * return self._items.__reversed__() - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_15__reversed__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_15__reversed__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reversed__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_14__reversed__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_14__reversed__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reversed__", 0); - - /* "aiohttp/_frozenlist.pyx":45 - * - * def __reversed__(self): - * return self._items.__reversed__() # <<<<<<<<<<<<<< - * - * def __richcmp__(self, other, op): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_items, __pyx_n_s_reversed); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":44 - * return self._items.__iter__() - * - * def __reversed__(self): # <<<<<<<<<<<<<< - * return self._items.__reversed__() - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__reversed__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":47 - * return self._items.__reversed__() - * - * def __richcmp__(self, other, op): # <<<<<<<<<<<<<< - * if op == 0: # < - * return list(self) < other - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_17__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_arg_op); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_17__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_arg_op) { - PyObject *__pyx_v_op = 0; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0); - __pyx_v_op = __Pyx_PyInt_From_int(__pyx_arg_op); if (unlikely(!__pyx_v_op)) __PYX_ERR(0, 47, __pyx_L3_error) - __Pyx_GOTREF(__pyx_v_op); - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_16__richcmp__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v_other), ((PyObject *)__pyx_v_op)); - - /* function exit code */ - __Pyx_XDECREF(__pyx_v_op); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_16__richcmp__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_other, PyObject *__pyx_v_op) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__richcmp__", 0); - - /* "aiohttp/_frozenlist.pyx":48 - * - * def __richcmp__(self, other, op): - * if op == 0: # < # <<<<<<<<<<<<<< - * return list(self) < other - * if op == 1: # <= - */ - __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_op, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 48, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - - /* "aiohttp/_frozenlist.pyx":49 - * def __richcmp__(self, other, op): - * if op == 0: # < - * return list(self) < other # <<<<<<<<<<<<<< - * if op == 1: # <= - * return list(self) <= other - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PySequence_List(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_v_other, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 49, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":48 - * - * def __richcmp__(self, other, op): - * if op == 0: # < # <<<<<<<<<<<<<< - * return list(self) < other - * if op == 1: # <= - */ - } - - /* "aiohttp/_frozenlist.pyx":50 - * if op == 0: # < - * return list(self) < other - * if op == 1: # <= # <<<<<<<<<<<<<< - * return list(self) <= other - * if op == 2: # == - */ - __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_op, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 50, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 50, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_2) { - - /* "aiohttp/_frozenlist.pyx":51 - * return list(self) < other - * if op == 1: # <= - * return list(self) <= other # <<<<<<<<<<<<<< - * if op == 2: # == - * return list(self) == other - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PySequence_List(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 51, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_v_other, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":50 - * if op == 0: # < - * return list(self) < other - * if op == 1: # <= # <<<<<<<<<<<<<< - * return list(self) <= other - * if op == 2: # == - */ - } - - /* "aiohttp/_frozenlist.pyx":52 - * if op == 1: # <= - * return list(self) <= other - * if op == 2: # == # <<<<<<<<<<<<<< - * return list(self) == other - * if op == 3: # != - */ - __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_op, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 52, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - - /* "aiohttp/_frozenlist.pyx":53 - * return list(self) <= other - * if op == 2: # == - * return list(self) == other # <<<<<<<<<<<<<< - * if op == 3: # != - * return list(self) != other - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PySequence_List(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_v_other, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 53, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":52 - * if op == 1: # <= - * return list(self) <= other - * if op == 2: # == # <<<<<<<<<<<<<< - * return list(self) == other - * if op == 3: # != - */ - } - - /* "aiohttp/_frozenlist.pyx":54 - * if op == 2: # == - * return list(self) == other - * if op == 3: # != # <<<<<<<<<<<<<< - * return list(self) != other - * if op == 4: # > - */ - __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_op, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 54, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 54, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_2) { - - /* "aiohttp/_frozenlist.pyx":55 - * return list(self) == other - * if op == 3: # != - * return list(self) != other # <<<<<<<<<<<<<< - * if op == 4: # > - * return list(self) > other - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PySequence_List(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 55, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_v_other, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":54 - * if op == 2: # == - * return list(self) == other - * if op == 3: # != # <<<<<<<<<<<<<< - * return list(self) != other - * if op == 4: # > - */ - } - - /* "aiohttp/_frozenlist.pyx":56 - * if op == 3: # != - * return list(self) != other - * if op == 4: # > # <<<<<<<<<<<<<< - * return list(self) > other - * if op == 5: # => - */ - __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_op, __pyx_int_4, 4, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 56, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 56, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - - /* "aiohttp/_frozenlist.pyx":57 - * return list(self) != other - * if op == 4: # > - * return list(self) > other # <<<<<<<<<<<<<< - * if op == 5: # => - * return list(self) >= other - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PySequence_List(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_v_other, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 57, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":56 - * if op == 3: # != - * return list(self) != other - * if op == 4: # > # <<<<<<<<<<<<<< - * return list(self) > other - * if op == 5: # => - */ - } - - /* "aiohttp/_frozenlist.pyx":58 - * if op == 4: # > - * return list(self) > other - * if op == 5: # => # <<<<<<<<<<<<<< - * return list(self) >= other - * - */ - __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_op, __pyx_int_5, 5, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 58, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 58, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_2) { - - /* "aiohttp/_frozenlist.pyx":59 - * return list(self) > other - * if op == 5: # => - * return list(self) >= other # <<<<<<<<<<<<<< - * - * def insert(self, pos, item): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PySequence_List(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 59, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_v_other, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":58 - * if op == 4: # > - * return list(self) > other - * if op == 5: # => # <<<<<<<<<<<<<< - * return list(self) >= other - * - */ - } - - /* "aiohttp/_frozenlist.pyx":47 - * return self._items.__reversed__() - * - * def __richcmp__(self, other, op): # <<<<<<<<<<<<<< - * if op == 0: # < - * return list(self) < other - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":61 - * return list(self) >= other - * - * def insert(self, pos, item): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items.insert(pos, item) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_19insert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_19insert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_pos = 0; - PyObject *__pyx_v_item = 0; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("insert (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pos,&__pyx_n_s_item,0}; - PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pos)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_item)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, 1); __PYX_ERR(0, 61, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insert") < 0)) __PYX_ERR(0, 61, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - } - __pyx_v_pos = values[0]; - __pyx_v_item = values[1]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 61, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.insert", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_18insert(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), __pyx_v_pos, __pyx_v_item); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_18insert(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_pos, PyObject *__pyx_v_item) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - int __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("insert", 0); - - /* "aiohttp/_frozenlist.pyx":62 - * - * def insert(self, pos, item): - * self._check_frozen() # <<<<<<<<<<<<<< - * self._items.insert(pos, item) - * - */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self->__pyx_vtab)->_check_frozen(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":63 - * def insert(self, pos, item): - * self._check_frozen() - * self._items.insert(pos, item) # <<<<<<<<<<<<<< - * - * def __contains__(self, item): - */ - if (unlikely(__pyx_v_self->_items == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "insert"); - __PYX_ERR(0, 63, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_v_pos); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 63, __pyx_L1_error) - __pyx_t_3 = PyList_Insert(__pyx_v_self->_items, __pyx_t_2, __pyx_v_item); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 63, __pyx_L1_error) - - /* "aiohttp/_frozenlist.pyx":61 - * return list(self) >= other - * - * def insert(self, pos, item): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items.insert(pos, item) - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.insert", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":65 - * self._items.insert(pos, item) - * - * def __contains__(self, item): # <<<<<<<<<<<<<< - * return item in self._items - * - */ - -/* Python wrapper */ -static int __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_21__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ -static int __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_21__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_20__contains__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v_item)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_20__contains__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_item) { - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__contains__", 0); - - /* "aiohttp/_frozenlist.pyx":66 - * - * def __contains__(self, item): - * return item in self._items # <<<<<<<<<<<<<< - * - * def __iadd__(self, items): - */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_item, __pyx_v_self->_items, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 66, __pyx_L1_error) - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":65 - * self._items.insert(pos, item) - * - * def __contains__(self, item): # <<<<<<<<<<<<<< - * return item in self._items - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":68 - * return item in self._items - * - * def __iadd__(self, items): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items += list(items) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_23__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_items); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_23__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_items) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__iadd__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_22__iadd__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v_items)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_22__iadd__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_items) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__iadd__", 0); - - /* "aiohttp/_frozenlist.pyx":69 - * - * def __iadd__(self, items): - * self._check_frozen() # <<<<<<<<<<<<<< - * self._items += list(items) - * return self - */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self->__pyx_vtab)->_check_frozen(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":70 - * def __iadd__(self, items): - * self._check_frozen() - * self._items += list(items) # <<<<<<<<<<<<<< - * return self - * - */ - __pyx_t_1 = PySequence_List(__pyx_v_items); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_self->_items, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_GOTREF(__pyx_v_self->_items); - __Pyx_DECREF(__pyx_v_self->_items); - __pyx_v_self->_items = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "aiohttp/_frozenlist.pyx":71 - * self._check_frozen() - * self._items += list(items) - * return self # <<<<<<<<<<<<<< - * - * def index(self, item): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_self)); - __pyx_r = ((PyObject *)__pyx_v_self); - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":68 - * return item in self._items - * - * def __iadd__(self, items): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items += list(items) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__iadd__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":73 - * return self - * - * def index(self, item): # <<<<<<<<<<<<<< - * return self._items.index(item) - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_25index(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_25index(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("index (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_24index(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v_item)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_24index(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_item) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("index", 0); - - /* "aiohttp/_frozenlist.pyx":74 - * - * def index(self, item): - * return self._items.index(item) # <<<<<<<<<<<<<< - * - * def remove(self, item): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_items, __pyx_n_s_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_item) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_item); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":73 - * return self - * - * def index(self, item): # <<<<<<<<<<<<<< - * return self._items.index(item) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.index", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":76 - * return self._items.index(item) - * - * def remove(self, item): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items.remove(item) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_27remove(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_27remove(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("remove (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_26remove(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v_item)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_26remove(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_item) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("remove", 0); - - /* "aiohttp/_frozenlist.pyx":77 - * - * def remove(self, item): - * self._check_frozen() # <<<<<<<<<<<<<< - * self._items.remove(item) - * - */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self->__pyx_vtab)->_check_frozen(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":78 - * def remove(self, item): - * self._check_frozen() - * self._items.remove(item) # <<<<<<<<<<<<<< - * - * def clear(self): - */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_items, __pyx_n_s_remove); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_item) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_item); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":76 - * return self._items.index(item) - * - * def remove(self, item): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items.remove(item) - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.remove", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":80 - * self._items.remove(item) - * - * def clear(self): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items.clear() - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_29clear(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_29clear(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("clear (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_28clear(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_28clear(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("clear", 0); - - /* "aiohttp/_frozenlist.pyx":81 - * - * def clear(self): - * self._check_frozen() # <<<<<<<<<<<<<< - * self._items.clear() - * - */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self->__pyx_vtab)->_check_frozen(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":82 - * def clear(self): - * self._check_frozen() - * self._items.clear() # <<<<<<<<<<<<<< - * - * def extend(self, items): - */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_items, __pyx_n_s_clear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":80 - * self._items.remove(item) - * - * def clear(self): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items.clear() - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.clear", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":84 - * self._items.clear() - * - * def extend(self, items): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items += list(items) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_31extend(PyObject *__pyx_v_self, PyObject *__pyx_v_items); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_31extend(PyObject *__pyx_v_self, PyObject *__pyx_v_items) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("extend (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_30extend(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v_items)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_30extend(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_items) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("extend", 0); - - /* "aiohttp/_frozenlist.pyx":85 - * - * def extend(self, items): - * self._check_frozen() # <<<<<<<<<<<<<< - * self._items += list(items) - * - */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self->__pyx_vtab)->_check_frozen(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":86 - * def extend(self, items): - * self._check_frozen() - * self._items += list(items) # <<<<<<<<<<<<<< - * - * def reverse(self): - */ - __pyx_t_1 = PySequence_List(__pyx_v_items); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_self->_items, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 86, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_GOTREF(__pyx_v_self->_items); - __Pyx_DECREF(__pyx_v_self->_items); - __pyx_v_self->_items = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "aiohttp/_frozenlist.pyx":84 - * self._items.clear() - * - * def extend(self, items): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items += list(items) - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.extend", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":88 - * self._items += list(items) - * - * def reverse(self): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items.reverse() - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_33reverse(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_33reverse(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("reverse (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_32reverse(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_32reverse(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("reverse", 0); - - /* "aiohttp/_frozenlist.pyx":89 - * - * def reverse(self): - * self._check_frozen() # <<<<<<<<<<<<<< - * self._items.reverse() - * - */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self->__pyx_vtab)->_check_frozen(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 89, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":90 - * def reverse(self): - * self._check_frozen() - * self._items.reverse() # <<<<<<<<<<<<<< - * - * def pop(self, index=-1): - */ - if (unlikely(__pyx_v_self->_items == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "reverse"); - __PYX_ERR(0, 90, __pyx_L1_error) - } - __pyx_t_2 = PyList_Reverse(__pyx_v_self->_items); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 90, __pyx_L1_error) - - /* "aiohttp/_frozenlist.pyx":88 - * self._items += list(items) - * - * def reverse(self): # <<<<<<<<<<<<<< - * self._check_frozen() - * self._items.reverse() - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.reverse", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":92 - * self._items.reverse() - * - * def pop(self, index=-1): # <<<<<<<<<<<<<< - * self._check_frozen() - * return self._items.pop(index) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_35pop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_35pop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_index = 0; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("pop (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,0}; - PyObject* values[1] = {0}; - values[0] = ((PyObject *)__pyx_int_neg_1); - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (kw_args > 0) { - PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index); - if (value) { values[0] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pop") < 0)) __PYX_ERR(0, 92, __pyx_L3_error) - } - } else { - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_index = values[0]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("pop", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 92, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.pop", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_34pop(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), __pyx_v_index); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_34pop(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_index) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("pop", 0); - - /* "aiohttp/_frozenlist.pyx":93 - * - * def pop(self, index=-1): - * self._check_frozen() # <<<<<<<<<<<<<< - * return self._items.pop(index) - * - */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self->__pyx_vtab)->_check_frozen(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 93, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":94 - * def pop(self, index=-1): - * self._check_frozen() - * return self._items.pop(index) # <<<<<<<<<<<<<< - * - * def append(self, item): - */ - __Pyx_XDECREF(__pyx_r); - if (unlikely(__pyx_v_self->_items == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop"); - __PYX_ERR(0, 94, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 94, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyList_PopIndex(__pyx_v_self->_items, __pyx_v_index, __pyx_t_2, 1, Py_ssize_t, PyInt_FromSsize_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 94, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":92 - * self._items.reverse() - * - * def pop(self, index=-1): # <<<<<<<<<<<<<< - * self._check_frozen() - * return self._items.pop(index) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.pop", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":96 - * return self._items.pop(index) - * - * def append(self, item): # <<<<<<<<<<<<<< - * self._check_frozen() - * return self._items.append(item) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_37append(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_37append(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("append (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_36append(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v_item)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_36append(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_item) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("append", 0); - - /* "aiohttp/_frozenlist.pyx":97 - * - * def append(self, item): - * self._check_frozen() # <<<<<<<<<<<<<< - * return self._items.append(item) - * - */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self->__pyx_vtab)->_check_frozen(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "aiohttp/_frozenlist.pyx":98 - * def append(self, item): - * self._check_frozen() - * return self._items.append(item) # <<<<<<<<<<<<<< - * - * def count(self, item): - */ - __Pyx_XDECREF(__pyx_r); - if (unlikely(__pyx_v_self->_items == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 98, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_self->_items, __pyx_v_item); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 98, __pyx_L1_error) - __pyx_t_1 = __Pyx_Owned_Py_None(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 98, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":96 - * return self._items.pop(index) - * - * def append(self, item): # <<<<<<<<<<<<<< - * self._check_frozen() - * return self._items.append(item) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.append", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":100 - * return self._items.append(item) - * - * def count(self, item): # <<<<<<<<<<<<<< - * return self._items.count(item) - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_39count(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_39count(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("count (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_38count(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v_item)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_38count(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v_item) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("count", 0); - - /* "aiohttp/_frozenlist.pyx":101 - * - * def count(self, item): - * return self._items.count(item) # <<<<<<<<<<<<<< - * - * def __repr__(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_items, __pyx_n_s_count); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_item) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_item); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":100 - * return self._items.append(item) - * - * def count(self, item): # <<<<<<<<<<<<<< - * return self._items.count(item) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.count", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":103 - * return self._items.count(item) - * - * def __repr__(self): # <<<<<<<<<<<<<< - * return ''.format(self.frozen, - * self._items) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_41__repr__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_41__repr__(PyObject *__pyx_v_self) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_40__repr__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_40__repr__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__repr__", 0); - - /* "aiohttp/_frozenlist.pyx":104 - * - * def __repr__(self): - * return ''.format(self.frozen, # <<<<<<<<<<<<<< - * self._items) - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_FrozenList_frozen_r, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_self->frozen); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 104, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - - /* "aiohttp/_frozenlist.pyx":105 - * def __repr__(self): - * return ''.format(self.frozen, - * self._items) # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_4 = NULL; - __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_5 = 1; - } - } - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_v_self->_items}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 104, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { - PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_v_self->_items}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 104, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else - #endif - { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 104, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; - } - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_3); - __Pyx_INCREF(__pyx_v_self->_items); - __Pyx_GIVEREF(__pyx_v_self->_items); - PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_self->_items); - __pyx_t_3 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 104, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_frozenlist.pyx":103 - * return self._items.count(item) - * - * def __repr__(self): # <<<<<<<<<<<<<< - * return ''.format(self.frozen, - * self._items) - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_frozenlist.pyx":6 - * cdef class FrozenList: - * - * cdef readonly bint frozen # <<<<<<<<<<<<<< - * cdef list _items - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_6frozen_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_6frozen_1__get__(PyObject *__pyx_v_self) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_6frozen___get__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_6frozen___get__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->frozen); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.frozen.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_43__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_43__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_42__reduce_cython__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_42__reduce_cython__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self) { - PyObject *__pyx_v_state = 0; - PyObject *__pyx_v__dict = 0; - int __pyx_v_use_setstate; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 0); - - /* "(tree fragment)":5 - * cdef object _dict - * cdef bint use_setstate - * state = (self._items, self.frozen) # <<<<<<<<<<<<<< - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: - */ - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->frozen); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_self->_items); - __Pyx_GIVEREF(__pyx_v_self->_items); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_items); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_state = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "(tree fragment)":6 - * cdef bint use_setstate - * state = (self._items, self.frozen) - * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< - * if _dict is not None: - * state += (_dict,) - */ - __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v__dict = __pyx_t_2; - __pyx_t_2 = 0; - - /* "(tree fragment)":7 - * state = (self._items, self.frozen) - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: # <<<<<<<<<<<<<< - * state += (_dict,) - * use_setstate = True - */ - __pyx_t_3 = (__pyx_v__dict != Py_None); - __pyx_t_4 = (__pyx_t_3 != 0); - if (__pyx_t_4) { - - /* "(tree fragment)":8 - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: - * state += (_dict,) # <<<<<<<<<<<<<< - * use_setstate = True - * else: - */ - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v__dict); - __Pyx_GIVEREF(__pyx_v__dict); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict); - __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "(tree fragment)":9 - * if _dict is not None: - * state += (_dict,) - * use_setstate = True # <<<<<<<<<<<<<< - * else: - * use_setstate = self._items is not None - */ - __pyx_v_use_setstate = 1; - - /* "(tree fragment)":7 - * state = (self._items, self.frozen) - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: # <<<<<<<<<<<<<< - * state += (_dict,) - * use_setstate = True - */ - goto __pyx_L3; - } - - /* "(tree fragment)":11 - * use_setstate = True - * else: - * use_setstate = self._items is not None # <<<<<<<<<<<<<< - * if use_setstate: - * return __pyx_unpickle_FrozenList, (type(self), 0x949a143, None), state - */ - /*else*/ { - __pyx_t_4 = (__pyx_v_self->_items != ((PyObject*)Py_None)); - __pyx_v_use_setstate = __pyx_t_4; - } - __pyx_L3:; - - /* "(tree fragment)":12 - * else: - * use_setstate = self._items is not None - * if use_setstate: # <<<<<<<<<<<<<< - * return __pyx_unpickle_FrozenList, (type(self), 0x949a143, None), state - * else: - */ - __pyx_t_4 = (__pyx_v_use_setstate != 0); - if (__pyx_t_4) { - - /* "(tree fragment)":13 - * use_setstate = self._items is not None - * if use_setstate: - * return __pyx_unpickle_FrozenList, (type(self), 0x949a143, None), state # <<<<<<<<<<<<<< - * else: - * return __pyx_unpickle_FrozenList, (type(self), 0x949a143, state) - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_FrozenList); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_INCREF(__pyx_int_155820355); - __Pyx_GIVEREF(__pyx_int_155820355); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_155820355); - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); - __Pyx_INCREF(__pyx_v_state); - __Pyx_GIVEREF(__pyx_v_state); - PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L0; - - /* "(tree fragment)":12 - * else: - * use_setstate = self._items is not None - * if use_setstate: # <<<<<<<<<<<<<< - * return __pyx_unpickle_FrozenList, (type(self), 0x949a143, None), state - * else: - */ - } - - /* "(tree fragment)":15 - * return __pyx_unpickle_FrozenList, (type(self), 0x949a143, None), state - * else: - * return __pyx_unpickle_FrozenList, (type(self), 0x949a143, state) # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * __pyx_unpickle_FrozenList__set_state(self, __pyx_state) - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_FrozenList); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_INCREF(__pyx_int_155820355); - __Pyx_GIVEREF(__pyx_int_155820355); - PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_155820355); - __Pyx_INCREF(__pyx_v_state); - __Pyx_GIVEREF(__pyx_v_state); - PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2); - __pyx_t_5 = 0; - __pyx_t_2 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - } - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_state); - __Pyx_XDECREF(__pyx_v__dict); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":16 - * else: - * return __pyx_unpickle_FrozenList, (type(self), 0x949a143, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle_FrozenList__set_state(self, __pyx_state) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_45__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_45__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist_10FrozenList_44__setstate_cython__(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist_10FrozenList_44__setstate_cython__(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v_self, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 0); - - /* "(tree fragment)":17 - * return __pyx_unpickle_FrozenList, (type(self), 0x949a143, state) - * def __setstate_cython__(self, __pyx_state): - * __pyx_unpickle_FrozenList__set_state(self, __pyx_state) # <<<<<<<<<<<<<< - */ - if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 17, __pyx_L1_error) - __pyx_t_1 = __pyx_f_7aiohttp_11_frozenlist___pyx_unpickle_FrozenList__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "(tree fragment)":16 - * else: - * return __pyx_unpickle_FrozenList, (type(self), 0x949a143, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle_FrozenList__set_state(self, __pyx_state) - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("aiohttp._frozenlist.FrozenList.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __pyx_unpickle_FrozenList(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_1__pyx_unpickle_FrozenList(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_7aiohttp_11_frozenlist_1__pyx_unpickle_FrozenList = {"__pyx_unpickle_FrozenList", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7aiohttp_11_frozenlist_1__pyx_unpickle_FrozenList, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_7aiohttp_11_frozenlist_1__pyx_unpickle_FrozenList(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v___pyx_type = 0; - long __pyx_v___pyx_checksum; - PyObject *__pyx_v___pyx_state = 0; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__pyx_unpickle_FrozenList (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; - PyObject* values[3] = {0,0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FrozenList", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FrozenList", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_FrozenList") < 0)) __PYX_ERR(1, 1, __pyx_L3_error) - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - } - __pyx_v___pyx_type = values[0]; - __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - __pyx_v___pyx_state = values[2]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FrozenList", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error) - __pyx_L3_error:; - __Pyx_AddTraceback("aiohttp._frozenlist.__pyx_unpickle_FrozenList", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_7aiohttp_11_frozenlist___pyx_unpickle_FrozenList(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_11_frozenlist___pyx_unpickle_FrozenList(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_v___pyx_PickleError = 0; - PyObject *__pyx_v___pyx_result = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__pyx_unpickle_FrozenList", 0); - - /* "(tree fragment)":4 - * cdef object __pyx_PickleError - * cdef object __pyx_result - * if __pyx_checksum != 0x949a143: # <<<<<<<<<<<<<< - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x949a143 = (_items, frozen))" % __pyx_checksum) - */ - __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x949a143) != 0); - if (__pyx_t_1) { - - /* "(tree fragment)":5 - * cdef object __pyx_result - * if __pyx_checksum != 0x949a143: - * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x949a143 = (_items, frozen))" % __pyx_checksum) - * __pyx_result = FrozenList.__new__(__pyx_type) - */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_n_s_PickleError); - __Pyx_GIVEREF(__pyx_n_s_PickleError); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); - __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_2); - __pyx_v___pyx_PickleError = __pyx_t_2; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":6 - * if __pyx_checksum != 0x949a143: - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x949a143 = (_items, frozen))" % __pyx_checksum) # <<<<<<<<<<<<<< - * __pyx_result = FrozenList.__new__(__pyx_type) - * if __pyx_state is not None: - */ - __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x94, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_INCREF(__pyx_v___pyx_PickleError); - __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(1, 6, __pyx_L1_error) - - /* "(tree fragment)":4 - * cdef object __pyx_PickleError - * cdef object __pyx_result - * if __pyx_checksum != 0x949a143: # <<<<<<<<<<<<<< - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x949a143 = (_items, frozen))" % __pyx_checksum) - */ - } - - /* "(tree fragment)":7 - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x949a143 = (_items, frozen))" % __pyx_checksum) - * __pyx_result = FrozenList.__new__(__pyx_type) # <<<<<<<<<<<<<< - * if __pyx_state is not None: - * __pyx_unpickle_FrozenList__set_state( __pyx_result, __pyx_state) - */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7aiohttp_11_frozenlist_FrozenList), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - } - } - __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v___pyx_result = __pyx_t_3; - __pyx_t_3 = 0; - - /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x949a143 = (_items, frozen))" % __pyx_checksum) - * __pyx_result = FrozenList.__new__(__pyx_type) - * if __pyx_state is not None: # <<<<<<<<<<<<<< - * __pyx_unpickle_FrozenList__set_state( __pyx_result, __pyx_state) - * return __pyx_result - */ - __pyx_t_1 = (__pyx_v___pyx_state != Py_None); - __pyx_t_6 = (__pyx_t_1 != 0); - if (__pyx_t_6) { - - /* "(tree fragment)":9 - * __pyx_result = FrozenList.__new__(__pyx_type) - * if __pyx_state is not None: - * __pyx_unpickle_FrozenList__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< - * return __pyx_result - * cdef __pyx_unpickle_FrozenList__set_state(FrozenList __pyx_result, tuple __pyx_state): - */ - if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error) - __pyx_t_3 = __pyx_f_7aiohttp_11_frozenlist___pyx_unpickle_FrozenList__set_state(((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x949a143 = (_items, frozen))" % __pyx_checksum) - * __pyx_result = FrozenList.__new__(__pyx_type) - * if __pyx_state is not None: # <<<<<<<<<<<<<< - * __pyx_unpickle_FrozenList__set_state( __pyx_result, __pyx_state) - * return __pyx_result - */ - } - - /* "(tree fragment)":10 - * if __pyx_state is not None: - * __pyx_unpickle_FrozenList__set_state( __pyx_result, __pyx_state) - * return __pyx_result # <<<<<<<<<<<<<< - * cdef __pyx_unpickle_FrozenList__set_state(FrozenList __pyx_result, tuple __pyx_state): - * __pyx_result._items = __pyx_state[0]; __pyx_result.frozen = __pyx_state[1] - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v___pyx_result); - __pyx_r = __pyx_v___pyx_result; - goto __pyx_L0; - - /* "(tree fragment)":1 - * def __pyx_unpickle_FrozenList(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("aiohttp._frozenlist.__pyx_unpickle_FrozenList", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v___pyx_PickleError); - __Pyx_XDECREF(__pyx_v___pyx_result); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":11 - * __pyx_unpickle_FrozenList__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_FrozenList__set_state(FrozenList __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result._items = __pyx_state[0]; __pyx_result.frozen = __pyx_state[1] - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): - */ - -static PyObject *__pyx_f_7aiohttp_11_frozenlist___pyx_unpickle_FrozenList__set_state(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - Py_ssize_t __pyx_t_3; - int __pyx_t_4; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__pyx_unpickle_FrozenList__set_state", 0); - - /* "(tree fragment)":12 - * return __pyx_result - * cdef __pyx_unpickle_FrozenList__set_state(FrozenList __pyx_result, tuple __pyx_state): - * __pyx_result._items = __pyx_state[0]; __pyx_result.frozen = __pyx_state[1] # <<<<<<<<<<<<<< - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): - * __pyx_result.__dict__.update(__pyx_state[2]) - */ - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 12, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_v___pyx_result->_items); - __Pyx_DECREF(__pyx_v___pyx_result->_items); - __pyx_v___pyx_result->_items = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 12, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v___pyx_result->frozen = __pyx_t_2; - - /* "(tree fragment)":13 - * cdef __pyx_unpickle_FrozenList__set_state(FrozenList __pyx_result, tuple __pyx_state): - * __pyx_result._items = __pyx_state[0]; __pyx_result.frozen = __pyx_state[1] - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< - * __pyx_result.__dict__.update(__pyx_state[2]) - */ - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 13, __pyx_L1_error) - } - __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error) - __pyx_t_4 = ((__pyx_t_3 > 2) != 0); - if (__pyx_t_4) { - } else { - __pyx_t_2 = __pyx_t_4; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error) - __pyx_t_5 = (__pyx_t_4 != 0); - __pyx_t_2 = __pyx_t_5; - __pyx_L4_bool_binop_done:; - if (__pyx_t_2) { - - /* "(tree fragment)":14 - * __pyx_result._items = __pyx_state[0]; __pyx_result.frozen = __pyx_state[1] - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): - * __pyx_result.__dict__.update(__pyx_state[2]) # <<<<<<<<<<<<<< - */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 14, __pyx_L1_error) - } - __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - } - } - __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "(tree fragment)":13 - * cdef __pyx_unpickle_FrozenList__set_state(FrozenList __pyx_result, tuple __pyx_state): - * __pyx_result._items = __pyx_state[0]; __pyx_result.frozen = __pyx_state[1] - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< - * __pyx_result.__dict__.update(__pyx_state[2]) - */ - } - - /* "(tree fragment)":11 - * __pyx_unpickle_FrozenList__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_FrozenList__set_state(FrozenList __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result._items = __pyx_state[0]; __pyx_result.frozen = __pyx_state[1] - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("aiohttp._frozenlist.__pyx_unpickle_FrozenList__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static struct __pyx_vtabstruct_7aiohttp_11_frozenlist_FrozenList __pyx_vtable_7aiohttp_11_frozenlist_FrozenList; - -static PyObject *__pyx_tp_new_7aiohttp_11_frozenlist_FrozenList(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *p; - PyObject *o; - if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { - o = (*t->tp_alloc)(t, 0); - } else { - o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); - } - if (unlikely(!o)) return 0; - p = ((struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)o); - p->__pyx_vtab = __pyx_vtabptr_7aiohttp_11_frozenlist_FrozenList; - p->_items = ((PyObject*)Py_None); Py_INCREF(Py_None); - return o; -} - -static void __pyx_tp_dealloc_7aiohttp_11_frozenlist_FrozenList(PyObject *o) { - struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *p = (struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)o; - #if CYTHON_USE_TP_FINALIZE - if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - #endif - PyObject_GC_UnTrack(o); - Py_CLEAR(p->_items); - (*Py_TYPE(o)->tp_free)(o); -} - -static int __pyx_tp_traverse_7aiohttp_11_frozenlist_FrozenList(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *p = (struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)o; - if (p->_items) { - e = (*v)(p->_items, a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_7aiohttp_11_frozenlist_FrozenList(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *p = (struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *)o; - tmp = ((PyObject*)p->_items); - p->_items = ((PyObject*)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} -static PyObject *__pyx_sq_item_7aiohttp_11_frozenlist_FrozenList(PyObject *o, Py_ssize_t i) { - PyObject *r; - PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; - r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); - Py_DECREF(x); - return r; -} - -static int __pyx_mp_ass_subscript_7aiohttp_11_frozenlist_FrozenList(PyObject *o, PyObject *i, PyObject *v) { - if (v) { - return __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_7__setitem__(o, i, v); - } - else { - return __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_9__delitem__(o, i); - } -} - -static PyObject *__pyx_getprop_7aiohttp_11_frozenlist_10FrozenList_frozen(PyObject *o, CYTHON_UNUSED void *x) { - return __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_6frozen_1__get__(o); -} - -static PyMethodDef __pyx_methods_7aiohttp_11_frozenlist_FrozenList[] = { - {"freeze", (PyCFunction)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_3freeze, METH_NOARGS, 0}, - {"__reversed__", (PyCFunction)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_15__reversed__, METH_NOARGS, 0}, - {"insert", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_19insert, METH_VARARGS|METH_KEYWORDS, 0}, - {"index", (PyCFunction)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_25index, METH_O, 0}, - {"remove", (PyCFunction)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_27remove, METH_O, 0}, - {"clear", (PyCFunction)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_29clear, METH_NOARGS, 0}, - {"extend", (PyCFunction)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_31extend, METH_O, 0}, - {"reverse", (PyCFunction)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_33reverse, METH_NOARGS, 0}, - {"pop", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_35pop, METH_VARARGS|METH_KEYWORDS, 0}, - {"append", (PyCFunction)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_37append, METH_O, 0}, - {"count", (PyCFunction)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_39count, METH_O, 0}, - {"__reduce_cython__", (PyCFunction)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_43__reduce_cython__, METH_NOARGS, 0}, - {"__setstate_cython__", (PyCFunction)__pyx_pw_7aiohttp_11_frozenlist_10FrozenList_45__setstate_cython__, METH_O, 0}, - {0, 0, 0, 0} -}; - -static struct PyGetSetDef __pyx_getsets_7aiohttp_11_frozenlist_FrozenList[] = { - {(char *)"frozen", __pyx_getprop_7aiohttp_11_frozenlist_10FrozenList_frozen, 0, (char *)0, 0}, - {0, 0, 0, 0, 0} -}; - -static PyNumberMethods __pyx_tp_as_number_FrozenList = { - 0, /*nb_add*/ - 0, /*nb_subtract*/ - 0, /*nb_multiply*/ - #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) - 0, /*nb_divide*/ - #endif - 0, /*nb_remainder*/ - 0, /*nb_divmod*/ - 0, /*nb_power*/ - 0, /*nb_negative*/ - 0, /*nb_positive*/ - 0, /*nb_absolute*/ - 0, /*nb_nonzero*/ - 0, /*nb_invert*/ - 0, /*nb_lshift*/ - 0, /*nb_rshift*/ - 0, /*nb_and*/ - 0, /*nb_xor*/ - 0, /*nb_or*/ - #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) - 0, /*nb_coerce*/ - #endif - 0, /*nb_int*/ - #if PY_MAJOR_VERSION < 3 - 0, /*nb_long*/ - #else - 0, /*reserved*/ - #endif - 0, /*nb_float*/ - #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) - 0, /*nb_oct*/ - #endif - #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) - 0, /*nb_hex*/ - #endif - __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_23__iadd__, /*nb_inplace_add*/ - 0, /*nb_inplace_subtract*/ - 0, /*nb_inplace_multiply*/ - #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) - 0, /*nb_inplace_divide*/ - #endif - 0, /*nb_inplace_remainder*/ - 0, /*nb_inplace_power*/ - 0, /*nb_inplace_lshift*/ - 0, /*nb_inplace_rshift*/ - 0, /*nb_inplace_and*/ - 0, /*nb_inplace_xor*/ - 0, /*nb_inplace_or*/ - 0, /*nb_floor_divide*/ - 0, /*nb_true_divide*/ - 0, /*nb_inplace_floor_divide*/ - 0, /*nb_inplace_true_divide*/ - 0, /*nb_index*/ - #if PY_VERSION_HEX >= 0x03050000 - 0, /*nb_matrix_multiply*/ - #endif - #if PY_VERSION_HEX >= 0x03050000 - 0, /*nb_inplace_matrix_multiply*/ - #endif -}; - -static PySequenceMethods __pyx_tp_as_sequence_FrozenList = { - __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_11__len__, /*sq_length*/ - 0, /*sq_concat*/ - 0, /*sq_repeat*/ - __pyx_sq_item_7aiohttp_11_frozenlist_FrozenList, /*sq_item*/ - 0, /*sq_slice*/ - 0, /*sq_ass_item*/ - 0, /*sq_ass_slice*/ - __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_21__contains__, /*sq_contains*/ - 0, /*sq_inplace_concat*/ - 0, /*sq_inplace_repeat*/ -}; - -static PyMappingMethods __pyx_tp_as_mapping_FrozenList = { - __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_11__len__, /*mp_length*/ - __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_5__getitem__, /*mp_subscript*/ - __pyx_mp_ass_subscript_7aiohttp_11_frozenlist_FrozenList, /*mp_ass_subscript*/ -}; - -static PyTypeObject __pyx_type_7aiohttp_11_frozenlist_FrozenList = { - PyVarObject_HEAD_INIT(0, 0) - "aiohttp._frozenlist.FrozenList", /*tp_name*/ - sizeof(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_7aiohttp_11_frozenlist_FrozenList, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_41__repr__, /*tp_repr*/ - &__pyx_tp_as_number_FrozenList, /*tp_as_number*/ - &__pyx_tp_as_sequence_FrozenList, /*tp_as_sequence*/ - &__pyx_tp_as_mapping_FrozenList, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_7aiohttp_11_frozenlist_FrozenList, /*tp_traverse*/ - __pyx_tp_clear_7aiohttp_11_frozenlist_FrozenList, /*tp_clear*/ - __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_17__richcmp__, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_13__iter__, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_7aiohttp_11_frozenlist_FrozenList, /*tp_methods*/ - 0, /*tp_members*/ - __pyx_getsets_7aiohttp_11_frozenlist_FrozenList, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - __pyx_pw_7aiohttp_11_frozenlist_10FrozenList_1__init__, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_7aiohttp_11_frozenlist_FrozenList, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 - 0, /*tp_print*/ - #endif -}; - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; - -#if PY_MAJOR_VERSION >= 3 -#if CYTHON_PEP489_MULTI_PHASE_INIT -static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ -static int __pyx_pymod_exec__frozenlist(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec__frozenlist}, - {0, NULL} -}; -#endif - -static struct PyModuleDef __pyx_moduledef = { - PyModuleDef_HEAD_INIT, - "_frozenlist", - 0, /* m_doc */ - #if CYTHON_PEP489_MULTI_PHASE_INIT - 0, /* m_size */ - #else - -1, /* m_size */ - #endif - __pyx_methods /* m_methods */, - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_moduledef_slots, /* m_slots */ - #else - NULL, /* m_reload */ - #endif - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ -}; -#endif -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define CYTHON_SMALL_CODE __attribute__((cold)) -#else - #define CYTHON_SMALL_CODE -#endif -#endif - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_u_Cannot_modify_frozen_list, __pyx_k_Cannot_modify_frozen_list, sizeof(__pyx_k_Cannot_modify_frozen_list), 0, 1, 0, 0}, - {&__pyx_n_s_FrozenList, __pyx_k_FrozenList, sizeof(__pyx_k_FrozenList), 0, 0, 1, 1}, - {&__pyx_kp_u_FrozenList_frozen_r, __pyx_k_FrozenList_frozen_r, sizeof(__pyx_k_FrozenList_frozen_r), 0, 1, 0, 0}, - {&__pyx_kp_s_Incompatible_checksums_s_vs_0x94, __pyx_k_Incompatible_checksums_s_vs_0x94, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x94), 0, 0, 1, 0}, - {&__pyx_n_s_MutableSequence, __pyx_k_MutableSequence, sizeof(__pyx_k_MutableSequence), 0, 0, 1, 1}, - {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, - {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_aiohttp__frozenlist, __pyx_k_aiohttp__frozenlist, sizeof(__pyx_k_aiohttp__frozenlist), 0, 0, 1, 1}, - {&__pyx_n_s_clear, __pyx_k_clear, sizeof(__pyx_k_clear), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_collections_abc, __pyx_k_collections_abc, sizeof(__pyx_k_collections_abc), 0, 0, 1, 1}, - {&__pyx_n_s_count, __pyx_k_count, sizeof(__pyx_k_count), 0, 0, 1, 1}, - {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, - {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1}, - {&__pyx_n_s_item, __pyx_k_item, sizeof(__pyx_k_item), 0, 0, 1, 1}, - {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1}, - {&__pyx_n_s_iter, __pyx_k_iter, sizeof(__pyx_k_iter), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, - {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, - {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, - {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1}, - {&__pyx_n_s_pos, __pyx_k_pos, sizeof(__pyx_k_pos), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_unpickle_FrozenList, __pyx_k_pyx_unpickle_FrozenList, sizeof(__pyx_k_pyx_unpickle_FrozenList), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, - {&__pyx_n_s_register, __pyx_k_register, sizeof(__pyx_k_register), 0, 0, 1, 1}, - {&__pyx_n_s_remove, __pyx_k_remove, sizeof(__pyx_k_remove), 0, 0, 1, 1}, - {&__pyx_n_s_reversed, __pyx_k_reversed, sizeof(__pyx_k_reversed), 0, 0, 1, 1}, - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(0, 19, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - /* "aiohttp/_frozenlist.pyx":19 - * cdef object _check_frozen(self): - * if self.frozen: - * raise RuntimeError("Cannot modify frozen list.") # <<<<<<<<<<<<<< - * - * cdef inline object _fast_len(self): - */ - __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_Cannot_modify_frozen_list); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 19, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple_); - __Pyx_GIVEREF(__pyx_tuple_); - - /* "(tree fragment)":1 - * def __pyx_unpickle_FrozenList(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - __pyx_tuple__2 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - __pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__2, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_FrozenList, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { - if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); - __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_155820355 = PyInt_FromLong(155820355L); if (unlikely(!__pyx_int_155820355)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} - -static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ - -static int __Pyx_modinit_global_init_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); - /*--- Global init code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_variable_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); - /*--- Variable export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_function_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); - /*--- Function export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_vtabptr_7aiohttp_11_frozenlist_FrozenList = &__pyx_vtable_7aiohttp_11_frozenlist_FrozenList; - __pyx_vtable_7aiohttp_11_frozenlist_FrozenList._check_frozen = (PyObject *(*)(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *))__pyx_f_7aiohttp_11_frozenlist_10FrozenList__check_frozen; - __pyx_vtable_7aiohttp_11_frozenlist_FrozenList._fast_len = (PyObject *(*)(struct __pyx_obj_7aiohttp_11_frozenlist_FrozenList *))__pyx_f_7aiohttp_11_frozenlist_10FrozenList__fast_len; - if (PyType_Ready(&__pyx_type_7aiohttp_11_frozenlist_FrozenList) < 0) __PYX_ERR(0, 4, __pyx_L1_error) - #if PY_VERSION_HEX < 0x030800B1 - __pyx_type_7aiohttp_11_frozenlist_FrozenList.tp_print = 0; - #endif - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_11_frozenlist_FrozenList.tp_dictoffset && __pyx_type_7aiohttp_11_frozenlist_FrozenList.tp_getattro == PyObject_GenericGetAttr)) { - __pyx_type_7aiohttp_11_frozenlist_FrozenList.tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - if (__Pyx_SetVtable(__pyx_type_7aiohttp_11_frozenlist_FrozenList.tp_dict, __pyx_vtabptr_7aiohttp_11_frozenlist_FrozenList) < 0) __PYX_ERR(0, 4, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FrozenList, (PyObject *)&__pyx_type_7aiohttp_11_frozenlist_FrozenList) < 0) __PYX_ERR(0, 4, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7aiohttp_11_frozenlist_FrozenList) < 0) __PYX_ERR(0, 4, __pyx_L1_error) - __pyx_ptype_7aiohttp_11_frozenlist_FrozenList = &__pyx_type_7aiohttp_11_frozenlist_FrozenList; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} - -static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_variable_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); - /*--- Variable import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - - -#ifndef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#elif PY_MAJOR_VERSION < 3 -#ifdef __cplusplus -#define __Pyx_PyMODINIT_FUNC extern "C" void -#else -#define __Pyx_PyMODINIT_FUNC void -#endif -#else -#ifdef __cplusplus -#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * -#else -#define __Pyx_PyMODINIT_FUNC PyObject * -#endif -#endif - - -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC init_frozenlist(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC init_frozenlist(void) -#else -__Pyx_PyMODINIT_FUNC PyInit__frozenlist(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC PyInit__frozenlist(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { - #if PY_VERSION_HEX >= 0x030700A1 - static PY_INT64_T main_interpreter_id = -1; - PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); - if (main_interpreter_id == -1) { - main_interpreter_id = current_id; - return (unlikely(current_id == -1)) ? -1 : 0; - } else if (unlikely(main_interpreter_id != current_id)) - #else - static PyInterpreterState *main_interpreter = NULL; - PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; - if (!main_interpreter) { - main_interpreter = current_interpreter; - } else if (unlikely(main_interpreter != current_interpreter)) - #endif - { - PyErr_SetString( - PyExc_ImportError, - "Interpreter change detected - this module can only be loaded into one interpreter per process."); - return -1; - } - return 0; -} -static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { - PyObject *value = PyObject_GetAttrString(spec, from_name); - int result = 0; - if (likely(value)) { - if (allow_none || value != Py_None) { - result = PyDict_SetItemString(moddict, to_name, value); - } - Py_DECREF(value); - } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Clear(); - } else { - result = -1; - } - return result; -} -static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - if (__Pyx_check_single_interpreter()) - return NULL; - if (__pyx_m) - return __Pyx_NewRef(__pyx_m); - modname = PyObject_GetAttrString(spec, "name"); - if (unlikely(!modname)) goto bad; - module = PyModule_NewObject(modname); - Py_DECREF(modname); - if (unlikely(!module)) goto bad; - moddict = PyModule_GetDict(module); - if (unlikely(!moddict)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; - return module; -bad: - Py_XDECREF(module); - return NULL; -} - - -static CYTHON_SMALL_CODE int __pyx_pymod_exec__frozenlist(PyObject *__pyx_pyinit_module) -#endif -#endif -{ - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { - if (__pyx_m == __pyx_pyinit_module) return 0; - PyErr_SetString(PyExc_RuntimeError, "Module '_frozenlist' has already been imported. Re-initialisation is not supported."); - return -1; - } - #elif PY_MAJOR_VERSION >= 3 - if (__pyx_m) return __Pyx_NewRef(__pyx_m); - #endif - #if CYTHON_REFNANNY -__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); -if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); -} -#endif - __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__frozenlist(void)", 0); - if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #ifdef __Pxy_PyFrame_Initialize_Offsets - __Pxy_PyFrame_Initialize_Offsets(); - #endif - __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) - #ifdef __Pyx_CyFunction_USED - if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_FusedFunction_USED - if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Coroutine_USED - if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Generator_USED - if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_AsyncGen_USED - if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_StopAsyncIteration_USED - if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ - PyEval_InitThreads(); - #endif - #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; - Py_INCREF(__pyx_m); - #else - #if PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4("_frozenlist", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); - #else - __pyx_m = PyModule_Create(&__pyx_moduledef); - #endif - if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) - Py_INCREF(__pyx_d); - __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) - Py_INCREF(__pyx_b); - __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) - Py_INCREF(__pyx_cython_runtime); - if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); - /*--- Initialize various global constants etc. ---*/ - if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) - if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - if (__pyx_module_is_main_aiohttp___frozenlist) { - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - } - #if PY_MAJOR_VERSION >= 3 - { - PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) - if (!PyDict_GetItemString(modules, "aiohttp._frozenlist")) { - if (unlikely(PyDict_SetItemString(modules, "aiohttp._frozenlist", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); - if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - (void)__Pyx_modinit_type_import_code(); - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - - /* "aiohttp/_frozenlist.pyx":1 - * from collections.abc import MutableSequence # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_n_s_MutableSequence); - __Pyx_GIVEREF(__pyx_n_s_MutableSequence); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_MutableSequence); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_collections_abc, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_MutableSequence); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MutableSequence, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "aiohttp/_frozenlist.pyx":108 - * - * - * MutableSequence.register(FrozenList) # <<<<<<<<<<<<<< - */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MutableSequence); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_register); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_ptype_7aiohttp_11_frozenlist_FrozenList)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "(tree fragment)":1 - * def __pyx_unpickle_FrozenList(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7aiohttp_11_frozenlist_1__pyx_unpickle_FrozenList, NULL, __pyx_n_s_aiohttp__frozenlist); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_FrozenList, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "aiohttp/_frozenlist.pyx":1 - * from collections.abc import MutableSequence # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - if (__pyx_m) { - if (__pyx_d) { - __Pyx_AddTraceback("init aiohttp._frozenlist", __pyx_clineno, __pyx_lineno, __pyx_filename); - } - Py_CLEAR(__pyx_m); - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init aiohttp._frozenlist"); - } - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - #if CYTHON_PEP489_MULTI_PHASE_INIT - return (__pyx_m != NULL) ? 0 : -1; - #elif PY_MAJOR_VERSION >= 3 - return __pyx_m; - #else - return; - #endif -} - -/* --- Runtime support code --- */ -/* Refnanny */ -#if CYTHON_REFNANNY -static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { - PyObject *m = NULL, *p = NULL; - void *r = NULL; - m = PyImport_ImportModule(modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, "RefNannyAPI"); - if (!p) goto end; - r = PyLong_AsVoidPtr(p); -end: - Py_XDECREF(p); - Py_XDECREF(m); - return (__Pyx_RefNannyAPIStruct *)r; -} -#endif - -/* PyObjectGetAttrStr */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_getattro)) - return tp->tp_getattro(obj, attr_name); -#if PY_MAJOR_VERSION < 3 - if (likely(tp->tp_getattr)) - return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); -#endif - return PyObject_GetAttr(obj, attr_name); -} -#endif - -/* GetBuiltinName */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name) { - PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); - if (unlikely(!result)) { - PyErr_Format(PyExc_NameError, -#if PY_MAJOR_VERSION >= 3 - "name '%U' is not defined", name); -#else - "name '%.200s' is not defined", PyString_AS_STRING(name)); -#endif - } - return result; -} - -/* RaiseDoubleKeywords */ -static void __Pyx_RaiseDoubleKeywordsError( - const char* func_name, - PyObject* kw_name) -{ - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION >= 3 - "%s() got multiple values for keyword argument '%U'", func_name, kw_name); - #else - "%s() got multiple values for keyword argument '%s'", func_name, - PyString_AsString(kw_name)); - #endif -} - -/* ParseKeywords */ -static int __Pyx_ParseOptionalKeywords( - PyObject *kwds, - PyObject **argnames[], - PyObject *kwds2, - PyObject *values[], - Py_ssize_t num_pos_args, - const char* function_name) -{ - PyObject *key = 0, *value = 0; - Py_ssize_t pos = 0; - PyObject*** name; - PyObject*** first_kw_arg = argnames + num_pos_args; - while (PyDict_Next(kwds, &pos, &key, &value)) { - name = first_kw_arg; - while (*name && (**name != key)) name++; - if (*name) { - values[name-argnames] = value; - continue; - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 - if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - if ((**argname == key) || ( - (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) - && _PyString_Eq(**argname, key))) { - goto arg_passed_twice; - } - argname++; - } - } - } else - #endif - if (likely(PyUnicode_Check(key))) { - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) goto arg_passed_twice; - argname++; - } - } - } else - goto invalid_keyword_type; - if (kwds2) { - if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; - } else { - goto invalid_keyword; - } - } - return 0; -arg_passed_twice: - __Pyx_RaiseDoubleKeywordsError(function_name, key); - goto bad; -invalid_keyword_type: - PyErr_Format(PyExc_TypeError, - "%.200s() keywords must be strings", function_name); - goto bad; -invalid_keyword: - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION < 3 - "%.200s() got an unexpected keyword argument '%.200s'", - function_name, PyString_AsString(key)); - #else - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif -bad: - return -1; -} - -/* RaiseArgTupleInvalid */ -static void __Pyx_RaiseArgtupleInvalid( - const char* func_name, - int exact, - Py_ssize_t num_min, - Py_ssize_t num_max, - Py_ssize_t num_found) -{ - Py_ssize_t num_expected; - const char *more_or_less; - if (num_found < num_min) { - num_expected = num_min; - more_or_less = "at least"; - } else { - num_expected = num_max; - more_or_less = "at most"; - } - if (exact) { - more_or_less = "exactly"; - } - PyErr_Format(PyExc_TypeError, - "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", - func_name, more_or_less, num_expected, - (num_expected == 1) ? "" : "s", num_found); -} - -/* PyObjectCall */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; - ternaryfunc call = func->ob_type->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) - return NULL; - result = (*call)(func, arg, kw); - Py_LeaveRecursiveCall(); - if (unlikely(!result) && unlikely(!PyErr_Occurred())) { - PyErr_SetString( - PyExc_SystemError, - "NULL result without error in PyObject_Call"); - } - return result; -} -#endif - -/* PyErrFetchRestore */ -#if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { - PyObject *tmp_type, *tmp_value, *tmp_tb; - tmp_type = tstate->curexc_type; - tmp_value = tstate->curexc_value; - tmp_tb = tstate->curexc_traceback; - tstate->curexc_type = type; - tstate->curexc_value = value; - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -} -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - *type = tstate->curexc_type; - *value = tstate->curexc_value; - *tb = tstate->curexc_traceback; - tstate->curexc_type = 0; - tstate->curexc_value = 0; - tstate->curexc_traceback = 0; -} -#endif - -/* RaiseException */ -#if PY_MAJOR_VERSION < 3 -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, - CYTHON_UNUSED PyObject *cause) { - __Pyx_PyThreadState_declare - Py_XINCREF(type); - if (!value || value == Py_None) - value = NULL; - else - Py_INCREF(value); - if (!tb || tb == Py_None) - tb = NULL; - else { - Py_INCREF(tb); - if (!PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto raise_error; - } - } - if (PyType_Check(type)) { -#if CYTHON_COMPILING_IN_PYPY - if (!value) { - Py_INCREF(Py_None); - value = Py_None; - } -#endif - PyErr_NormalizeException(&type, &value, &tb); - } else { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto raise_error; - } - value = type; - type = (PyObject*) Py_TYPE(type); - Py_INCREF(type); - if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto raise_error; - } - } - __Pyx_PyThreadState_assign - __Pyx_ErrRestore(type, value, tb); - return; -raise_error: - Py_XDECREF(value); - Py_XDECREF(type); - Py_XDECREF(tb); - return; -} -#else -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { - PyObject* owned_instance = NULL; - if (tb == Py_None) { - tb = 0; - } else if (tb && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto bad; - } - if (value == Py_None) - value = 0; - if (PyExceptionInstance_Check(type)) { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto bad; - } - value = type; - type = (PyObject*) Py_TYPE(value); - } else if (PyExceptionClass_Check(type)) { - PyObject *instance_class = NULL; - if (value && PyExceptionInstance_Check(value)) { - instance_class = (PyObject*) Py_TYPE(value); - if (instance_class != type) { - int is_subclass = PyObject_IsSubclass(instance_class, type); - if (!is_subclass) { - instance_class = NULL; - } else if (unlikely(is_subclass == -1)) { - goto bad; - } else { - type = instance_class; - } - } - } - if (!instance_class) { - PyObject *args; - if (!value) - args = PyTuple_New(0); - else if (PyTuple_Check(value)) { - Py_INCREF(value); - args = value; - } else - args = PyTuple_Pack(1, value); - if (!args) - goto bad; - owned_instance = PyObject_Call(type, args, NULL); - Py_DECREF(args); - if (!owned_instance) - goto bad; - value = owned_instance; - if (!PyExceptionInstance_Check(value)) { - PyErr_Format(PyExc_TypeError, - "calling %R should have returned an instance of " - "BaseException, not %R", - type, Py_TYPE(value)); - goto bad; - } - } - } else { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto bad; - } - if (cause) { - PyObject *fixed_cause; - if (cause == Py_None) { - fixed_cause = NULL; - } else if (PyExceptionClass_Check(cause)) { - fixed_cause = PyObject_CallObject(cause, NULL); - if (fixed_cause == NULL) - goto bad; - } else if (PyExceptionInstance_Check(cause)) { - fixed_cause = cause; - Py_INCREF(fixed_cause); - } else { - PyErr_SetString(PyExc_TypeError, - "exception causes must derive from " - "BaseException"); - goto bad; - } - PyException_SetCause(value, fixed_cause); - } - PyErr_SetObject(type, value); - if (tb) { -#if CYTHON_COMPILING_IN_PYPY - PyObject *tmp_type, *tmp_value, *tmp_tb; - PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); - Py_INCREF(tb); - PyErr_Restore(tmp_type, tmp_value, tb); - Py_XDECREF(tmp_tb); -#else - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject* tmp_tb = tstate->curexc_traceback; - if (tb != tmp_tb) { - Py_INCREF(tb); - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_tb); - } -#endif - } -bad: - Py_XDECREF(owned_instance); - return; -} -#endif - -/* GetItemInt */ -static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { - PyObject *r; - if (!j) return NULL; - r = PyObject_GetItem(o, j); - Py_DECREF(j); - return r; -} -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, - CYTHON_NCP_UNUSED int wraparound, - CYTHON_NCP_UNUSED int boundscheck) { -#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - Py_ssize_t wrapped_i = i; - if (wraparound & unlikely(i < 0)) { - wrapped_i += PyList_GET_SIZE(o); - } - if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { - PyObject *r = PyList_GET_ITEM(o, wrapped_i); - Py_INCREF(r); - return r; - } - return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); -#else - return PySequence_GetItem(o, i); -#endif -} -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, - CYTHON_NCP_UNUSED int wraparound, - CYTHON_NCP_UNUSED int boundscheck) { -#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - Py_ssize_t wrapped_i = i; - if (wraparound & unlikely(i < 0)) { - wrapped_i += PyTuple_GET_SIZE(o); - } - if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { - PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); - Py_INCREF(r); - return r; - } - return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); -#else - return PySequence_GetItem(o, i); -#endif -} -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, - CYTHON_NCP_UNUSED int wraparound, - CYTHON_NCP_UNUSED int boundscheck) { -#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS - if (is_list || PyList_CheckExact(o)) { - Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); - if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { - PyObject *r = PyList_GET_ITEM(o, n); - Py_INCREF(r); - return r; - } - } - else if (PyTuple_CheckExact(o)) { - Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); - if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { - PyObject *r = PyTuple_GET_ITEM(o, n); - Py_INCREF(r); - return r; - } - } else { - PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; - if (likely(m && m->sq_item)) { - if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { - Py_ssize_t l = m->sq_length(o); - if (likely(l >= 0)) { - i += l; - } else { - if (!PyErr_ExceptionMatches(PyExc_OverflowError)) - return NULL; - PyErr_Clear(); - } - } - return m->sq_item(o, i); - } - } -#else - if (is_list || PySequence_Check(o)) { - return PySequence_GetItem(o, i); - } -#endif - return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); -} - -/* ObjectGetItem */ -#if CYTHON_USE_TYPE_SLOTS -static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { - PyObject *runerr; - Py_ssize_t key_value; - PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; - if (unlikely(!(m && m->sq_item))) { - PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); - return NULL; - } - key_value = __Pyx_PyIndex_AsSsize_t(index); - if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { - return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); - } - if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { - PyErr_Clear(); - PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); - } - return NULL; -} -static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { - PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; - if (likely(m && m->mp_subscript)) { - return m->mp_subscript(obj, key); - } - return __Pyx_PyObject_GetIndex(obj, key); -} -#endif - -/* PyFunctionFastCall */ -#if CYTHON_FAST_PYCALL -static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, - PyObject *globals) { - PyFrameObject *f; - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject **fastlocals; - Py_ssize_t i; - PyObject *result; - assert(globals != NULL); - /* XXX Perhaps we should create a specialized - PyFrame_New() that doesn't take locals, but does - take builtins without sanity checking them. - */ - assert(tstate != NULL); - f = PyFrame_New(tstate, co, globals, NULL); - if (f == NULL) { - return NULL; - } - fastlocals = __Pyx_PyFrame_GetLocalsplus(f); - for (i = 0; i < na; i++) { - Py_INCREF(*args); - fastlocals[i] = *args++; - } - result = PyEval_EvalFrameEx(f,0); - ++tstate->recursion_depth; - Py_DECREF(f); - --tstate->recursion_depth; - return result; -} -#if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { - PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); - PyObject *globals = PyFunction_GET_GLOBALS(func); - PyObject *argdefs = PyFunction_GET_DEFAULTS(func); - PyObject *closure; -#if PY_MAJOR_VERSION >= 3 - PyObject *kwdefs; -#endif - PyObject *kwtuple, **k; - PyObject **d; - Py_ssize_t nd; - Py_ssize_t nk; - PyObject *result; - assert(kwargs == NULL || PyDict_Check(kwargs)); - nk = kwargs ? PyDict_Size(kwargs) : 0; - if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { - return NULL; - } - if ( -#if PY_MAJOR_VERSION >= 3 - co->co_kwonlyargcount == 0 && -#endif - likely(kwargs == NULL || nk == 0) && - co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { - if (argdefs == NULL && co->co_argcount == nargs) { - result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); - goto done; - } - else if (nargs == 0 && argdefs != NULL - && co->co_argcount == Py_SIZE(argdefs)) { - /* function called with no arguments, but all parameters have - a default value: use default values as arguments .*/ - args = &PyTuple_GET_ITEM(argdefs, 0); - result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); - goto done; - } - } - if (kwargs != NULL) { - Py_ssize_t pos, i; - kwtuple = PyTuple_New(2 * nk); - if (kwtuple == NULL) { - result = NULL; - goto done; - } - k = &PyTuple_GET_ITEM(kwtuple, 0); - pos = i = 0; - while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { - Py_INCREF(k[i]); - Py_INCREF(k[i+1]); - i += 2; - } - nk = i / 2; - } - else { - kwtuple = NULL; - k = NULL; - } - closure = PyFunction_GET_CLOSURE(func); -#if PY_MAJOR_VERSION >= 3 - kwdefs = PyFunction_GET_KW_DEFAULTS(func); -#endif - if (argdefs != NULL) { - d = &PyTuple_GET_ITEM(argdefs, 0); - nd = Py_SIZE(argdefs); - } - else { - d = NULL; - nd = 0; - } -#if PY_MAJOR_VERSION >= 3 - result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, - args, (int)nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, (int)nargs, - k, (int)nk, - d, (int)nd, closure); -#endif - Py_XDECREF(kwtuple); -done: - Py_LeaveRecursiveCall(); - return result; -} -#endif -#endif - -/* PyObjectCallMethO */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { - PyObject *self, *result; - PyCFunction cfunc; - cfunc = PyCFunction_GET_FUNCTION(func); - self = PyCFunction_GET_SELF(func); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) - return NULL; - result = cfunc(self, arg); - Py_LeaveRecursiveCall(); - if (unlikely(!result) && unlikely(!PyErr_Occurred())) { - PyErr_SetString( - PyExc_SystemError, - "NULL result without error in PyObject_Call"); - } - return result; -} -#endif - -/* PyObjectCallNoArg */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { -#if CYTHON_FAST_PYCALL - if (PyFunction_Check(func)) { - return __Pyx_PyFunction_FastCall(func, NULL, 0); - } -#endif -#ifdef __Pyx_CyFunction_USED - if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) -#else - if (likely(PyCFunction_Check(func))) -#endif - { - if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { - return __Pyx_PyObject_CallMethO(func, NULL); - } - } - return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); -} -#endif - -/* PyCFunctionFastCall */ -#if CYTHON_FAST_PYCCALL -static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { - PyCFunctionObject *func = (PyCFunctionObject*)func_obj; - PyCFunction meth = PyCFunction_GET_FUNCTION(func); - PyObject *self = PyCFunction_GET_SELF(func); - int flags = PyCFunction_GET_FLAGS(func); - assert(PyCFunction_Check(func)); - assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); - assert(nargs >= 0); - assert(nargs == 0 || args != NULL); - /* _PyCFunction_FastCallDict() must not be called with an exception set, - because it may clear it (directly or indirectly) and so the - caller loses its exception */ - assert(!PyErr_Occurred()); - if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { - return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); - } else { - return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); - } -} -#endif - -/* PyObjectCallOneArg */ -#if CYTHON_COMPILING_IN_CPYTHON -static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { - PyObject *result; - PyObject *args = PyTuple_New(1); - if (unlikely(!args)) return NULL; - Py_INCREF(arg); - PyTuple_SET_ITEM(args, 0, arg); - result = __Pyx_PyObject_Call(func, args, NULL); - Py_DECREF(args); - return result; -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -#if CYTHON_FAST_PYCALL - if (PyFunction_Check(func)) { - return __Pyx_PyFunction_FastCall(func, &arg, 1); - } -#endif - if (likely(PyCFunction_Check(func))) { - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); -#if CYTHON_FAST_PYCCALL - } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); -#endif - } - } - return __Pyx__PyObject_CallOneArg(func, arg); -} -#else -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { - PyObject *result; - PyObject *args = PyTuple_Pack(1, arg); - if (unlikely(!args)) return NULL; - result = __Pyx_PyObject_Call(func, args, NULL); - Py_DECREF(args); - return result; -} -#endif - -/* PyIntCompare */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) { - if (op1 == op2) { - Py_RETURN_TRUE; - } - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - const long b = intval; - long a = PyInt_AS_LONG(op1); - if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } - #endif - #if CYTHON_USE_PYLONG_INTERNALS - if (likely(PyLong_CheckExact(op1))) { - int unequal; - unsigned long uintval; - Py_ssize_t size = Py_SIZE(op1); - const digit* digits = ((PyLongObject*)op1)->ob_digit; - if (intval == 0) { - if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } else if (intval < 0) { - if (size >= 0) - Py_RETURN_FALSE; - intval = -intval; - size = -size; - } else { - if (size <= 0) - Py_RETURN_FALSE; - } - uintval = (unsigned long) intval; -#if PyLong_SHIFT * 4 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 4)) { - unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif -#if PyLong_SHIFT * 3 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 3)) { - unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif -#if PyLong_SHIFT * 2 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 2)) { - unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif -#if PyLong_SHIFT * 1 < SIZEOF_LONG*8 - if (uintval >> (PyLong_SHIFT * 1)) { - unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) - | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); - } else -#endif - unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK)); - if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } - #endif - if (PyFloat_CheckExact(op1)) { - const long b = intval; - double a = PyFloat_AS_DOUBLE(op1); - if ((double)a == (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE; - } - return ( - PyObject_RichCompare(op1, op2, Py_EQ)); -} - -/* PyObjectCall2Args */ -static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { - PyObject *args, *result = NULL; - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(function)) { - PyObject *args[2] = {arg1, arg2}; - return __Pyx_PyFunction_FastCall(function, args, 2); - } - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(function)) { - PyObject *args[2] = {arg1, arg2}; - return __Pyx_PyCFunction_FastCall(function, args, 2); - } - #endif - args = PyTuple_New(2); - if (unlikely(!args)) goto done; - Py_INCREF(arg1); - PyTuple_SET_ITEM(args, 0, arg1); - Py_INCREF(arg2); - PyTuple_SET_ITEM(args, 1, arg2); - Py_INCREF(function); - result = __Pyx_PyObject_Call(function, args, NULL); - Py_DECREF(args); - Py_DECREF(function); -done: - return result; -} - -/* PyObjectGetMethod */ -static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { - PyObject *attr; -#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP - PyTypeObject *tp = Py_TYPE(obj); - PyObject *descr; - descrgetfunc f = NULL; - PyObject **dictptr, *dict; - int meth_found = 0; - assert (*method == NULL); - if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { - attr = __Pyx_PyObject_GetAttrStr(obj, name); - goto try_unpack; - } - if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { - return 0; - } - descr = _PyType_Lookup(tp, name); - if (likely(descr != NULL)) { - Py_INCREF(descr); -#if PY_MAJOR_VERSION >= 3 - #ifdef __Pyx_CyFunction_USED - if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) - #else - if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type))) - #endif -#else - #ifdef __Pyx_CyFunction_USED - if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) - #else - if (likely(PyFunction_Check(descr))) - #endif -#endif - { - meth_found = 1; - } else { - f = Py_TYPE(descr)->tp_descr_get; - if (f != NULL && PyDescr_IsData(descr)) { - attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); - Py_DECREF(descr); - goto try_unpack; - } - } - } - dictptr = _PyObject_GetDictPtr(obj); - if (dictptr != NULL && (dict = *dictptr) != NULL) { - Py_INCREF(dict); - attr = __Pyx_PyDict_GetItemStr(dict, name); - if (attr != NULL) { - Py_INCREF(attr); - Py_DECREF(dict); - Py_XDECREF(descr); - goto try_unpack; - } - Py_DECREF(dict); - } - if (meth_found) { - *method = descr; - return 1; - } - if (f != NULL) { - attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); - Py_DECREF(descr); - goto try_unpack; - } - if (descr != NULL) { - *method = descr; - return 0; - } - PyErr_Format(PyExc_AttributeError, -#if PY_MAJOR_VERSION >= 3 - "'%.50s' object has no attribute '%U'", - tp->tp_name, name); -#else - "'%.50s' object has no attribute '%.400s'", - tp->tp_name, PyString_AS_STRING(name)); -#endif - return 0; -#else - attr = __Pyx_PyObject_GetAttrStr(obj, name); - goto try_unpack; -#endif -try_unpack: -#if CYTHON_UNPACK_METHODS - if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { - PyObject *function = PyMethod_GET_FUNCTION(attr); - Py_INCREF(function); - Py_DECREF(attr); - *method = function; - return 1; - } -#endif - *method = attr; - return 0; -} - -/* PyObjectCallMethod1 */ -static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) { - PyObject *result = __Pyx_PyObject_CallOneArg(method, arg); - Py_DECREF(method); - return result; -} -static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) { - PyObject *method = NULL, *result; - int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); - if (likely(is_method)) { - result = __Pyx_PyObject_Call2Args(method, obj, arg); - Py_DECREF(method); - return result; - } - if (unlikely(!method)) return NULL; - return __Pyx__PyObject_CallMethod1(method, arg); -} - -/* pop_index */ -static PyObject* __Pyx__PyObject_PopNewIndex(PyObject* L, PyObject* py_ix) { - PyObject *r; - if (unlikely(!py_ix)) return NULL; - r = __Pyx__PyObject_PopIndex(L, py_ix); - Py_DECREF(py_ix); - return r; -} -static PyObject* __Pyx__PyObject_PopIndex(PyObject* L, PyObject* py_ix) { - return __Pyx_PyObject_CallMethod1(L, __pyx_n_s_pop, py_ix); -} -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static PyObject* __Pyx__PyList_PopIndex(PyObject* L, PyObject* py_ix, Py_ssize_t ix) { - Py_ssize_t size = PyList_GET_SIZE(L); - if (likely(size > (((PyListObject*)L)->allocated >> 1))) { - Py_ssize_t cix = ix; - if (cix < 0) { - cix += size; - } - if (likely(__Pyx_is_valid_index(cix, size))) { - PyObject* v = PyList_GET_ITEM(L, cix); - __Pyx_SET_SIZE(L, Py_SIZE(L) - 1); - size -= 1; - memmove(&PyList_GET_ITEM(L, cix), &PyList_GET_ITEM(L, cix+1), (size_t)(size-cix)*sizeof(PyObject*)); - return v; - } - } - if (py_ix == Py_None) { - return __Pyx__PyObject_PopNewIndex(L, PyInt_FromSsize_t(ix)); - } else { - return __Pyx__PyObject_PopIndex(L, py_ix); - } -} -#endif - -/* PyErrExceptionMatches */ -#if CYTHON_FAST_THREAD_STATE -static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { - Py_ssize_t i, n; - n = PyTuple_GET_SIZE(tuple); -#if PY_MAJOR_VERSION >= 3 - for (i=0; icurexc_type; - if (exc_type == err) return 1; - if (unlikely(!exc_type)) return 0; - if (unlikely(PyTuple_Check(err))) - return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); - return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); -} -#endif - -/* GetAttr */ -static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { -#if CYTHON_USE_TYPE_SLOTS -#if PY_MAJOR_VERSION >= 3 - if (likely(PyUnicode_Check(n))) -#else - if (likely(PyString_Check(n))) -#endif - return __Pyx_PyObject_GetAttrStr(o, n); -#endif - return PyObject_GetAttr(o, n); -} - -/* GetAttr3 */ -static PyObject *__Pyx_GetAttr3Default(PyObject *d) { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) - return NULL; - __Pyx_PyErr_Clear(); - Py_INCREF(d); - return d; -} -static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) { - PyObject *r = __Pyx_GetAttr(o, n); - return (likely(r)) ? r : __Pyx_GetAttr3Default(d); -} - -/* PyDictVersioning */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { - PyObject **dictptr = NULL; - Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; - if (offset) { -#if CYTHON_COMPILING_IN_CPYTHON - dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); -#else - dictptr = _PyObject_GetDictPtr(obj); -#endif - } - return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; -} -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) - return 0; - return obj_dict_version == __Pyx_get_object_dict_version(obj); -} -#endif - -/* GetModuleGlobalName */ -#if CYTHON_USE_DICT_VERSIONS -static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) -#else -static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) -#endif -{ - PyObject *result; -#if !CYTHON_AVOID_BORROWED_REFS -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 - result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); - __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) - if (likely(result)) { - return __Pyx_NewRef(result); - } else if (unlikely(PyErr_Occurred())) { - return NULL; - } -#else - result = PyDict_GetItem(__pyx_d, name); - __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) - if (likely(result)) { - return __Pyx_NewRef(result); - } -#endif -#else - result = PyObject_GetItem(__pyx_d, name); - __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) - if (likely(result)) { - return __Pyx_NewRef(result); - } - PyErr_Clear(); -#endif - return __Pyx_GetBuiltinName(name); -} - -/* Import */ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { - PyObject *empty_list = 0; - PyObject *module = 0; - PyObject *global_dict = 0; - PyObject *empty_dict = 0; - PyObject *list; - #if PY_MAJOR_VERSION < 3 - PyObject *py_import; - py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); - if (!py_import) - goto bad; - #endif - if (from_list) - list = from_list; - else { - empty_list = PyList_New(0); - if (!empty_list) - goto bad; - list = empty_list; - } - global_dict = PyModule_GetDict(__pyx_m); - if (!global_dict) - goto bad; - empty_dict = PyDict_New(); - if (!empty_dict) - goto bad; - { - #if PY_MAJOR_VERSION >= 3 - if (level == -1) { - if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, 1); - if (!module) { - if (!PyErr_ExceptionMatches(PyExc_ImportError)) - goto bad; - PyErr_Clear(); - } - } - level = 0; - } - #endif - if (!module) { - #if PY_MAJOR_VERSION < 3 - PyObject *py_level = PyInt_FromLong(level); - if (!py_level) - goto bad; - module = PyObject_CallFunctionObjArgs(py_import, - name, global_dict, empty_dict, list, py_level, (PyObject *)NULL); - Py_DECREF(py_level); - #else - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, level); - #endif - } - } -bad: - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(py_import); - #endif - Py_XDECREF(empty_list); - Py_XDECREF(empty_dict); - return module; -} - -/* ImportFrom */ -static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { - PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); - if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Format(PyExc_ImportError, - #if PY_MAJOR_VERSION < 3 - "cannot import name %.230s", PyString_AS_STRING(name)); - #else - "cannot import name %S", name); - #endif - } - return value; -} - -/* HasAttr */ -static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { - PyObject *r; - if (unlikely(!__Pyx_PyBaseString_Check(n))) { - PyErr_SetString(PyExc_TypeError, - "hasattr(): attribute name must be string"); - return -1; - } - r = __Pyx_GetAttr(o, n); - if (unlikely(!r)) { - PyErr_Clear(); - return 0; - } else { - Py_DECREF(r); - return 1; - } -} - -/* PyObject_GenericGetAttrNoDict */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { - PyErr_Format(PyExc_AttributeError, -#if PY_MAJOR_VERSION >= 3 - "'%.50s' object has no attribute '%U'", - tp->tp_name, attr_name); -#else - "'%.50s' object has no attribute '%.400s'", - tp->tp_name, PyString_AS_STRING(attr_name)); -#endif - return NULL; -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { - PyObject *descr; - PyTypeObject *tp = Py_TYPE(obj); - if (unlikely(!PyString_Check(attr_name))) { - return PyObject_GenericGetAttr(obj, attr_name); - } - assert(!tp->tp_dictoffset); - descr = _PyType_Lookup(tp, attr_name); - if (unlikely(!descr)) { - return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); - } - Py_INCREF(descr); - #if PY_MAJOR_VERSION < 3 - if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) - #endif - { - descrgetfunc f = Py_TYPE(descr)->tp_descr_get; - if (unlikely(f)) { - PyObject *res = f(descr, obj, (PyObject *)tp); - Py_DECREF(descr); - return res; - } - } - return descr; -} -#endif - -/* PyObject_GenericGetAttr */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { - if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { - return PyObject_GenericGetAttr(obj, attr_name); - } - return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); -} -#endif - -/* SetVTable */ -static int __Pyx_SetVtable(PyObject *dict, void *vtable) { -#if PY_VERSION_HEX >= 0x02070000 - PyObject *ob = PyCapsule_New(vtable, 0, 0); -#else - PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); -#endif - if (!ob) - goto bad; - if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) - goto bad; - Py_DECREF(ob); - return 0; -bad: - Py_XDECREF(ob); - return -1; -} - -/* PyObjectGetAttrStrNoError */ -static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) - __Pyx_PyErr_Clear(); -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { - PyObject *result; -#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { - return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); - } -#endif - result = __Pyx_PyObject_GetAttrStr(obj, attr_name); - if (unlikely(!result)) { - __Pyx_PyObject_GetAttrStr_ClearAttributeError(); - } - return result; -} - -/* SetupReduce */ -static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; - PyObject *name_attr; - name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name); - if (likely(name_attr)) { - ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); - } else { - ret = -1; - } - if (unlikely(ret < 0)) { - PyErr_Clear(); - ret = 0; - } - Py_XDECREF(name_attr); - return ret; -} -static int __Pyx_setup_reduce(PyObject* type_obj) { - int ret = 0; - PyObject *object_reduce = NULL; - PyObject *object_reduce_ex = NULL; - PyObject *reduce = NULL; - PyObject *reduce_ex = NULL; - PyObject *reduce_cython = NULL; - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; -#if CYTHON_USE_PYTYPE_LOOKUP - if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; -#else - if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; -#endif -#if CYTHON_USE_PYTYPE_LOOKUP - object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; -#else - object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; -#endif - reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { -#if CYTHON_USE_PYTYPE_LOOKUP - object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; -#else - object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; -#endif - reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { - reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); - if (likely(reduce_cython)) { - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; - } else if (reduce == object_reduce || PyErr_Occurred()) { - goto __PYX_BAD; - } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { - setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); - if (likely(setstate_cython)) { - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; - } else if (!setstate || PyErr_Occurred()) { - goto __PYX_BAD; - } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } - goto __PYX_GOOD; -__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; -__PYX_GOOD: -#if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -#endif - Py_XDECREF(reduce); - Py_XDECREF(reduce_ex); - Py_XDECREF(reduce_cython); - Py_XDECREF(setstate); - Py_XDECREF(setstate_cython); - return ret; -} - -/* CLineInTraceback */ -#ifndef CYTHON_CLINE_IN_TRACEBACK -static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; -#if CYTHON_COMPILING_IN_CPYTHON - PyObject **cython_runtime_dict; -#endif - if (unlikely(!__pyx_cython_runtime)) { - return c_line; - } - __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); -#if CYTHON_COMPILING_IN_CPYTHON - cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); - if (likely(cython_runtime_dict)) { - __PYX_PY_DICT_LOOKUP_IF_MODIFIED( - use_cline, *cython_runtime_dict, - __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) - } else -#endif - { - PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); - if (use_cline_obj) { - use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; - Py_DECREF(use_cline_obj); - } else { - PyErr_Clear(); - use_cline = NULL; - } - } - if (!use_cline) { - c_line = 0; - PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; - } - __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); - return c_line; -} -#endif - -/* CodeObjectCache */ -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { - int start = 0, mid = 0, end = count - 1; - if (end >= 0 && code_line > entries[end].code_line) { - return count; - } - while (start < end) { - mid = start + (end - start) / 2; - if (code_line < entries[mid].code_line) { - end = mid; - } else if (code_line > entries[mid].code_line) { - start = mid + 1; - } else { - return mid; - } - } - if (code_line <= entries[mid].code_line) { - return mid; - } else { - return mid + 1; - } -} -static PyCodeObject *__pyx_find_code_object(int code_line) { - PyCodeObject* code_object; - int pos; - if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { - return NULL; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { - return NULL; - } - code_object = __pyx_code_cache.entries[pos].code_object; - Py_INCREF(code_object); - return code_object; -} -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - int pos, i; - __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; - if (unlikely(!code_line)) { - return; - } - if (unlikely(!entries)) { - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); - if (likely(entries)) { - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = 64; - __pyx_code_cache.count = 1; - entries[0].code_line = code_line; - entries[0].code_object = code_object; - Py_INCREF(code_object); - } - return; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { - PyCodeObject* tmp = entries[pos].code_object; - entries[pos].code_object = code_object; - Py_DECREF(tmp); - return; - } - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( - __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = new_max; - } - for (i=__pyx_code_cache.count; i>pos; i--) { - entries[i] = entries[i-1]; - } - entries[pos].code_line = code_line; - entries[pos].code_object = code_object; - __pyx_code_cache.count++; - Py_INCREF(code_object); -} - -/* AddTraceback */ -#include "compile.h" -#include "frameobject.h" -#include "traceback.h" -static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; - #if PY_MAJOR_VERSION < 3 - py_srcfile = PyString_FromString(filename); - #else - py_srcfile = PyUnicode_FromString(filename); - #endif - if (!py_srcfile) goto bad; - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); - #endif - } - if (!py_funcname) goto bad; - py_code = __Pyx_PyCode_New( - 0, - 0, - 0, - 0, - 0, - __pyx_empty_bytes, /*PyObject *code,*/ - __pyx_empty_tuple, /*PyObject *consts,*/ - __pyx_empty_tuple, /*PyObject *names,*/ - __pyx_empty_tuple, /*PyObject *varnames,*/ - __pyx_empty_tuple, /*PyObject *freevars,*/ - __pyx_empty_tuple, /*PyObject *cellvars,*/ - py_srcfile, /*PyObject *filename,*/ - py_funcname, /*PyObject *name,*/ - py_line, - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); - Py_DECREF(py_funcname); - return py_code; -bad: - Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); - return NULL; -} -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyFrameObject *py_frame = 0; - PyThreadState *tstate = __Pyx_PyThreadState_Current; - if (c_line) { - c_line = __Pyx_CLineForTraceback(tstate, c_line); - } - py_code = __pyx_find_code_object(c_line ? -c_line : py_line); - if (!py_code) { - py_code = __Pyx_CreateCodeObjectForTraceback( - funcname, c_line, py_line, filename); - if (!py_code) goto bad; - __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); - } - py_frame = PyFrame_New( - tstate, /*PyThreadState *tstate,*/ - py_code, /*PyCodeObject *code,*/ - __pyx_d, /*PyObject *globals,*/ - 0 /*PyObject *locals*/ - ); - if (!py_frame) goto bad; - __Pyx_PyFrame_SetLineNumber(py_frame, py_line); - PyTraceBack_Here(py_frame); -bad: - Py_XDECREF(py_code); - Py_XDECREF(py_frame); -} - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(int) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(int) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(int), - little, !is_unsigned); - } -} - -/* CIntFromPyVerify */ -#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) -#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ - {\ - func_type value = func_value;\ - if (sizeof(target_type) < sizeof(func_type)) {\ - if (unlikely(value != (func_type) (target_type) value)) {\ - func_type zero = 0;\ - if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ - return (target_type) -1;\ - if (is_unsigned && unlikely(value < zero))\ - goto raise_neg_overflow;\ - else\ - goto raise_overflow;\ - }\ - }\ - return (target_type) value;\ - } - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } -} - -/* CIntFromPy */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(long) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (long) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (long) 0; - case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) - case 2: - if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { - return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { - return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { - return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(long) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (long) 0; - case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) - case -2: - if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { - return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - } -#endif - if (sizeof(long) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - if (likely(v)) { - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - int ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); - Py_DECREF(v); - if (likely(!ret)) - return val; - } -#endif - return (long) -1; - } - } else { - long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (long) -1; - val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to long"); - return (long) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to long"); - return (long) -1; -} - -/* CIntFromPy */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if (sizeof(int) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (int) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (int) 0; - case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) - case 2: - if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { - return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 3: - if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { - return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 4: - if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { - return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if (sizeof(int) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { - case 0: return (int) 0; - case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) - case -2: - if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 2: - if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -3: - if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 3: - if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -4: - if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { - return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 4: - if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { - return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - } -#endif - if (sizeof(int) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { -#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -#else - int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } - #endif - if (likely(v)) { - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - int ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); - Py_DECREF(v); - if (likely(!ret)) - return val; - } -#endif - return (int) -1; - } - } else { - int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (int) -1; - val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to int"); - return (int) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to int"); - return (int) -1; -} - -/* FastTypeChecks */ -#if CYTHON_COMPILING_IN_CPYTHON -static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { - while (a) { - a = a->tp_base; - if (a == b) - return 1; - } - return b == &PyBaseObject_Type; -} -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { - PyObject *mro; - if (a == b) return 1; - mro = a->tp_mro; - if (likely(mro)) { - Py_ssize_t i, n; - n = PyTuple_GET_SIZE(mro); - for (i = 0; i < n; i++) { - if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) - return 1; - } - return 0; - } - return __Pyx_InBases(a, b); -} -#if PY_MAJOR_VERSION == 2 -static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { - PyObject *exception, *value, *tb; - int res; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&exception, &value, &tb); - res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - if (!res) { - res = PyObject_IsSubclass(err, exc_type2); - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - } - __Pyx_ErrRestore(exception, value, tb); - return res; -} -#else -static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { - int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; - if (!res) { - res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); - } - return res; -} -#endif -static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { - Py_ssize_t i, n; - assert(PyExceptionClass_Check(exc_type)); - n = PyTuple_GET_SIZE(tuple); -#if PY_MAJOR_VERSION >= 3 - for (i=0; ip) { - #if PY_MAJOR_VERSION < 3 - if (t->is_unicode) { - *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); - } else if (t->intern) { - *t->p = PyString_InternFromString(t->s); - } else { - *t->p = PyString_FromStringAndSize(t->s, t->n - 1); - } - #else - if (t->is_unicode | t->is_str) { - if (t->intern) { - *t->p = PyUnicode_InternFromString(t->s); - } else if (t->encoding) { - *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); - } else { - *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); - } - } else { - *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); - } - #endif - if (!*t->p) - return -1; - if (PyObject_Hash(*t->p) == -1) - return -1; - ++t; - } - return 0; -} - -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { - return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); -} -static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { - Py_ssize_t ignore; - return __Pyx_PyObject_AsStringAndSize(o, &ignore); -} -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -#if !CYTHON_PEP393_ENABLED -static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { - char* defenc_c; - PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); - if (!defenc) return NULL; - defenc_c = PyBytes_AS_STRING(defenc); -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - { - char* end = defenc_c + PyBytes_GET_SIZE(defenc); - char* c; - for (c = defenc_c; c < end; c++) { - if ((unsigned char) (*c) >= 128) { - PyUnicode_AsASCIIString(o); - return NULL; - } - } - } -#endif - *length = PyBytes_GET_SIZE(defenc); - return defenc_c; -} -#else -static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { - if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - if (likely(PyUnicode_IS_ASCII(o))) { - *length = PyUnicode_GET_LENGTH(o); - return PyUnicode_AsUTF8(o); - } else { - PyUnicode_AsASCIIString(o); - return NULL; - } -#else - return PyUnicode_AsUTF8AndSize(o, length); -#endif -} -#endif -#endif -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT - if ( -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - __Pyx_sys_getdefaultencoding_not_ascii && -#endif - PyUnicode_Check(o)) { - return __Pyx_PyUnicode_AsStringAndSize(o, length); - } else -#endif -#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) - if (PyByteArray_Check(o)) { - *length = PyByteArray_GET_SIZE(o); - return PyByteArray_AS_STRING(o); - } else -#endif - { - char* result; - int r = PyBytes_AsStringAndSize(o, &result, length); - if (unlikely(r < 0)) { - return NULL; - } else { - return result; - } - } -} -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { - int is_true = x == Py_True; - if (is_true | (x == Py_False) | (x == Py_None)) return is_true; - else return PyObject_IsTrue(x); -} -static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { - int retval; - if (unlikely(!x)) return -1; - retval = __Pyx_PyObject_IsTrue(x); - Py_DECREF(x); - return retval; -} -static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { -#if PY_MAJOR_VERSION >= 3 - if (PyLong_Check(result)) { - if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, - "__int__ returned non-int (type %.200s). " - "The ability to return an instance of a strict subclass of int " - "is deprecated, and may be removed in a future version of Python.", - Py_TYPE(result)->tp_name)) { - Py_DECREF(result); - return NULL; - } - return result; - } -#endif - PyErr_Format(PyExc_TypeError, - "__%.4s__ returned non-%.4s (type %.200s)", - type_name, type_name, Py_TYPE(result)->tp_name); - Py_DECREF(result); - return NULL; -} -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { -#if CYTHON_USE_TYPE_SLOTS - PyNumberMethods *m; -#endif - const char *name = NULL; - PyObject *res = NULL; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x) || PyLong_Check(x))) -#else - if (likely(PyLong_Check(x))) -#endif - return __Pyx_NewRef(x); -#if CYTHON_USE_TYPE_SLOTS - m = Py_TYPE(x)->tp_as_number; - #if PY_MAJOR_VERSION < 3 - if (m && m->nb_int) { - name = "int"; - res = m->nb_int(x); - } - else if (m && m->nb_long) { - name = "long"; - res = m->nb_long(x); - } - #else - if (likely(m && m->nb_int)) { - name = "int"; - res = m->nb_int(x); - } - #endif -#else - if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { - res = PyNumber_Int(x); - } -#endif - if (likely(res)) { -#if PY_MAJOR_VERSION < 3 - if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { -#else - if (unlikely(!PyLong_CheckExact(res))) { -#endif - return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); - } - } - else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, - "an integer is required"); - } - return res; -} -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_ssize_t ival; - PyObject *x; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(b))) { - if (sizeof(Py_ssize_t) >= sizeof(long)) - return PyInt_AS_LONG(b); - else - return PyInt_AsSsize_t(b); - } -#endif - if (likely(PyLong_CheckExact(b))) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)b)->ob_digit; - const Py_ssize_t size = Py_SIZE(b); - if (likely(__Pyx_sst_abs(size) <= 1)) { - ival = likely(size) ? digits[0] : 0; - if (size == -1) ival = -ival; - return ival; - } else { - switch (size) { - case 2: - if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { - return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -2: - if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case 3: - if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { - return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -3: - if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case 4: - if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { - return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -4: - if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - } - } - #endif - return PyLong_AsSsize_t(b); - } - x = PyNumber_Index(b); - if (!x) return -1; - ival = PyInt_AsSsize_t(x); - Py_DECREF(x); - return ival; -} -static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); -} -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { - return PyInt_FromSize_t(ival); -} - - -#endif /* Py_PYTHON_H */ diff --git a/aiohttp/_frozenlist.pyx b/aiohttp/_frozenlist.pyx deleted file mode 100644 index b130577..0000000 --- a/aiohttp/_frozenlist.pyx +++ /dev/null @@ -1,108 +0,0 @@ -from collections.abc import MutableSequence - - -cdef class FrozenList: - - cdef readonly bint frozen - cdef list _items - - def __init__(self, items=None): - self.frozen = False - if items is not None: - items = list(items) - else: - items = [] - self._items = items - - cdef object _check_frozen(self): - if self.frozen: - raise RuntimeError("Cannot modify frozen list.") - - cdef inline object _fast_len(self): - return len(self._items) - - def freeze(self): - self.frozen = True - - def __getitem__(self, index): - return self._items[index] - - def __setitem__(self, index, value): - self._check_frozen() - self._items[index] = value - - def __delitem__(self, index): - self._check_frozen() - del self._items[index] - - def __len__(self): - return self._fast_len() - - def __iter__(self): - return self._items.__iter__() - - def __reversed__(self): - return self._items.__reversed__() - - def __richcmp__(self, other, op): - if op == 0: # < - return list(self) < other - if op == 1: # <= - return list(self) <= other - if op == 2: # == - return list(self) == other - if op == 3: # != - return list(self) != other - if op == 4: # > - return list(self) > other - if op == 5: # => - return list(self) >= other - - def insert(self, pos, item): - self._check_frozen() - self._items.insert(pos, item) - - def __contains__(self, item): - return item in self._items - - def __iadd__(self, items): - self._check_frozen() - self._items += list(items) - return self - - def index(self, item): - return self._items.index(item) - - def remove(self, item): - self._check_frozen() - self._items.remove(item) - - def clear(self): - self._check_frozen() - self._items.clear() - - def extend(self, items): - self._check_frozen() - self._items += list(items) - - def reverse(self): - self._check_frozen() - self._items.reverse() - - def pop(self, index=-1): - self._check_frozen() - return self._items.pop(index) - - def append(self, item): - self._check_frozen() - return self._items.append(item) - - def count(self, item): - return self._items.count(item) - - def __repr__(self): - return ''.format(self.frozen, - self._items) - - -MutableSequence.register(FrozenList) diff --git a/aiohttp/_helpers.c b/aiohttp/_helpers.c index 764f998..d6400b2 100644 --- a/aiohttp/_helpers.c +++ b/aiohttp/_helpers.c @@ -1,14 +1,16 @@ -/* Generated by Cython 0.29.21 */ +/* Generated by Cython 0.29.32 */ +#ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN +#endif /* PY_SSIZE_T_CLEAN */ #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else -#define CYTHON_ABI "0_29_21" -#define CYTHON_HEX_VERSION 0x001D15F0 +#define CYTHON_ABI "0_29_32" +#define CYTHON_HEX_VERSION 0x001D20F0 #define CYTHON_FUTURE_DIVISION 1 #include #ifndef offsetof @@ -47,6 +49,7 @@ #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_PYTYPE_LOOKUP @@ -83,10 +86,14 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_HEX >= 0x07030900) + #endif #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -124,10 +131,59 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 + #endif +#elif defined(PY_NOGIL) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #ifndef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 1 + #endif + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 1 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -155,7 +211,7 @@ #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif - #if PY_VERSION_HEX < 0x030300F0 + #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) @@ -170,11 +226,14 @@ #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif - #ifndef CYTHON_FAST_THREAD_STATE + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #elif !defined(CYTHON_FAST_THREAD_STATE) #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 + #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030A0000) #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) @@ -185,15 +244,23 @@ #ifndef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) #endif - #ifndef CYTHON_USE_EXC_INFO_STACK + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #elif !defined(CYTHON_USE_EXC_INFO_STACK) #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) #endif + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 1 + #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if CYTHON_USE_PYLONG_INTERNALS - #include "longintrepr.h" + #if PY_MAJOR_VERSION < 3 + #include "longintrepr.h" + #endif #undef SHIFT #undef BASE #undef MASK @@ -310,9 +377,68 @@ #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) + #define __Pyx_DefaultClassType PyType_Type +#if PY_VERSION_HEX >= 0x030B00A1 + static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f, + PyObject *code, PyObject *c, PyObject* n, PyObject *v, + PyObject *fv, PyObject *cell, PyObject* fn, + PyObject *name, int fline, PyObject *lnos) { + PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL; + PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL; + const char *fn_cstr=NULL; + const char *name_cstr=NULL; + PyCodeObject* co=NULL; + PyObject *type, *value, *traceback; + PyErr_Fetch(&type, &value, &traceback); + if (!(kwds=PyDict_New())) goto end; + if (!(argcount=PyLong_FromLong(a))) goto end; + if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end; + if (!(posonlyargcount=PyLong_FromLong(0))) goto end; + if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end; + if (!(kwonlyargcount=PyLong_FromLong(k))) goto end; + if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end; + if (!(nlocals=PyLong_FromLong(l))) goto end; + if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end; + if (!(stacksize=PyLong_FromLong(s))) goto end; + if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end; + if (!(flags=PyLong_FromLong(f))) goto end; + if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end; + if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end; + if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end; + if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end; + if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too; + if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here + if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too; + Py_XDECREF((PyObject*)co); + co = (PyCodeObject*)call_result; + call_result = NULL; + if (0) { + cleanup_code_too: + Py_XDECREF((PyObject*)co); + co = NULL; + } + end: + Py_XDECREF(kwds); + Py_XDECREF(argcount); + Py_XDECREF(posonlyargcount); + Py_XDECREF(kwonlyargcount); + Py_XDECREF(nlocals); + Py_XDECREF(stacksize); + Py_XDECREF(replace); + Py_XDECREF(call_result); + Py_XDECREF(empty); + if (type) { + PyErr_Restore(type, value, traceback); + } + return co; + } #else #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) @@ -426,8 +552,12 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 + #if defined(PyUnicode_IS_READY) #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) + #else + #define __Pyx_PyUnicode_READY(op) (0) + #endif #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) @@ -436,7 +566,11 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) + #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) + #endif #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) #endif @@ -542,10 +676,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) @@ -570,8 +704,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { } __Pyx_PyAsyncMethodsStruct; #endif -#if defined(WIN32) || defined(MS_WINDOWS) - #define _USE_MATH_DEFINES +#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS) + #if !defined(_USE_MATH_DEFINES) + #define _USE_MATH_DEFINES + #endif #endif #include #ifdef NAN @@ -701,6 +837,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else @@ -1011,13 +1148,21 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif +#if CYTHON_FAST_PYCALL static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif // CYTHON_FAST_PYCALL #endif /* PyObjectCall.proto */ @@ -1119,6 +1264,12 @@ static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_ve static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); #endif +/* PySequenceContains.proto */ +static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { + int result = PySequence_Contains(seq, item); + return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); +} + /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); @@ -1174,12 +1325,17 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); +/* GCCDiagnostics.proto */ +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define __Pyx_HAS_GCC_DIAGNOSTIC +#endif /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); + /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); @@ -1244,9 +1400,9 @@ static const char __pyx_k_aiohttp__helpers[] = "aiohttp._helpers"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; static const char __pyx_k_pyx_unpickle_reify[] = "__pyx_unpickle_reify"; static const char __pyx_k_reified_property_is_read_only[] = "reified property is read-only"; -static const char __pyx_k_Incompatible_checksums_s_vs_0x77[] = "Incompatible checksums (%s vs 0x770cb8f = (name, wrapped))"; +static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0x770cb8f, 0xeecf561, 0x545205d) = (name, wrapped))"; static PyObject *__pyx_n_s_AttributeError; -static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x77; +static PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0; static PyObject *__pyx_n_s_KeyError; static PyObject *__pyx_n_s_PickleError; static PyObject *__pyx_n_s_aiohttp__helpers; @@ -1285,10 +1441,13 @@ static PyObject *__pyx_pf_7aiohttp_8_helpers_5reify_6__reduce_cython__(struct __ static PyObject *__pyx_pf_7aiohttp_8_helpers_5reify_8__setstate_cython__(struct __pyx_obj_7aiohttp_8_helpers_reify *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7aiohttp_8_helpers___pyx_unpickle_reify(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new_7aiohttp_8_helpers_reify(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_int_88416349; static PyObject *__pyx_int_124832655; +static PyObject *__pyx_int_250410337; static PyObject *__pyx_tuple_; static PyObject *__pyx_tuple__2; -static PyObject *__pyx_codeobj__3; +static PyObject *__pyx_tuple__3; +static PyObject *__pyx_codeobj__4; /* Late includes */ /* "aiohttp/_helpers.pyx":13 @@ -2259,12 +2418,12 @@ static PyObject *__pyx_pf_7aiohttp_8_helpers___pyx_unpickle_reify(CYTHON_UNUSED PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -2273,114 +2432,118 @@ static PyObject *__pyx_pf_7aiohttp_8_helpers___pyx_unpickle_reify(CYTHON_UNUSED /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result - * if __pyx_checksum != 0x770cb8f: # <<<<<<<<<<<<<< + * if __pyx_checksum not in (0x770cb8f, 0xeecf561, 0x545205d): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x770cb8f = (name, wrapped))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x770cb8f, 0xeecf561, 0x545205d) = (name, wrapped))" % __pyx_checksum) */ - __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x770cb8f) != 0); - if (__pyx_t_1) { + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__2, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { /* "(tree fragment)":5 * cdef object __pyx_result - * if __pyx_checksum != 0x770cb8f: + * if __pyx_checksum not in (0x770cb8f, 0xeecf561, 0x545205d): * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x770cb8f = (name, wrapped))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x770cb8f, 0xeecf561, 0x545205d) = (name, wrapped))" % __pyx_checksum) * __pyx_result = reify.__new__(__pyx_type) */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_PickleError); __Pyx_GIVEREF(__pyx_n_s_PickleError); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); - __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_2); - __pyx_v___pyx_PickleError = __pyx_t_2; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError); + __pyx_t_4 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_1); + __pyx_v___pyx_PickleError = __pyx_t_1; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "(tree fragment)":6 - * if __pyx_checksum != 0x770cb8f: + * if __pyx_checksum not in (0x770cb8f, 0xeecf561, 0x545205d): * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x770cb8f = (name, wrapped))" % __pyx_checksum) # <<<<<<<<<<<<<< + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x770cb8f, 0xeecf561, 0x545205d) = (name, wrapped))" % __pyx_checksum) # <<<<<<<<<<<<<< * __pyx_result = reify.__new__(__pyx_type) * if __pyx_state is not None: */ - __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x77, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_v___pyx_PickleError); - __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_5); + __pyx_t_1 = __pyx_v___pyx_PickleError; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); + __Pyx_DECREF_SET(__pyx_t_1, function); } } - __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 6, __pyx_L1_error) /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result - * if __pyx_checksum != 0x770cb8f: # <<<<<<<<<<<<<< + * if __pyx_checksum not in (0x770cb8f, 0xeecf561, 0x545205d): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x770cb8f = (name, wrapped))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x770cb8f, 0xeecf561, 0x545205d) = (name, wrapped))" % __pyx_checksum) */ } /* "(tree fragment)":7 * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x770cb8f = (name, wrapped))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x770cb8f, 0xeecf561, 0x545205d) = (name, wrapped))" % __pyx_checksum) * __pyx_result = reify.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle_reify__set_state( __pyx_result, __pyx_state) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7aiohttp_8_helpers_reify), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_4); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7aiohttp_8_helpers_reify), __pyx_n_s_new); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); + __Pyx_DECREF_SET(__pyx_t_1, function); } } - __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v___pyx_result = __pyx_t_3; - __pyx_t_3 = 0; + __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v___pyx_type); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v___pyx_result = __pyx_t_4; + __pyx_t_4 = 0; /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x770cb8f = (name, wrapped))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x770cb8f, 0xeecf561, 0x545205d) = (name, wrapped))" % __pyx_checksum) * __pyx_result = reify.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_reify__set_state( __pyx_result, __pyx_state) * return __pyx_result */ - __pyx_t_1 = (__pyx_v___pyx_state != Py_None); - __pyx_t_6 = (__pyx_t_1 != 0); - if (__pyx_t_6) { + __pyx_t_3 = (__pyx_v___pyx_state != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { /* "(tree fragment)":9 * __pyx_result = reify.__new__(__pyx_type) @@ -2390,12 +2553,12 @@ static PyObject *__pyx_pf_7aiohttp_8_helpers___pyx_unpickle_reify(CYTHON_UNUSED * cdef __pyx_unpickle_reify__set_state(reify __pyx_result, tuple __pyx_state): */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error) - __pyx_t_3 = __pyx_f_7aiohttp_8_helpers___pyx_unpickle_reify__set_state(((struct __pyx_obj_7aiohttp_8_helpers_reify *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_7aiohttp_8_helpers___pyx_unpickle_reify__set_state(((struct __pyx_obj_7aiohttp_8_helpers_reify *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x770cb8f = (name, wrapped))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x770cb8f, 0xeecf561, 0x545205d) = (name, wrapped))" % __pyx_checksum) * __pyx_result = reify.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_reify__set_state( __pyx_result, __pyx_state) @@ -2423,10 +2586,10 @@ static PyObject *__pyx_pf_7aiohttp_8_helpers___pyx_unpickle_reify(CYTHON_UNUSED /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("aiohttp._helpers.__pyx_unpickle_reify", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -2726,12 +2889,15 @@ static PyTypeObject __pyx_type_7aiohttp_8_helpers_reify = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static PyMethodDef __pyx_methods[] = { @@ -2781,7 +2947,7 @@ static struct PyModuleDef __pyx_moduledef = { static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1}, - {&__pyx_kp_s_Incompatible_checksums_s_vs_0x77, __pyx_k_Incompatible_checksums_s_vs_0x77, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x77), 0, 0, 1, 0}, + {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0}, {&__pyx_n_s_KeyError, __pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 0, 1, 1}, {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_aiohttp__helpers, __pyx_k_aiohttp__helpers, sizeof(__pyx_k_aiohttp__helpers), 0, 0, 1, 1}, @@ -2835,15 +3001,26 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); - /* "(tree fragment)":1 - * def __pyx_unpickle_reify(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result + * if __pyx_checksum not in (0x770cb8f, 0xeecf561, 0x545205d): # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x770cb8f, 0xeecf561, 0x545205d) = (name, wrapped))" % __pyx_checksum) */ - __pyx_tuple__2 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_tuple__2 = PyTuple_Pack(3, __pyx_int_124832655, __pyx_int_250410337, __pyx_int_88416349); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); - __pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__2, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_reify, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(1, 1, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __pyx_unpickle_reify(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + __pyx_tuple__3 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__3); + __Pyx_GIVEREF(__pyx_tuple__3); + __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__3, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_reify, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -2853,7 +3030,9 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); + __pyx_int_88416349 = PyInt_FromLong(88416349L); if (unlikely(!__pyx_int_88416349)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_124832655 = PyInt_FromLong(124832655L); if (unlikely(!__pyx_int_124832655)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_250410337 = PyInt_FromLong(250410337L); if (unlikely(!__pyx_int_250410337)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -3084,11 +3263,9 @@ if (!__Pyx_RefNanny) { #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS PyEval_InitThreads(); #endif - #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; @@ -3790,7 +3967,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; - ternaryfunc call = func->ob_type->tp_call; + ternaryfunc call = Py_TYPE(func)->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) @@ -3877,7 +4054,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); #if CYTHON_FAST_PYCCALL - } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { + } else if (__Pyx_PyFastCFunction_Check(func)) { return __Pyx_PyCFunction_FastCall(func, &arg, 1); #endif } @@ -4356,17 +4533,35 @@ static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { static int __Pyx_setup_reduce(PyObject* type_obj) { int ret = 0; PyObject *object_reduce = NULL; + PyObject *object_getstate = NULL; PyObject *object_reduce_ex = NULL; PyObject *reduce = NULL; PyObject *reduce_ex = NULL; PyObject *reduce_cython = NULL; PyObject *setstate = NULL; PyObject *setstate_cython = NULL; + PyObject *getstate = NULL; #if CYTHON_USE_PYTYPE_LOOKUP - if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; + getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate); #else - if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; + getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate); + if (!getstate && PyErr_Occurred()) { + goto __PYX_BAD; + } #endif + if (getstate) { +#if CYTHON_USE_PYTYPE_LOOKUP + object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate); +#else + object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate); + if (!object_getstate && PyErr_Occurred()) { + goto __PYX_BAD; + } +#endif + if (object_getstate != getstate) { + goto __PYX_GOOD; + } + } #if CYTHON_USE_PYTYPE_LOOKUP object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; #else @@ -4411,6 +4606,8 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { #if !CYTHON_USE_PYTYPE_LOOKUP Py_XDECREF(object_reduce); Py_XDECREF(object_reduce_ex); + Py_XDECREF(object_getstate); + Py_XDECREF(getstate); #endif Py_XDECREF(reduce); Py_XDECREF(reduce_ex); @@ -4452,7 +4649,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int } if (!use_cline) { c_line = 0; - PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; @@ -4546,33 +4743,40 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { #include "compile.h" #include "frameobject.h" #include "traceback.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; + PyCodeObject *py_code = NULL; + PyObject *py_funcname = NULL; #if PY_MAJOR_VERSION < 3 + PyObject *py_srcfile = NULL; py_srcfile = PyString_FromString(filename); - #else - py_srcfile = PyUnicode_FromString(filename); - #endif if (!py_srcfile) goto bad; + #endif if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; + funcname = PyUnicode_AsUTF8(py_funcname); + if (!funcname) goto bad; #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); + if (!py_funcname) goto bad; #endif } - if (!py_funcname) goto bad; + #if PY_MAJOR_VERSION < 3 py_code = __Pyx_PyCode_New( 0, 0, @@ -4591,11 +4795,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); - Py_DECREF(py_funcname); + #else + py_code = PyCode_NewEmpty(filename, funcname, py_line); + #endif + Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline return py_code; bad: - Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_srcfile); + #endif return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, @@ -4603,14 +4812,24 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject *ptype, *pvalue, *ptraceback; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); - if (!py_code) goto bad; + if (!py_code) { + /* If the code object creation fails, then we should clear the + fetched exception references and propagate the new exception */ + Py_XDECREF(ptype); + Py_XDECREF(pvalue); + Py_XDECREF(ptraceback); + goto bad; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( @@ -4649,40 +4868,16 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, return (target_type) value;\ } -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } -} - /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -4869,9 +5064,54 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { return (long) -1; } +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(long) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(long), + little, !is_unsigned); + } +} + /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -5160,11 +5400,33 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { - char ctversion[4], rtversion[4]; - PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); - PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); - if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { + char ctversion[5]; + int same=1, i, found_dot; + const char* rt_from_call = Py_GetVersion(); + PyOS_snprintf(ctversion, 5, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); + found_dot = 0; + for (i = 0; i < 4; i++) { + if (!ctversion[i]) { + same = (rt_from_call[i] < '0' || rt_from_call[i] > '9'); + break; + } + if (rt_from_call[i] != ctversion[i]) { + same = 0; + break; + } + } + if (!same) { + char rtversion[5] = {'\0'}; char message[200]; + for (i=0; i<4; ++i) { + if (rt_from_call[i] == '.') { + if (found_dot) break; + found_dot = 1; + } else if (rt_from_call[i] < '0' || rt_from_call[i] > '9') { + break; + } + rtversion[i] = rt_from_call[i]; + } PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", @@ -5422,6 +5684,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_DECREF(x); return ival; } +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { + if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { + return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); +#if PY_MAJOR_VERSION < 3 + } else if (likely(PyInt_CheckExact(o))) { + return PyInt_AS_LONG(o); +#endif + } else { + Py_ssize_t ival; + PyObject *x; + x = PyNumber_Index(o); + if (!x) return -1; + ival = PyInt_AsLong(x); + Py_DECREF(x); + return ival; + } +} static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } diff --git a/aiohttp/_http_parser.c b/aiohttp/_http_parser.c index 096446e..9aafd43 100644 --- a/aiohttp/_http_parser.c +++ b/aiohttp/_http_parser.c @@ -1,14 +1,16 @@ -/* Generated by Cython 0.29.21 */ +/* Generated by Cython 0.29.32 */ +#ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN +#endif /* PY_SSIZE_T_CLEAN */ #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else -#define CYTHON_ABI "0_29_21" -#define CYTHON_HEX_VERSION 0x001D15F0 +#define CYTHON_ABI "0_29_32" +#define CYTHON_HEX_VERSION 0x001D20F0 #define CYTHON_FUTURE_DIVISION 1 #include #ifndef offsetof @@ -47,6 +49,7 @@ #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_PYTYPE_LOOKUP @@ -83,10 +86,14 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_HEX >= 0x07030900) + #endif #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -124,10 +131,59 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 + #endif +#elif defined(PY_NOGIL) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #ifndef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 1 + #endif + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 1 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -155,7 +211,7 @@ #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif - #if PY_VERSION_HEX < 0x030300F0 + #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) @@ -170,11 +226,14 @@ #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif - #ifndef CYTHON_FAST_THREAD_STATE + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #elif !defined(CYTHON_FAST_THREAD_STATE) #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 + #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030A0000) #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) @@ -185,15 +244,23 @@ #ifndef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) #endif - #ifndef CYTHON_USE_EXC_INFO_STACK + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #elif !defined(CYTHON_USE_EXC_INFO_STACK) #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) #endif + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 1 + #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if CYTHON_USE_PYLONG_INTERNALS - #include "longintrepr.h" + #if PY_MAJOR_VERSION < 3 + #include "longintrepr.h" + #endif #undef SHIFT #undef BASE #undef MASK @@ -310,9 +377,68 @@ #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) + #define __Pyx_DefaultClassType PyType_Type +#if PY_VERSION_HEX >= 0x030B00A1 + static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f, + PyObject *code, PyObject *c, PyObject* n, PyObject *v, + PyObject *fv, PyObject *cell, PyObject* fn, + PyObject *name, int fline, PyObject *lnos) { + PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL; + PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL; + const char *fn_cstr=NULL; + const char *name_cstr=NULL; + PyCodeObject* co=NULL; + PyObject *type, *value, *traceback; + PyErr_Fetch(&type, &value, &traceback); + if (!(kwds=PyDict_New())) goto end; + if (!(argcount=PyLong_FromLong(a))) goto end; + if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end; + if (!(posonlyargcount=PyLong_FromLong(0))) goto end; + if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end; + if (!(kwonlyargcount=PyLong_FromLong(k))) goto end; + if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end; + if (!(nlocals=PyLong_FromLong(l))) goto end; + if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end; + if (!(stacksize=PyLong_FromLong(s))) goto end; + if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end; + if (!(flags=PyLong_FromLong(f))) goto end; + if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end; + if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end; + if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end; + if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end; + if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too; + if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here + if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too; + Py_XDECREF((PyObject*)co); + co = (PyCodeObject*)call_result; + call_result = NULL; + if (0) { + cleanup_code_too: + Py_XDECREF((PyObject*)co); + co = NULL; + } + end: + Py_XDECREF(kwds); + Py_XDECREF(argcount); + Py_XDECREF(posonlyargcount); + Py_XDECREF(kwonlyargcount); + Py_XDECREF(nlocals); + Py_XDECREF(stacksize); + Py_XDECREF(replace); + Py_XDECREF(call_result); + Py_XDECREF(empty); + if (type) { + PyErr_Restore(type, value, traceback); + } + return co; + } #else #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) @@ -426,8 +552,12 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 + #if defined(PyUnicode_IS_READY) #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) + #else + #define __Pyx_PyUnicode_READY(op) (0) + #endif #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) @@ -436,7 +566,11 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) + #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) + #endif #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) #endif @@ -542,10 +676,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) @@ -570,8 +704,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { } __Pyx_PyAsyncMethodsStruct; #endif -#if defined(WIN32) || defined(MS_WINDOWS) - #define _USE_MATH_DEFINES +#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS) + #if !defined(_USE_MATH_DEFINES) + #define _USE_MATH_DEFINES + #endif #endif #include #ifdef NAN @@ -610,7 +746,7 @@ static CYTHON_INLINE float __PYX_NAN() { #include "pythread.h" #include #include -#include "../vendor/http-parser/http_parser.h" +#include "../vendor/llhttp/build/llhttp.h" #include "_find_header.h" #ifdef _OPENMP #include @@ -708,6 +844,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else @@ -840,12 +977,12 @@ struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__; struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr; struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init; -/* "aiohttp/_http_parser.pyx":327 - * PyMem_Free(self._csettings) +/* "aiohttp/_http_parser.pyx":328 * - * cdef _init(self, cparser.http_parser_type mode, # <<<<<<<<<<<<<< - * object protocol, object loop, int limit, - * object timer=None, + * cdef _init( + * self, cparser.llhttp_type mode, # <<<<<<<<<<<<<< + * object protocol, object loop, int limit, + * object timer=None, */ struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init { int __pyx_n; @@ -912,8 +1049,8 @@ struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser { PyObject_HEAD struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *__pyx_vtab; - struct http_parser *_cparser; - struct http_parser_settings *_csettings; + llhttp_t *_cparser; + llhttp_settings_t *_csettings; PyObject *_raw_name; PyObject *_raw_value; int _has_value; @@ -945,24 +1082,24 @@ struct __pyx_obj_7aiohttp_12_http_parser_HttpParser { }; -/* "aiohttp/_http_parser.pyx":563 +/* "aiohttp/_http_parser.pyx":574 * * * cdef class HttpRequestParser(HttpParser): # <<<<<<<<<<<<<< * - * def __init__(self, protocol, loop, int limit, timer=None, + * def __init__( */ struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser __pyx_base; }; -/* "aiohttp/_http_parser.pyx":591 +/* "aiohttp/_http_parser.pyx":638 * * * cdef class HttpResponseParser(HttpParser): # <<<<<<<<<<<<<< * - * def __init__(self, protocol, loop, int limit, timer=None, + * def __init__( */ struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser __pyx_base; @@ -1035,7 +1172,7 @@ struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr { */ struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser { - PyObject *(*_init)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, enum http_parser_type, PyObject *, PyObject *, int, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args); + PyObject *(*_init)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, enum llhttp_type, PyObject *, PyObject *, int, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args); PyObject *(*_process_header)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *); PyObject *(*_on_header_field)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, char *, size_t); PyObject *(*_on_header_value)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, char *, size_t); @@ -1050,12 +1187,12 @@ static struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *__pyx_vtabptr static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *); -/* "aiohttp/_http_parser.pyx":563 +/* "aiohttp/_http_parser.pyx":574 * * * cdef class HttpRequestParser(HttpParser): # <<<<<<<<<<<<<< * - * def __init__(self, protocol, loop, int limit, timer=None, + * def __init__( */ struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpRequestParser { @@ -1064,12 +1201,12 @@ struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpRequestParser { static struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpRequestParser *__pyx_vtabptr_7aiohttp_12_http_parser_HttpRequestParser; -/* "aiohttp/_http_parser.pyx":591 +/* "aiohttp/_http_parser.pyx":638 * * * cdef class HttpResponseParser(HttpParser): # <<<<<<<<<<<<<< * - * def __init__(self, protocol, loop, int limit, timer=None, + * def __init__( */ struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpResponseParser { @@ -1398,13 +1535,21 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif +#if CYTHON_FAST_PYCALL static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif // CYTHON_FAST_PYCALL #endif /* PyObjectCall.proto */ @@ -1473,6 +1618,18 @@ static CYTHON_INLINE PyObject* __Pyx_decode_bytearray( start, stop, encoding, errors, decode_func); } +/* GetItemIntUnicode.proto */ +#define __Pyx_GetItemInt_Unicode(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_Unicode_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ + (PyErr_SetString(PyExc_IndexError, "string index out of range"), (Py_UCS4)-1)) +static CYTHON_INLINE Py_UCS4 __Pyx_GetItemInt_Unicode_Fast(PyObject* ustring, Py_ssize_t i, + int wraparound, int boundscheck); + +/* PyUnicode_Substring.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Substring( + PyObject* text, Py_ssize_t start, Py_ssize_t stop); + /* GetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) @@ -1505,29 +1662,6 @@ static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) #endif -/* decode_c_string.proto */ -static CYTHON_INLINE PyObject* __Pyx_decode_c_string( - const char* cstring, Py_ssize_t start, Py_ssize_t stop, - const char* encoding, const char* errors, - PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); - -/* UnpackUnboundCMethod.proto */ -typedef struct { - PyObject *type; - PyObject **method_name; - PyCFunction func; - PyObject *method; - int flag; -} __Pyx_CachedCFunction; - -/* CallUnboundCMethod1.proto */ -static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg); -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg); -#else -#define __Pyx_CallUnboundCMethod1(cfunc, self, arg) __Pyx__CallUnboundCMethod1(cfunc, self, arg) -#endif - /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); @@ -1571,6 +1705,12 @@ enum __Pyx_ImportType_CheckSize { static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size); #endif +/* decode_c_string.proto */ +static CYTHON_INLINE PyObject* __Pyx_decode_c_string( + const char* cstring, Py_ssize_t start, Py_ssize_t stop, + const char* encoding, const char* errors, + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); + /* CLineInTraceback.proto */ #ifdef CYTHON_CLINE_IN_TRACEBACK #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) @@ -1597,26 +1737,19 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_short(unsigned short value); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); +/* GCCDiagnostics.proto */ +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define __Pyx_HAS_GCC_DIAGNOSTIC +#endif /* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint16_t(uint16_t value); +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); /* CIntFromPy.proto */ -static CYTHON_INLINE enum http_method __Pyx_PyInt_As_enum__http_method(PyObject *); +static CYTHON_INLINE enum llhttp_method __Pyx_PyInt_As_enum__llhttp_method(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); @@ -1624,6 +1757,12 @@ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint8_t(uint8_t value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); + /* FastTypeChecks.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) @@ -1669,6 +1808,7 @@ typedef struct { PyObject *gi_qualname; PyObject *gi_modulename; PyObject *gi_code; + PyObject *gi_frame; int resume_label; char is_running; } __pyx_CoroutineObject; @@ -1727,7 +1867,7 @@ static int __Pyx_check_binary_version(void); /* InitStrings.proto */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); -static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, enum http_parser_type __pyx_v_mode, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args); /* proto*/ +static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, enum llhttp_type __pyx_v_mode, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args); /* proto*/ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto*/ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, char *__pyx_v_at, size_t __pyx_v_length); /* proto*/ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, char *__pyx_v_at, size_t __pyx_v_length); /* proto*/ @@ -1864,18 +2004,17 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_http_method_str(i static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_find_header(PyObject *); /*proto*/ static PyObject *__pyx_f_7aiohttp_12_http_parser__new_request_message(PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int, PyObject *, int, int, PyObject *); /*proto*/ static PyObject *__pyx_f_7aiohttp_12_http_parser__new_response_message(PyObject *, int, PyObject *, PyObject *, PyObject *, int, PyObject *, int, int); /*proto*/ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parser *); /*proto*/ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *, char const *, size_t); /*proto*/ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *, char const *, size_t); /*proto*/ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser *, char const *, size_t); /*proto*/ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser *, char const *, size_t); /*proto*/ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_parser *); /*proto*/ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *, char const *, size_t); /*proto*/ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_parser *); /*proto*/ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser *); /*proto*/ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_parser *); /*proto*/ -static PyObject *__pyx_f_7aiohttp_12_http_parser_parser_error_from_errno(enum http_errno); /*proto*/ -static PyObject *__pyx_f_7aiohttp_12_http_parser__parse_url(char *, size_t); /*proto*/ +static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(llhttp_t *); /*proto*/ +static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(llhttp_t *, char const *, size_t); /*proto*/ +static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(llhttp_t *, char const *, size_t); /*proto*/ +static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(llhttp_t *, char const *, size_t); /*proto*/ +static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(llhttp_t *, char const *, size_t); /*proto*/ +static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(llhttp_t *); /*proto*/ +static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(llhttp_t *, char const *, size_t); /*proto*/ +static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(llhttp_t *); /*proto*/ +static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(llhttp_t *); /*proto*/ +static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(llhttp_t *); /*proto*/ +static PyObject *__pyx_f_7aiohttp_12_http_parser_parser_error_from_errno(llhttp_t *, PyObject *, PyObject *); /*proto*/ static PyObject *__pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessage__set_state(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *, PyObject *); /*proto*/ static PyObject *__pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawResponseMessage__set_state(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *, PyObject *); /*proto*/ #define __Pyx_MODULE_NAME "aiohttp._http_parser" @@ -1889,16 +2028,21 @@ static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_BaseException; static const char __pyx_k_[] = "="; static const char __pyx_k_i[] = "i"; +static const char __pyx_k_r[] = "{}:\n\n {!r}\n {}"; static const char __pyx_k_TE[] = "TE"; static const char __pyx_k__2[] = ", "; static const char __pyx_k__3[] = ")>"; -static const char __pyx_k__4[] = ""; +static const char __pyx_k__4[] = "\r\n"; +static const char __pyx_k__6[] = " "; +static const char __pyx_k__7[] = "^"; +static const char __pyx_k__8[] = ""; static const char __pyx_k_br[] = "br"; static const char __pyx_k_AGE[] = "AGE"; static const char __pyx_k_URI[] = "URI"; static const char __pyx_k_URL[] = "URL"; static const char __pyx_k_VIA[] = "VIA"; -static const char __pyx_k__11[] = ":"; +static const char __pyx_k__11[] = "?"; +static const char __pyx_k__12[] = "#"; static const char __pyx_k_add[] = "add"; static const char __pyx_k_all[] = "__all__"; static const char __pyx_k_new[] = "__new__"; @@ -1914,24 +2058,24 @@ static const char __pyx_k_code[] = "code"; static const char __pyx_k_dict[] = "__dict__"; static const char __pyx_k_gzip[] = "gzip"; static const char __pyx_k_hdrs[] = "hdrs"; -static const char __pyx_k_host[] = "host"; static const char __pyx_k_loop[] = "loop"; static const char __pyx_k_main[] = "__main__"; static const char __pyx_k_name[] = "__name__"; static const char __pyx_k_path[] = "path"; -static const char __pyx_k_port[] = "port"; static const char __pyx_k_send[] = "send"; static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_user[] = "user"; static const char __pyx_k_yarl[] = "yarl"; static const char __pyx_k_ALLOW[] = "ALLOW"; +static const char __pyx_k_DEBUG[] = "DEBUG"; static const char __pyx_k_RANGE[] = "RANGE"; static const char __pyx_k_URL_2[] = "_URL"; static const char __pyx_k_build[] = "build"; static const char __pyx_k_close[] = "close"; +static const char __pyx_k_error[] = "error"; static const char __pyx_k_limit[] = "limit"; static const char __pyx_k_lower[] = "lower"; static const char __pyx_k_range[] = "range"; +static const char __pyx_k_split[] = "split"; static const char __pyx_k_throw[] = "throw"; static const char __pyx_k_timer[] = "timer"; static const char __pyx_k_ACCEPT[] = "ACCEPT"; @@ -1945,10 +2089,9 @@ static const char __pyx_k_format[] = "format"; static const char __pyx_k_import[] = "__import__"; static const char __pyx_k_method[] = "method"; static const char __pyx_k_pickle[] = "pickle"; -static const char __pyx_k_py_buf[] = "py_buf"; static const char __pyx_k_reason[] = "reason"; static const char __pyx_k_reduce[] = "__reduce__"; -static const char __pyx_k_scheme[] = "scheme"; +static const char __pyx_k_rsplit[] = "rsplit"; static const char __pyx_k_update[] = "update"; static const char __pyx_k_EXPIRES[] = "EXPIRES"; static const char __pyx_k_REFERER[] = "REFERER"; @@ -1968,20 +2111,17 @@ static const char __pyx_k_version[] = "version"; static const char __pyx_k_IF_MATCH[] = "IF_MATCH"; static const char __pyx_k_IF_RANGE[] = "IF_RANGE"; static const char __pyx_k_LOCATION[] = "LOCATION"; -static const char __pyx_k_buf_data[] = "buf_data"; static const char __pyx_k_feed_eof[] = "feed_eof"; static const char __pyx_k_fragment[] = "fragment"; static const char __pyx_k_getstate[] = "__getstate__"; -static const char __pyx_k_password[] = "password"; static const char __pyx_k_protocol[] = "protocol"; static const char __pyx_k_pyx_type[] = "__pyx_type"; static const char __pyx_k_setstate[] = "__setstate__"; static const char __pyx_k_FORWARDED[] = "FORWARDED"; static const char __pyx_k_TypeError[] = "TypeError"; +static const char __pyx_k_authority[] = "authority"; static const char __pyx_k_feed_data[] = "feed_data"; static const char __pyx_k_multidict[] = "multidict"; -static const char __pyx_k_parse_url[] = "parse_url"; -static const char __pyx_k_partition[] = "partition"; static const char __pyx_k_pyx_state[] = "__pyx_state"; static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; static const char __pyx_k_CONNECTION[] = "CONNECTION"; @@ -2027,7 +2167,6 @@ static const char __pyx_k_IF_NONE_MATCH[] = "IF_NONE_MATCH"; static const char __pyx_k_InvalidHeader[] = "InvalidHeader"; static const char __pyx_k_LAST_EVENT_ID[] = "LAST_EVENT_ID"; static const char __pyx_k_LAST_MODIFIED[] = "LAST_MODIFIED"; -static const char __pyx_k_invalid_url_r[] = "invalid url {!r}"; static const char __pyx_k_max_line_size[] = "max_line_size"; static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; static const char __pyx_k_set_exception[] = "set_exception"; @@ -2045,6 +2184,7 @@ static const char __pyx_k_HttpVersion10_2[] = "_HttpVersion10"; static const char __pyx_k_HttpVersion11_2[] = "_HttpVersion11"; static const char __pyx_k_InvalidURLError[] = "InvalidURLError"; static const char __pyx_k_X_FORWARDED_FOR[] = "X_FORWARDED_FOR"; +static const char __pyx_k_aiohttp_helpers[] = "aiohttp.helpers"; static const char __pyx_k_auto_decompress[] = "auto_decompress"; static const char __pyx_k_http_exceptions[] = "http_exceptions"; static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; @@ -2087,7 +2227,6 @@ static const char __pyx_k_Header_name_is_too_long[] = "Header name is too long"; static const char __pyx_k_Status_line_is_too_long[] = "Status line is too long"; static const char __pyx_k_Header_value_is_too_long[] = "Header value is too long"; static const char __pyx_k_SEC_WEBSOCKET_EXTENSIONS[] = "SEC_WEBSOCKET_EXTENSIONS"; -static const char __pyx_k_aiohttp__http_parser_pyx[] = "aiohttp/_http_parser.pyx"; static const char __pyx_k_end_http_chunk_receiving[] = "end_http_chunk_receiving"; static const char __pyx_k_CONTENT_TRANSFER_ENCODING[] = "CONTENT_TRANSFER_ENCODING"; static const char __pyx_k_begin_http_chunk_receiving[] = "begin_http_chunk_receiving"; @@ -2100,11 +2239,11 @@ static const char __pyx_k_ACCESS_CONTROL_REQUEST_HEADERS[] = "ACCESS_CONTROL_REQ static const char __pyx_k_pyx_unpickle_RawRequestMessage[] = "__pyx_unpickle_RawRequestMessage"; static const char __pyx_k_pyx_unpickle_RawResponseMessag[] = "__pyx_unpickle_RawResponseMessage"; static const char __pyx_k_ACCESS_CONTROL_ALLOW_CREDENTIALS[] = "ACCESS_CONTROL_ALLOW_CREDENTIALS"; -static const char __pyx_k_Incompatible_checksums_s_vs_0x14[] = "Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))"; -static const char __pyx_k_Incompatible_checksums_s_vs_0xc7[] = "Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))"; +static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0x1408252, 0xf602a9f, 0x03e51e3) = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))"; static const char __pyx_k_Not_enough_data_for_satisfy_cont[] = "Not enough data for satisfy content length header."; static const char __pyx_k_Not_enough_data_for_satisfy_tran[] = "Not enough data for satisfy transfer length header."; static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; +static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_2[] = "Incompatible checksums (0x%x vs (0xc7706dc, 0xcb2b2ba, 0x4febc0e) = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))"; static PyObject *__pyx_kp_u_; static PyObject *__pyx_n_s_ACCEPT; static PyObject *__pyx_n_s_ACCEPT_CHARSET; @@ -2143,6 +2282,7 @@ static PyObject *__pyx_n_s_CONTENT_TYPE; static PyObject *__pyx_n_s_COOKIE; static PyObject *__pyx_n_s_ContentLengthError; static PyObject *__pyx_n_s_DATE; +static PyObject *__pyx_n_s_DEBUG; static PyObject *__pyx_n_s_DESTINATION; static PyObject *__pyx_n_s_DIGEST; static PyObject *__pyx_n_s_DeflateBuffer; @@ -2172,8 +2312,8 @@ static PyObject *__pyx_n_s_IF_MODIFIED_SINCE; static PyObject *__pyx_n_s_IF_NONE_MATCH; static PyObject *__pyx_n_s_IF_RANGE; static PyObject *__pyx_n_s_IF_UNMODIFIED_SINCE; -static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x14; -static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xc7; +static PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0; +static PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2; static PyObject *__pyx_n_s_InvalidHeader; static PyObject *__pyx_n_s_InvalidURLError; static PyObject *__pyx_n_s_KEEP_ALIVE; @@ -2231,21 +2371,25 @@ static PyObject *__pyx_n_s_X_FORWARDED_FOR; static PyObject *__pyx_n_s_X_FORWARDED_HOST; static PyObject *__pyx_n_s_X_FORWARDED_PROTO; static PyObject *__pyx_kp_u__11; +static PyObject *__pyx_kp_u__12; static PyObject *__pyx_kp_u__2; static PyObject *__pyx_kp_u__3; -static PyObject *__pyx_n_s__4; static PyObject *__pyx_kp_b__4; -static PyObject *__pyx_kp_u__4; +static PyObject *__pyx_kp_u__6; +static PyObject *__pyx_kp_u__7; +static PyObject *__pyx_n_s__8; +static PyObject *__pyx_kp_b__8; +static PyObject *__pyx_kp_u__8; static PyObject *__pyx_n_s_add; static PyObject *__pyx_n_s_aiohttp; static PyObject *__pyx_n_s_aiohttp__http_parser; -static PyObject *__pyx_kp_s_aiohttp__http_parser_pyx; +static PyObject *__pyx_n_s_aiohttp_helpers; static PyObject *__pyx_n_s_all; static PyObject *__pyx_n_s_args; +static PyObject *__pyx_n_s_authority; static PyObject *__pyx_n_s_auto_decompress; static PyObject *__pyx_n_s_begin_http_chunk_receiving; static PyObject *__pyx_n_u_br; -static PyObject *__pyx_n_s_buf_data; static PyObject *__pyx_n_s_build; static PyObject *__pyx_n_s_chunked; static PyObject *__pyx_n_u_chunked; @@ -2259,6 +2403,7 @@ static PyObject *__pyx_n_u_deflate; static PyObject *__pyx_n_s_dict; static PyObject *__pyx_n_s_encoded; static PyObject *__pyx_n_s_end_http_chunk_receiving; +static PyObject *__pyx_n_s_error; static PyObject *__pyx_n_s_feed_data; static PyObject *__pyx_n_s_feed_eof; static PyObject *__pyx_n_s_format; @@ -2269,13 +2414,11 @@ static PyObject *__pyx_n_u_gzip; static PyObject *__pyx_n_s_hdrs; static PyObject *__pyx_n_s_headers; static PyObject *__pyx_n_u_headers; -static PyObject *__pyx_n_s_host; static PyObject *__pyx_n_s_http_exceptions; static PyObject *__pyx_n_s_http_parser; static PyObject *__pyx_n_s_http_writer; static PyObject *__pyx_n_s_i; static PyObject *__pyx_n_s_import; -static PyObject *__pyx_kp_u_invalid_url_r; static PyObject *__pyx_n_s_limit; static PyObject *__pyx_n_s_loop; static PyObject *__pyx_n_s_lower; @@ -2289,16 +2432,11 @@ static PyObject *__pyx_n_s_multidict; static PyObject *__pyx_n_s_name; static PyObject *__pyx_n_s_new; static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; -static PyObject *__pyx_n_s_parse_url; -static PyObject *__pyx_n_s_partition; -static PyObject *__pyx_n_s_password; static PyObject *__pyx_n_s_path; static PyObject *__pyx_n_u_path; static PyObject *__pyx_n_s_payload_exception; static PyObject *__pyx_n_s_pickle; -static PyObject *__pyx_n_s_port; static PyObject *__pyx_n_s_protocol; -static PyObject *__pyx_n_s_py_buf; static PyObject *__pyx_n_s_pyx_PickleError; static PyObject *__pyx_n_s_pyx_checksum; static PyObject *__pyx_n_s_pyx_result; @@ -2308,6 +2446,7 @@ static PyObject *__pyx_n_s_pyx_unpickle_RawRequestMessage; static PyObject *__pyx_n_s_pyx_unpickle_RawResponseMessag; static PyObject *__pyx_n_s_pyx_vtable; static PyObject *__pyx_n_s_query_string; +static PyObject *__pyx_kp_u_r; static PyObject *__pyx_n_s_range; static PyObject *__pyx_n_s_raw_headers; static PyObject *__pyx_n_u_raw_headers; @@ -2319,13 +2458,14 @@ static PyObject *__pyx_n_s_reduce_cython; static PyObject *__pyx_n_s_reduce_ex; static PyObject *__pyx_n_s_repr___locals_genexpr; static PyObject *__pyx_n_s_response_with_body; -static PyObject *__pyx_n_s_scheme; +static PyObject *__pyx_n_s_rsplit; static PyObject *__pyx_n_s_send; static PyObject *__pyx_n_s_set_exception; static PyObject *__pyx_n_s_setstate; static PyObject *__pyx_n_s_setstate_cython; static PyObject *__pyx_n_s_should_close; static PyObject *__pyx_n_u_should_close; +static PyObject *__pyx_n_s_split; static PyObject *__pyx_n_s_streams; static PyObject *__pyx_kp_s_stringsource; static PyObject *__pyx_n_s_test; @@ -2337,7 +2477,6 @@ static PyObject *__pyx_n_s_upgrade; static PyObject *__pyx_n_u_upgrade; static PyObject *__pyx_n_s_url; static PyObject *__pyx_n_u_url; -static PyObject *__pyx_n_s_user; static PyObject *__pyx_n_s_version; static PyObject *__pyx_n_u_version; static PyObject *__pyx_n_s_yarl; @@ -2378,15 +2517,14 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_8set_upgraded(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static int __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, PyObject *__pyx_v_timer, size_t __pyx_v_max_line_size, size_t __pyx_v_max_headers, size_t __pyx_v_max_field_size, PyObject *__pyx_v_payload_exception, int __pyx_v_response_with_body, int __pyx_v_read_until_eof); /* proto */ +static int __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, PyObject *__pyx_v_timer, size_t __pyx_v_max_line_size, size_t __pyx_v_max_headers, size_t __pyx_v_max_field_size, PyObject *__pyx_v_payload_exception, int __pyx_v_response_with_body, int __pyx_v_read_until_eof, int __pyx_v_auto_decompress); /* proto */ static PyObject *__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser___init__(struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *__pyx_v_self, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, PyObject *__pyx_v_timer, size_t __pyx_v_max_line_size, size_t __pyx_v_max_headers, size_t __pyx_v_max_field_size, PyObject *__pyx_v_payload_exception, int __pyx_v_response_with_body, int __pyx_v_read_until_eof, int __pyx_v_auto_decompress); /* proto */ static PyObject *__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_7aiohttp_12_http_parser_parse_url(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_url); /* proto */ -static PyObject *__pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawRequestMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_7aiohttp_12_http_parser_4__pyx_unpickle_RawResponseMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawResponseMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_RawRequestMessage(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_RawResponseMessage(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7aiohttp_12_http_parser_HttpParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ @@ -2396,22 +2534,27 @@ static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct____repr static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static __Pyx_CachedCFunction __pyx_umethod_PyUnicode_Type_partition = {0, &__pyx_n_s_partition, 0, 0, 0}; +static PyObject *__pyx_int_1; +static PyObject *__pyx_int_4084195; static PyObject *__pyx_int_21004882; +static PyObject *__pyx_int_83803150; static PyObject *__pyx_int_209127132; +static PyObject *__pyx_int_213037754; +static PyObject *__pyx_int_257960607; static PyObject *__pyx_tuple__5; -static PyObject *__pyx_tuple__6; -static PyObject *__pyx_tuple__7; -static PyObject *__pyx_tuple__8; static PyObject *__pyx_tuple__9; static PyObject *__pyx_tuple__10; -static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__13; +static PyObject *__pyx_tuple__14; static PyObject *__pyx_tuple__15; +static PyObject *__pyx_tuple__16; static PyObject *__pyx_tuple__17; -static PyObject *__pyx_codeobj__14; -static PyObject *__pyx_codeobj__16; -static PyObject *__pyx_codeobj__18; +static PyObject *__pyx_tuple__18; +static PyObject *__pyx_tuple__19; +static PyObject *__pyx_tuple__20; +static PyObject *__pyx_tuple__22; +static PyObject *__pyx_codeobj__21; +static PyObject *__pyx_codeobj__23; /* Late includes */ /* "aiohttp/_http_parser.pyx":74 @@ -2516,7 +2659,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_http_method_str(i * return _http_method[i] * else: */ - __pyx_t_1 = ((__pyx_v_i < 34) != 0); + __pyx_t_1 = ((__pyx_v_i < 46) != 0); if (__pyx_t_1) { /* "aiohttp/_http_parser.pyx":94 @@ -3225,6 +3368,7 @@ static PyObject *__pyx_gb_7aiohttp_12_http_parser_17RawRequestMessage_8__repr___ static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_2__repr__(struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *__pyx_v_self) { struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *__pyx_cur_scope; PyObject *__pyx_v_sinfo = NULL; + PyObject *__pyx_gb_7aiohttp_12_http_parser_17RawRequestMessage_8__repr___2generator = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -3487,6 +3631,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_17RawRequestMessage_2__repr__( __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_sinfo); + __Pyx_XDECREF(__pyx_gb_7aiohttp_12_http_parser_17RawRequestMessage_8__repr___2generator); __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -5506,6 +5651,7 @@ static PyObject *__pyx_gb_7aiohttp_12_http_parser_18RawResponseMessage_8__repr__ static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_2__repr__(struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_v_self) { struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *__pyx_cur_scope; PyObject *__pyx_v_sinfo = NULL; + PyObject *__pyx_gb_7aiohttp_12_http_parser_18RawResponseMessage_8__repr___2generator1 = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -5752,6 +5898,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_18RawResponseMessage_2__repr__ __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_sinfo); + __Pyx_XDECREF(__pyx_gb_7aiohttp_12_http_parser_18RawResponseMessage_8__repr___2generator1); __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -6658,8 +6805,8 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser__new_response_message(PyObject * Py_buffer py_buf * * def __cinit__(self): # <<<<<<<<<<<<<< - * self._cparser = \ - * PyMem_Malloc(sizeof(cparser.http_parser)) + * self._cparser = \ + * PyMem_Malloc(sizeof(cparser.llhttp_t)) */ /* Python wrapper */ @@ -6690,15 +6837,15 @@ static int __pyx_pf_7aiohttp_12_http_parser_10HttpParser___cinit__(struct __pyx_ /* "aiohttp/_http_parser.pyx":313 * * def __cinit__(self): - * self._cparser = \ # <<<<<<<<<<<<<< - * PyMem_Malloc(sizeof(cparser.http_parser)) + * self._cparser = \ # <<<<<<<<<<<<<< + * PyMem_Malloc(sizeof(cparser.llhttp_t)) * if self._cparser is NULL: */ - __pyx_v_self->_cparser = ((struct http_parser *)PyMem_Malloc((sizeof(struct http_parser)))); + __pyx_v_self->_cparser = ((llhttp_t *)PyMem_Malloc((sizeof(llhttp_t)))); /* "aiohttp/_http_parser.pyx":315 - * self._cparser = \ - * PyMem_Malloc(sizeof(cparser.http_parser)) + * self._cparser = \ + * PyMem_Malloc(sizeof(cparser.llhttp_t)) * if self._cparser is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * @@ -6707,17 +6854,17 @@ static int __pyx_pf_7aiohttp_12_http_parser_10HttpParser___cinit__(struct __pyx_ if (unlikely(__pyx_t_1)) { /* "aiohttp/_http_parser.pyx":316 - * PyMem_Malloc(sizeof(cparser.http_parser)) + * PyMem_Malloc(sizeof(cparser.llhttp_t)) * if self._cparser is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * - * self._csettings = \ + * self._csettings = \ */ PyErr_NoMemory(); __PYX_ERR(0, 316, __pyx_L1_error) /* "aiohttp/_http_parser.pyx":315 - * self._cparser = \ - * PyMem_Malloc(sizeof(cparser.http_parser)) + * self._cparser = \ + * PyMem_Malloc(sizeof(cparser.llhttp_t)) * if self._cparser is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * @@ -6727,15 +6874,15 @@ static int __pyx_pf_7aiohttp_12_http_parser_10HttpParser___cinit__(struct __pyx_ /* "aiohttp/_http_parser.pyx":318 * raise MemoryError() * - * self._csettings = \ # <<<<<<<<<<<<<< - * PyMem_Malloc(sizeof(cparser.http_parser_settings)) + * self._csettings = \ # <<<<<<<<<<<<<< + * PyMem_Malloc(sizeof(cparser.llhttp_settings_t)) * if self._csettings is NULL: */ - __pyx_v_self->_csettings = ((struct http_parser_settings *)PyMem_Malloc((sizeof(struct http_parser_settings)))); + __pyx_v_self->_csettings = ((llhttp_settings_t *)PyMem_Malloc((sizeof(llhttp_settings_t)))); /* "aiohttp/_http_parser.pyx":320 - * self._csettings = \ - * PyMem_Malloc(sizeof(cparser.http_parser_settings)) + * self._csettings = \ + * PyMem_Malloc(sizeof(cparser.llhttp_settings_t)) * if self._csettings is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * @@ -6744,7 +6891,7 @@ static int __pyx_pf_7aiohttp_12_http_parser_10HttpParser___cinit__(struct __pyx_ if (unlikely(__pyx_t_1)) { /* "aiohttp/_http_parser.pyx":321 - * PyMem_Malloc(sizeof(cparser.http_parser_settings)) + * PyMem_Malloc(sizeof(cparser.llhttp_settings_t)) * if self._csettings is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * @@ -6753,8 +6900,8 @@ static int __pyx_pf_7aiohttp_12_http_parser_10HttpParser___cinit__(struct __pyx_ PyErr_NoMemory(); __PYX_ERR(0, 321, __pyx_L1_error) /* "aiohttp/_http_parser.pyx":320 - * self._csettings = \ - * PyMem_Malloc(sizeof(cparser.http_parser_settings)) + * self._csettings = \ + * PyMem_Malloc(sizeof(cparser.llhttp_settings_t)) * if self._csettings is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * @@ -6765,8 +6912,8 @@ static int __pyx_pf_7aiohttp_12_http_parser_10HttpParser___cinit__(struct __pyx_ * Py_buffer py_buf * * def __cinit__(self): # <<<<<<<<<<<<<< - * self._cparser = \ - * PyMem_Malloc(sizeof(cparser.http_parser)) + * self._cparser = \ + * PyMem_Malloc(sizeof(cparser.llhttp_t)) */ /* function exit code */ @@ -6817,7 +6964,7 @@ static void __pyx_pf_7aiohttp_12_http_parser_10HttpParser_2__dealloc__(struct __ * PyMem_Free(self._cparser) * PyMem_Free(self._csettings) # <<<<<<<<<<<<<< * - * cdef _init(self, cparser.http_parser_type mode, + * cdef _init( */ PyMem_Free(__pyx_v_self->_csettings); @@ -6836,50 +6983,50 @@ static void __pyx_pf_7aiohttp_12_http_parser_10HttpParser_2__dealloc__(struct __ /* "aiohttp/_http_parser.pyx":327 * PyMem_Free(self._csettings) * - * cdef _init(self, cparser.http_parser_type mode, # <<<<<<<<<<<<<< - * object protocol, object loop, int limit, - * object timer=None, + * cdef _init( # <<<<<<<<<<<<<< + * self, cparser.llhttp_type mode, + * object protocol, object loop, int limit, */ -static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, enum http_parser_type __pyx_v_mode, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args) { +static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, enum llhttp_type __pyx_v_mode, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args) { - /* "aiohttp/_http_parser.pyx":329 - * cdef _init(self, cparser.http_parser_type mode, - * object protocol, object loop, int limit, - * object timer=None, # <<<<<<<<<<<<<< - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, + /* "aiohttp/_http_parser.pyx":330 + * self, cparser.llhttp_type mode, + * object protocol, object loop, int limit, + * object timer=None, # <<<<<<<<<<<<<< + * size_t max_line_size=8190, size_t max_headers=32768, + * size_t max_field_size=8190, payload_exception=None, */ PyObject *__pyx_v_timer = ((PyObject *)Py_None); size_t __pyx_v_max_line_size = ((size_t)0x1FFE); size_t __pyx_v_max_headers = ((size_t)0x8000); size_t __pyx_v_max_field_size = ((size_t)0x1FFE); - /* "aiohttp/_http_parser.pyx":331 - * object timer=None, - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, # <<<<<<<<<<<<<< - * bint response_with_body=True, bint read_until_eof=False, - * bint auto_decompress=True): + /* "aiohttp/_http_parser.pyx":332 + * object timer=None, + * size_t max_line_size=8190, size_t max_headers=32768, + * size_t max_field_size=8190, payload_exception=None, # <<<<<<<<<<<<<< + * bint response_with_body=True, bint read_until_eof=False, + * bint auto_decompress=True, */ PyObject *__pyx_v_payload_exception = ((PyObject *)Py_None); - /* "aiohttp/_http_parser.pyx":332 - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, - * bint response_with_body=True, bint read_until_eof=False, # <<<<<<<<<<<<<< - * bint auto_decompress=True): - * cparser.http_parser_init(self._cparser, mode) + /* "aiohttp/_http_parser.pyx":333 + * size_t max_line_size=8190, size_t max_headers=32768, + * size_t max_field_size=8190, payload_exception=None, + * bint response_with_body=True, bint read_until_eof=False, # <<<<<<<<<<<<<< + * bint auto_decompress=True, + * ): */ int __pyx_v_response_with_body = ((int)1); int __pyx_v_read_until_eof = ((int)0); - /* "aiohttp/_http_parser.pyx":333 - * size_t max_field_size=8190, payload_exception=None, - * bint response_with_body=True, bint read_until_eof=False, - * bint auto_decompress=True): # <<<<<<<<<<<<<< - * cparser.http_parser_init(self._cparser, mode) - * self._cparser.data = self + /* "aiohttp/_http_parser.pyx":334 + * size_t max_field_size=8190, payload_exception=None, + * bint response_with_body=True, bint read_until_eof=False, + * bint auto_decompress=True, # <<<<<<<<<<<<<< + * ): + * cparser.llhttp_settings_init(self._csettings) */ int __pyx_v_auto_decompress = ((int)1); PyObject *__pyx_r = NULL; @@ -6916,45 +7063,45 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx } } - /* "aiohttp/_http_parser.pyx":334 - * bint response_with_body=True, bint read_until_eof=False, - * bint auto_decompress=True): - * cparser.http_parser_init(self._cparser, mode) # <<<<<<<<<<<<<< + /* "aiohttp/_http_parser.pyx":336 + * bint auto_decompress=True, + * ): + * cparser.llhttp_settings_init(self._csettings) # <<<<<<<<<<<<<< + * cparser.llhttp_init(self._cparser, mode, self._csettings) + * self._cparser.data = self + */ + llhttp_settings_init(__pyx_v_self->_csettings); + + /* "aiohttp/_http_parser.pyx":337 + * ): + * cparser.llhttp_settings_init(self._csettings) + * cparser.llhttp_init(self._cparser, mode, self._csettings) # <<<<<<<<<<<<<< * self._cparser.data = self * self._cparser.content_length = 0 */ - http_parser_init(__pyx_v_self->_cparser, __pyx_v_mode); + llhttp_init(__pyx_v_self->_cparser, __pyx_v_mode, __pyx_v_self->_csettings); - /* "aiohttp/_http_parser.pyx":335 - * bint auto_decompress=True): - * cparser.http_parser_init(self._cparser, mode) + /* "aiohttp/_http_parser.pyx":338 + * cparser.llhttp_settings_init(self._csettings) + * cparser.llhttp_init(self._cparser, mode, self._csettings) * self._cparser.data = self # <<<<<<<<<<<<<< * self._cparser.content_length = 0 * */ __pyx_v_self->_cparser->data = ((void *)__pyx_v_self); - /* "aiohttp/_http_parser.pyx":336 - * cparser.http_parser_init(self._cparser, mode) + /* "aiohttp/_http_parser.pyx":339 + * cparser.llhttp_init(self._cparser, mode, self._csettings) * self._cparser.data = self * self._cparser.content_length = 0 # <<<<<<<<<<<<<< * - * cparser.http_parser_settings_init(self._csettings) + * self._protocol = protocol */ __pyx_v_self->_cparser->content_length = 0; - /* "aiohttp/_http_parser.pyx":338 + /* "aiohttp/_http_parser.pyx":341 * self._cparser.content_length = 0 * - * cparser.http_parser_settings_init(self._csettings) # <<<<<<<<<<<<<< - * - * self._protocol = protocol - */ - http_parser_settings_init(__pyx_v_self->_csettings); - - /* "aiohttp/_http_parser.pyx":340 - * cparser.http_parser_settings_init(self._csettings) - * * self._protocol = protocol # <<<<<<<<<<<<<< * self._loop = loop * self._timer = timer @@ -6965,7 +7112,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx __Pyx_DECREF(__pyx_v_self->_protocol); __pyx_v_self->_protocol = __pyx_v_protocol; - /* "aiohttp/_http_parser.pyx":341 + /* "aiohttp/_http_parser.pyx":342 * * self._protocol = protocol * self._loop = loop # <<<<<<<<<<<<<< @@ -6978,7 +7125,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx __Pyx_DECREF(__pyx_v_self->_loop); __pyx_v_self->_loop = __pyx_v_loop; - /* "aiohttp/_http_parser.pyx":342 + /* "aiohttp/_http_parser.pyx":343 * self._protocol = protocol * self._loop = loop * self._timer = timer # <<<<<<<<<<<<<< @@ -6991,14 +7138,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx __Pyx_DECREF(__pyx_v_self->_timer); __pyx_v_self->_timer = __pyx_v_timer; - /* "aiohttp/_http_parser.pyx":344 + /* "aiohttp/_http_parser.pyx":345 * self._timer = timer * * self._buf = bytearray() # <<<<<<<<<<<<<< * self._payload = None * self._payload_error = 0 */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyByteArray_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 344, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyByteArray_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_buf); @@ -7006,7 +7153,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx __pyx_v_self->_buf = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":345 + /* "aiohttp/_http_parser.pyx":346 * * self._buf = bytearray() * self._payload = None # <<<<<<<<<<<<<< @@ -7019,7 +7166,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx __Pyx_DECREF(__pyx_v_self->_payload); __pyx_v_self->_payload = Py_None; - /* "aiohttp/_http_parser.pyx":346 + /* "aiohttp/_http_parser.pyx":347 * self._buf = bytearray() * self._payload = None * self._payload_error = 0 # <<<<<<<<<<<<<< @@ -7028,7 +7175,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_payload_error = 0; - /* "aiohttp/_http_parser.pyx":347 + /* "aiohttp/_http_parser.pyx":348 * self._payload = None * self._payload_error = 0 * self._payload_exception = payload_exception # <<<<<<<<<<<<<< @@ -7041,14 +7188,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx __Pyx_DECREF(__pyx_v_self->_payload_exception); __pyx_v_self->_payload_exception = __pyx_v_payload_exception; - /* "aiohttp/_http_parser.pyx":348 + /* "aiohttp/_http_parser.pyx":349 * self._payload_error = 0 * self._payload_exception = payload_exception * self._messages = [] # <<<<<<<<<<<<<< * * self._raw_name = bytearray() */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 348, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_messages); @@ -7056,14 +7203,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx __pyx_v_self->_messages = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":350 + /* "aiohttp/_http_parser.pyx":351 * self._messages = [] * * self._raw_name = bytearray() # <<<<<<<<<<<<<< * self._raw_value = bytearray() * self._has_value = False */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyByteArray_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyByteArray_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_raw_name); @@ -7071,14 +7218,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx __pyx_v_self->_raw_name = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":351 + /* "aiohttp/_http_parser.pyx":352 * * self._raw_name = bytearray() * self._raw_value = bytearray() # <<<<<<<<<<<<<< * self._has_value = False * */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyByteArray_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyByteArray_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_raw_value); @@ -7086,7 +7233,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx __pyx_v_self->_raw_value = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":352 + /* "aiohttp/_http_parser.pyx":353 * self._raw_name = bytearray() * self._raw_value = bytearray() * self._has_value = False # <<<<<<<<<<<<<< @@ -7095,7 +7242,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_has_value = 0; - /* "aiohttp/_http_parser.pyx":354 + /* "aiohttp/_http_parser.pyx":355 * self._has_value = False * * self._max_line_size = max_line_size # <<<<<<<<<<<<<< @@ -7104,7 +7251,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_max_line_size = __pyx_v_max_line_size; - /* "aiohttp/_http_parser.pyx":355 + /* "aiohttp/_http_parser.pyx":356 * * self._max_line_size = max_line_size * self._max_headers = max_headers # <<<<<<<<<<<<<< @@ -7113,7 +7260,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_max_headers = __pyx_v_max_headers; - /* "aiohttp/_http_parser.pyx":356 + /* "aiohttp/_http_parser.pyx":357 * self._max_line_size = max_line_size * self._max_headers = max_headers * self._max_field_size = max_field_size # <<<<<<<<<<<<<< @@ -7122,7 +7269,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_max_field_size = __pyx_v_max_field_size; - /* "aiohttp/_http_parser.pyx":357 + /* "aiohttp/_http_parser.pyx":358 * self._max_headers = max_headers * self._max_field_size = max_field_size * self._response_with_body = response_with_body # <<<<<<<<<<<<<< @@ -7131,7 +7278,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_response_with_body = __pyx_v_response_with_body; - /* "aiohttp/_http_parser.pyx":358 + /* "aiohttp/_http_parser.pyx":359 * self._max_field_size = max_field_size * self._response_with_body = response_with_body * self._read_until_eof = read_until_eof # <<<<<<<<<<<<<< @@ -7140,7 +7287,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_read_until_eof = __pyx_v_read_until_eof; - /* "aiohttp/_http_parser.pyx":359 + /* "aiohttp/_http_parser.pyx":360 * self._response_with_body = response_with_body * self._read_until_eof = read_until_eof * self._upgraded = False # <<<<<<<<<<<<<< @@ -7149,7 +7296,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_upgraded = 0; - /* "aiohttp/_http_parser.pyx":360 + /* "aiohttp/_http_parser.pyx":361 * self._read_until_eof = read_until_eof * self._upgraded = False * self._auto_decompress = auto_decompress # <<<<<<<<<<<<<< @@ -7158,7 +7305,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_auto_decompress = __pyx_v_auto_decompress; - /* "aiohttp/_http_parser.pyx":361 + /* "aiohttp/_http_parser.pyx":362 * self._upgraded = False * self._auto_decompress = auto_decompress * self._content_encoding = None # <<<<<<<<<<<<<< @@ -7171,7 +7318,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx __Pyx_DECREF(__pyx_v_self->_content_encoding); __pyx_v_self->_content_encoding = ((PyObject*)Py_None); - /* "aiohttp/_http_parser.pyx":363 + /* "aiohttp/_http_parser.pyx":364 * self._content_encoding = None * * self._csettings.on_url = cb_on_url # <<<<<<<<<<<<<< @@ -7180,7 +7327,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_csettings->on_url = __pyx_f_7aiohttp_12_http_parser_cb_on_url; - /* "aiohttp/_http_parser.pyx":364 + /* "aiohttp/_http_parser.pyx":365 * * self._csettings.on_url = cb_on_url * self._csettings.on_status = cb_on_status # <<<<<<<<<<<<<< @@ -7189,7 +7336,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_csettings->on_status = __pyx_f_7aiohttp_12_http_parser_cb_on_status; - /* "aiohttp/_http_parser.pyx":365 + /* "aiohttp/_http_parser.pyx":366 * self._csettings.on_url = cb_on_url * self._csettings.on_status = cb_on_status * self._csettings.on_header_field = cb_on_header_field # <<<<<<<<<<<<<< @@ -7198,7 +7345,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_csettings->on_header_field = __pyx_f_7aiohttp_12_http_parser_cb_on_header_field; - /* "aiohttp/_http_parser.pyx":366 + /* "aiohttp/_http_parser.pyx":367 * self._csettings.on_status = cb_on_status * self._csettings.on_header_field = cb_on_header_field * self._csettings.on_header_value = cb_on_header_value # <<<<<<<<<<<<<< @@ -7207,7 +7354,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_csettings->on_header_value = __pyx_f_7aiohttp_12_http_parser_cb_on_header_value; - /* "aiohttp/_http_parser.pyx":367 + /* "aiohttp/_http_parser.pyx":368 * self._csettings.on_header_field = cb_on_header_field * self._csettings.on_header_value = cb_on_header_value * self._csettings.on_headers_complete = cb_on_headers_complete # <<<<<<<<<<<<<< @@ -7216,7 +7363,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_csettings->on_headers_complete = __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete; - /* "aiohttp/_http_parser.pyx":368 + /* "aiohttp/_http_parser.pyx":369 * self._csettings.on_header_value = cb_on_header_value * self._csettings.on_headers_complete = cb_on_headers_complete * self._csettings.on_body = cb_on_body # <<<<<<<<<<<<<< @@ -7225,7 +7372,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_csettings->on_body = __pyx_f_7aiohttp_12_http_parser_cb_on_body; - /* "aiohttp/_http_parser.pyx":369 + /* "aiohttp/_http_parser.pyx":370 * self._csettings.on_headers_complete = cb_on_headers_complete * self._csettings.on_body = cb_on_body * self._csettings.on_message_begin = cb_on_message_begin # <<<<<<<<<<<<<< @@ -7234,7 +7381,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_csettings->on_message_begin = __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin; - /* "aiohttp/_http_parser.pyx":370 + /* "aiohttp/_http_parser.pyx":371 * self._csettings.on_body = cb_on_body * self._csettings.on_message_begin = cb_on_message_begin * self._csettings.on_message_complete = cb_on_message_complete # <<<<<<<<<<<<<< @@ -7243,7 +7390,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_csettings->on_message_complete = __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete; - /* "aiohttp/_http_parser.pyx":371 + /* "aiohttp/_http_parser.pyx":372 * self._csettings.on_message_begin = cb_on_message_begin * self._csettings.on_message_complete = cb_on_message_complete * self._csettings.on_chunk_header = cb_on_chunk_header # <<<<<<<<<<<<<< @@ -7252,7 +7399,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_csettings->on_chunk_header = __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header; - /* "aiohttp/_http_parser.pyx":372 + /* "aiohttp/_http_parser.pyx":373 * self._csettings.on_message_complete = cb_on_message_complete * self._csettings.on_chunk_header = cb_on_chunk_header * self._csettings.on_chunk_complete = cb_on_chunk_complete # <<<<<<<<<<<<<< @@ -7261,7 +7408,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx */ __pyx_v_self->_csettings->on_chunk_complete = __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete; - /* "aiohttp/_http_parser.pyx":374 + /* "aiohttp/_http_parser.pyx":375 * self._csettings.on_chunk_complete = cb_on_chunk_complete * * self._last_error = None # <<<<<<<<<<<<<< @@ -7274,7 +7421,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx __Pyx_DECREF(__pyx_v_self->_last_error); __pyx_v_self->_last_error = Py_None; - /* "aiohttp/_http_parser.pyx":375 + /* "aiohttp/_http_parser.pyx":376 * * self._last_error = None * self._limit = limit # <<<<<<<<<<<<<< @@ -7286,9 +7433,9 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx /* "aiohttp/_http_parser.pyx":327 * PyMem_Free(self._csettings) * - * cdef _init(self, cparser.http_parser_type mode, # <<<<<<<<<<<<<< - * object protocol, object loop, int limit, - * object timer=None, + * cdef _init( # <<<<<<<<<<<<<< + * self, cparser.llhttp_type mode, + * object protocol, object loop, int limit, */ /* function exit code */ @@ -7304,7 +7451,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__init(struct __pyx return __pyx_r; } -/* "aiohttp/_http_parser.pyx":377 +/* "aiohttp/_http_parser.pyx":378 * self._limit = limit * * cdef _process_header(self): # <<<<<<<<<<<<<< @@ -7332,7 +7479,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_process_header", 0); - /* "aiohttp/_http_parser.pyx":378 + /* "aiohttp/_http_parser.pyx":379 * * cdef _process_header(self): * if self._raw_name: # <<<<<<<<<<<<<< @@ -7342,62 +7489,62 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st __pyx_t_1 = (__pyx_v_self->_raw_name != Py_None)&&(PyByteArray_GET_SIZE(__pyx_v_self->_raw_name) != 0); if (__pyx_t_1) { - /* "aiohttp/_http_parser.pyx":379 + /* "aiohttp/_http_parser.pyx":380 * cdef _process_header(self): * if self._raw_name: * raw_name = bytes(self._raw_name) # <<<<<<<<<<<<<< * raw_value = bytes(self._raw_value) * */ - __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyBytes_Type)), __pyx_v_self->_raw_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 379, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyBytes_Type)), __pyx_v_self->_raw_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_raw_name = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":380 + /* "aiohttp/_http_parser.pyx":381 * if self._raw_name: * raw_name = bytes(self._raw_name) * raw_value = bytes(self._raw_value) # <<<<<<<<<<<<<< * * name = find_header(raw_name) */ - __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyBytes_Type)), __pyx_v_self->_raw_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 380, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyBytes_Type)), __pyx_v_self->_raw_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_raw_value = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":382 + /* "aiohttp/_http_parser.pyx":383 * raw_value = bytes(self._raw_value) * * name = find_header(raw_name) # <<<<<<<<<<<<<< * value = raw_value.decode('utf-8', 'surrogateescape') * */ - __pyx_t_2 = __pyx_f_7aiohttp_12_http_parser_find_header(__pyx_v_raw_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 382, __pyx_L1_error) + __pyx_t_2 = __pyx_f_7aiohttp_12_http_parser_find_header(__pyx_v_raw_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_name = __pyx_t_2; __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":383 + /* "aiohttp/_http_parser.pyx":384 * * name = find_header(raw_name) * value = raw_value.decode('utf-8', 'surrogateescape') # <<<<<<<<<<<<<< * * self._headers.add(name, value) */ - __pyx_t_2 = __Pyx_decode_bytes(__pyx_v_raw_value, 0, PY_SSIZE_T_MAX, NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 383, __pyx_L1_error) + __pyx_t_2 = __Pyx_decode_bytes(__pyx_v_raw_value, 0, PY_SSIZE_T_MAX, NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_value = __pyx_t_2; __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":385 + /* "aiohttp/_http_parser.pyx":386 * value = raw_value.decode('utf-8', 'surrogateescape') * * self._headers.add(name, value) # <<<<<<<<<<<<<< * * if name is CONTENT_ENCODING: */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_headers, __pyx_n_s_add); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_headers, __pyx_n_s_add); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -7414,7 +7561,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_name, __pyx_v_value}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -7422,13 +7569,13 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_name, __pyx_v_value}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -7439,14 +7586,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_value); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":387 + /* "aiohttp/_http_parser.pyx":388 * self._headers.add(name, value) * * if name is CONTENT_ENCODING: # <<<<<<<<<<<<<< @@ -7457,14 +7604,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st __pyx_t_7 = (__pyx_t_1 != 0); if (__pyx_t_7) { - /* "aiohttp/_http_parser.pyx":388 + /* "aiohttp/_http_parser.pyx":389 * * if name is CONTENT_ENCODING: * self._content_encoding = value # <<<<<<<<<<<<<< * * PyByteArray_Resize(self._raw_name, 0) */ - if (!(likely(PyUnicode_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 388, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 389, __pyx_L1_error) __pyx_t_2 = __pyx_v_value; __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); @@ -7473,7 +7620,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st __pyx_v_self->_content_encoding = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":387 + /* "aiohttp/_http_parser.pyx":388 * self._headers.add(name, value) * * if name is CONTENT_ENCODING: # <<<<<<<<<<<<<< @@ -7482,7 +7629,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st */ } - /* "aiohttp/_http_parser.pyx":390 + /* "aiohttp/_http_parser.pyx":391 * self._content_encoding = value * * PyByteArray_Resize(self._raw_name, 0) # <<<<<<<<<<<<<< @@ -7491,10 +7638,10 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st */ __pyx_t_2 = __pyx_v_self->_raw_name; __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = PyByteArray_Resize(__pyx_t_2, 0); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 390, __pyx_L1_error) + __pyx_t_5 = PyByteArray_Resize(__pyx_t_2, 0); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 391, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":391 + /* "aiohttp/_http_parser.pyx":392 * * PyByteArray_Resize(self._raw_name, 0) * PyByteArray_Resize(self._raw_value, 0) # <<<<<<<<<<<<<< @@ -7503,10 +7650,10 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st */ __pyx_t_2 = __pyx_v_self->_raw_value; __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = PyByteArray_Resize(__pyx_t_2, 0); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_5 = PyByteArray_Resize(__pyx_t_2, 0); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":392 + /* "aiohttp/_http_parser.pyx":393 * PyByteArray_Resize(self._raw_name, 0) * PyByteArray_Resize(self._raw_value, 0) * self._has_value = False # <<<<<<<<<<<<<< @@ -7515,7 +7662,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st */ __pyx_v_self->_has_value = 0; - /* "aiohttp/_http_parser.pyx":393 + /* "aiohttp/_http_parser.pyx":394 * PyByteArray_Resize(self._raw_value, 0) * self._has_value = False * self._raw_headers.append((raw_name, raw_value)) # <<<<<<<<<<<<<< @@ -7524,9 +7671,9 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st */ if (unlikely(__pyx_v_self->_raw_headers == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 393, __pyx_L1_error) + __PYX_ERR(0, 394, __pyx_L1_error) } - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_raw_name); __Pyx_GIVEREF(__pyx_v_raw_name); @@ -7534,10 +7681,10 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st __Pyx_INCREF(__pyx_v_raw_value); __Pyx_GIVEREF(__pyx_v_raw_value); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_raw_value); - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_self->_raw_headers, __pyx_t_2); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 393, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_self->_raw_headers, __pyx_t_2); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":378 + /* "aiohttp/_http_parser.pyx":379 * * cdef _process_header(self): * if self._raw_name: # <<<<<<<<<<<<<< @@ -7546,7 +7693,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st */ } - /* "aiohttp/_http_parser.pyx":377 + /* "aiohttp/_http_parser.pyx":378 * self._limit = limit * * cdef _process_header(self): # <<<<<<<<<<<<<< @@ -7574,7 +7721,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header(st return __pyx_r; } -/* "aiohttp/_http_parser.pyx":395 +/* "aiohttp/_http_parser.pyx":396 * self._raw_headers.append((raw_name, raw_value)) * * cdef _on_header_field(self, char* at, size_t length): # <<<<<<<<<<<<<< @@ -7596,7 +7743,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_on_header_field", 0); - /* "aiohttp/_http_parser.pyx":398 + /* "aiohttp/_http_parser.pyx":399 * cdef Py_ssize_t size * cdef char *buf * if self._has_value: # <<<<<<<<<<<<<< @@ -7606,18 +7753,18 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(s __pyx_t_1 = (__pyx_v_self->_has_value != 0); if (__pyx_t_1) { - /* "aiohttp/_http_parser.pyx":399 + /* "aiohttp/_http_parser.pyx":400 * cdef char *buf * if self._has_value: * self._process_header() # <<<<<<<<<<<<<< * * size = PyByteArray_Size(self._raw_name) */ - __pyx_t_2 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self->__pyx_vtab)->_process_header(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_2 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self->__pyx_vtab)->_process_header(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":398 + /* "aiohttp/_http_parser.pyx":399 * cdef Py_ssize_t size * cdef char *buf * if self._has_value: # <<<<<<<<<<<<<< @@ -7626,7 +7773,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(s */ } - /* "aiohttp/_http_parser.pyx":401 + /* "aiohttp/_http_parser.pyx":402 * self._process_header() * * size = PyByteArray_Size(self._raw_name) # <<<<<<<<<<<<<< @@ -7635,11 +7782,11 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(s */ __pyx_t_2 = __pyx_v_self->_raw_name; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = PyByteArray_Size(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1L))) __PYX_ERR(0, 401, __pyx_L1_error) + __pyx_t_3 = PyByteArray_Size(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1L))) __PYX_ERR(0, 402, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_size = __pyx_t_3; - /* "aiohttp/_http_parser.pyx":402 + /* "aiohttp/_http_parser.pyx":403 * * size = PyByteArray_Size(self._raw_name) * PyByteArray_Resize(self._raw_name, size + length) # <<<<<<<<<<<<<< @@ -7648,10 +7795,10 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(s */ __pyx_t_2 = __pyx_v_self->_raw_name; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = PyByteArray_Resize(__pyx_t_2, (__pyx_v_size + __pyx_v_length)); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 402, __pyx_L1_error) + __pyx_t_4 = PyByteArray_Resize(__pyx_t_2, (__pyx_v_size + __pyx_v_length)); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 403, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":403 + /* "aiohttp/_http_parser.pyx":404 * size = PyByteArray_Size(self._raw_name) * PyByteArray_Resize(self._raw_name, size + length) * buf = PyByteArray_AsString(self._raw_name) # <<<<<<<<<<<<<< @@ -7663,7 +7810,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(s __pyx_v_buf = PyByteArray_AsString(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":404 + /* "aiohttp/_http_parser.pyx":405 * PyByteArray_Resize(self._raw_name, size + length) * buf = PyByteArray_AsString(self._raw_name) * memcpy(buf + size, at, length) # <<<<<<<<<<<<<< @@ -7672,7 +7819,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(s */ (void)(memcpy((__pyx_v_buf + __pyx_v_size), __pyx_v_at, __pyx_v_length)); - /* "aiohttp/_http_parser.pyx":395 + /* "aiohttp/_http_parser.pyx":396 * self._raw_headers.append((raw_name, raw_value)) * * cdef _on_header_field(self, char* at, size_t length): # <<<<<<<<<<<<<< @@ -7693,7 +7840,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field(s return __pyx_r; } -/* "aiohttp/_http_parser.pyx":406 +/* "aiohttp/_http_parser.pyx":407 * memcpy(buf + size, at, length) * * cdef _on_header_value(self, char* at, size_t length): # <<<<<<<<<<<<<< @@ -7714,7 +7861,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_on_header_value", 0); - /* "aiohttp/_http_parser.pyx":410 + /* "aiohttp/_http_parser.pyx":411 * cdef char *buf * * size = PyByteArray_Size(self._raw_value) # <<<<<<<<<<<<<< @@ -7723,11 +7870,11 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(s */ __pyx_t_1 = __pyx_v_self->_raw_value; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = PyByteArray_Size(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1L))) __PYX_ERR(0, 410, __pyx_L1_error) + __pyx_t_2 = PyByteArray_Size(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1L))) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_size = __pyx_t_2; - /* "aiohttp/_http_parser.pyx":411 + /* "aiohttp/_http_parser.pyx":412 * * size = PyByteArray_Size(self._raw_value) * PyByteArray_Resize(self._raw_value, size + length) # <<<<<<<<<<<<<< @@ -7736,10 +7883,10 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(s */ __pyx_t_1 = __pyx_v_self->_raw_value; __Pyx_INCREF(__pyx_t_1); - __pyx_t_3 = PyByteArray_Resize(__pyx_t_1, (__pyx_v_size + __pyx_v_length)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 411, __pyx_L1_error) + __pyx_t_3 = PyByteArray_Resize(__pyx_t_1, (__pyx_v_size + __pyx_v_length)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 412, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":412 + /* "aiohttp/_http_parser.pyx":413 * size = PyByteArray_Size(self._raw_value) * PyByteArray_Resize(self._raw_value, size + length) * buf = PyByteArray_AsString(self._raw_value) # <<<<<<<<<<<<<< @@ -7751,7 +7898,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(s __pyx_v_buf = PyByteArray_AsString(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":413 + /* "aiohttp/_http_parser.pyx":414 * PyByteArray_Resize(self._raw_value, size + length) * buf = PyByteArray_AsString(self._raw_value) * memcpy(buf + size, at, length) # <<<<<<<<<<<<<< @@ -7760,7 +7907,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(s */ (void)(memcpy((__pyx_v_buf + __pyx_v_size), __pyx_v_at, __pyx_v_length)); - /* "aiohttp/_http_parser.pyx":414 + /* "aiohttp/_http_parser.pyx":415 * buf = PyByteArray_AsString(self._raw_value) * memcpy(buf + size, at, length) * self._has_value = True # <<<<<<<<<<<<<< @@ -7769,7 +7916,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(s */ __pyx_v_self->_has_value = 1; - /* "aiohttp/_http_parser.pyx":406 + /* "aiohttp/_http_parser.pyx":407 * memcpy(buf + size, at, length) * * cdef _on_header_value(self, char* at, size_t length): # <<<<<<<<<<<<<< @@ -7790,7 +7937,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(s return __pyx_r; } -/* "aiohttp/_http_parser.pyx":416 +/* "aiohttp/_http_parser.pyx":417 * self._has_value = True * * cdef _on_headers_complete(self): # <<<<<<<<<<<<<< @@ -7801,8 +7948,8 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value(s static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) { PyObject *__pyx_v_method = NULL; int __pyx_v_should_close; - unsigned int __pyx_v_upgrade; - unsigned int __pyx_v_chunked; + uint8_t __pyx_v_upgrade; + int __pyx_v_chunked; PyObject *__pyx_v_raw_headers = NULL; PyObject *__pyx_v_headers = NULL; PyObject *__pyx_v_encoding = NULL; @@ -7812,7 +7959,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - unsigned int __pyx_t_2; + uint8_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; @@ -7826,41 +7973,41 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_on_headers_complete", 0); - /* "aiohttp/_http_parser.pyx":417 + /* "aiohttp/_http_parser.pyx":418 * * cdef _on_headers_complete(self): * self._process_header() # <<<<<<<<<<<<<< * * method = http_method_str(self._cparser.method) */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self->__pyx_vtab)->_process_header(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 417, __pyx_L1_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self->__pyx_vtab)->_process_header(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":419 + /* "aiohttp/_http_parser.pyx":420 * self._process_header() * * method = http_method_str(self._cparser.method) # <<<<<<<<<<<<<< - * should_close = not cparser.http_should_keep_alive(self._cparser) + * should_close = not cparser.llhttp_should_keep_alive(self._cparser) * upgrade = self._cparser.upgrade */ - __pyx_t_1 = __pyx_f_7aiohttp_12_http_parser_http_method_str(__pyx_v_self->_cparser->method); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 419, __pyx_L1_error) + __pyx_t_1 = __pyx_f_7aiohttp_12_http_parser_http_method_str(__pyx_v_self->_cparser->method); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_method = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":420 + /* "aiohttp/_http_parser.pyx":421 * * method = http_method_str(self._cparser.method) - * should_close = not cparser.http_should_keep_alive(self._cparser) # <<<<<<<<<<<<<< + * should_close = not cparser.llhttp_should_keep_alive(self._cparser) # <<<<<<<<<<<<<< * upgrade = self._cparser.upgrade * chunked = self._cparser.flags & cparser.F_CHUNKED */ - __pyx_v_should_close = (!(http_should_keep_alive(__pyx_v_self->_cparser) != 0)); + __pyx_v_should_close = (!(llhttp_should_keep_alive(__pyx_v_self->_cparser) != 0)); - /* "aiohttp/_http_parser.pyx":421 + /* "aiohttp/_http_parser.pyx":422 * method = http_method_str(self._cparser.method) - * should_close = not cparser.http_should_keep_alive(self._cparser) + * should_close = not cparser.llhttp_should_keep_alive(self._cparser) * upgrade = self._cparser.upgrade # <<<<<<<<<<<<<< * chunked = self._cparser.flags & cparser.F_CHUNKED * @@ -7868,8 +8015,8 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_t_2 = __pyx_v_self->_cparser->upgrade; __pyx_v_upgrade = __pyx_t_2; - /* "aiohttp/_http_parser.pyx":422 - * should_close = not cparser.http_should_keep_alive(self._cparser) + /* "aiohttp/_http_parser.pyx":423 + * should_close = not cparser.llhttp_should_keep_alive(self._cparser) * upgrade = self._cparser.upgrade * chunked = self._cparser.flags & cparser.F_CHUNKED # <<<<<<<<<<<<<< * @@ -7877,7 +8024,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple */ __pyx_v_chunked = (__pyx_v_self->_cparser->flags & F_CHUNKED); - /* "aiohttp/_http_parser.pyx":424 + /* "aiohttp/_http_parser.pyx":425 * chunked = self._cparser.flags & cparser.F_CHUNKED * * raw_headers = tuple(self._raw_headers) # <<<<<<<<<<<<<< @@ -7886,19 +8033,19 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple */ if (unlikely(__pyx_v_self->_raw_headers == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 424, __pyx_L1_error) + __PYX_ERR(0, 425, __pyx_L1_error) } - __pyx_t_1 = PyList_AsTuple(__pyx_v_self->_raw_headers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) + __pyx_t_1 = PyList_AsTuple(__pyx_v_self->_raw_headers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_raw_headers = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":425 + /* "aiohttp/_http_parser.pyx":426 * * raw_headers = tuple(self._raw_headers) * headers = CIMultiDictProxy(self._headers) # <<<<<<<<<<<<<< * - * if upgrade or self._cparser.method == 5: # cparser.CONNECT: + * if upgrade or self._cparser.method == cparser.HTTP_CONNECT: */ __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_CIMultiDictProxy); __pyx_t_3 = __pyx_v_7aiohttp_12_http_parser_CIMultiDictProxy; __pyx_t_4 = NULL; @@ -7913,16 +8060,16 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_self->_headers) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_self->_headers); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_headers = __pyx_t_1; __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":427 + /* "aiohttp/_http_parser.pyx":428 * headers = CIMultiDictProxy(self._headers) * - * if upgrade or self._cparser.method == 5: # cparser.CONNECT: # <<<<<<<<<<<<<< + * if upgrade or self._cparser.method == cparser.HTTP_CONNECT: # <<<<<<<<<<<<<< * self._upgraded = True * */ @@ -7932,48 +8079,48 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_t_5 = __pyx_t_6; goto __pyx_L4_bool_binop_done; } - __pyx_t_6 = ((__pyx_v_self->_cparser->method == 5) != 0); + __pyx_t_6 = ((__pyx_v_self->_cparser->method == HTTP_CONNECT) != 0); __pyx_t_5 = __pyx_t_6; __pyx_L4_bool_binop_done:; if (__pyx_t_5) { - /* "aiohttp/_http_parser.pyx":428 + /* "aiohttp/_http_parser.pyx":429 * - * if upgrade or self._cparser.method == 5: # cparser.CONNECT: + * if upgrade or self._cparser.method == cparser.HTTP_CONNECT: * self._upgraded = True # <<<<<<<<<<<<<< * * # do not support old websocket spec */ __pyx_v_self->_upgraded = 1; - /* "aiohttp/_http_parser.pyx":427 + /* "aiohttp/_http_parser.pyx":428 * headers = CIMultiDictProxy(self._headers) * - * if upgrade or self._cparser.method == 5: # cparser.CONNECT: # <<<<<<<<<<<<<< + * if upgrade or self._cparser.method == cparser.HTTP_CONNECT: # <<<<<<<<<<<<<< * self._upgraded = True * */ } - /* "aiohttp/_http_parser.pyx":431 + /* "aiohttp/_http_parser.pyx":432 * * # do not support old websocket spec * if SEC_WEBSOCKET_KEY1 in headers: # <<<<<<<<<<<<<< * raise InvalidHeader(SEC_WEBSOCKET_KEY1) * */ - __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1, __pyx_v_headers, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 431, __pyx_L1_error) + __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1, __pyx_v_headers, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 432, __pyx_L1_error) __pyx_t_6 = (__pyx_t_5 != 0); if (unlikely(__pyx_t_6)) { - /* "aiohttp/_http_parser.pyx":432 + /* "aiohttp/_http_parser.pyx":433 * # do not support old websocket spec * if SEC_WEBSOCKET_KEY1 in headers: * raise InvalidHeader(SEC_WEBSOCKET_KEY1) # <<<<<<<<<<<<<< * * encoding = None */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InvalidHeader); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 432, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InvalidHeader); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -7987,14 +8134,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 432, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 432, __pyx_L1_error) + __PYX_ERR(0, 433, __pyx_L1_error) - /* "aiohttp/_http_parser.pyx":431 + /* "aiohttp/_http_parser.pyx":432 * * # do not support old websocket spec * if SEC_WEBSOCKET_KEY1 in headers: # <<<<<<<<<<<<<< @@ -8003,7 +8150,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple */ } - /* "aiohttp/_http_parser.pyx":434 + /* "aiohttp/_http_parser.pyx":435 * raise InvalidHeader(SEC_WEBSOCKET_KEY1) * * encoding = None # <<<<<<<<<<<<<< @@ -8013,7 +8160,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __Pyx_INCREF(Py_None); __pyx_v_encoding = Py_None; - /* "aiohttp/_http_parser.pyx":435 + /* "aiohttp/_http_parser.pyx":436 * * encoding = None * enc = self._content_encoding # <<<<<<<<<<<<<< @@ -8025,7 +8172,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_v_enc = __pyx_t_1; __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":436 + /* "aiohttp/_http_parser.pyx":437 * encoding = None * enc = self._content_encoding * if enc is not None: # <<<<<<<<<<<<<< @@ -8036,7 +8183,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { - /* "aiohttp/_http_parser.pyx":437 + /* "aiohttp/_http_parser.pyx":438 * enc = self._content_encoding * if enc is not None: * self._content_encoding = None # <<<<<<<<<<<<<< @@ -8049,14 +8196,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __Pyx_DECREF(__pyx_v_self->_content_encoding); __pyx_v_self->_content_encoding = ((PyObject*)Py_None); - /* "aiohttp/_http_parser.pyx":438 + /* "aiohttp/_http_parser.pyx":439 * if enc is not None: * self._content_encoding = None * enc = enc.lower() # <<<<<<<<<<<<<< * if enc in ('gzip', 'deflate', 'br'): * encoding = enc */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_enc, __pyx_n_s_lower); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 438, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_enc, __pyx_n_s_lower); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -8070,13 +8217,13 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 438, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_enc, __pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":439 + /* "aiohttp/_http_parser.pyx":440 * self._content_encoding = None * enc = enc.lower() * if enc in ('gzip', 'deflate', 'br'): # <<<<<<<<<<<<<< @@ -8085,26 +8232,26 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple */ __Pyx_INCREF(__pyx_v_enc); __pyx_t_1 = __pyx_v_enc; - __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_gzip, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 439, __pyx_L1_error) + __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_gzip, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 440, __pyx_L1_error) if (!__pyx_t_6) { } else { __pyx_t_5 = __pyx_t_6; goto __pyx_L9_bool_binop_done; } - __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_deflate, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 439, __pyx_L1_error) + __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_deflate, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 440, __pyx_L1_error) if (!__pyx_t_6) { } else { __pyx_t_5 = __pyx_t_6; goto __pyx_L9_bool_binop_done; } - __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_br, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 439, __pyx_L1_error) + __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_br, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 440, __pyx_L1_error) __pyx_t_5 = __pyx_t_6; __pyx_L9_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "aiohttp/_http_parser.pyx":440 + /* "aiohttp/_http_parser.pyx":441 * enc = enc.lower() * if enc in ('gzip', 'deflate', 'br'): * encoding = enc # <<<<<<<<<<<<<< @@ -8114,7 +8261,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __Pyx_INCREF(__pyx_v_enc); __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_v_enc); - /* "aiohttp/_http_parser.pyx":439 + /* "aiohttp/_http_parser.pyx":440 * self._content_encoding = None * enc = enc.lower() * if enc in ('gzip', 'deflate', 'br'): # <<<<<<<<<<<<<< @@ -8123,7 +8270,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple */ } - /* "aiohttp/_http_parser.pyx":436 + /* "aiohttp/_http_parser.pyx":437 * encoding = None * enc = self._content_encoding * if enc is not None: # <<<<<<<<<<<<<< @@ -8132,7 +8279,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple */ } - /* "aiohttp/_http_parser.pyx":442 + /* "aiohttp/_http_parser.pyx":443 * encoding = enc * * if self._cparser.type == cparser.HTTP_REQUEST: # <<<<<<<<<<<<<< @@ -8142,7 +8289,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_t_6 = ((__pyx_v_self->_cparser->type == HTTP_REQUEST) != 0); if (__pyx_t_6) { - /* "aiohttp/_http_parser.pyx":444 + /* "aiohttp/_http_parser.pyx":445 * if self._cparser.type == cparser.HTTP_REQUEST: * msg = _new_request_message( * method, self._path, # <<<<<<<<<<<<<< @@ -8152,17 +8299,17 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_t_1 = __pyx_v_self->_path; __Pyx_INCREF(__pyx_t_1); - /* "aiohttp/_http_parser.pyx":445 + /* "aiohttp/_http_parser.pyx":446 * msg = _new_request_message( * method, self._path, * self.http_version(), headers, raw_headers, # <<<<<<<<<<<<<< * should_close, encoding, upgrade, chunked, self._url) * else: */ - __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 445, __pyx_L1_error) + __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - /* "aiohttp/_http_parser.pyx":446 + /* "aiohttp/_http_parser.pyx":447 * method, self._path, * self.http_version(), headers, raw_headers, * should_close, encoding, upgrade, chunked, self._url) # <<<<<<<<<<<<<< @@ -8172,14 +8319,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_t_4 = __pyx_v_self->_url; __Pyx_INCREF(__pyx_t_4); - /* "aiohttp/_http_parser.pyx":443 + /* "aiohttp/_http_parser.pyx":444 * * if self._cparser.type == cparser.HTTP_REQUEST: * msg = _new_request_message( # <<<<<<<<<<<<<< * method, self._path, * self.http_version(), headers, raw_headers, */ - __pyx_t_7 = __pyx_f_7aiohttp_12_http_parser__new_request_message(__pyx_v_method, ((PyObject*)__pyx_t_1), __pyx_t_3, __pyx_v_headers, __pyx_v_raw_headers, __pyx_v_should_close, __pyx_v_encoding, __pyx_v_upgrade, __pyx_v_chunked, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 443, __pyx_L1_error) + __pyx_t_7 = __pyx_f_7aiohttp_12_http_parser__new_request_message(__pyx_v_method, ((PyObject*)__pyx_t_1), __pyx_t_3, __pyx_v_headers, __pyx_v_raw_headers, __pyx_v_should_close, __pyx_v_encoding, __pyx_v_upgrade, __pyx_v_chunked, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -8187,7 +8334,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_v_msg = __pyx_t_7; __pyx_t_7 = 0; - /* "aiohttp/_http_parser.pyx":442 + /* "aiohttp/_http_parser.pyx":443 * encoding = enc * * if self._cparser.type == cparser.HTTP_REQUEST: # <<<<<<<<<<<<<< @@ -8197,7 +8344,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple goto __pyx_L12; } - /* "aiohttp/_http_parser.pyx":448 + /* "aiohttp/_http_parser.pyx":449 * should_close, encoding, upgrade, chunked, self._url) * else: * msg = _new_response_message( # <<<<<<<<<<<<<< @@ -8206,26 +8353,26 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple */ /*else*/ { - /* "aiohttp/_http_parser.pyx":449 + /* "aiohttp/_http_parser.pyx":450 * else: * msg = _new_response_message( * self.http_version(), self._cparser.status_code, self._reason, # <<<<<<<<<<<<<< * headers, raw_headers, should_close, encoding, * upgrade, chunked) */ - __pyx_t_7 = __pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(__pyx_v_self); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 449, __pyx_L1_error) + __pyx_t_7 = __pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(__pyx_v_self); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = __pyx_v_self->_reason; __Pyx_INCREF(__pyx_t_4); - /* "aiohttp/_http_parser.pyx":448 + /* "aiohttp/_http_parser.pyx":449 * should_close, encoding, upgrade, chunked, self._url) * else: * msg = _new_response_message( # <<<<<<<<<<<<<< * self.http_version(), self._cparser.status_code, self._reason, * headers, raw_headers, should_close, encoding, */ - __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser__new_response_message(__pyx_t_7, __pyx_v_self->_cparser->status_code, ((PyObject*)__pyx_t_4), __pyx_v_headers, __pyx_v_raw_headers, __pyx_v_should_close, __pyx_v_encoding, __pyx_v_upgrade, __pyx_v_chunked); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 448, __pyx_L1_error) + __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser__new_response_message(__pyx_t_7, __pyx_v_self->_cparser->status_code, ((PyObject*)__pyx_t_4), __pyx_v_headers, __pyx_v_raw_headers, __pyx_v_should_close, __pyx_v_encoding, __pyx_v_upgrade, __pyx_v_chunked); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -8234,12 +8381,12 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple } __pyx_L12:; - /* "aiohttp/_http_parser.pyx":453 - * upgrade, chunked) + /* "aiohttp/_http_parser.pyx":455 * - * if (ULLONG_MAX > self._cparser.content_length > 0 or chunked or # <<<<<<<<<<<<<< - * self._cparser.method == 5 or # CONNECT: 5 - * (self._cparser.status_code >= 199 and + * if ( + * ULLONG_MAX > self._cparser.content_length > 0 or chunked or # <<<<<<<<<<<<<< + * self._cparser.method == cparser.HTTP_CONNECT or + * (self._cparser.status_code >= 199 and */ __pyx_t_5 = (ULLONG_MAX > __pyx_v_self->_cparser->content_length); if (__pyx_t_5) { @@ -8258,26 +8405,26 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple goto __pyx_L14_bool_binop_done; } - /* "aiohttp/_http_parser.pyx":454 - * - * if (ULLONG_MAX > self._cparser.content_length > 0 or chunked or - * self._cparser.method == 5 or # CONNECT: 5 # <<<<<<<<<<<<<< - * (self._cparser.status_code >= 199 and - * self._cparser.content_length == ULLONG_MAX and + /* "aiohttp/_http_parser.pyx":456 + * if ( + * ULLONG_MAX > self._cparser.content_length > 0 or chunked or + * self._cparser.method == cparser.HTTP_CONNECT or # <<<<<<<<<<<<<< + * (self._cparser.status_code >= 199 and + * self._cparser.content_length == 0 and */ - __pyx_t_8 = ((__pyx_v_self->_cparser->method == 5) != 0); + __pyx_t_8 = ((__pyx_v_self->_cparser->method == HTTP_CONNECT) != 0); if (!__pyx_t_8) { } else { __pyx_t_6 = __pyx_t_8; goto __pyx_L14_bool_binop_done; } - /* "aiohttp/_http_parser.pyx":455 - * if (ULLONG_MAX > self._cparser.content_length > 0 or chunked or - * self._cparser.method == 5 or # CONNECT: 5 - * (self._cparser.status_code >= 199 and # <<<<<<<<<<<<<< - * self._cparser.content_length == ULLONG_MAX and - * self._read_until_eof) + /* "aiohttp/_http_parser.pyx":457 + * ULLONG_MAX > self._cparser.content_length > 0 or chunked or + * self._cparser.method == cparser.HTTP_CONNECT or + * (self._cparser.status_code >= 199 and # <<<<<<<<<<<<<< + * self._cparser.content_length == 0 and + * self._read_until_eof) */ __pyx_t_8 = ((__pyx_v_self->_cparser->status_code >= 0xC7) != 0); if (__pyx_t_8) { @@ -8286,24 +8433,24 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple goto __pyx_L14_bool_binop_done; } - /* "aiohttp/_http_parser.pyx":456 - * self._cparser.method == 5 or # CONNECT: 5 - * (self._cparser.status_code >= 199 and - * self._cparser.content_length == ULLONG_MAX and # <<<<<<<<<<<<<< - * self._read_until_eof) + /* "aiohttp/_http_parser.pyx":458 + * self._cparser.method == cparser.HTTP_CONNECT or + * (self._cparser.status_code >= 199 and + * self._cparser.content_length == 0 and # <<<<<<<<<<<<<< + * self._read_until_eof) * ): */ - __pyx_t_8 = ((__pyx_v_self->_cparser->content_length == ULLONG_MAX) != 0); + __pyx_t_8 = ((__pyx_v_self->_cparser->content_length == 0) != 0); if (__pyx_t_8) { } else { __pyx_t_6 = __pyx_t_8; goto __pyx_L14_bool_binop_done; } - /* "aiohttp/_http_parser.pyx":457 - * (self._cparser.status_code >= 199 and - * self._cparser.content_length == ULLONG_MAX and - * self._read_until_eof) # <<<<<<<<<<<<<< + /* "aiohttp/_http_parser.pyx":459 + * (self._cparser.status_code >= 199 and + * self._cparser.content_length == 0 and + * self._read_until_eof) # <<<<<<<<<<<<<< * ): * payload = StreamReader( */ @@ -8311,77 +8458,77 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_t_6 = __pyx_t_8; __pyx_L14_bool_binop_done:; - /* "aiohttp/_http_parser.pyx":453 + /* "aiohttp/_http_parser.pyx":454 * upgrade, chunked) * - * if (ULLONG_MAX > self._cparser.content_length > 0 or chunked or # <<<<<<<<<<<<<< - * self._cparser.method == 5 or # CONNECT: 5 - * (self._cparser.status_code >= 199 and + * if ( # <<<<<<<<<<<<<< + * ULLONG_MAX > self._cparser.content_length > 0 or chunked or + * self._cparser.method == cparser.HTTP_CONNECT or */ if (__pyx_t_6) { - /* "aiohttp/_http_parser.pyx":459 - * self._read_until_eof) + /* "aiohttp/_http_parser.pyx":461 + * self._read_until_eof) * ): * payload = StreamReader( # <<<<<<<<<<<<<< * self._protocol, timer=self._timer, loop=self._loop, * limit=self._limit) */ - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_self->_protocol); __Pyx_GIVEREF(__pyx_v_self->_protocol); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->_protocol); - /* "aiohttp/_http_parser.pyx":460 + /* "aiohttp/_http_parser.pyx":462 * ): * payload = StreamReader( * self._protocol, timer=self._timer, loop=self._loop, # <<<<<<<<<<<<<< * limit=self._limit) * else: */ - __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 460, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_timer, __pyx_v_self->_timer) < 0) __PYX_ERR(0, 460, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_loop, __pyx_v_self->_loop) < 0) __PYX_ERR(0, 460, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_timer, __pyx_v_self->_timer) < 0) __PYX_ERR(0, 462, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_loop, __pyx_v_self->_loop) < 0) __PYX_ERR(0, 462, __pyx_L1_error) - /* "aiohttp/_http_parser.pyx":461 + /* "aiohttp/_http_parser.pyx":463 * payload = StreamReader( * self._protocol, timer=self._timer, loop=self._loop, * limit=self._limit) # <<<<<<<<<<<<<< * else: * payload = EMPTY_PAYLOAD */ - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->_limit); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 461, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_self->_limit); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_limit, __pyx_t_7) < 0) __PYX_ERR(0, 460, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_limit, __pyx_t_7) < 0) __PYX_ERR(0, 462, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "aiohttp/_http_parser.pyx":459 - * self._read_until_eof) + /* "aiohttp/_http_parser.pyx":461 + * self._read_until_eof) * ): * payload = StreamReader( # <<<<<<<<<<<<<< * self._protocol, timer=self._timer, loop=self._loop, * limit=self._limit) */ - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_7aiohttp_12_http_parser_StreamReader, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 459, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_7aiohttp_12_http_parser_StreamReader, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_payload = __pyx_t_7; __pyx_t_7 = 0; - /* "aiohttp/_http_parser.pyx":453 + /* "aiohttp/_http_parser.pyx":454 * upgrade, chunked) * - * if (ULLONG_MAX > self._cparser.content_length > 0 or chunked or # <<<<<<<<<<<<<< - * self._cparser.method == 5 or # CONNECT: 5 - * (self._cparser.status_code >= 199 and + * if ( # <<<<<<<<<<<<<< + * ULLONG_MAX > self._cparser.content_length > 0 or chunked or + * self._cparser.method == cparser.HTTP_CONNECT or */ goto __pyx_L13; } - /* "aiohttp/_http_parser.pyx":463 + /* "aiohttp/_http_parser.pyx":465 * limit=self._limit) * else: * payload = EMPTY_PAYLOAD # <<<<<<<<<<<<<< @@ -8394,7 +8541,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple } __pyx_L13:; - /* "aiohttp/_http_parser.pyx":465 + /* "aiohttp/_http_parser.pyx":467 * payload = EMPTY_PAYLOAD * * self._payload = payload # <<<<<<<<<<<<<< @@ -8407,7 +8554,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __Pyx_DECREF(__pyx_v_self->_payload); __pyx_v_self->_payload = __pyx_v_payload; - /* "aiohttp/_http_parser.pyx":466 + /* "aiohttp/_http_parser.pyx":468 * * self._payload = payload * if encoding is not None and self._auto_decompress: # <<<<<<<<<<<<<< @@ -8426,7 +8573,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_L21_bool_binop_done:; if (__pyx_t_6) { - /* "aiohttp/_http_parser.pyx":467 + /* "aiohttp/_http_parser.pyx":469 * self._payload = payload * if encoding is not None and self._auto_decompress: * self._payload = DeflateBuffer(payload, encoding) # <<<<<<<<<<<<<< @@ -8449,7 +8596,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_payload, __pyx_v_encoding}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 469, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_7); } else @@ -8457,13 +8604,13 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_payload, __pyx_v_encoding}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 469, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { - __pyx_t_1 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = NULL; @@ -8474,7 +8621,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __Pyx_INCREF(__pyx_v_encoding); __Pyx_GIVEREF(__pyx_v_encoding); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_9, __pyx_v_encoding); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } @@ -8485,7 +8632,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_v_self->_payload = __pyx_t_7; __pyx_t_7 = 0; - /* "aiohttp/_http_parser.pyx":466 + /* "aiohttp/_http_parser.pyx":468 * * self._payload = payload * if encoding is not None and self._auto_decompress: # <<<<<<<<<<<<<< @@ -8494,7 +8641,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple */ } - /* "aiohttp/_http_parser.pyx":469 + /* "aiohttp/_http_parser.pyx":471 * self._payload = DeflateBuffer(payload, encoding) * * if not self._response_with_body: # <<<<<<<<<<<<<< @@ -8504,7 +8651,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __pyx_t_6 = ((!(__pyx_v_self->_response_with_body != 0)) != 0); if (__pyx_t_6) { - /* "aiohttp/_http_parser.pyx":470 + /* "aiohttp/_http_parser.pyx":472 * * if not self._response_with_body: * payload = EMPTY_PAYLOAD # <<<<<<<<<<<<<< @@ -8514,7 +8661,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD); __Pyx_DECREF_SET(__pyx_v_payload, __pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD); - /* "aiohttp/_http_parser.pyx":469 + /* "aiohttp/_http_parser.pyx":471 * self._payload = DeflateBuffer(payload, encoding) * * if not self._response_with_body: # <<<<<<<<<<<<<< @@ -8523,7 +8670,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple */ } - /* "aiohttp/_http_parser.pyx":472 + /* "aiohttp/_http_parser.pyx":474 * payload = EMPTY_PAYLOAD * * self._messages.append((msg, payload)) # <<<<<<<<<<<<<< @@ -8532,9 +8679,9 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple */ if (unlikely(__pyx_v_self->_messages == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 472, __pyx_L1_error) + __PYX_ERR(0, 474, __pyx_L1_error) } - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 472, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_msg); __Pyx_GIVEREF(__pyx_v_msg); @@ -8542,10 +8689,10 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple __Pyx_INCREF(__pyx_v_payload); __Pyx_GIVEREF(__pyx_v_payload); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_payload); - __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_self->_messages, __pyx_t_7); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 472, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_self->_messages, __pyx_t_7); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 474, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "aiohttp/_http_parser.pyx":416 + /* "aiohttp/_http_parser.pyx":417 * self._has_value = True * * cdef _on_headers_complete(self): # <<<<<<<<<<<<<< @@ -8576,7 +8723,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_headers_comple return __pyx_r; } -/* "aiohttp/_http_parser.pyx":474 +/* "aiohttp/_http_parser.pyx":476 * self._messages.append((msg, payload)) * * cdef _on_message_complete(self): # <<<<<<<<<<<<<< @@ -8595,14 +8742,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_message_comple int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_on_message_complete", 0); - /* "aiohttp/_http_parser.pyx":475 + /* "aiohttp/_http_parser.pyx":477 * * cdef _on_message_complete(self): * self._payload.feed_eof() # <<<<<<<<<<<<<< * self._payload = None * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_feed_eof); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 475, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_feed_eof); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -8616,12 +8763,12 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_message_comple } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 475, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":476 + /* "aiohttp/_http_parser.pyx":478 * cdef _on_message_complete(self): * self._payload.feed_eof() * self._payload = None # <<<<<<<<<<<<<< @@ -8634,7 +8781,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_message_comple __Pyx_DECREF(__pyx_v_self->_payload); __pyx_v_self->_payload = Py_None; - /* "aiohttp/_http_parser.pyx":474 + /* "aiohttp/_http_parser.pyx":476 * self._messages.append((msg, payload)) * * cdef _on_message_complete(self): # <<<<<<<<<<<<<< @@ -8657,7 +8804,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_message_comple return __pyx_r; } -/* "aiohttp/_http_parser.pyx":478 +/* "aiohttp/_http_parser.pyx":480 * self._payload = None * * cdef _on_chunk_header(self): # <<<<<<<<<<<<<< @@ -8676,14 +8823,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_header(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_on_chunk_header", 0); - /* "aiohttp/_http_parser.pyx":479 + /* "aiohttp/_http_parser.pyx":481 * * cdef _on_chunk_header(self): * self._payload.begin_http_chunk_receiving() # <<<<<<<<<<<<<< * * cdef _on_chunk_complete(self): */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_begin_http_chunk_receiving); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 479, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_begin_http_chunk_receiving); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -8697,12 +8844,12 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_header(s } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 479, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":478 + /* "aiohttp/_http_parser.pyx":480 * self._payload = None * * cdef _on_chunk_header(self): # <<<<<<<<<<<<<< @@ -8725,7 +8872,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_header(s return __pyx_r; } -/* "aiohttp/_http_parser.pyx":481 +/* "aiohttp/_http_parser.pyx":483 * self._payload.begin_http_chunk_receiving() * * cdef _on_chunk_complete(self): # <<<<<<<<<<<<<< @@ -8744,14 +8891,14 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_complete int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_on_chunk_complete", 0); - /* "aiohttp/_http_parser.pyx":482 + /* "aiohttp/_http_parser.pyx":484 * * cdef _on_chunk_complete(self): * self._payload.end_http_chunk_receiving() # <<<<<<<<<<<<<< * * cdef object _on_status_complete(self): */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_end_http_chunk_receiving); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 482, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_end_http_chunk_receiving); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { @@ -8765,12 +8912,12 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_complete } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 482, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":481 + /* "aiohttp/_http_parser.pyx":483 * self._payload.begin_http_chunk_receiving() * * cdef _on_chunk_complete(self): # <<<<<<<<<<<<<< @@ -8793,7 +8940,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_chunk_complete return __pyx_r; } -/* "aiohttp/_http_parser.pyx":484 +/* "aiohttp/_http_parser.pyx":486 * self._payload.end_http_chunk_receiving() * * cdef object _on_status_complete(self): # <<<<<<<<<<<<<< @@ -8813,19 +8960,19 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_status_complet return __pyx_r; } -/* "aiohttp/_http_parser.pyx":487 +/* "aiohttp/_http_parser.pyx":489 * pass * * cdef inline http_version(self): # <<<<<<<<<<<<<< - * cdef cparser.http_parser* parser = self._cparser + * cdef cparser.llhttp_t* parser = self._cparser * */ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http_version(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self) { - struct http_parser *__pyx_v_parser; + llhttp_t *__pyx_v_parser; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - struct http_parser *__pyx_t_1; + llhttp_t *__pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; @@ -8839,18 +8986,18 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http int __pyx_clineno = 0; __Pyx_RefNannySetupContext("http_version", 0); - /* "aiohttp/_http_parser.pyx":488 + /* "aiohttp/_http_parser.pyx":490 * * cdef inline http_version(self): - * cdef cparser.http_parser* parser = self._cparser # <<<<<<<<<<<<<< + * cdef cparser.llhttp_t* parser = self._cparser # <<<<<<<<<<<<<< * * if parser.http_major == 1: */ __pyx_t_1 = __pyx_v_self->_cparser; __pyx_v_parser = __pyx_t_1; - /* "aiohttp/_http_parser.pyx":490 - * cdef cparser.http_parser* parser = self._cparser + /* "aiohttp/_http_parser.pyx":492 + * cdef cparser.llhttp_t* parser = self._cparser * * if parser.http_major == 1: # <<<<<<<<<<<<<< * if parser.http_minor == 0: @@ -8859,7 +9006,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http __pyx_t_2 = ((__pyx_v_parser->http_major == 1) != 0); if (__pyx_t_2) { - /* "aiohttp/_http_parser.pyx":491 + /* "aiohttp/_http_parser.pyx":493 * * if parser.http_major == 1: * if parser.http_minor == 0: # <<<<<<<<<<<<<< @@ -8869,7 +9016,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http switch (__pyx_v_parser->http_minor) { case 0: - /* "aiohttp/_http_parser.pyx":492 + /* "aiohttp/_http_parser.pyx":494 * if parser.http_major == 1: * if parser.http_minor == 0: * return HttpVersion10 # <<<<<<<<<<<<<< @@ -8881,7 +9028,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http __pyx_r = __pyx_v_7aiohttp_12_http_parser_HttpVersion10; goto __pyx_L0; - /* "aiohttp/_http_parser.pyx":491 + /* "aiohttp/_http_parser.pyx":493 * * if parser.http_major == 1: * if parser.http_minor == 0: # <<<<<<<<<<<<<< @@ -8891,7 +9038,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http break; case 1: - /* "aiohttp/_http_parser.pyx":494 + /* "aiohttp/_http_parser.pyx":496 * return HttpVersion10 * elif parser.http_minor == 1: * return HttpVersion11 # <<<<<<<<<<<<<< @@ -8903,7 +9050,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http __pyx_r = __pyx_v_7aiohttp_12_http_parser_HttpVersion11; goto __pyx_L0; - /* "aiohttp/_http_parser.pyx":493 + /* "aiohttp/_http_parser.pyx":495 * if parser.http_minor == 0: * return HttpVersion10 * elif parser.http_minor == 1: # <<<<<<<<<<<<<< @@ -8914,8 +9061,8 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http default: break; } - /* "aiohttp/_http_parser.pyx":490 - * cdef cparser.http_parser* parser = self._cparser + /* "aiohttp/_http_parser.pyx":492 + * cdef cparser.llhttp_t* parser = self._cparser * * if parser.http_major == 1: # <<<<<<<<<<<<<< * if parser.http_minor == 0: @@ -8923,7 +9070,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http */ } - /* "aiohttp/_http_parser.pyx":496 + /* "aiohttp/_http_parser.pyx":498 * return HttpVersion11 * * return HttpVersion(parser.http_major, parser.http_minor) # <<<<<<<<<<<<<< @@ -8931,9 +9078,9 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http * ### Public API ### */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = __Pyx_PyInt_From_unsigned_short(__pyx_v_parser->http_major); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 496, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_uint8_t(__pyx_v_parser->http_major); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyInt_From_unsigned_short(__pyx_v_parser->http_minor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 496, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_From_uint8_t(__pyx_v_parser->http_minor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_HttpVersion); __pyx_t_6 = __pyx_v_7aiohttp_12_http_parser_HttpVersion; __pyx_t_7 = NULL; @@ -8951,7 +9098,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 496, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -8961,7 +9108,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 496, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -8969,7 +9116,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 496, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -8980,7 +9127,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 496, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } @@ -8989,11 +9136,11 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http __pyx_t_3 = 0; goto __pyx_L0; - /* "aiohttp/_http_parser.pyx":487 + /* "aiohttp/_http_parser.pyx":489 * pass * * cdef inline http_version(self): # <<<<<<<<<<<<<< - * cdef cparser.http_parser* parser = self._cparser + * cdef cparser.llhttp_t* parser = self._cparser * */ @@ -9013,7 +9160,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7aiohttp_12_http_parser_10HttpParser_http return __pyx_r; } -/* "aiohttp/_http_parser.pyx":500 +/* "aiohttp/_http_parser.pyx":502 * ### Public API ### * * def feed_eof(self): # <<<<<<<<<<<<<< @@ -9049,7 +9196,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("feed_eof", 0); - /* "aiohttp/_http_parser.pyx":503 + /* "aiohttp/_http_parser.pyx":505 * cdef bytes desc * * if self._payload is not None: # <<<<<<<<<<<<<< @@ -9060,7 +9207,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { - /* "aiohttp/_http_parser.pyx":504 + /* "aiohttp/_http_parser.pyx":506 * * if self._payload is not None: * if self._cparser.flags & cparser.F_CHUNKED: # <<<<<<<<<<<<<< @@ -9070,14 +9217,14 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct __pyx_t_2 = ((__pyx_v_self->_cparser->flags & F_CHUNKED) != 0); if (unlikely(__pyx_t_2)) { - /* "aiohttp/_http_parser.pyx":505 + /* "aiohttp/_http_parser.pyx":507 * if self._payload is not None: * if self._cparser.flags & cparser.F_CHUNKED: * raise TransferEncodingError( # <<<<<<<<<<<<<< * "Not enough data for satisfy transfer length header.") - * elif self._cparser.flags & cparser.F_CONTENTLENGTH: + * elif self._cparser.flags & cparser.F_CONTENT_LENGTH: */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_TransferEncodingError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 505, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_TransferEncodingError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -9091,14 +9238,14 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_u_Not_enough_data_for_satisfy_tran) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_Not_enough_data_for_satisfy_tran); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 505, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 505, __pyx_L1_error) + __PYX_ERR(0, 507, __pyx_L1_error) - /* "aiohttp/_http_parser.pyx":504 + /* "aiohttp/_http_parser.pyx":506 * * if self._payload is not None: * if self._cparser.flags & cparser.F_CHUNKED: # <<<<<<<<<<<<<< @@ -9107,24 +9254,24 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct */ } - /* "aiohttp/_http_parser.pyx":507 + /* "aiohttp/_http_parser.pyx":509 * raise TransferEncodingError( * "Not enough data for satisfy transfer length header.") - * elif self._cparser.flags & cparser.F_CONTENTLENGTH: # <<<<<<<<<<<<<< + * elif self._cparser.flags & cparser.F_CONTENT_LENGTH: # <<<<<<<<<<<<<< * raise ContentLengthError( * "Not enough data for satisfy content length header.") */ - __pyx_t_2 = ((__pyx_v_self->_cparser->flags & F_CONTENTLENGTH) != 0); + __pyx_t_2 = ((__pyx_v_self->_cparser->flags & F_CONTENT_LENGTH) != 0); if (unlikely(__pyx_t_2)) { - /* "aiohttp/_http_parser.pyx":508 + /* "aiohttp/_http_parser.pyx":510 * "Not enough data for satisfy transfer length header.") - * elif self._cparser.flags & cparser.F_CONTENTLENGTH: + * elif self._cparser.flags & cparser.F_CONTENT_LENGTH: * raise ContentLengthError( # <<<<<<<<<<<<<< * "Not enough data for satisfy content length header.") - * elif self._cparser.http_errno != cparser.HPE_OK: + * elif cparser.llhttp_get_errno(self._cparser) != cparser.HPE_OK: */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ContentLengthError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 508, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ContentLengthError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -9138,54 +9285,54 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_u_Not_enough_data_for_satisfy_cont) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_Not_enough_data_for_satisfy_cont); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 508, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 508, __pyx_L1_error) + __PYX_ERR(0, 510, __pyx_L1_error) - /* "aiohttp/_http_parser.pyx":507 + /* "aiohttp/_http_parser.pyx":509 * raise TransferEncodingError( * "Not enough data for satisfy transfer length header.") - * elif self._cparser.flags & cparser.F_CONTENTLENGTH: # <<<<<<<<<<<<<< + * elif self._cparser.flags & cparser.F_CONTENT_LENGTH: # <<<<<<<<<<<<<< * raise ContentLengthError( * "Not enough data for satisfy content length header.") */ } - /* "aiohttp/_http_parser.pyx":510 + /* "aiohttp/_http_parser.pyx":512 * raise ContentLengthError( * "Not enough data for satisfy content length header.") - * elif self._cparser.http_errno != cparser.HPE_OK: # <<<<<<<<<<<<<< - * desc = cparser.http_errno_description( - * self._cparser.http_errno) + * elif cparser.llhttp_get_errno(self._cparser) != cparser.HPE_OK: # <<<<<<<<<<<<<< + * desc = cparser.llhttp_get_error_reason(self._cparser) + * raise PayloadEncodingError(desc.decode('latin-1')) */ - __pyx_t_2 = ((__pyx_v_self->_cparser->http_errno != HPE_OK) != 0); + __pyx_t_2 = ((llhttp_get_errno(__pyx_v_self->_cparser) != HPE_OK) != 0); if (unlikely(__pyx_t_2)) { - /* "aiohttp/_http_parser.pyx":511 + /* "aiohttp/_http_parser.pyx":513 * "Not enough data for satisfy content length header.") - * elif self._cparser.http_errno != cparser.HPE_OK: - * desc = cparser.http_errno_description( # <<<<<<<<<<<<<< - * self._cparser.http_errno) + * elif cparser.llhttp_get_errno(self._cparser) != cparser.HPE_OK: + * desc = cparser.llhttp_get_error_reason(self._cparser) # <<<<<<<<<<<<<< * raise PayloadEncodingError(desc.decode('latin-1')) + * else: */ - __pyx_t_3 = __Pyx_PyBytes_FromString(http_errno_description(((enum http_errno)__pyx_v_self->_cparser->http_errno))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 511, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyBytes_FromString(llhttp_get_error_reason(__pyx_v_self->_cparser)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_desc = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "aiohttp/_http_parser.pyx":513 - * desc = cparser.http_errno_description( - * self._cparser.http_errno) + /* "aiohttp/_http_parser.pyx":514 + * elif cparser.llhttp_get_errno(self._cparser) != cparser.HPE_OK: + * desc = cparser.llhttp_get_error_reason(self._cparser) * raise PayloadEncodingError(desc.decode('latin-1')) # <<<<<<<<<<<<<< * else: * self._payload.feed_eof() */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_PayloadEncodingError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 513, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_PayloadEncodingError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_decode_bytes(__pyx_v_desc, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 513, __pyx_L1_error) + __pyx_t_5 = __Pyx_decode_bytes(__pyx_v_desc, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -9200,23 +9347,23 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 513, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 513, __pyx_L1_error) + __PYX_ERR(0, 514, __pyx_L1_error) - /* "aiohttp/_http_parser.pyx":510 + /* "aiohttp/_http_parser.pyx":512 * raise ContentLengthError( * "Not enough data for satisfy content length header.") - * elif self._cparser.http_errno != cparser.HPE_OK: # <<<<<<<<<<<<<< - * desc = cparser.http_errno_description( - * self._cparser.http_errno) + * elif cparser.llhttp_get_errno(self._cparser) != cparser.HPE_OK: # <<<<<<<<<<<<<< + * desc = cparser.llhttp_get_error_reason(self._cparser) + * raise PayloadEncodingError(desc.decode('latin-1')) */ } - /* "aiohttp/_http_parser.pyx":515 + /* "aiohttp/_http_parser.pyx":516 * raise PayloadEncodingError(desc.decode('latin-1')) * else: * self._payload.feed_eof() # <<<<<<<<<<<<<< @@ -9224,7 +9371,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct * self._on_headers_complete() */ /*else*/ { - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_feed_eof); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 515, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_payload, __pyx_n_s_feed_eof); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { @@ -9238,13 +9385,13 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 515, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - /* "aiohttp/_http_parser.pyx":503 + /* "aiohttp/_http_parser.pyx":505 * cdef bytes desc * * if self._payload is not None: # <<<<<<<<<<<<<< @@ -9254,7 +9401,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct goto __pyx_L3; } - /* "aiohttp/_http_parser.pyx":516 + /* "aiohttp/_http_parser.pyx":517 * else: * self._payload.feed_eof() * elif self._started: # <<<<<<<<<<<<<< @@ -9264,18 +9411,18 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct __pyx_t_2 = (__pyx_v_self->_started != 0); if (__pyx_t_2) { - /* "aiohttp/_http_parser.pyx":517 + /* "aiohttp/_http_parser.pyx":518 * self._payload.feed_eof() * elif self._started: * self._on_headers_complete() # <<<<<<<<<<<<<< * if self._messages: * return self._messages[-1][0] */ - __pyx_t_3 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self->__pyx_vtab)->_on_headers_complete(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 517, __pyx_L1_error) + __pyx_t_3 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self->__pyx_vtab)->_on_headers_complete(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "aiohttp/_http_parser.pyx":518 + /* "aiohttp/_http_parser.pyx":519 * elif self._started: * self._on_headers_complete() * if self._messages: # <<<<<<<<<<<<<< @@ -9285,7 +9432,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct __pyx_t_2 = (__pyx_v_self->_messages != Py_None)&&(PyList_GET_SIZE(__pyx_v_self->_messages) != 0); if (__pyx_t_2) { - /* "aiohttp/_http_parser.pyx":519 + /* "aiohttp/_http_parser.pyx":520 * self._on_headers_complete() * if self._messages: * return self._messages[-1][0] # <<<<<<<<<<<<<< @@ -9295,18 +9442,18 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_self->_messages == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 519, __pyx_L1_error) + __PYX_ERR(0, 520, __pyx_L1_error) } - __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->_messages, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 519, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->_messages, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 519, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; - /* "aiohttp/_http_parser.pyx":518 + /* "aiohttp/_http_parser.pyx":519 * elif self._started: * self._on_headers_complete() * if self._messages: # <<<<<<<<<<<<<< @@ -9315,7 +9462,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct */ } - /* "aiohttp/_http_parser.pyx":516 + /* "aiohttp/_http_parser.pyx":517 * else: * self._payload.feed_eof() * elif self._started: # <<<<<<<<<<<<<< @@ -9325,7 +9472,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct } __pyx_L3:; - /* "aiohttp/_http_parser.pyx":500 + /* "aiohttp/_http_parser.pyx":502 * ### Public API ### * * def feed_eof(self): # <<<<<<<<<<<<<< @@ -9350,7 +9497,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_4feed_eof(struct return __pyx_r; } -/* "aiohttp/_http_parser.pyx":521 +/* "aiohttp/_http_parser.pyx":522 * return self._messages[-1][0] * * def feed_data(self, data): # <<<<<<<<<<<<<< @@ -9374,7 +9521,12 @@ static PyObject *__pyx_pw_7aiohttp_12_http_parser_10HttpParser_7feed_data(PyObje static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_self, PyObject *__pyx_v_data) { size_t __pyx_v_data_len; size_t __pyx_v_nb; + llhttp_errno_t __pyx_v_errno; PyObject *__pyx_v_ex = NULL; + char const *__pyx_v_after; + PyObject *__pyx_v_before = NULL; + PyObject *__pyx_v_after_b = NULL; + PyObject *__pyx_v_pointer = NULL; PyObject *__pyx_v_messages = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -9383,79 +9535,127 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; + Py_ssize_t __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("feed_data", 0); + __Pyx_INCREF(__pyx_v_data); - /* "aiohttp/_http_parser.pyx":526 - * size_t nb + /* "aiohttp/_http_parser.pyx":528 + * cdef cparser.llhttp_errno_t errno * * PyObject_GetBuffer(data, &self.py_buf, PyBUF_SIMPLE) # <<<<<<<<<<<<<< * data_len = self.py_buf.len * */ - __pyx_t_1 = PyObject_GetBuffer(__pyx_v_data, (&__pyx_v_self->py_buf), PyBUF_SIMPLE); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 526, __pyx_L1_error) + __pyx_t_1 = PyObject_GetBuffer(__pyx_v_data, (&__pyx_v_self->py_buf), PyBUF_SIMPLE); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 528, __pyx_L1_error) - /* "aiohttp/_http_parser.pyx":527 + /* "aiohttp/_http_parser.pyx":529 * * PyObject_GetBuffer(data, &self.py_buf, PyBUF_SIMPLE) * data_len = self.py_buf.len # <<<<<<<<<<<<<< * - * nb = cparser.http_parser_execute( + * errno = cparser.llhttp_execute( */ __pyx_v_data_len = ((size_t)__pyx_v_self->py_buf.len); - /* "aiohttp/_http_parser.pyx":529 + /* "aiohttp/_http_parser.pyx":531 * data_len = self.py_buf.len * - * nb = cparser.http_parser_execute( # <<<<<<<<<<<<<< + * errno = cparser.llhttp_execute( # <<<<<<<<<<<<<< * self._cparser, - * self._csettings, + * self.py_buf.buf, + */ + __pyx_v_errno = llhttp_execute(__pyx_v_self->_cparser, ((char *)__pyx_v_self->py_buf.buf), __pyx_v_data_len); + + /* "aiohttp/_http_parser.pyx":536 + * data_len) + * + * if errno is cparser.HPE_PAUSED_UPGRADE: # <<<<<<<<<<<<<< + * cparser.llhttp_resume_after_upgrade(self._cparser) + * + */ + __pyx_t_2 = ((__pyx_v_errno == HPE_PAUSED_UPGRADE) != 0); + if (__pyx_t_2) { + + /* "aiohttp/_http_parser.pyx":537 + * + * if errno is cparser.HPE_PAUSED_UPGRADE: + * cparser.llhttp_resume_after_upgrade(self._cparser) # <<<<<<<<<<<<<< + * + * nb = cparser.llhttp_get_error_pos(self._cparser) - self.py_buf.buf + */ + llhttp_resume_after_upgrade(__pyx_v_self->_cparser); + + /* "aiohttp/_http_parser.pyx":539 + * cparser.llhttp_resume_after_upgrade(self._cparser) + * + * nb = cparser.llhttp_get_error_pos(self._cparser) - self.py_buf.buf # <<<<<<<<<<<<<< + * + * PyBuffer_Release(&self.py_buf) */ - __pyx_v_nb = http_parser_execute(__pyx_v_self->_cparser, __pyx_v_self->_csettings, ((char *)__pyx_v_self->py_buf.buf), __pyx_v_data_len); + __pyx_v_nb = (llhttp_get_error_pos(__pyx_v_self->_cparser) - ((char *)__pyx_v_self->py_buf.buf)); - /* "aiohttp/_http_parser.pyx":535 + /* "aiohttp/_http_parser.pyx":536 * data_len) * + * if errno is cparser.HPE_PAUSED_UPGRADE: # <<<<<<<<<<<<<< + * cparser.llhttp_resume_after_upgrade(self._cparser) + * + */ + } + + /* "aiohttp/_http_parser.pyx":541 + * nb = cparser.llhttp_get_error_pos(self._cparser) - self.py_buf.buf + * * PyBuffer_Release(&self.py_buf) # <<<<<<<<<<<<<< * - * if (self._cparser.http_errno != cparser.HPE_OK): + * if errno not in (cparser.HPE_OK, cparser.HPE_PAUSED_UPGRADE): */ PyBuffer_Release((&__pyx_v_self->py_buf)); - /* "aiohttp/_http_parser.pyx":537 + /* "aiohttp/_http_parser.pyx":543 * PyBuffer_Release(&self.py_buf) * - * if (self._cparser.http_errno != cparser.HPE_OK): # <<<<<<<<<<<<<< + * if errno not in (cparser.HPE_OK, cparser.HPE_PAUSED_UPGRADE): # <<<<<<<<<<<<<< * if self._payload_error == 0: * if self._last_error is not None: */ - __pyx_t_2 = ((__pyx_v_self->_cparser->http_errno != HPE_OK) != 0); - if (__pyx_t_2) { + switch (__pyx_v_errno) { + case HPE_OK: + case HPE_PAUSED_UPGRADE: + __pyx_t_2 = 0; + break; + default: + __pyx_t_2 = 1; + break; + } + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { - /* "aiohttp/_http_parser.pyx":538 + /* "aiohttp/_http_parser.pyx":544 * - * if (self._cparser.http_errno != cparser.HPE_OK): + * if errno not in (cparser.HPE_OK, cparser.HPE_PAUSED_UPGRADE): * if self._payload_error == 0: # <<<<<<<<<<<<<< * if self._last_error is not None: * ex = self._last_error */ - __pyx_t_2 = ((__pyx_v_self->_payload_error == 0) != 0); - if (__pyx_t_2) { + __pyx_t_3 = ((__pyx_v_self->_payload_error == 0) != 0); + if (__pyx_t_3) { - /* "aiohttp/_http_parser.pyx":539 - * if (self._cparser.http_errno != cparser.HPE_OK): + /* "aiohttp/_http_parser.pyx":545 + * if errno not in (cparser.HPE_OK, cparser.HPE_PAUSED_UPGRADE): * if self._payload_error == 0: * if self._last_error is not None: # <<<<<<<<<<<<<< * ex = self._last_error * self._last_error = None */ - __pyx_t_2 = (__pyx_v_self->_last_error != Py_None); - __pyx_t_3 = (__pyx_t_2 != 0); - if (__pyx_t_3) { + __pyx_t_3 = (__pyx_v_self->_last_error != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { - /* "aiohttp/_http_parser.pyx":540 + /* "aiohttp/_http_parser.pyx":546 * if self._payload_error == 0: * if self._last_error is not None: * ex = self._last_error # <<<<<<<<<<<<<< @@ -9467,12 +9667,12 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct __pyx_v_ex = __pyx_t_4; __pyx_t_4 = 0; - /* "aiohttp/_http_parser.pyx":541 + /* "aiohttp/_http_parser.pyx":547 * if self._last_error is not None: * ex = self._last_error * self._last_error = None # <<<<<<<<<<<<<< * else: - * ex = parser_error_from_errno( + * after = cparser.llhttp_get_error_pos(self._cparser) */ __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); @@ -9480,42 +9680,129 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct __Pyx_DECREF(__pyx_v_self->_last_error); __pyx_v_self->_last_error = Py_None; - /* "aiohttp/_http_parser.pyx":539 - * if (self._cparser.http_errno != cparser.HPE_OK): + /* "aiohttp/_http_parser.pyx":545 + * if errno not in (cparser.HPE_OK, cparser.HPE_PAUSED_UPGRADE): * if self._payload_error == 0: * if self._last_error is not None: # <<<<<<<<<<<<<< * ex = self._last_error * self._last_error = None */ - goto __pyx_L5; + goto __pyx_L6; } - /* "aiohttp/_http_parser.pyx":543 + /* "aiohttp/_http_parser.pyx":549 * self._last_error = None * else: - * ex = parser_error_from_errno( # <<<<<<<<<<<<<< - * self._cparser.http_errno) - * self._payload = None + * after = cparser.llhttp_get_error_pos(self._cparser) # <<<<<<<<<<<<<< + * before = data[:after - self.py_buf.buf] + * after_b = after.split(b"\r\n", 1)[0] */ /*else*/ { + __pyx_v_after = llhttp_get_error_pos(__pyx_v_self->_cparser); - /* "aiohttp/_http_parser.pyx":544 + /* "aiohttp/_http_parser.pyx":550 * else: - * ex = parser_error_from_errno( - * self._cparser.http_errno) # <<<<<<<<<<<<<< - * self._payload = None - * raise ex + * after = cparser.llhttp_get_error_pos(self._cparser) + * before = data[:after - self.py_buf.buf] # <<<<<<<<<<<<<< + * after_b = after.split(b"\r\n", 1)[0] + * before = before.rsplit(b"\r\n", 1)[-1] */ - __pyx_t_4 = __pyx_f_7aiohttp_12_http_parser_parser_error_from_errno(((enum http_errno)__pyx_v_self->_cparser->http_errno)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 543, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_v_data, 0, (__pyx_v_after - ((char *)__pyx_v_self->py_buf.buf)), NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_v_ex = __pyx_t_4; + __pyx_v_before = __pyx_t_4; __pyx_t_4 = 0; + + /* "aiohttp/_http_parser.pyx":551 + * after = cparser.llhttp_get_error_pos(self._cparser) + * before = data[:after - self.py_buf.buf] + * after_b = after.split(b"\r\n", 1)[0] # <<<<<<<<<<<<<< + * before = before.rsplit(b"\r\n", 1)[-1] + * data = before + after_b + */ + __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_after); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_after_b = __pyx_t_5; + __pyx_t_5 = 0; + + /* "aiohttp/_http_parser.pyx":552 + * before = data[:after - self.py_buf.buf] + * after_b = after.split(b"\r\n", 1)[0] + * before = before.rsplit(b"\r\n", 1)[-1] # <<<<<<<<<<<<<< + * data = before + after_b + * pointer = " " * (len(repr(before))-1) + "^" + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_before, __pyx_n_s_rsplit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_before, __pyx_t_5); + __pyx_t_5 = 0; + + /* "aiohttp/_http_parser.pyx":553 + * after_b = after.split(b"\r\n", 1)[0] + * before = before.rsplit(b"\r\n", 1)[-1] + * data = before + after_b # <<<<<<<<<<<<<< + * pointer = " " * (len(repr(before))-1) + "^" + * ex = parser_error_from_errno(self._cparser, data, pointer) + */ + __pyx_t_5 = PyNumber_Add(__pyx_v_before, __pyx_v_after_b); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_5); + __pyx_t_5 = 0; + + /* "aiohttp/_http_parser.pyx":554 + * before = before.rsplit(b"\r\n", 1)[-1] + * data = before + after_b + * pointer = " " * (len(repr(before))-1) + "^" # <<<<<<<<<<<<<< + * ex = parser_error_from_errno(self._cparser, data, pointer) + * self._payload = None + */ + __pyx_t_5 = PyObject_Repr(__pyx_v_before); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 554, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyInt_FromSsize_t((__pyx_t_6 - 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = PyNumber_Multiply(__pyx_kp_u__6, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_kp_u__7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(PyUnicode_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 554, __pyx_L1_error) + __pyx_v_pointer = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; + + /* "aiohttp/_http_parser.pyx":555 + * data = before + after_b + * pointer = " " * (len(repr(before))-1) + "^" + * ex = parser_error_from_errno(self._cparser, data, pointer) # <<<<<<<<<<<<<< + * self._payload = None + * raise ex + */ + __pyx_t_5 = __pyx_f_7aiohttp_12_http_parser_parser_error_from_errno(__pyx_v_self->_cparser, __pyx_v_data, __pyx_v_pointer); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_ex = __pyx_t_5; + __pyx_t_5 = 0; } - __pyx_L5:; + __pyx_L6:; - /* "aiohttp/_http_parser.pyx":545 - * ex = parser_error_from_errno( - * self._cparser.http_errno) + /* "aiohttp/_http_parser.pyx":556 + * pointer = " " * (len(repr(before))-1) + "^" + * ex = parser_error_from_errno(self._cparser, data, pointer) * self._payload = None # <<<<<<<<<<<<<< * raise ex * @@ -9526,82 +9813,82 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct __Pyx_DECREF(__pyx_v_self->_payload); __pyx_v_self->_payload = Py_None; - /* "aiohttp/_http_parser.pyx":546 - * self._cparser.http_errno) + /* "aiohttp/_http_parser.pyx":557 + * ex = parser_error_from_errno(self._cparser, data, pointer) * self._payload = None * raise ex # <<<<<<<<<<<<<< * * if self._messages: */ __Pyx_Raise(__pyx_v_ex, 0, 0, 0); - __PYX_ERR(0, 546, __pyx_L1_error) + __PYX_ERR(0, 557, __pyx_L1_error) - /* "aiohttp/_http_parser.pyx":538 + /* "aiohttp/_http_parser.pyx":544 * - * if (self._cparser.http_errno != cparser.HPE_OK): + * if errno not in (cparser.HPE_OK, cparser.HPE_PAUSED_UPGRADE): * if self._payload_error == 0: # <<<<<<<<<<<<<< * if self._last_error is not None: * ex = self._last_error */ } - /* "aiohttp/_http_parser.pyx":537 + /* "aiohttp/_http_parser.pyx":543 * PyBuffer_Release(&self.py_buf) * - * if (self._cparser.http_errno != cparser.HPE_OK): # <<<<<<<<<<<<<< + * if errno not in (cparser.HPE_OK, cparser.HPE_PAUSED_UPGRADE): # <<<<<<<<<<<<<< * if self._payload_error == 0: * if self._last_error is not None: */ } - /* "aiohttp/_http_parser.pyx":548 + /* "aiohttp/_http_parser.pyx":559 * raise ex * * if self._messages: # <<<<<<<<<<<<<< * messages = self._messages * self._messages = [] */ - __pyx_t_3 = (__pyx_v_self->_messages != Py_None)&&(PyList_GET_SIZE(__pyx_v_self->_messages) != 0); - if (__pyx_t_3) { + __pyx_t_2 = (__pyx_v_self->_messages != Py_None)&&(PyList_GET_SIZE(__pyx_v_self->_messages) != 0); + if (__pyx_t_2) { - /* "aiohttp/_http_parser.pyx":549 + /* "aiohttp/_http_parser.pyx":560 * * if self._messages: * messages = self._messages # <<<<<<<<<<<<<< * self._messages = [] * else: */ - __pyx_t_4 = __pyx_v_self->_messages; - __Pyx_INCREF(__pyx_t_4); - __pyx_v_messages = __pyx_t_4; - __pyx_t_4 = 0; + __pyx_t_5 = __pyx_v_self->_messages; + __Pyx_INCREF(__pyx_t_5); + __pyx_v_messages = __pyx_t_5; + __pyx_t_5 = 0; - /* "aiohttp/_http_parser.pyx":550 + /* "aiohttp/_http_parser.pyx":561 * if self._messages: * messages = self._messages * self._messages = [] # <<<<<<<<<<<<<< * else: * messages = () */ - __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_4); + __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_self->_messages); __Pyx_DECREF(__pyx_v_self->_messages); - __pyx_v_self->_messages = ((PyObject*)__pyx_t_4); - __pyx_t_4 = 0; + __pyx_v_self->_messages = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; - /* "aiohttp/_http_parser.pyx":548 + /* "aiohttp/_http_parser.pyx":559 * raise ex * * if self._messages: # <<<<<<<<<<<<<< * messages = self._messages * self._messages = [] */ - goto __pyx_L6; + goto __pyx_L7; } - /* "aiohttp/_http_parser.pyx":552 + /* "aiohttp/_http_parser.pyx":563 * self._messages = [] * else: * messages = () # <<<<<<<<<<<<<< @@ -9612,19 +9899,19 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct __Pyx_INCREF(__pyx_empty_tuple); __pyx_v_messages = __pyx_empty_tuple; } - __pyx_L6:; + __pyx_L7:; - /* "aiohttp/_http_parser.pyx":554 + /* "aiohttp/_http_parser.pyx":565 * messages = () * * if self._upgraded: # <<<<<<<<<<<<<< * return messages, True, data[nb:] * else: */ - __pyx_t_3 = (__pyx_v_self->_upgraded != 0); - if (__pyx_t_3) { + __pyx_t_2 = (__pyx_v_self->_upgraded != 0); + if (__pyx_t_2) { - /* "aiohttp/_http_parser.pyx":555 + /* "aiohttp/_http_parser.pyx":566 * * if self._upgraded: * return messages, True, data[nb:] # <<<<<<<<<<<<<< @@ -9632,24 +9919,24 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct * return messages, False, b'' */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_v_data, __pyx_v_nb, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 555, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_data, __pyx_v_nb, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_messages); __Pyx_GIVEREF(__pyx_v_messages); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_messages); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_messages); __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); - PyTuple_SET_ITEM(__pyx_t_5, 1, Py_True); - __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; + PyTuple_SET_ITEM(__pyx_t_4, 1, Py_True); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_5); __pyx_t_5 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; goto __pyx_L0; - /* "aiohttp/_http_parser.pyx":554 + /* "aiohttp/_http_parser.pyx":565 * messages = () * * if self._upgraded: # <<<<<<<<<<<<<< @@ -9658,7 +9945,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct */ } - /* "aiohttp/_http_parser.pyx":557 + /* "aiohttp/_http_parser.pyx":568 * return messages, True, data[nb:] * else: * return messages, False, b'' # <<<<<<<<<<<<<< @@ -9667,23 +9954,23 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct */ /*else*/ { __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_messages); __Pyx_GIVEREF(__pyx_v_messages); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_messages); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_messages); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); - PyTuple_SET_ITEM(__pyx_t_5, 1, Py_False); - __Pyx_INCREF(__pyx_kp_b__4); - __Pyx_GIVEREF(__pyx_kp_b__4); - PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_b__4); - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; + PyTuple_SET_ITEM(__pyx_t_4, 1, Py_False); + __Pyx_INCREF(__pyx_kp_b__8); + __Pyx_GIVEREF(__pyx_kp_b__8); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_kp_b__8); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; goto __pyx_L0; } - /* "aiohttp/_http_parser.pyx":521 + /* "aiohttp/_http_parser.pyx":522 * return self._messages[-1][0] * * def feed_data(self, data): # <<<<<<<<<<<<<< @@ -9699,13 +9986,17 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_6feed_data(struct __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_ex); + __Pyx_XDECREF(__pyx_v_before); + __Pyx_XDECREF(__pyx_v_after_b); + __Pyx_XDECREF(__pyx_v_pointer); __Pyx_XDECREF(__pyx_v_messages); + __Pyx_XDECREF(__pyx_v_data); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -/* "aiohttp/_http_parser.pyx":559 +/* "aiohttp/_http_parser.pyx":570 * return messages, False, b'' * * def set_upgraded(self, val): # <<<<<<<<<<<<<< @@ -9735,17 +10026,17 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_8set_upgraded(str int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_upgraded", 0); - /* "aiohttp/_http_parser.pyx":560 + /* "aiohttp/_http_parser.pyx":571 * * def set_upgraded(self, val): * self._upgraded = val # <<<<<<<<<<<<<< * * */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_val); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 560, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_val); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 571, __pyx_L1_error) __pyx_v_self->_upgraded = __pyx_t_1; - /* "aiohttp/_http_parser.pyx":559 + /* "aiohttp/_http_parser.pyx":570 * return messages, False, b'' * * def set_upgraded(self, val): # <<<<<<<<<<<<<< @@ -9799,7 +10090,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_10__reduce_cython * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -9855,7 +10146,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_12__setstate_cyth * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -9878,12 +10169,12 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_10HttpParser_12__setstate_cyth return __pyx_r; } -/* "aiohttp/_http_parser.pyx":565 +/* "aiohttp/_http_parser.pyx":576 * cdef class HttpRequestParser(HttpParser): * - * def __init__(self, protocol, loop, int limit, timer=None, # <<<<<<<<<<<<<< - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, + * def __init__( # <<<<<<<<<<<<<< + * self, protocol, loop, int limit, timer=None, + * size_t max_line_size=8190, size_t max_headers=32768, */ /* Python wrapper */ @@ -9899,6 +10190,7 @@ static int __pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_1__init__(PyObje PyObject *__pyx_v_payload_exception = 0; int __pyx_v_response_with_body; int __pyx_v_read_until_eof; + int __pyx_v_auto_decompress; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -9906,22 +10198,32 @@ static int __pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_1__init__(PyObje __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_protocol,&__pyx_n_s_loop,&__pyx_n_s_limit,&__pyx_n_s_timer,&__pyx_n_s_max_line_size,&__pyx_n_s_max_headers,&__pyx_n_s_max_field_size,&__pyx_n_s_payload_exception,&__pyx_n_s_response_with_body,&__pyx_n_s_read_until_eof,0}; - PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_protocol,&__pyx_n_s_loop,&__pyx_n_s_limit,&__pyx_n_s_timer,&__pyx_n_s_max_line_size,&__pyx_n_s_max_headers,&__pyx_n_s_max_field_size,&__pyx_n_s_payload_exception,&__pyx_n_s_response_with_body,&__pyx_n_s_read_until_eof,&__pyx_n_s_auto_decompress,0}; + PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0}; + + /* "aiohttp/_http_parser.pyx":577 + * + * def __init__( + * self, protocol, loop, int limit, timer=None, # <<<<<<<<<<<<<< + * size_t max_line_size=8190, size_t max_headers=32768, + * size_t max_field_size=8190, payload_exception=None, + */ values[3] = ((PyObject *)Py_None); - /* "aiohttp/_http_parser.pyx":567 - * def __init__(self, protocol, loop, int limit, timer=None, - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, # <<<<<<<<<<<<<< - * bint response_with_body=True, bint read_until_eof=False, - * ): + /* "aiohttp/_http_parser.pyx":579 + * self, protocol, loop, int limit, timer=None, + * size_t max_line_size=8190, size_t max_headers=32768, + * size_t max_field_size=8190, payload_exception=None, # <<<<<<<<<<<<<< + * bint response_with_body=True, bint read_until_eof=False, + * bint auto_decompress=True, */ values[7] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { + case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); + CYTHON_FALLTHROUGH; case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); CYTHON_FALLTHROUGH; case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); @@ -9954,13 +10256,13 @@ static int __pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_1__init__(PyObje case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loop)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 10, 1); __PYX_ERR(0, 565, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, 1); __PYX_ERR(0, 576, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_limit)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 10, 2); __PYX_ERR(0, 565, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, 2); __PYX_ERR(0, 576, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: @@ -10004,12 +10306,20 @@ static int __pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_1__init__(PyObje PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_read_until_eof); if (value) { values[9] = value; kw_args--; } } + CYTHON_FALLTHROUGH; + case 10: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_auto_decompress); + if (value) { values[10] = value; kw_args--; } + } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 565, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 576, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { + case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); + CYTHON_FALLTHROUGH; case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); CYTHON_FALLTHROUGH; case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); @@ -10033,59 +10343,72 @@ static int __pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_1__init__(PyObje } __pyx_v_protocol = values[0]; __pyx_v_loop = values[1]; - __pyx_v_limit = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_limit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 565, __pyx_L3_error) + __pyx_v_limit = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_limit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 577, __pyx_L3_error) __pyx_v_timer = values[3]; if (values[4]) { - __pyx_v_max_line_size = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_max_line_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 566, __pyx_L3_error) + __pyx_v_max_line_size = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_max_line_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 578, __pyx_L3_error) } else { __pyx_v_max_line_size = ((size_t)0x1FFE); } if (values[5]) { - __pyx_v_max_headers = __Pyx_PyInt_As_size_t(values[5]); if (unlikely((__pyx_v_max_headers == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 566, __pyx_L3_error) + __pyx_v_max_headers = __Pyx_PyInt_As_size_t(values[5]); if (unlikely((__pyx_v_max_headers == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 578, __pyx_L3_error) } else { __pyx_v_max_headers = ((size_t)0x8000); } if (values[6]) { - __pyx_v_max_field_size = __Pyx_PyInt_As_size_t(values[6]); if (unlikely((__pyx_v_max_field_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error) + __pyx_v_max_field_size = __Pyx_PyInt_As_size_t(values[6]); if (unlikely((__pyx_v_max_field_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 579, __pyx_L3_error) } else { __pyx_v_max_field_size = ((size_t)0x1FFE); } __pyx_v_payload_exception = values[7]; if (values[8]) { - __pyx_v_response_with_body = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_response_with_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 568, __pyx_L3_error) + __pyx_v_response_with_body = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_response_with_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 580, __pyx_L3_error) } else { - /* "aiohttp/_http_parser.pyx":568 - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, - * bint response_with_body=True, bint read_until_eof=False, # <<<<<<<<<<<<<< + /* "aiohttp/_http_parser.pyx":580 + * size_t max_line_size=8190, size_t max_headers=32768, + * size_t max_field_size=8190, payload_exception=None, + * bint response_with_body=True, bint read_until_eof=False, # <<<<<<<<<<<<<< + * bint auto_decompress=True, * ): - * self._init(cparser.HTTP_REQUEST, protocol, loop, limit, timer, */ __pyx_v_response_with_body = ((int)1); } if (values[9]) { - __pyx_v_read_until_eof = __Pyx_PyObject_IsTrue(values[9]); if (unlikely((__pyx_v_read_until_eof == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 568, __pyx_L3_error) + __pyx_v_read_until_eof = __Pyx_PyObject_IsTrue(values[9]); if (unlikely((__pyx_v_read_until_eof == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 580, __pyx_L3_error) } else { __pyx_v_read_until_eof = ((int)0); } + if (values[10]) { + __pyx_v_auto_decompress = __Pyx_PyObject_IsTrue(values[10]); if (unlikely((__pyx_v_auto_decompress == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 581, __pyx_L3_error) + } else { + + /* "aiohttp/_http_parser.pyx":581 + * size_t max_field_size=8190, payload_exception=None, + * bint response_with_body=True, bint read_until_eof=False, + * bint auto_decompress=True, # <<<<<<<<<<<<<< + * ): + * self._init(cparser.HTTP_REQUEST, protocol, loop, limit, timer, + */ + __pyx_v_auto_decompress = ((int)1); + } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 565, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 576, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("aiohttp._http_parser.HttpRequestParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *)__pyx_v_self), __pyx_v_protocol, __pyx_v_loop, __pyx_v_limit, __pyx_v_timer, __pyx_v_max_line_size, __pyx_v_max_headers, __pyx_v_max_field_size, __pyx_v_payload_exception, __pyx_v_response_with_body, __pyx_v_read_until_eof); + __pyx_r = __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *)__pyx_v_self), __pyx_v_protocol, __pyx_v_loop, __pyx_v_limit, __pyx_v_timer, __pyx_v_max_line_size, __pyx_v_max_headers, __pyx_v_max_field_size, __pyx_v_payload_exception, __pyx_v_response_with_body, __pyx_v_read_until_eof, __pyx_v_auto_decompress); - /* "aiohttp/_http_parser.pyx":565 + /* "aiohttp/_http_parser.pyx":576 * cdef class HttpRequestParser(HttpParser): * - * def __init__(self, protocol, loop, int limit, timer=None, # <<<<<<<<<<<<<< - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, + * def __init__( # <<<<<<<<<<<<<< + * self, protocol, loop, int limit, timer=None, + * size_t max_line_size=8190, size_t max_headers=32768, */ /* function exit code */ @@ -10093,7 +10416,7 @@ static int __pyx_pw_7aiohttp_12_http_parser_17HttpRequestParser_1__init__(PyObje return __pyx_r; } -static int __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, PyObject *__pyx_v_timer, size_t __pyx_v_max_line_size, size_t __pyx_v_max_headers, size_t __pyx_v_max_field_size, PyObject *__pyx_v_payload_exception, int __pyx_v_response_with_body, int __pyx_v_read_until_eof) { +static int __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self, PyObject *__pyx_v_protocol, PyObject *__pyx_v_loop, int __pyx_v_limit, PyObject *__pyx_v_timer, size_t __pyx_v_max_line_size, size_t __pyx_v_max_headers, size_t __pyx_v_max_field_size, PyObject *__pyx_v_payload_exception, int __pyx_v_response_with_body, int __pyx_v_read_until_eof, int __pyx_v_auto_decompress) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -10103,14 +10426,14 @@ static int __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "aiohttp/_http_parser.pyx":570 - * bint response_with_body=True, bint read_until_eof=False, + /* "aiohttp/_http_parser.pyx":583 + * bint auto_decompress=True, * ): - * self._init(cparser.HTTP_REQUEST, protocol, loop, limit, timer, # <<<<<<<<<<<<<< - * max_line_size, max_headers, max_field_size, - * payload_exception, response_with_body, read_until_eof) + * self._init(cparser.HTTP_REQUEST, protocol, loop, limit, timer, # <<<<<<<<<<<<<< + * max_line_size, max_headers, max_field_size, + * payload_exception, response_with_body, read_until_eof, */ - __pyx_t_2.__pyx_n = 7; + __pyx_t_2.__pyx_n = 8; __pyx_t_2.timer = __pyx_v_timer; __pyx_t_2.max_line_size = __pyx_v_max_line_size; __pyx_t_2.max_headers = __pyx_v_max_headers; @@ -10118,16 +10441,17 @@ static int __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(struct __pyx_t_2.payload_exception = __pyx_v_payload_exception; __pyx_t_2.response_with_body = __pyx_v_response_with_body; __pyx_t_2.read_until_eof = __pyx_v_read_until_eof; - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpRequestParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._init(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self), HTTP_REQUEST, __pyx_v_protocol, __pyx_v_loop, __pyx_v_limit, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 570, __pyx_L1_error) + __pyx_t_2.auto_decompress = __pyx_v_auto_decompress; + __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpRequestParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._init(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self), HTTP_REQUEST, __pyx_v_protocol, __pyx_v_loop, __pyx_v_limit, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":565 + /* "aiohttp/_http_parser.pyx":576 * cdef class HttpRequestParser(HttpParser): * - * def __init__(self, protocol, loop, int limit, timer=None, # <<<<<<<<<<<<<< - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, + * def __init__( # <<<<<<<<<<<<<< + * self, protocol, loop, int limit, timer=None, + * size_t max_line_size=8190, size_t max_headers=32768, */ /* function exit code */ @@ -10142,80 +10466,89 @@ static int __pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser___init__(struct return __pyx_r; } -/* "aiohttp/_http_parser.pyx":574 - * payload_exception, response_with_body, read_until_eof) +/* "aiohttp/_http_parser.pyx":588 + * auto_decompress) * * cdef object _on_status_complete(self): # <<<<<<<<<<<<<< - * cdef Py_buffer py_buf - * if not self._buf: + * cdef int idx1, idx2 + * if not self._buf: */ static PyObject *__pyx_f_7aiohttp_12_http_parser_17HttpRequestParser__on_status_complete(struct __pyx_obj_7aiohttp_12_http_parser_HttpRequestParser *__pyx_v_self) { - Py_buffer __pyx_v_py_buf; + int __pyx_v_idx1; + int __pyx_v_idx2; + Py_ssize_t __pyx_v_idx3; + PyObject *__pyx_v_query = NULL; + PyObject *__pyx_v_path = NULL; + PyObject *__pyx_v_fragment = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - char const *__pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_6 = NULL; + Py_UCS4 __pyx_t_7; + Py_ssize_t __pyx_t_8; + int __pyx_t_9; + int __pyx_t_10; + char const *__pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + int __pyx_t_18; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_on_status_complete", 0); - /* "aiohttp/_http_parser.pyx":576 + /* "aiohttp/_http_parser.pyx":590 * cdef object _on_status_complete(self): - * cdef Py_buffer py_buf - * if not self._buf: # <<<<<<<<<<<<<< - * return - * self._path = self._buf.decode('utf-8', 'surrogateescape') + * cdef int idx1, idx2 + * if not self._buf: # <<<<<<<<<<<<<< + * return + * self._path = self._buf.decode('utf-8', 'surrogateescape') */ __pyx_t_1 = (__pyx_v_self->__pyx_base._buf != Py_None)&&(PyByteArray_GET_SIZE(__pyx_v_self->__pyx_base._buf) != 0); __pyx_t_2 = ((!__pyx_t_1) != 0); if (__pyx_t_2) { - /* "aiohttp/_http_parser.pyx":577 - * cdef Py_buffer py_buf - * if not self._buf: - * return # <<<<<<<<<<<<<< - * self._path = self._buf.decode('utf-8', 'surrogateescape') - * if self._cparser.method == 5: # CONNECT + /* "aiohttp/_http_parser.pyx":591 + * cdef int idx1, idx2 + * if not self._buf: + * return # <<<<<<<<<<<<<< + * self._path = self._buf.decode('utf-8', 'surrogateescape') + * try: */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "aiohttp/_http_parser.pyx":576 + /* "aiohttp/_http_parser.pyx":590 * cdef object _on_status_complete(self): - * cdef Py_buffer py_buf - * if not self._buf: # <<<<<<<<<<<<<< - * return - * self._path = self._buf.decode('utf-8', 'surrogateescape') + * cdef int idx1, idx2 + * if not self._buf: # <<<<<<<<<<<<<< + * return + * self._path = self._buf.decode('utf-8', 'surrogateescape') */ } - /* "aiohttp/_http_parser.pyx":578 - * if not self._buf: - * return - * self._path = self._buf.decode('utf-8', 'surrogateescape') # <<<<<<<<<<<<<< - * if self._cparser.method == 5: # CONNECT - * self._url = URL(self._path) + /* "aiohttp/_http_parser.pyx":592 + * if not self._buf: + * return + * self._path = self._buf.decode('utf-8', 'surrogateescape') # <<<<<<<<<<<<<< + * try: + * idx3 = len(self._path) */ if (unlikely(__pyx_v_self->__pyx_base._buf == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode"); - __PYX_ERR(0, 578, __pyx_L1_error) + __PYX_ERR(0, 592, __pyx_L1_error) } - __pyx_t_3 = __Pyx_decode_bytearray(__pyx_v_self->__pyx_base._buf, 0, PY_SSIZE_T_MAX, NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 578, __pyx_L1_error) + __pyx_t_3 = __Pyx_decode_bytearray(__pyx_v_self->__pyx_base._buf, 0, PY_SSIZE_T_MAX, NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->__pyx_base._path); @@ -10223,174 +10556,548 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_17HttpRequestParser__on_status_ __pyx_v_self->__pyx_base._path = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "aiohttp/_http_parser.pyx":579 - * return - * self._path = self._buf.decode('utf-8', 'surrogateescape') - * if self._cparser.method == 5: # CONNECT # <<<<<<<<<<<<<< - * self._url = URL(self._path) - * else: - */ - __pyx_t_2 = ((__pyx_v_self->__pyx_base._cparser->method == 5) != 0); - if (__pyx_t_2) { - - /* "aiohttp/_http_parser.pyx":580 - * self._path = self._buf.decode('utf-8', 'surrogateescape') - * if self._cparser.method == 5: # CONNECT - * self._url = URL(self._path) # <<<<<<<<<<<<<< - * else: - * PyObject_GetBuffer(self._buf, &py_buf, PyBUF_SIMPLE) - */ - __Pyx_INCREF(__pyx_v_7aiohttp_12_http_parser_URL); - __pyx_t_4 = __pyx_v_7aiohttp_12_http_parser_URL; __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_self->__pyx_base._path) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->__pyx_base._path); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 580, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GIVEREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_v_self->__pyx_base._url); - __Pyx_DECREF(__pyx_v_self->__pyx_base._url); - __pyx_v_self->__pyx_base._url = __pyx_t_3; - __pyx_t_3 = 0; - - /* "aiohttp/_http_parser.pyx":579 - * return - * self._path = self._buf.decode('utf-8', 'surrogateescape') - * if self._cparser.method == 5: # CONNECT # <<<<<<<<<<<<<< - * self._url = URL(self._path) - * else: + /* "aiohttp/_http_parser.pyx":593 + * return + * self._path = self._buf.decode('utf-8', 'surrogateescape') + * try: # <<<<<<<<<<<<<< + * idx3 = len(self._path) + * if self._cparser.method == cparser.HTTP_CONNECT: */ - goto __pyx_L4; - } + /*try:*/ { - /* "aiohttp/_http_parser.pyx":582 - * self._url = URL(self._path) - * else: - * PyObject_GetBuffer(self._buf, &py_buf, PyBUF_SIMPLE) # <<<<<<<<<<<<<< - * try: - * self._url = _parse_url(py_buf.buf, + /* "aiohttp/_http_parser.pyx":594 + * self._path = self._buf.decode('utf-8', 'surrogateescape') + * try: + * idx3 = len(self._path) # <<<<<<<<<<<<<< + * if self._cparser.method == cparser.HTTP_CONNECT: + * # authority-form, */ - /*else*/ { - __pyx_t_3 = __pyx_v_self->__pyx_base._buf; + __pyx_t_3 = __pyx_v_self->__pyx_base._path; __Pyx_INCREF(__pyx_t_3); - __pyx_t_6 = PyObject_GetBuffer(__pyx_t_3, (&__pyx_v_py_buf), PyBUF_SIMPLE); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 582, __pyx_L1_error) + if (unlikely(__pyx_t_3 == Py_None)) { + PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); + __PYX_ERR(0, 594, __pyx_L5_error) + } + __pyx_t_4 = __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 594, __pyx_L5_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_idx3 = __pyx_t_4; - /* "aiohttp/_http_parser.pyx":583 - * else: - * PyObject_GetBuffer(self._buf, &py_buf, PyBUF_SIMPLE) - * try: # <<<<<<<<<<<<<< - * self._url = _parse_url(py_buf.buf, - * py_buf.len) + /* "aiohttp/_http_parser.pyx":595 + * try: + * idx3 = len(self._path) + * if self._cparser.method == cparser.HTTP_CONNECT: # <<<<<<<<<<<<<< + * # authority-form, + * # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.3 */ - /*try:*/ { + __pyx_t_2 = ((__pyx_v_self->__pyx_base._cparser->method == HTTP_CONNECT) != 0); + if (__pyx_t_2) { - /* "aiohttp/_http_parser.pyx":584 - * PyObject_GetBuffer(self._buf, &py_buf, PyBUF_SIMPLE) - * try: - * self._url = _parse_url(py_buf.buf, # <<<<<<<<<<<<<< - * py_buf.len) - * finally: + /* "aiohttp/_http_parser.pyx":598 + * # authority-form, + * # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.3 + * self._url = URL.build(authority=self._path, encoded=True) # <<<<<<<<<<<<<< + * elif idx3 > 1 and self._path[0] == '/': + * # origin-form, */ - __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser__parse_url(((char *)__pyx_v_py_buf.buf), __pyx_v_py_buf.len); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 584, __pyx_L6_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_7aiohttp_12_http_parser_URL, __pyx_n_s_build); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 598, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 598, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_authority, __pyx_v_self->__pyx_base._path) < 0) __PYX_ERR(0, 598, __pyx_L5_error) + if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_encoded, Py_True) < 0) __PYX_ERR(0, 598, __pyx_L5_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 598, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GIVEREF(__pyx_t_6); __Pyx_GOTREF(__pyx_v_self->__pyx_base._url); __Pyx_DECREF(__pyx_v_self->__pyx_base._url); - __pyx_v_self->__pyx_base._url = __pyx_t_3; - __pyx_t_3 = 0; + __pyx_v_self->__pyx_base._url = __pyx_t_6; + __pyx_t_6 = 0; + + /* "aiohttp/_http_parser.pyx":595 + * try: + * idx3 = len(self._path) + * if self._cparser.method == cparser.HTTP_CONNECT: # <<<<<<<<<<<<<< + * # authority-form, + * # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.3 + */ + goto __pyx_L7; } - /* "aiohttp/_http_parser.pyx":587 - * py_buf.len) - * finally: - * PyBuffer_Release(&py_buf) # <<<<<<<<<<<<<< - * PyByteArray_Resize(self._buf, 0) - * + /* "aiohttp/_http_parser.pyx":599 + * # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.3 + * self._url = URL.build(authority=self._path, encoded=True) + * elif idx3 > 1 and self._path[0] == '/': # <<<<<<<<<<<<<< + * # origin-form, + * # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.1 + */ + __pyx_t_1 = ((__pyx_v_idx3 > 1) != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L8_bool_binop_done; + } + __pyx_t_7 = __Pyx_GetItemInt_Unicode(__pyx_v_self->__pyx_base._path, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_7 == (Py_UCS4)-1)) __PYX_ERR(0, 599, __pyx_L5_error) + __pyx_t_1 = ((__pyx_t_7 == 47) != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L8_bool_binop_done:; + if (__pyx_t_2) { + + /* "aiohttp/_http_parser.pyx":602 + * # origin-form, + * # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.1 + * idx1 = self._path.find("?") # <<<<<<<<<<<<<< + * if idx1 == -1: + * query = "" */ - /*finally:*/ { - /*normal exit:*/{ - PyBuffer_Release((&__pyx_v_py_buf)); - goto __pyx_L7; + if (unlikely(__pyx_v_self->__pyx_base._path == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "find"); + __PYX_ERR(0, 602, __pyx_L5_error) } - __pyx_L6_error:; - /*exception exit:*/{ - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); - if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_10); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; - { - PyBuffer_Release((&__pyx_v_py_buf)); + __pyx_t_4 = PyUnicode_Find(__pyx_v_self->__pyx_base._path, __pyx_kp_u__11, 0, PY_SSIZE_T_MAX, 1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-2))) __PYX_ERR(0, 602, __pyx_L5_error) + __pyx_v_idx1 = __pyx_t_4; + + /* "aiohttp/_http_parser.pyx":603 + * # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.1 + * idx1 = self._path.find("?") + * if idx1 == -1: # <<<<<<<<<<<<<< + * query = "" + * idx2 = self._path.find("#") + */ + __pyx_t_2 = ((__pyx_v_idx1 == -1L) != 0); + if (__pyx_t_2) { + + /* "aiohttp/_http_parser.pyx":604 + * idx1 = self._path.find("?") + * if idx1 == -1: + * query = "" # <<<<<<<<<<<<<< + * idx2 = self._path.find("#") + * if idx2 == -1: + */ + __Pyx_INCREF(__pyx_kp_u__8); + __pyx_v_query = __pyx_kp_u__8; + + /* "aiohttp/_http_parser.pyx":605 + * if idx1 == -1: + * query = "" + * idx2 = self._path.find("#") # <<<<<<<<<<<<<< + * if idx2 == -1: + * path = self._path + */ + if (unlikely(__pyx_v_self->__pyx_base._path == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "find"); + __PYX_ERR(0, 605, __pyx_L5_error) } - if (PY_MAJOR_VERSION >= 3) { - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + __pyx_t_4 = PyUnicode_Find(__pyx_v_self->__pyx_base._path, __pyx_kp_u__12, 0, PY_SSIZE_T_MAX, 1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-2))) __PYX_ERR(0, 605, __pyx_L5_error) + __pyx_v_idx2 = __pyx_t_4; + + /* "aiohttp/_http_parser.pyx":606 + * query = "" + * idx2 = self._path.find("#") + * if idx2 == -1: # <<<<<<<<<<<<<< + * path = self._path + * fragment = "" + */ + __pyx_t_2 = ((__pyx_v_idx2 == -1L) != 0); + if (__pyx_t_2) { + + /* "aiohttp/_http_parser.pyx":607 + * idx2 = self._path.find("#") + * if idx2 == -1: + * path = self._path # <<<<<<<<<<<<<< + * fragment = "" + * else: + */ + __pyx_t_6 = __pyx_v_self->__pyx_base._path; + __Pyx_INCREF(__pyx_t_6); + __pyx_v_path = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + + /* "aiohttp/_http_parser.pyx":608 + * if idx2 == -1: + * path = self._path + * fragment = "" # <<<<<<<<<<<<<< + * else: + * path = self._path[0: idx2] + */ + __Pyx_INCREF(__pyx_kp_u__8); + __pyx_v_fragment = __pyx_kp_u__8; + + /* "aiohttp/_http_parser.pyx":606 + * query = "" + * idx2 = self._path.find("#") + * if idx2 == -1: # <<<<<<<<<<<<<< + * path = self._path + * fragment = "" + */ + goto __pyx_L11; } - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); - __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; - __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; - goto __pyx_L1_error; - } - __pyx_L7:; - } - } - __pyx_L4:; - /* "aiohttp/_http_parser.pyx":588 - * finally: - * PyBuffer_Release(&py_buf) - * PyByteArray_Resize(self._buf, 0) # <<<<<<<<<<<<<< - * + /* "aiohttp/_http_parser.pyx":610 + * fragment = "" + * else: + * path = self._path[0: idx2] # <<<<<<<<<<<<<< + * fragment = self._path[idx2+1:] * */ - __pyx_t_3 = __pyx_v_self->__pyx_base._buf; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_7 = PyByteArray_Resize(__pyx_t_3, 0); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 588, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /*else*/ { + if (unlikely(__pyx_v_self->__pyx_base._path == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(0, 610, __pyx_L5_error) + } + __pyx_t_6 = __Pyx_PyUnicode_Substring(__pyx_v_self->__pyx_base._path, 0, __pyx_v_idx2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 610, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_path = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; - /* "aiohttp/_http_parser.pyx":574 - * payload_exception, response_with_body, read_until_eof) + /* "aiohttp/_http_parser.pyx":611 + * else: + * path = self._path[0: idx2] + * fragment = self._path[idx2+1:] # <<<<<<<<<<<<<< * - * cdef object _on_status_complete(self): # <<<<<<<<<<<<<< - * cdef Py_buffer py_buf - * if not self._buf: + * else: */ + if (unlikely(__pyx_v_self->__pyx_base._path == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(0, 611, __pyx_L5_error) + } + __pyx_t_6 = __Pyx_PyUnicode_Substring(__pyx_v_self->__pyx_base._path, (__pyx_v_idx2 + 1), PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 611, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_fragment = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + } + __pyx_L11:; - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); + /* "aiohttp/_http_parser.pyx":603 + * # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.1 + * idx1 = self._path.find("?") + * if idx1 == -1: # <<<<<<<<<<<<<< + * query = "" + * idx2 = self._path.find("#") + */ + goto __pyx_L10; + } + + /* "aiohttp/_http_parser.pyx":614 + * + * else: + * path = self._path[0:idx1] # <<<<<<<<<<<<<< + * idx1 += 1 + * idx2 = self._path.find("#", idx1+1) + */ + /*else*/ { + if (unlikely(__pyx_v_self->__pyx_base._path == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(0, 614, __pyx_L5_error) + } + __pyx_t_6 = __Pyx_PyUnicode_Substring(__pyx_v_self->__pyx_base._path, 0, __pyx_v_idx1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 614, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_path = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + + /* "aiohttp/_http_parser.pyx":615 + * else: + * path = self._path[0:idx1] + * idx1 += 1 # <<<<<<<<<<<<<< + * idx2 = self._path.find("#", idx1+1) + * if idx2 == -1: + */ + __pyx_v_idx1 = (__pyx_v_idx1 + 1); + + /* "aiohttp/_http_parser.pyx":616 + * path = self._path[0:idx1] + * idx1 += 1 + * idx2 = self._path.find("#", idx1+1) # <<<<<<<<<<<<<< + * if idx2 == -1: + * query = self._path[idx1:] + */ + if (unlikely(__pyx_v_self->__pyx_base._path == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "find"); + __PYX_ERR(0, 616, __pyx_L5_error) + } + __pyx_t_6 = __Pyx_PyInt_From_long((__pyx_v_idx1 + 1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 616, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 616, __pyx_L5_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_8 = PyUnicode_Find(__pyx_v_self->__pyx_base._path, __pyx_kp_u__12, __pyx_t_4, PY_SSIZE_T_MAX, 1); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-2))) __PYX_ERR(0, 616, __pyx_L5_error) + __pyx_v_idx2 = __pyx_t_8; + + /* "aiohttp/_http_parser.pyx":617 + * idx1 += 1 + * idx2 = self._path.find("#", idx1+1) + * if idx2 == -1: # <<<<<<<<<<<<<< + * query = self._path[idx1:] + * fragment = "" + */ + __pyx_t_2 = ((__pyx_v_idx2 == -1L) != 0); + if (__pyx_t_2) { + + /* "aiohttp/_http_parser.pyx":618 + * idx2 = self._path.find("#", idx1+1) + * if idx2 == -1: + * query = self._path[idx1:] # <<<<<<<<<<<<<< + * fragment = "" + * else: + */ + if (unlikely(__pyx_v_self->__pyx_base._path == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(0, 618, __pyx_L5_error) + } + __pyx_t_6 = __Pyx_PyUnicode_Substring(__pyx_v_self->__pyx_base._path, __pyx_v_idx1, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 618, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_query = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + + /* "aiohttp/_http_parser.pyx":619 + * if idx2 == -1: + * query = self._path[idx1:] + * fragment = "" # <<<<<<<<<<<<<< + * else: + * query = self._path[idx1: idx2] + */ + __Pyx_INCREF(__pyx_kp_u__8); + __pyx_v_fragment = __pyx_kp_u__8; + + /* "aiohttp/_http_parser.pyx":617 + * idx1 += 1 + * idx2 = self._path.find("#", idx1+1) + * if idx2 == -1: # <<<<<<<<<<<<<< + * query = self._path[idx1:] + * fragment = "" + */ + goto __pyx_L12; + } + + /* "aiohttp/_http_parser.pyx":621 + * fragment = "" + * else: + * query = self._path[idx1: idx2] # <<<<<<<<<<<<<< + * fragment = self._path[idx2+1:] + * + */ + /*else*/ { + if (unlikely(__pyx_v_self->__pyx_base._path == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(0, 621, __pyx_L5_error) + } + __pyx_t_6 = __Pyx_PyUnicode_Substring(__pyx_v_self->__pyx_base._path, __pyx_v_idx1, __pyx_v_idx2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 621, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_query = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + + /* "aiohttp/_http_parser.pyx":622 + * else: + * query = self._path[idx1: idx2] + * fragment = self._path[idx2+1:] # <<<<<<<<<<<<<< + * + * self._url = URL.build( + */ + if (unlikely(__pyx_v_self->__pyx_base._path == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(0, 622, __pyx_L5_error) + } + __pyx_t_6 = __Pyx_PyUnicode_Substring(__pyx_v_self->__pyx_base._path, (__pyx_v_idx2 + 1), PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 622, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_fragment = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + } + __pyx_L12:; + } + __pyx_L10:; + + /* "aiohttp/_http_parser.pyx":624 + * fragment = self._path[idx2+1:] + * + * self._url = URL.build( # <<<<<<<<<<<<<< + * path=path, + * query_string=query, + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_7aiohttp_12_http_parser_URL, __pyx_n_s_build); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 624, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "aiohttp/_http_parser.pyx":625 + * + * self._url = URL.build( + * path=path, # <<<<<<<<<<<<<< + * query_string=query, + * fragment=fragment, + */ + __pyx_t_5 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 625, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_path, __pyx_v_path) < 0) __PYX_ERR(0, 625, __pyx_L5_error) + + /* "aiohttp/_http_parser.pyx":626 + * self._url = URL.build( + * path=path, + * query_string=query, # <<<<<<<<<<<<<< + * fragment=fragment, + * encoded=True, + */ + if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_query_string, __pyx_v_query) < 0) __PYX_ERR(0, 625, __pyx_L5_error) + + /* "aiohttp/_http_parser.pyx":627 + * path=path, + * query_string=query, + * fragment=fragment, # <<<<<<<<<<<<<< + * encoded=True, + * ) + */ + if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_fragment, __pyx_v_fragment) < 0) __PYX_ERR(0, 625, __pyx_L5_error) + + /* "aiohttp/_http_parser.pyx":628 + * query_string=query, + * fragment=fragment, + * encoded=True, # <<<<<<<<<<<<<< + * ) + * else: + */ + if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_encoded, Py_True) < 0) __PYX_ERR(0, 625, __pyx_L5_error) + + /* "aiohttp/_http_parser.pyx":624 + * fragment = self._path[idx2+1:] + * + * self._url = URL.build( # <<<<<<<<<<<<<< + * path=path, + * query_string=query, + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 624, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_v_self->__pyx_base._url); + __Pyx_DECREF(__pyx_v_self->__pyx_base._url); + __pyx_v_self->__pyx_base._url = __pyx_t_3; + __pyx_t_3 = 0; + + /* "aiohttp/_http_parser.pyx":599 + * # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.3 + * self._url = URL.build(authority=self._path, encoded=True) + * elif idx3 > 1 and self._path[0] == '/': # <<<<<<<<<<<<<< + * # origin-form, + * # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.1 + */ + goto __pyx_L7; + } + + /* "aiohttp/_http_parser.pyx":633 + * # absolute-form for proxy maybe, + * # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.2 + * self._url = URL(self._path, encoded=True) # <<<<<<<<<<<<<< + * finally: + * PyByteArray_Resize(self._buf, 0) + */ + /*else*/ { + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 633, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_self->__pyx_base._path); + __Pyx_GIVEREF(__pyx_v_self->__pyx_base._path); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->__pyx_base._path); + __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 633, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_encoded, Py_True) < 0) __PYX_ERR(0, 633, __pyx_L5_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_7aiohttp_12_http_parser_URL, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 633, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GIVEREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_v_self->__pyx_base._url); + __Pyx_DECREF(__pyx_v_self->__pyx_base._url); + __pyx_v_self->__pyx_base._url = __pyx_t_6; + __pyx_t_6 = 0; + } + __pyx_L7:; + } + + /* "aiohttp/_http_parser.pyx":635 + * self._url = URL(self._path, encoded=True) + * finally: + * PyByteArray_Resize(self._buf, 0) # <<<<<<<<<<<<<< + * + * + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_6 = __pyx_v_self->__pyx_base._buf; + __Pyx_INCREF(__pyx_t_6); + __pyx_t_9 = PyByteArray_Resize(__pyx_t_6, 0); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 635, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_16); + __Pyx_XGOTREF(__pyx_t_17); + __pyx_t_9 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename; + { + __pyx_t_6 = __pyx_v_self->__pyx_base._buf; + __Pyx_INCREF(__pyx_t_6); + __pyx_t_18 = PyByteArray_Resize(__pyx_t_6, 0); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 635, __pyx_L14_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); + } + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14); + __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; + __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11; + goto __pyx_L1_error; + __pyx_L14_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); + } + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "aiohttp/_http_parser.pyx":588 + * auto_decompress) + * + * cdef object _on_status_complete(self): # <<<<<<<<<<<<<< + * cdef int idx1, idx2 + * if not self._buf: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("aiohttp._http_parser.HttpRequestParser._on_status_complete", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; + __Pyx_XDECREF(__pyx_v_query); + __Pyx_XDECREF(__pyx_v_path); + __Pyx_XDECREF(__pyx_v_fragment); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -10430,7 +11137,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_2__reduce_ * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -10486,7 +11193,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_4__setstat * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -10509,12 +11216,12 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_17HttpRequestParser_4__setstat return __pyx_r; } -/* "aiohttp/_http_parser.pyx":593 +/* "aiohttp/_http_parser.pyx":640 * cdef class HttpResponseParser(HttpParser): * - * def __init__(self, protocol, loop, int limit, timer=None, # <<<<<<<<<<<<<< - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, + * def __init__( # <<<<<<<<<<<<<< + * self, protocol, loop, int limit, timer=None, + * size_t max_line_size=8190, size_t max_headers=32768, */ /* Python wrapper */ @@ -10540,14 +11247,22 @@ static int __pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_1__init__(PyObj { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_protocol,&__pyx_n_s_loop,&__pyx_n_s_limit,&__pyx_n_s_timer,&__pyx_n_s_max_line_size,&__pyx_n_s_max_headers,&__pyx_n_s_max_field_size,&__pyx_n_s_payload_exception,&__pyx_n_s_response_with_body,&__pyx_n_s_read_until_eof,&__pyx_n_s_auto_decompress,0}; PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0}; + + /* "aiohttp/_http_parser.pyx":641 + * + * def __init__( + * self, protocol, loop, int limit, timer=None, # <<<<<<<<<<<<<< + * size_t max_line_size=8190, size_t max_headers=32768, + * size_t max_field_size=8190, payload_exception=None, + */ values[3] = ((PyObject *)Py_None); - /* "aiohttp/_http_parser.pyx":595 - * def __init__(self, protocol, loop, int limit, timer=None, - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, # <<<<<<<<<<<<<< - * bint response_with_body=True, bint read_until_eof=False, - * bint auto_decompress=True + /* "aiohttp/_http_parser.pyx":643 + * self, protocol, loop, int limit, timer=None, + * size_t max_line_size=8190, size_t max_headers=32768, + * size_t max_field_size=8190, payload_exception=None, # <<<<<<<<<<<<<< + * bint response_with_body=True, bint read_until_eof=False, + * bint auto_decompress=True */ values[7] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { @@ -10588,13 +11303,13 @@ static int __pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_1__init__(PyObj case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loop)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, 1); __PYX_ERR(0, 593, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, 1); __PYX_ERR(0, 640, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_limit)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, 2); __PYX_ERR(0, 593, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, 2); __PYX_ERR(0, 640, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: @@ -10646,7 +11361,7 @@ static int __pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_1__init__(PyObj } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 593, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 640, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -10675,50 +11390,50 @@ static int __pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_1__init__(PyObj } __pyx_v_protocol = values[0]; __pyx_v_loop = values[1]; - __pyx_v_limit = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_limit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error) + __pyx_v_limit = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_limit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 641, __pyx_L3_error) __pyx_v_timer = values[3]; if (values[4]) { - __pyx_v_max_line_size = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_max_line_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 594, __pyx_L3_error) + __pyx_v_max_line_size = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_max_line_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 642, __pyx_L3_error) } else { __pyx_v_max_line_size = ((size_t)0x1FFE); } if (values[5]) { - __pyx_v_max_headers = __Pyx_PyInt_As_size_t(values[5]); if (unlikely((__pyx_v_max_headers == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 594, __pyx_L3_error) + __pyx_v_max_headers = __Pyx_PyInt_As_size_t(values[5]); if (unlikely((__pyx_v_max_headers == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 642, __pyx_L3_error) } else { __pyx_v_max_headers = ((size_t)0x8000); } if (values[6]) { - __pyx_v_max_field_size = __Pyx_PyInt_As_size_t(values[6]); if (unlikely((__pyx_v_max_field_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 595, __pyx_L3_error) + __pyx_v_max_field_size = __Pyx_PyInt_As_size_t(values[6]); if (unlikely((__pyx_v_max_field_size == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 643, __pyx_L3_error) } else { __pyx_v_max_field_size = ((size_t)0x1FFE); } __pyx_v_payload_exception = values[7]; if (values[8]) { - __pyx_v_response_with_body = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_response_with_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 596, __pyx_L3_error) + __pyx_v_response_with_body = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_response_with_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 644, __pyx_L3_error) } else { - /* "aiohttp/_http_parser.pyx":596 - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, - * bint response_with_body=True, bint read_until_eof=False, # <<<<<<<<<<<<<< - * bint auto_decompress=True + /* "aiohttp/_http_parser.pyx":644 + * size_t max_line_size=8190, size_t max_headers=32768, + * size_t max_field_size=8190, payload_exception=None, + * bint response_with_body=True, bint read_until_eof=False, # <<<<<<<<<<<<<< + * bint auto_decompress=True * ): */ __pyx_v_response_with_body = ((int)1); } if (values[9]) { - __pyx_v_read_until_eof = __Pyx_PyObject_IsTrue(values[9]); if (unlikely((__pyx_v_read_until_eof == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 596, __pyx_L3_error) + __pyx_v_read_until_eof = __Pyx_PyObject_IsTrue(values[9]); if (unlikely((__pyx_v_read_until_eof == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 644, __pyx_L3_error) } else { __pyx_v_read_until_eof = ((int)0); } if (values[10]) { - __pyx_v_auto_decompress = __Pyx_PyObject_IsTrue(values[10]); if (unlikely((__pyx_v_auto_decompress == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 597, __pyx_L3_error) + __pyx_v_auto_decompress = __Pyx_PyObject_IsTrue(values[10]); if (unlikely((__pyx_v_auto_decompress == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 645, __pyx_L3_error) } else { - /* "aiohttp/_http_parser.pyx":597 - * size_t max_field_size=8190, payload_exception=None, - * bint response_with_body=True, bint read_until_eof=False, - * bint auto_decompress=True # <<<<<<<<<<<<<< + /* "aiohttp/_http_parser.pyx":645 + * size_t max_field_size=8190, payload_exception=None, + * bint response_with_body=True, bint read_until_eof=False, + * bint auto_decompress=True # <<<<<<<<<<<<<< * ): * self._init(cparser.HTTP_RESPONSE, protocol, loop, limit, timer, */ @@ -10727,7 +11442,7 @@ static int __pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_1__init__(PyObj } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 593, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 640, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("aiohttp._http_parser.HttpResponseParser.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -10735,12 +11450,12 @@ static int __pyx_pw_7aiohttp_12_http_parser_18HttpResponseParser_1__init__(PyObj __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser___init__(((struct __pyx_obj_7aiohttp_12_http_parser_HttpResponseParser *)__pyx_v_self), __pyx_v_protocol, __pyx_v_loop, __pyx_v_limit, __pyx_v_timer, __pyx_v_max_line_size, __pyx_v_max_headers, __pyx_v_max_field_size, __pyx_v_payload_exception, __pyx_v_response_with_body, __pyx_v_read_until_eof, __pyx_v_auto_decompress); - /* "aiohttp/_http_parser.pyx":593 + /* "aiohttp/_http_parser.pyx":640 * cdef class HttpResponseParser(HttpParser): * - * def __init__(self, protocol, loop, int limit, timer=None, # <<<<<<<<<<<<<< - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, + * def __init__( # <<<<<<<<<<<<<< + * self, protocol, loop, int limit, timer=None, + * size_t max_line_size=8190, size_t max_headers=32768, */ /* function exit code */ @@ -10753,13 +11468,15 @@ static int __pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser___init__(struct __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "aiohttp/_http_parser.pyx":599 - * bint auto_decompress=True + /* "aiohttp/_http_parser.pyx":647 + * bint auto_decompress=True * ): * self._init(cparser.HTTP_RESPONSE, protocol, loop, limit, timer, # <<<<<<<<<<<<<< * max_line_size, max_headers, max_field_size, @@ -10774,16 +11491,66 @@ static int __pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser___init__(struct __pyx_t_2.response_with_body = __pyx_v_response_with_body; __pyx_t_2.read_until_eof = __pyx_v_read_until_eof; __pyx_t_2.auto_decompress = __pyx_v_auto_decompress; - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpResponseParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._init(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self), HTTP_RESPONSE, __pyx_v_protocol, __pyx_v_loop, __pyx_v_limit, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L1_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpResponseParser *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._init(((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_v_self), HTTP_RESPONSE, __pyx_v_protocol, __pyx_v_loop, __pyx_v_limit, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":593 + /* "aiohttp/_http_parser.pyx":652 + * auto_decompress) + * # Use strict parsing on dev mode, so users are warned about broken servers. + * if not DEBUG: # <<<<<<<<<<<<<< + * cparser.llhttp_set_lenient_headers(self._cparser, 1) + * cparser.llhttp_set_lenient_optional_cr_before_lf(self._cparser, 1) + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DEBUG); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 652, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = ((!__pyx_t_3) != 0); + if (__pyx_t_4) { + + /* "aiohttp/_http_parser.pyx":653 + * # Use strict parsing on dev mode, so users are warned about broken servers. + * if not DEBUG: + * cparser.llhttp_set_lenient_headers(self._cparser, 1) # <<<<<<<<<<<<<< + * cparser.llhttp_set_lenient_optional_cr_before_lf(self._cparser, 1) + * cparser.llhttp_set_lenient_spaces_after_chunk_size(self._cparser, 1) + */ + llhttp_set_lenient_headers(__pyx_v_self->__pyx_base._cparser, 1); + + /* "aiohttp/_http_parser.pyx":654 + * if not DEBUG: + * cparser.llhttp_set_lenient_headers(self._cparser, 1) + * cparser.llhttp_set_lenient_optional_cr_before_lf(self._cparser, 1) # <<<<<<<<<<<<<< + * cparser.llhttp_set_lenient_spaces_after_chunk_size(self._cparser, 1) + * + */ + llhttp_set_lenient_optional_cr_before_lf(__pyx_v_self->__pyx_base._cparser, 1); + + /* "aiohttp/_http_parser.pyx":655 + * cparser.llhttp_set_lenient_headers(self._cparser, 1) + * cparser.llhttp_set_lenient_optional_cr_before_lf(self._cparser, 1) + * cparser.llhttp_set_lenient_spaces_after_chunk_size(self._cparser, 1) # <<<<<<<<<<<<<< + * + * cdef object _on_status_complete(self): + */ + llhttp_set_lenient_spaces_after_chunk_size(__pyx_v_self->__pyx_base._cparser, 1); + + /* "aiohttp/_http_parser.pyx":652 + * auto_decompress) + * # Use strict parsing on dev mode, so users are warned about broken servers. + * if not DEBUG: # <<<<<<<<<<<<<< + * cparser.llhttp_set_lenient_headers(self._cparser, 1) + * cparser.llhttp_set_lenient_optional_cr_before_lf(self._cparser, 1) + */ + } + + /* "aiohttp/_http_parser.pyx":640 * cdef class HttpResponseParser(HttpParser): * - * def __init__(self, protocol, loop, int limit, timer=None, # <<<<<<<<<<<<<< - * size_t max_line_size=8190, size_t max_headers=32768, - * size_t max_field_size=8190, payload_exception=None, + * def __init__( # <<<<<<<<<<<<<< + * self, protocol, loop, int limit, timer=None, + * size_t max_line_size=8190, size_t max_headers=32768, */ /* function exit code */ @@ -10798,8 +11565,8 @@ static int __pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser___init__(struct return __pyx_r; } -/* "aiohttp/_http_parser.pyx":604 - * auto_decompress) +/* "aiohttp/_http_parser.pyx":657 + * cparser.llhttp_set_lenient_spaces_after_chunk_size(self._cparser, 1) * * cdef object _on_status_complete(self): # <<<<<<<<<<<<<< * if self._buf: @@ -10817,7 +11584,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_on_status_complete", 0); - /* "aiohttp/_http_parser.pyx":605 + /* "aiohttp/_http_parser.pyx":658 * * cdef object _on_status_complete(self): * if self._buf: # <<<<<<<<<<<<<< @@ -10827,7 +11594,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status __pyx_t_1 = (__pyx_v_self->__pyx_base._buf != Py_None)&&(PyByteArray_GET_SIZE(__pyx_v_self->__pyx_base._buf) != 0); if (__pyx_t_1) { - /* "aiohttp/_http_parser.pyx":606 + /* "aiohttp/_http_parser.pyx":659 * cdef object _on_status_complete(self): * if self._buf: * self._reason = self._buf.decode('utf-8', 'surrogateescape') # <<<<<<<<<<<<<< @@ -10836,9 +11603,9 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status */ if (unlikely(__pyx_v_self->__pyx_base._buf == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode"); - __PYX_ERR(0, 606, __pyx_L1_error) + __PYX_ERR(0, 659, __pyx_L1_error) } - __pyx_t_2 = __Pyx_decode_bytearray(__pyx_v_self->__pyx_base._buf, 0, PY_SSIZE_T_MAX, NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 606, __pyx_L1_error) + __pyx_t_2 = __Pyx_decode_bytearray(__pyx_v_self->__pyx_base._buf, 0, PY_SSIZE_T_MAX, NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->__pyx_base._reason); @@ -10846,7 +11613,7 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status __pyx_v_self->__pyx_base._reason = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":607 + /* "aiohttp/_http_parser.pyx":660 * if self._buf: * self._reason = self._buf.decode('utf-8', 'surrogateescape') * PyByteArray_Resize(self._buf, 0) # <<<<<<<<<<<<<< @@ -10855,10 +11622,10 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status */ __pyx_t_2 = __pyx_v_self->__pyx_base._buf; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = PyByteArray_Resize(__pyx_t_2, 0); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 607, __pyx_L1_error) + __pyx_t_3 = PyByteArray_Resize(__pyx_t_2, 0); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 660, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":605 + /* "aiohttp/_http_parser.pyx":658 * * cdef object _on_status_complete(self): * if self._buf: # <<<<<<<<<<<<<< @@ -10868,23 +11635,23 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status goto __pyx_L3; } - /* "aiohttp/_http_parser.pyx":609 + /* "aiohttp/_http_parser.pyx":662 * PyByteArray_Resize(self._buf, 0) * else: * self._reason = self._reason or '' # <<<<<<<<<<<<<< * - * cdef int cb_on_message_begin(cparser.http_parser* parser) except -1: + * cdef int cb_on_message_begin(cparser.llhttp_t* parser) except -1: */ /*else*/ { - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->__pyx_base._reason); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 609, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->__pyx_base._reason); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 662, __pyx_L1_error) if (!__pyx_t_1) { } else { __Pyx_INCREF(__pyx_v_self->__pyx_base._reason); __pyx_t_2 = __pyx_v_self->__pyx_base._reason; goto __pyx_L4_bool_binop_done; } - __Pyx_INCREF(__pyx_kp_u__4); - __pyx_t_2 = __pyx_kp_u__4; + __Pyx_INCREF(__pyx_kp_u__8); + __pyx_t_2 = __pyx_kp_u__8; __pyx_L4_bool_binop_done:; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->__pyx_base._reason); @@ -10894,8 +11661,8 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status } __pyx_L3:; - /* "aiohttp/_http_parser.pyx":604 - * auto_decompress) + /* "aiohttp/_http_parser.pyx":657 + * cparser.llhttp_set_lenient_spaces_after_chunk_size(self._cparser, 1) * * cdef object _on_status_complete(self): # <<<<<<<<<<<<<< * if self._buf: @@ -10949,7 +11716,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_2__reduce * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -11005,7 +11772,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_4__setsta * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -11028,15 +11795,15 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_18HttpResponseParser_4__setsta return __pyx_r; } -/* "aiohttp/_http_parser.pyx":611 +/* "aiohttp/_http_parser.pyx":664 * self._reason = self._reason or '' * - * cdef int cb_on_message_begin(cparser.http_parser* parser) except -1: # <<<<<<<<<<<<<< + * cdef int cb_on_message_begin(cparser.llhttp_t* parser) except -1: # <<<<<<<<<<<<<< * cdef HttpParser pyparser = parser.data * */ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parser *__pyx_v_parser) { +static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(llhttp_t *__pyx_v_parser) { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0; int __pyx_r; __Pyx_RefNannyDeclarations @@ -11049,9 +11816,9 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parse int __pyx_clineno = 0; __Pyx_RefNannySetupContext("cb_on_message_begin", 0); - /* "aiohttp/_http_parser.pyx":612 + /* "aiohttp/_http_parser.pyx":665 * - * cdef int cb_on_message_begin(cparser.http_parser* parser) except -1: + * cdef int cb_on_message_begin(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data # <<<<<<<<<<<<<< * * pyparser._started = True @@ -11061,7 +11828,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parse __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":614 + /* "aiohttp/_http_parser.pyx":667 * cdef HttpParser pyparser = parser.data * * pyparser._started = True # <<<<<<<<<<<<<< @@ -11070,7 +11837,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parse */ __pyx_v_pyparser->_started = 1; - /* "aiohttp/_http_parser.pyx":615 + /* "aiohttp/_http_parser.pyx":668 * * pyparser._started = True * pyparser._headers = CIMultiDict() # <<<<<<<<<<<<<< @@ -11090,7 +11857,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parse } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 615, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); @@ -11099,14 +11866,14 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parse __pyx_v_pyparser->_headers = __pyx_t_1; __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":616 + /* "aiohttp/_http_parser.pyx":669 * pyparser._started = True * pyparser._headers = CIMultiDict() * pyparser._raw_headers = [] # <<<<<<<<<<<<<< * PyByteArray_Resize(pyparser._buf, 0) * pyparser._path = None */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 616, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_pyparser->_raw_headers); @@ -11114,7 +11881,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parse __pyx_v_pyparser->_raw_headers = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":617 + /* "aiohttp/_http_parser.pyx":670 * pyparser._headers = CIMultiDict() * pyparser._raw_headers = [] * PyByteArray_Resize(pyparser._buf, 0) # <<<<<<<<<<<<<< @@ -11123,10 +11890,10 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parse */ __pyx_t_1 = __pyx_v_pyparser->_buf; __Pyx_INCREF(__pyx_t_1); - __pyx_t_4 = PyByteArray_Resize(__pyx_t_1, 0); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 617, __pyx_L1_error) + __pyx_t_4 = PyByteArray_Resize(__pyx_t_1, 0); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 670, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":618 + /* "aiohttp/_http_parser.pyx":671 * pyparser._raw_headers = [] * PyByteArray_Resize(pyparser._buf, 0) * pyparser._path = None # <<<<<<<<<<<<<< @@ -11139,7 +11906,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parse __Pyx_DECREF(__pyx_v_pyparser->_path); __pyx_v_pyparser->_path = ((PyObject*)Py_None); - /* "aiohttp/_http_parser.pyx":619 + /* "aiohttp/_http_parser.pyx":672 * PyByteArray_Resize(pyparser._buf, 0) * pyparser._path = None * pyparser._reason = None # <<<<<<<<<<<<<< @@ -11152,7 +11919,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parse __Pyx_DECREF(__pyx_v_pyparser->_reason); __pyx_v_pyparser->_reason = ((PyObject*)Py_None); - /* "aiohttp/_http_parser.pyx":620 + /* "aiohttp/_http_parser.pyx":673 * pyparser._path = None * pyparser._reason = None * return 0 # <<<<<<<<<<<<<< @@ -11162,10 +11929,10 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parse __pyx_r = 0; goto __pyx_L0; - /* "aiohttp/_http_parser.pyx":611 + /* "aiohttp/_http_parser.pyx":664 * self._reason = self._reason or '' * - * cdef int cb_on_message_begin(cparser.http_parser* parser) except -1: # <<<<<<<<<<<<<< + * cdef int cb_on_message_begin(cparser.llhttp_t* parser) except -1: # <<<<<<<<<<<<<< * cdef HttpParser pyparser = parser.data * */ @@ -11183,15 +11950,15 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_begin(struct http_parse return __pyx_r; } -/* "aiohttp/_http_parser.pyx":623 +/* "aiohttp/_http_parser.pyx":676 * * - * cdef int cb_on_url(cparser.http_parser* parser, # <<<<<<<<<<<<<< + * cdef int cb_on_url(cparser.llhttp_t* parser, # <<<<<<<<<<<<<< * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data */ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) { +static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(llhttp_t *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0; PyObject *__pyx_v_ex = NULL; int __pyx_r; @@ -11212,8 +11979,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v int __pyx_clineno = 0; __Pyx_RefNannySetupContext("cb_on_url", 0); - /* "aiohttp/_http_parser.pyx":625 - * cdef int cb_on_url(cparser.http_parser* parser, + /* "aiohttp/_http_parser.pyx":678 + * cdef int cb_on_url(cparser.llhttp_t* parser, * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data # <<<<<<<<<<<<<< * try: @@ -11224,7 +11991,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":626 + /* "aiohttp/_http_parser.pyx":679 * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< @@ -11240,7 +12007,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "aiohttp/_http_parser.pyx":627 + /* "aiohttp/_http_parser.pyx":680 * cdef HttpParser pyparser = parser.data * try: * if length > pyparser._max_line_size: # <<<<<<<<<<<<<< @@ -11250,26 +12017,26 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v __pyx_t_5 = ((__pyx_v_length > __pyx_v_pyparser->_max_line_size) != 0); if (unlikely(__pyx_t_5)) { - /* "aiohttp/_http_parser.pyx":628 + /* "aiohttp/_http_parser.pyx":681 * try: * if length > pyparser._max_line_size: * raise LineTooLong( # <<<<<<<<<<<<<< * 'Status line is too long', pyparser._max_line_size, length) * extend(pyparser._buf, at, length) */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 628, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 681, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); - /* "aiohttp/_http_parser.pyx":629 + /* "aiohttp/_http_parser.pyx":682 * if length > pyparser._max_line_size: * raise LineTooLong( * 'Status line is too long', pyparser._max_line_size, length) # <<<<<<<<<<<<<< * extend(pyparser._buf, at, length) * except BaseException as ex: */ - __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_line_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 629, __pyx_L3_error) + __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_line_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 682, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 629, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 682, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_10 = 0; @@ -11286,7 +12053,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_kp_u_Status_line_is_too_long, __pyx_t_7, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 681, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -11296,7 +12063,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_kp_u_Status_line_is_too_long, __pyx_t_7, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 681, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -11304,7 +12071,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v } else #endif { - __pyx_t_11 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 628, __pyx_L3_error) + __pyx_t_11 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 681, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; @@ -11318,16 +12085,16 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_8); __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 681, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 628, __pyx_L3_error) + __PYX_ERR(0, 681, __pyx_L3_error) - /* "aiohttp/_http_parser.pyx":627 + /* "aiohttp/_http_parser.pyx":680 * cdef HttpParser pyparser = parser.data * try: * if length > pyparser._max_line_size: # <<<<<<<<<<<<<< @@ -11336,7 +12103,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v */ } - /* "aiohttp/_http_parser.pyx":630 + /* "aiohttp/_http_parser.pyx":683 * raise LineTooLong( * 'Status line is too long', pyparser._max_line_size, length) * extend(pyparser._buf, at, length) # <<<<<<<<<<<<<< @@ -11345,12 +12112,12 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v */ __pyx_t_1 = __pyx_v_pyparser->_buf; __Pyx_INCREF(__pyx_t_1); - __pyx_t_6 = __pyx_f_7aiohttp_12_http_parser_extend(__pyx_t_1, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 630, __pyx_L3_error) + __pyx_t_6 = __pyx_f_7aiohttp_12_http_parser_extend(__pyx_t_1, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 683, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "aiohttp/_http_parser.pyx":626 + /* "aiohttp/_http_parser.pyx":679 * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< @@ -11359,7 +12126,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v */ } - /* "aiohttp/_http_parser.pyx":635 + /* "aiohttp/_http_parser.pyx":688 * return -1 * else: * return 0 # <<<<<<<<<<<<<< @@ -11378,7 +12145,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "aiohttp/_http_parser.pyx":631 + /* "aiohttp/_http_parser.pyx":684 * 'Status line is too long', pyparser._max_line_size, length) * extend(pyparser._buf, at, length) * except BaseException as ex: # <<<<<<<<<<<<<< @@ -11388,7 +12155,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException); if (__pyx_t_10) { __Pyx_AddTraceback("aiohttp._http_parser.cb_on_url", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_11) < 0) __PYX_ERR(0, 631, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_11) < 0) __PYX_ERR(0, 684, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_11); @@ -11396,7 +12163,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v __pyx_v_ex = __pyx_t_1; /*try:*/ { - /* "aiohttp/_http_parser.pyx":632 + /* "aiohttp/_http_parser.pyx":685 * extend(pyparser._buf, at, length) * except BaseException as ex: * pyparser._last_error = ex # <<<<<<<<<<<<<< @@ -11409,7 +12176,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v __Pyx_DECREF(__pyx_v_pyparser->_last_error); __pyx_v_pyparser->_last_error = __pyx_v_ex; - /* "aiohttp/_http_parser.pyx":633 + /* "aiohttp/_http_parser.pyx":686 * except BaseException as ex: * pyparser._last_error = ex * return -1 # <<<<<<<<<<<<<< @@ -11423,7 +12190,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v goto __pyx_L14_return; } - /* "aiohttp/_http_parser.pyx":631 + /* "aiohttp/_http_parser.pyx":684 * 'Status line is too long', pyparser._max_line_size, length) * extend(pyparser._buf, at, length) * except BaseException as ex: # <<<<<<<<<<<<<< @@ -11443,7 +12210,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "aiohttp/_http_parser.pyx":626 + /* "aiohttp/_http_parser.pyx":679 * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< @@ -11463,10 +12230,10 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v goto __pyx_L0; } - /* "aiohttp/_http_parser.pyx":623 + /* "aiohttp/_http_parser.pyx":676 * * - * cdef int cb_on_url(cparser.http_parser* parser, # <<<<<<<<<<<<<< + * cdef int cb_on_url(cparser.llhttp_t* parser, # <<<<<<<<<<<<<< * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data */ @@ -11488,15 +12255,15 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_url(struct http_parser *__pyx_v return __pyx_r; } -/* "aiohttp/_http_parser.pyx":638 +/* "aiohttp/_http_parser.pyx":691 * * - * cdef int cb_on_status(cparser.http_parser* parser, # <<<<<<<<<<<<<< + * cdef int cb_on_status(cparser.llhttp_t* parser, # <<<<<<<<<<<<<< * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data */ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) { +static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(llhttp_t *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0; PyObject *__pyx_v_ex = NULL; int __pyx_r; @@ -11517,8 +12284,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("cb_on_status", 0); - /* "aiohttp/_http_parser.pyx":640 - * cdef int cb_on_status(cparser.http_parser* parser, + /* "aiohttp/_http_parser.pyx":693 + * cdef int cb_on_status(cparser.llhttp_t* parser, * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data # <<<<<<<<<<<<<< * cdef str reason @@ -11529,7 +12296,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":642 + /* "aiohttp/_http_parser.pyx":695 * cdef HttpParser pyparser = parser.data * cdef str reason * try: # <<<<<<<<<<<<<< @@ -11545,7 +12312,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "aiohttp/_http_parser.pyx":643 + /* "aiohttp/_http_parser.pyx":696 * cdef str reason * try: * if length > pyparser._max_line_size: # <<<<<<<<<<<<<< @@ -11555,26 +12322,26 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py __pyx_t_5 = ((__pyx_v_length > __pyx_v_pyparser->_max_line_size) != 0); if (unlikely(__pyx_t_5)) { - /* "aiohttp/_http_parser.pyx":644 + /* "aiohttp/_http_parser.pyx":697 * try: * if length > pyparser._max_line_size: * raise LineTooLong( # <<<<<<<<<<<<<< * 'Status line is too long', pyparser._max_line_size, length) * extend(pyparser._buf, at, length) */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 644, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 697, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); - /* "aiohttp/_http_parser.pyx":645 + /* "aiohttp/_http_parser.pyx":698 * if length > pyparser._max_line_size: * raise LineTooLong( * 'Status line is too long', pyparser._max_line_size, length) # <<<<<<<<<<<<<< * extend(pyparser._buf, at, length) * except BaseException as ex: */ - __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_line_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 645, __pyx_L3_error) + __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_line_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 698, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 645, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 698, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_10 = 0; @@ -11591,7 +12358,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_kp_u_Status_line_is_too_long, __pyx_t_7, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 644, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 697, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -11601,7 +12368,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_kp_u_Status_line_is_too_long, __pyx_t_7, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 644, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 697, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; @@ -11609,7 +12376,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py } else #endif { - __pyx_t_11 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 644, __pyx_L3_error) + __pyx_t_11 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 697, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; @@ -11623,16 +12390,16 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_8); __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 644, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 697, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 644, __pyx_L3_error) + __PYX_ERR(0, 697, __pyx_L3_error) - /* "aiohttp/_http_parser.pyx":643 + /* "aiohttp/_http_parser.pyx":696 * cdef str reason * try: * if length > pyparser._max_line_size: # <<<<<<<<<<<<<< @@ -11641,7 +12408,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py */ } - /* "aiohttp/_http_parser.pyx":646 + /* "aiohttp/_http_parser.pyx":699 * raise LineTooLong( * 'Status line is too long', pyparser._max_line_size, length) * extend(pyparser._buf, at, length) # <<<<<<<<<<<<<< @@ -11650,12 +12417,12 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py */ __pyx_t_1 = __pyx_v_pyparser->_buf; __Pyx_INCREF(__pyx_t_1); - __pyx_t_6 = __pyx_f_7aiohttp_12_http_parser_extend(__pyx_t_1, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 646, __pyx_L3_error) + __pyx_t_6 = __pyx_f_7aiohttp_12_http_parser_extend(__pyx_t_1, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 699, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "aiohttp/_http_parser.pyx":642 + /* "aiohttp/_http_parser.pyx":695 * cdef HttpParser pyparser = parser.data * cdef str reason * try: # <<<<<<<<<<<<<< @@ -11664,7 +12431,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py */ } - /* "aiohttp/_http_parser.pyx":651 + /* "aiohttp/_http_parser.pyx":704 * return -1 * else: * return 0 # <<<<<<<<<<<<<< @@ -11683,7 +12450,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "aiohttp/_http_parser.pyx":647 + /* "aiohttp/_http_parser.pyx":700 * 'Status line is too long', pyparser._max_line_size, length) * extend(pyparser._buf, at, length) * except BaseException as ex: # <<<<<<<<<<<<<< @@ -11693,7 +12460,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException); if (__pyx_t_10) { __Pyx_AddTraceback("aiohttp._http_parser.cb_on_status", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_11) < 0) __PYX_ERR(0, 647, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_11) < 0) __PYX_ERR(0, 700, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_11); @@ -11701,7 +12468,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py __pyx_v_ex = __pyx_t_1; /*try:*/ { - /* "aiohttp/_http_parser.pyx":648 + /* "aiohttp/_http_parser.pyx":701 * extend(pyparser._buf, at, length) * except BaseException as ex: * pyparser._last_error = ex # <<<<<<<<<<<<<< @@ -11714,7 +12481,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py __Pyx_DECREF(__pyx_v_pyparser->_last_error); __pyx_v_pyparser->_last_error = __pyx_v_ex; - /* "aiohttp/_http_parser.pyx":649 + /* "aiohttp/_http_parser.pyx":702 * except BaseException as ex: * pyparser._last_error = ex * return -1 # <<<<<<<<<<<<<< @@ -11728,7 +12495,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py goto __pyx_L14_return; } - /* "aiohttp/_http_parser.pyx":647 + /* "aiohttp/_http_parser.pyx":700 * 'Status line is too long', pyparser._max_line_size, length) * extend(pyparser._buf, at, length) * except BaseException as ex: # <<<<<<<<<<<<<< @@ -11748,7 +12515,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "aiohttp/_http_parser.pyx":642 + /* "aiohttp/_http_parser.pyx":695 * cdef HttpParser pyparser = parser.data * cdef str reason * try: # <<<<<<<<<<<<<< @@ -11768,10 +12535,10 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py goto __pyx_L0; } - /* "aiohttp/_http_parser.pyx":638 + /* "aiohttp/_http_parser.pyx":691 * * - * cdef int cb_on_status(cparser.http_parser* parser, # <<<<<<<<<<<<<< + * cdef int cb_on_status(cparser.llhttp_t* parser, # <<<<<<<<<<<<<< * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data */ @@ -11793,15 +12560,15 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_status(struct http_parser *__py return __pyx_r; } -/* "aiohttp/_http_parser.pyx":654 +/* "aiohttp/_http_parser.pyx":707 * * - * cdef int cb_on_header_field(cparser.http_parser* parser, # <<<<<<<<<<<<<< + * cdef int cb_on_header_field(cparser.llhttp_t* parser, # <<<<<<<<<<<<<< * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data */ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) { +static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(llhttp_t *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0; Py_ssize_t __pyx_v_size; PyObject *__pyx_v_ex = NULL; @@ -11824,8 +12591,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser int __pyx_clineno = 0; __Pyx_RefNannySetupContext("cb_on_header_field", 0); - /* "aiohttp/_http_parser.pyx":656 - * cdef int cb_on_header_field(cparser.http_parser* parser, + /* "aiohttp/_http_parser.pyx":709 + * cdef int cb_on_header_field(cparser.llhttp_t* parser, * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data # <<<<<<<<<<<<<< * cdef Py_ssize_t size @@ -11836,7 +12603,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":658 + /* "aiohttp/_http_parser.pyx":711 * cdef HttpParser pyparser = parser.data * cdef Py_ssize_t size * try: # <<<<<<<<<<<<<< @@ -11852,18 +12619,18 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "aiohttp/_http_parser.pyx":659 + /* "aiohttp/_http_parser.pyx":712 * cdef Py_ssize_t size * try: * pyparser._on_status_complete() # <<<<<<<<<<<<<< * size = len(pyparser._raw_name) + length * if size > pyparser._max_field_size: */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_status_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 659, __pyx_L3_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_status_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 712, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":660 + /* "aiohttp/_http_parser.pyx":713 * try: * pyparser._on_status_complete() * size = len(pyparser._raw_name) + length # <<<<<<<<<<<<<< @@ -11874,13 +12641,13 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 660, __pyx_L3_error) + __PYX_ERR(0, 713, __pyx_L3_error) } - __pyx_t_5 = PyByteArray_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 660, __pyx_L3_error) + __pyx_t_5 = PyByteArray_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 713, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_size = (__pyx_t_5 + __pyx_v_length); - /* "aiohttp/_http_parser.pyx":661 + /* "aiohttp/_http_parser.pyx":714 * pyparser._on_status_complete() * size = len(pyparser._raw_name) + length * if size > pyparser._max_field_size: # <<<<<<<<<<<<<< @@ -11890,26 +12657,26 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser __pyx_t_6 = ((__pyx_v_size > __pyx_v_pyparser->_max_field_size) != 0); if (unlikely(__pyx_t_6)) { - /* "aiohttp/_http_parser.pyx":662 + /* "aiohttp/_http_parser.pyx":715 * size = len(pyparser._raw_name) + length * if size > pyparser._max_field_size: * raise LineTooLong( # <<<<<<<<<<<<<< * 'Header name is too long', pyparser._max_field_size, size) * pyparser._on_header_field(at, length) */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 662, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 715, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); - /* "aiohttp/_http_parser.pyx":663 + /* "aiohttp/_http_parser.pyx":716 * if size > pyparser._max_field_size: * raise LineTooLong( * 'Header name is too long', pyparser._max_field_size, size) # <<<<<<<<<<<<<< * pyparser._on_header_field(at, length) * except BaseException as ex: */ - __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_field_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 663, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_field_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 716, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 663, __pyx_L3_error) + __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 716, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; __pyx_t_11 = 0; @@ -11926,7 +12693,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_kp_u_Header_name_is_too_long, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 662, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 715, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -11936,7 +12703,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_kp_u_Header_name_is_too_long, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 662, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 715, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -11944,7 +12711,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser } else #endif { - __pyx_t_12 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 662, __pyx_L3_error) + __pyx_t_12 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 715, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL; @@ -11958,16 +12725,16 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_11, __pyx_t_9); __pyx_t_8 = 0; __pyx_t_9 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 662, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 715, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 662, __pyx_L3_error) + __PYX_ERR(0, 715, __pyx_L3_error) - /* "aiohttp/_http_parser.pyx":661 + /* "aiohttp/_http_parser.pyx":714 * pyparser._on_status_complete() * size = len(pyparser._raw_name) + length * if size > pyparser._max_field_size: # <<<<<<<<<<<<<< @@ -11976,18 +12743,18 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser */ } - /* "aiohttp/_http_parser.pyx":664 + /* "aiohttp/_http_parser.pyx":717 * raise LineTooLong( * 'Header name is too long', pyparser._max_field_size, size) * pyparser._on_header_field(at, length) # <<<<<<<<<<<<<< * except BaseException as ex: * pyparser._last_error = ex */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_header_field(__pyx_v_pyparser, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 664, __pyx_L3_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_header_field(__pyx_v_pyparser, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 717, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":658 + /* "aiohttp/_http_parser.pyx":711 * cdef HttpParser pyparser = parser.data * cdef Py_ssize_t size * try: # <<<<<<<<<<<<<< @@ -11996,7 +12763,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser */ } - /* "aiohttp/_http_parser.pyx":669 + /* "aiohttp/_http_parser.pyx":722 * return -1 * else: * return 0 # <<<<<<<<<<<<<< @@ -12015,7 +12782,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "aiohttp/_http_parser.pyx":665 + /* "aiohttp/_http_parser.pyx":718 * 'Header name is too long', pyparser._max_field_size, size) * pyparser._on_header_field(at, length) * except BaseException as ex: # <<<<<<<<<<<<<< @@ -12025,7 +12792,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException); if (__pyx_t_11) { __Pyx_AddTraceback("aiohttp._http_parser.cb_on_header_field", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_7, &__pyx_t_12) < 0) __PYX_ERR(0, 665, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_7, &__pyx_t_12) < 0) __PYX_ERR(0, 718, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_12); @@ -12033,7 +12800,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser __pyx_v_ex = __pyx_t_7; /*try:*/ { - /* "aiohttp/_http_parser.pyx":666 + /* "aiohttp/_http_parser.pyx":719 * pyparser._on_header_field(at, length) * except BaseException as ex: * pyparser._last_error = ex # <<<<<<<<<<<<<< @@ -12046,7 +12813,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser __Pyx_DECREF(__pyx_v_pyparser->_last_error); __pyx_v_pyparser->_last_error = __pyx_v_ex; - /* "aiohttp/_http_parser.pyx":667 + /* "aiohttp/_http_parser.pyx":720 * except BaseException as ex: * pyparser._last_error = ex * return -1 # <<<<<<<<<<<<<< @@ -12060,7 +12827,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser goto __pyx_L14_return; } - /* "aiohttp/_http_parser.pyx":665 + /* "aiohttp/_http_parser.pyx":718 * 'Header name is too long', pyparser._max_field_size, size) * pyparser._on_header_field(at, length) * except BaseException as ex: # <<<<<<<<<<<<<< @@ -12080,7 +12847,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "aiohttp/_http_parser.pyx":658 + /* "aiohttp/_http_parser.pyx":711 * cdef HttpParser pyparser = parser.data * cdef Py_ssize_t size * try: # <<<<<<<<<<<<<< @@ -12100,10 +12867,10 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser goto __pyx_L0; } - /* "aiohttp/_http_parser.pyx":654 + /* "aiohttp/_http_parser.pyx":707 * * - * cdef int cb_on_header_field(cparser.http_parser* parser, # <<<<<<<<<<<<<< + * cdef int cb_on_header_field(cparser.llhttp_t* parser, # <<<<<<<<<<<<<< * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data */ @@ -12125,15 +12892,15 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_field(struct http_parser return __pyx_r; } -/* "aiohttp/_http_parser.pyx":672 +/* "aiohttp/_http_parser.pyx":725 * * - * cdef int cb_on_header_value(cparser.http_parser* parser, # <<<<<<<<<<<<<< + * cdef int cb_on_header_value(cparser.llhttp_t* parser, # <<<<<<<<<<<<<< * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data */ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) { +static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(llhttp_t *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0; Py_ssize_t __pyx_v_size; PyObject *__pyx_v_ex = NULL; @@ -12156,8 +12923,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser int __pyx_clineno = 0; __Pyx_RefNannySetupContext("cb_on_header_value", 0); - /* "aiohttp/_http_parser.pyx":674 - * cdef int cb_on_header_value(cparser.http_parser* parser, + /* "aiohttp/_http_parser.pyx":727 + * cdef int cb_on_header_value(cparser.llhttp_t* parser, * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data # <<<<<<<<<<<<<< * cdef Py_ssize_t size @@ -12168,7 +12935,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":676 + /* "aiohttp/_http_parser.pyx":729 * cdef HttpParser pyparser = parser.data * cdef Py_ssize_t size * try: # <<<<<<<<<<<<<< @@ -12184,7 +12951,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "aiohttp/_http_parser.pyx":677 + /* "aiohttp/_http_parser.pyx":730 * cdef Py_ssize_t size * try: * size = len(pyparser._raw_value) + length # <<<<<<<<<<<<<< @@ -12195,13 +12962,13 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 677, __pyx_L3_error) + __PYX_ERR(0, 730, __pyx_L3_error) } - __pyx_t_5 = PyByteArray_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 677, __pyx_L3_error) + __pyx_t_5 = PyByteArray_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 730, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_size = (__pyx_t_5 + __pyx_v_length); - /* "aiohttp/_http_parser.pyx":678 + /* "aiohttp/_http_parser.pyx":731 * try: * size = len(pyparser._raw_value) + length * if size > pyparser._max_field_size: # <<<<<<<<<<<<<< @@ -12211,26 +12978,26 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser __pyx_t_6 = ((__pyx_v_size > __pyx_v_pyparser->_max_field_size) != 0); if (unlikely(__pyx_t_6)) { - /* "aiohttp/_http_parser.pyx":679 + /* "aiohttp/_http_parser.pyx":732 * size = len(pyparser._raw_value) + length * if size > pyparser._max_field_size: * raise LineTooLong( # <<<<<<<<<<<<<< * 'Header value is too long', pyparser._max_field_size, size) * pyparser._on_header_value(at, length) */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 679, __pyx_L3_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 732, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); - /* "aiohttp/_http_parser.pyx":680 + /* "aiohttp/_http_parser.pyx":733 * if size > pyparser._max_field_size: * raise LineTooLong( * 'Header value is too long', pyparser._max_field_size, size) # <<<<<<<<<<<<<< * pyparser._on_header_value(at, length) * except BaseException as ex: */ - __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_field_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 680, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_pyparser->_max_field_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 733, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 680, __pyx_L3_error) + __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; __pyx_t_11 = 0; @@ -12247,7 +13014,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_kp_u_Header_value_is_too_long, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -12257,7 +13024,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_kp_u_Header_value_is_too_long, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -12265,7 +13032,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser } else #endif { - __pyx_t_12 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 679, __pyx_L3_error) + __pyx_t_12 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 732, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL; @@ -12279,16 +13046,16 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_11, __pyx_t_9); __pyx_t_8 = 0; __pyx_t_9 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 679, __pyx_L3_error) + __PYX_ERR(0, 732, __pyx_L3_error) - /* "aiohttp/_http_parser.pyx":678 + /* "aiohttp/_http_parser.pyx":731 * try: * size = len(pyparser._raw_value) + length * if size > pyparser._max_field_size: # <<<<<<<<<<<<<< @@ -12297,18 +13064,18 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser */ } - /* "aiohttp/_http_parser.pyx":681 + /* "aiohttp/_http_parser.pyx":734 * raise LineTooLong( * 'Header value is too long', pyparser._max_field_size, size) * pyparser._on_header_value(at, length) # <<<<<<<<<<<<<< * except BaseException as ex: * pyparser._last_error = ex */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_header_value(__pyx_v_pyparser, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 681, __pyx_L3_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_header_value(__pyx_v_pyparser, __pyx_v_at, __pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 734, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":676 + /* "aiohttp/_http_parser.pyx":729 * cdef HttpParser pyparser = parser.data * cdef Py_ssize_t size * try: # <<<<<<<<<<<<<< @@ -12317,7 +13084,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser */ } - /* "aiohttp/_http_parser.pyx":686 + /* "aiohttp/_http_parser.pyx":739 * return -1 * else: * return 0 # <<<<<<<<<<<<<< @@ -12336,7 +13103,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "aiohttp/_http_parser.pyx":682 + /* "aiohttp/_http_parser.pyx":735 * 'Header value is too long', pyparser._max_field_size, size) * pyparser._on_header_value(at, length) * except BaseException as ex: # <<<<<<<<<<<<<< @@ -12346,7 +13113,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException); if (__pyx_t_11) { __Pyx_AddTraceback("aiohttp._http_parser.cb_on_header_value", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_7, &__pyx_t_12) < 0) __PYX_ERR(0, 682, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_7, &__pyx_t_12) < 0) __PYX_ERR(0, 735, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_12); @@ -12354,7 +13121,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser __pyx_v_ex = __pyx_t_7; /*try:*/ { - /* "aiohttp/_http_parser.pyx":683 + /* "aiohttp/_http_parser.pyx":736 * pyparser._on_header_value(at, length) * except BaseException as ex: * pyparser._last_error = ex # <<<<<<<<<<<<<< @@ -12367,7 +13134,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser __Pyx_DECREF(__pyx_v_pyparser->_last_error); __pyx_v_pyparser->_last_error = __pyx_v_ex; - /* "aiohttp/_http_parser.pyx":684 + /* "aiohttp/_http_parser.pyx":737 * except BaseException as ex: * pyparser._last_error = ex * return -1 # <<<<<<<<<<<<<< @@ -12381,7 +13148,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser goto __pyx_L14_return; } - /* "aiohttp/_http_parser.pyx":682 + /* "aiohttp/_http_parser.pyx":735 * 'Header value is too long', pyparser._max_field_size, size) * pyparser._on_header_value(at, length) * except BaseException as ex: # <<<<<<<<<<<<<< @@ -12401,7 +13168,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "aiohttp/_http_parser.pyx":676 + /* "aiohttp/_http_parser.pyx":729 * cdef HttpParser pyparser = parser.data * cdef Py_ssize_t size * try: # <<<<<<<<<<<<<< @@ -12421,10 +13188,10 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser goto __pyx_L0; } - /* "aiohttp/_http_parser.pyx":672 + /* "aiohttp/_http_parser.pyx":725 * * - * cdef int cb_on_header_value(cparser.http_parser* parser, # <<<<<<<<<<<<<< + * cdef int cb_on_header_value(cparser.llhttp_t* parser, # <<<<<<<<<<<<<< * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data */ @@ -12446,15 +13213,15 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_header_value(struct http_parser return __pyx_r; } -/* "aiohttp/_http_parser.pyx":689 +/* "aiohttp/_http_parser.pyx":742 * * - * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1: # <<<<<<<<<<<<<< + * cdef int cb_on_headers_complete(cparser.llhttp_t* parser) except -1: # <<<<<<<<<<<<<< * cdef HttpParser pyparser = parser.data * try: */ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_parser *__pyx_v_parser) { +static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(llhttp_t *__pyx_v_parser) { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0; PyObject *__pyx_v_exc = NULL; int __pyx_r; @@ -12473,9 +13240,9 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa int __pyx_clineno = 0; __Pyx_RefNannySetupContext("cb_on_headers_complete", 0); - /* "aiohttp/_http_parser.pyx":690 + /* "aiohttp/_http_parser.pyx":743 * - * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1: + * cdef int cb_on_headers_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data # <<<<<<<<<<<<<< * try: * pyparser._on_status_complete() @@ -12485,8 +13252,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":691 - * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":744 + * cdef int cb_on_headers_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._on_status_complete() @@ -12501,30 +13268,30 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "aiohttp/_http_parser.pyx":692 + /* "aiohttp/_http_parser.pyx":745 * cdef HttpParser pyparser = parser.data * try: * pyparser._on_status_complete() # <<<<<<<<<<<<<< * pyparser._on_headers_complete() * except BaseException as exc: */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_status_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 692, __pyx_L3_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_status_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 745, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":693 + /* "aiohttp/_http_parser.pyx":746 * try: * pyparser._on_status_complete() * pyparser._on_headers_complete() # <<<<<<<<<<<<<< * except BaseException as exc: * pyparser._last_error = exc */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_headers_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L3_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_headers_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":691 - * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":744 + * cdef int cb_on_headers_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._on_status_complete() @@ -12532,28 +13299,52 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa */ } - /* "aiohttp/_http_parser.pyx":698 + /* "aiohttp/_http_parser.pyx":751 * return -1 * else: - * if pyparser._cparser.upgrade or pyparser._cparser.method == 5: # CONNECT # <<<<<<<<<<<<<< - * return 2 - * else: + * if ( # <<<<<<<<<<<<<< + * pyparser._cparser.upgrade or + * pyparser._cparser.method == cparser.HTTP_CONNECT */ /*else:*/ { + + /* "aiohttp/_http_parser.pyx":752 + * else: + * if ( + * pyparser._cparser.upgrade or # <<<<<<<<<<<<<< + * pyparser._cparser.method == cparser.HTTP_CONNECT + * ): + */ __pyx_t_6 = (__pyx_v_pyparser->_cparser->upgrade != 0); if (!__pyx_t_6) { } else { __pyx_t_5 = __pyx_t_6; goto __pyx_L10_bool_binop_done; } - __pyx_t_6 = ((__pyx_v_pyparser->_cparser->method == 5) != 0); + + /* "aiohttp/_http_parser.pyx":753 + * if ( + * pyparser._cparser.upgrade or + * pyparser._cparser.method == cparser.HTTP_CONNECT # <<<<<<<<<<<<<< + * ): + * return 2 + */ + __pyx_t_6 = ((__pyx_v_pyparser->_cparser->method == HTTP_CONNECT) != 0); __pyx_t_5 = __pyx_t_6; __pyx_L10_bool_binop_done:; - if (__pyx_t_5) { - /* "aiohttp/_http_parser.pyx":699 + /* "aiohttp/_http_parser.pyx":751 + * return -1 * else: - * if pyparser._cparser.upgrade or pyparser._cparser.method == 5: # CONNECT + * if ( # <<<<<<<<<<<<<< + * pyparser._cparser.upgrade or + * pyparser._cparser.method == cparser.HTTP_CONNECT + */ + if (__pyx_t_5) { + + /* "aiohttp/_http_parser.pyx":755 + * pyparser._cparser.method == cparser.HTTP_CONNECT + * ): * return 2 # <<<<<<<<<<<<<< * else: * return 0 @@ -12561,16 +13352,16 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa __pyx_r = 2; goto __pyx_L6_except_return; - /* "aiohttp/_http_parser.pyx":698 + /* "aiohttp/_http_parser.pyx":751 * return -1 * else: - * if pyparser._cparser.upgrade or pyparser._cparser.method == 5: # CONNECT # <<<<<<<<<<<<<< - * return 2 - * else: + * if ( # <<<<<<<<<<<<<< + * pyparser._cparser.upgrade or + * pyparser._cparser.method == cparser.HTTP_CONNECT */ } - /* "aiohttp/_http_parser.pyx":701 + /* "aiohttp/_http_parser.pyx":757 * return 2 * else: * return 0 # <<<<<<<<<<<<<< @@ -12585,7 +13376,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":694 + /* "aiohttp/_http_parser.pyx":747 * pyparser._on_status_complete() * pyparser._on_headers_complete() * except BaseException as exc: # <<<<<<<<<<<<<< @@ -12595,7 +13386,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException); if (__pyx_t_7) { __Pyx_AddTraceback("aiohttp._http_parser.cb_on_headers_complete", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 694, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 747, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_9); @@ -12603,7 +13394,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa __pyx_v_exc = __pyx_t_8; /*try:*/ { - /* "aiohttp/_http_parser.pyx":695 + /* "aiohttp/_http_parser.pyx":748 * pyparser._on_headers_complete() * except BaseException as exc: * pyparser._last_error = exc # <<<<<<<<<<<<<< @@ -12616,12 +13407,12 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa __Pyx_DECREF(__pyx_v_pyparser->_last_error); __pyx_v_pyparser->_last_error = __pyx_v_exc; - /* "aiohttp/_http_parser.pyx":696 + /* "aiohttp/_http_parser.pyx":749 * except BaseException as exc: * pyparser._last_error = exc * return -1 # <<<<<<<<<<<<<< * else: - * if pyparser._cparser.upgrade or pyparser._cparser.method == 5: # CONNECT + * if ( */ __pyx_r = -1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -12630,7 +13421,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa goto __pyx_L16_return; } - /* "aiohttp/_http_parser.pyx":694 + /* "aiohttp/_http_parser.pyx":747 * pyparser._on_status_complete() * pyparser._on_headers_complete() * except BaseException as exc: # <<<<<<<<<<<<<< @@ -12650,8 +13441,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "aiohttp/_http_parser.pyx":691 - * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":744 + * cdef int cb_on_headers_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._on_status_complete() @@ -12670,10 +13461,10 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa goto __pyx_L0; } - /* "aiohttp/_http_parser.pyx":689 + /* "aiohttp/_http_parser.pyx":742 * * - * cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1: # <<<<<<<<<<<<<< + * cdef int cb_on_headers_complete(cparser.llhttp_t* parser) except -1: # <<<<<<<<<<<<<< * cdef HttpParser pyparser = parser.data * try: */ @@ -12692,15 +13483,15 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_headers_complete(struct http_pa return __pyx_r; } -/* "aiohttp/_http_parser.pyx":704 +/* "aiohttp/_http_parser.pyx":760 * * - * cdef int cb_on_body(cparser.http_parser* parser, # <<<<<<<<<<<<<< + * cdef int cb_on_body(cparser.llhttp_t* parser, # <<<<<<<<<<<<<< * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data */ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) { +static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(llhttp_t *__pyx_v_parser, char const *__pyx_v_at, size_t __pyx_v_length) { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0; PyObject *__pyx_v_body = 0; PyObject *__pyx_v_exc = NULL; @@ -12734,8 +13525,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("cb_on_body", 0); - /* "aiohttp/_http_parser.pyx":706 - * cdef int cb_on_body(cparser.http_parser* parser, + /* "aiohttp/_http_parser.pyx":762 + * cdef int cb_on_body(cparser.llhttp_t* parser, * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data # <<<<<<<<<<<<<< * cdef bytes body = at[:length] @@ -12746,19 +13537,19 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":707 + /* "aiohttp/_http_parser.pyx":763 * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data * cdef bytes body = at[:length] # <<<<<<<<<<<<<< * try: * pyparser._payload.feed_data(body, length) */ - __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_at + 0, __pyx_v_length - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_at + 0, __pyx_v_length - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_body = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":708 + /* "aiohttp/_http_parser.pyx":764 * cdef HttpParser pyparser = parser.data * cdef bytes body = at[:length] * try: # <<<<<<<<<<<<<< @@ -12774,16 +13565,16 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "aiohttp/_http_parser.pyx":709 + /* "aiohttp/_http_parser.pyx":765 * cdef bytes body = at[:length] * try: * pyparser._payload.feed_data(body, length) # <<<<<<<<<<<<<< * except BaseException as exc: * if pyparser._payload_exception is not None: */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_pyparser->_payload, __pyx_n_s_feed_data); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 709, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_pyparser->_payload, __pyx_n_s_feed_data); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 765, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 709, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 765, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; @@ -12800,7 +13591,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_body, __pyx_t_6}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 765, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -12809,14 +13600,14 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_body, __pyx_t_6}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 765, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { - __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L3_error) + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 765, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -12827,14 +13618,14 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 765, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":708 + /* "aiohttp/_http_parser.pyx":764 * cdef HttpParser pyparser = parser.data * cdef bytes body = at[:length] * try: # <<<<<<<<<<<<<< @@ -12843,7 +13634,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ */ } - /* "aiohttp/_http_parser.pyx":718 + /* "aiohttp/_http_parser.pyx":774 * return -1 * else: * return 0 # <<<<<<<<<<<<<< @@ -12861,7 +13652,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "aiohttp/_http_parser.pyx":710 + /* "aiohttp/_http_parser.pyx":766 * try: * pyparser._payload.feed_data(body, length) * except BaseException as exc: # <<<<<<<<<<<<<< @@ -12871,7 +13662,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException); if (__pyx_t_8) { __Pyx_AddTraceback("aiohttp._http_parser.cb_on_body", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(0, 710, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(0, 766, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_9); @@ -12879,7 +13670,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ __pyx_v_exc = __pyx_t_5; /*try:*/ { - /* "aiohttp/_http_parser.pyx":711 + /* "aiohttp/_http_parser.pyx":767 * pyparser._payload.feed_data(body, length) * except BaseException as exc: * if pyparser._payload_exception is not None: # <<<<<<<<<<<<<< @@ -12890,16 +13681,16 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ __pyx_t_11 = (__pyx_t_10 != 0); if (__pyx_t_11) { - /* "aiohttp/_http_parser.pyx":712 + /* "aiohttp/_http_parser.pyx":768 * except BaseException as exc: * if pyparser._payload_exception is not None: * pyparser._payload.set_exception(pyparser._payload_exception(str(exc))) # <<<<<<<<<<<<<< * else: * pyparser._payload.set_exception(exc) */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_pyparser->_payload, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L14_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_pyparser->_payload, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 768, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_13 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_exc); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 712, __pyx_L14_error) + __pyx_t_13 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_exc); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 768, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_INCREF(__pyx_v_pyparser->_payload_exception); __pyx_t_14 = __pyx_v_pyparser->_payload_exception; __pyx_t_15 = NULL; @@ -12915,7 +13706,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ __pyx_t_12 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_15, __pyx_t_13) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_13); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 712, __pyx_L14_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 768, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; @@ -12931,12 +13722,12 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ __pyx_t_6 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_14, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_12); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 712, __pyx_L14_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 768, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "aiohttp/_http_parser.pyx":711 + /* "aiohttp/_http_parser.pyx":767 * pyparser._payload.feed_data(body, length) * except BaseException as exc: * if pyparser._payload_exception is not None: # <<<<<<<<<<<<<< @@ -12946,7 +13737,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ goto __pyx_L16; } - /* "aiohttp/_http_parser.pyx":714 + /* "aiohttp/_http_parser.pyx":770 * pyparser._payload.set_exception(pyparser._payload_exception(str(exc))) * else: * pyparser._payload.set_exception(exc) # <<<<<<<<<<<<<< @@ -12954,7 +13745,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ * return -1 */ /*else*/ { - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_pyparser->_payload, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 714, __pyx_L14_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_pyparser->_payload, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -12968,14 +13759,14 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ } __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_12, __pyx_v_exc) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_exc); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 714, __pyx_L14_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_L16:; - /* "aiohttp/_http_parser.pyx":715 + /* "aiohttp/_http_parser.pyx":771 * else: * pyparser._payload.set_exception(exc) * pyparser._payload_error = 1 # <<<<<<<<<<<<<< @@ -12984,7 +13775,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ */ __pyx_v_pyparser->_payload_error = 1; - /* "aiohttp/_http_parser.pyx":716 + /* "aiohttp/_http_parser.pyx":772 * pyparser._payload.set_exception(exc) * pyparser._payload_error = 1 * return -1 # <<<<<<<<<<<<<< @@ -12998,7 +13789,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ goto __pyx_L13_return; } - /* "aiohttp/_http_parser.pyx":710 + /* "aiohttp/_http_parser.pyx":766 * try: * pyparser._payload.feed_data(body, length) * except BaseException as exc: # <<<<<<<<<<<<<< @@ -13056,7 +13847,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "aiohttp/_http_parser.pyx":708 + /* "aiohttp/_http_parser.pyx":764 * cdef HttpParser pyparser = parser.data * cdef bytes body = at[:length] * try: # <<<<<<<<<<<<<< @@ -13076,10 +13867,10 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ goto __pyx_L0; } - /* "aiohttp/_http_parser.pyx":704 + /* "aiohttp/_http_parser.pyx":760 * * - * cdef int cb_on_body(cparser.http_parser* parser, # <<<<<<<<<<<<<< + * cdef int cb_on_body(cparser.llhttp_t* parser, # <<<<<<<<<<<<<< * const char *at, size_t length) except -1: * cdef HttpParser pyparser = parser.data */ @@ -13105,15 +13896,15 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_body(struct http_parser *__pyx_ return __pyx_r; } -/* "aiohttp/_http_parser.pyx":721 +/* "aiohttp/_http_parser.pyx":777 * * - * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1: # <<<<<<<<<<<<<< + * cdef int cb_on_message_complete(cparser.llhttp_t* parser) except -1: # <<<<<<<<<<<<<< * cdef HttpParser pyparser = parser.data * try: */ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_parser *__pyx_v_parser) { +static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(llhttp_t *__pyx_v_parser) { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0; PyObject *__pyx_v_exc = NULL; int __pyx_r; @@ -13130,9 +13921,9 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa int __pyx_clineno = 0; __Pyx_RefNannySetupContext("cb_on_message_complete", 0); - /* "aiohttp/_http_parser.pyx":722 + /* "aiohttp/_http_parser.pyx":778 * - * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1: + * cdef int cb_on_message_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data # <<<<<<<<<<<<<< * try: * pyparser._started = False @@ -13142,8 +13933,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":723 - * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":779 + * cdef int cb_on_message_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._started = False @@ -13158,7 +13949,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "aiohttp/_http_parser.pyx":724 + /* "aiohttp/_http_parser.pyx":780 * cdef HttpParser pyparser = parser.data * try: * pyparser._started = False # <<<<<<<<<<<<<< @@ -13167,19 +13958,19 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa */ __pyx_v_pyparser->_started = 0; - /* "aiohttp/_http_parser.pyx":725 + /* "aiohttp/_http_parser.pyx":781 * try: * pyparser._started = False * pyparser._on_message_complete() # <<<<<<<<<<<<<< * except BaseException as exc: * pyparser._last_error = exc */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_message_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 725, __pyx_L3_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_message_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":723 - * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":779 + * cdef int cb_on_message_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._started = False @@ -13187,7 +13978,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa */ } - /* "aiohttp/_http_parser.pyx":730 + /* "aiohttp/_http_parser.pyx":786 * return -1 * else: * return 0 # <<<<<<<<<<<<<< @@ -13201,7 +13992,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":726 + /* "aiohttp/_http_parser.pyx":782 * pyparser._started = False * pyparser._on_message_complete() * except BaseException as exc: # <<<<<<<<<<<<<< @@ -13211,7 +14002,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException); if (__pyx_t_5) { __Pyx_AddTraceback("aiohttp._http_parser.cb_on_message_complete", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 726, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 782, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); @@ -13219,7 +14010,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa __pyx_v_exc = __pyx_t_6; /*try:*/ { - /* "aiohttp/_http_parser.pyx":727 + /* "aiohttp/_http_parser.pyx":783 * pyparser._on_message_complete() * except BaseException as exc: * pyparser._last_error = exc # <<<<<<<<<<<<<< @@ -13232,7 +14023,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa __Pyx_DECREF(__pyx_v_pyparser->_last_error); __pyx_v_pyparser->_last_error = __pyx_v_exc; - /* "aiohttp/_http_parser.pyx":728 + /* "aiohttp/_http_parser.pyx":784 * except BaseException as exc: * pyparser._last_error = exc * return -1 # <<<<<<<<<<<<<< @@ -13246,7 +14037,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa goto __pyx_L13_return; } - /* "aiohttp/_http_parser.pyx":726 + /* "aiohttp/_http_parser.pyx":782 * pyparser._started = False * pyparser._on_message_complete() * except BaseException as exc: # <<<<<<<<<<<<<< @@ -13266,8 +14057,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "aiohttp/_http_parser.pyx":723 - * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":779 + * cdef int cb_on_message_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._started = False @@ -13286,10 +14077,10 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa goto __pyx_L0; } - /* "aiohttp/_http_parser.pyx":721 + /* "aiohttp/_http_parser.pyx":777 * * - * cdef int cb_on_message_complete(cparser.http_parser* parser) except -1: # <<<<<<<<<<<<<< + * cdef int cb_on_message_complete(cparser.llhttp_t* parser) except -1: # <<<<<<<<<<<<<< * cdef HttpParser pyparser = parser.data * try: */ @@ -13308,15 +14099,15 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_message_complete(struct http_pa return __pyx_r; } -/* "aiohttp/_http_parser.pyx":733 +/* "aiohttp/_http_parser.pyx":789 * * - * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1: # <<<<<<<<<<<<<< + * cdef int cb_on_chunk_header(cparser.llhttp_t* parser) except -1: # <<<<<<<<<<<<<< * cdef HttpParser pyparser = parser.data * try: */ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser *__pyx_v_parser) { +static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(llhttp_t *__pyx_v_parser) { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0; PyObject *__pyx_v_exc = NULL; int __pyx_r; @@ -13333,9 +14124,9 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser int __pyx_clineno = 0; __Pyx_RefNannySetupContext("cb_on_chunk_header", 0); - /* "aiohttp/_http_parser.pyx":734 + /* "aiohttp/_http_parser.pyx":790 * - * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1: + * cdef int cb_on_chunk_header(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data # <<<<<<<<<<<<<< * try: * pyparser._on_chunk_header() @@ -13345,8 +14136,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":735 - * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":791 + * cdef int cb_on_chunk_header(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._on_chunk_header() @@ -13361,19 +14152,19 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "aiohttp/_http_parser.pyx":736 + /* "aiohttp/_http_parser.pyx":792 * cdef HttpParser pyparser = parser.data * try: * pyparser._on_chunk_header() # <<<<<<<<<<<<<< * except BaseException as exc: * pyparser._last_error = exc */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_chunk_header(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 736, __pyx_L3_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_chunk_header(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 792, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":735 - * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":791 + * cdef int cb_on_chunk_header(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._on_chunk_header() @@ -13381,7 +14172,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser */ } - /* "aiohttp/_http_parser.pyx":741 + /* "aiohttp/_http_parser.pyx":797 * return -1 * else: * return 0 # <<<<<<<<<<<<<< @@ -13395,7 +14186,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":737 + /* "aiohttp/_http_parser.pyx":793 * try: * pyparser._on_chunk_header() * except BaseException as exc: # <<<<<<<<<<<<<< @@ -13405,7 +14196,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException); if (__pyx_t_5) { __Pyx_AddTraceback("aiohttp._http_parser.cb_on_chunk_header", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 737, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 793, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); @@ -13413,7 +14204,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser __pyx_v_exc = __pyx_t_6; /*try:*/ { - /* "aiohttp/_http_parser.pyx":738 + /* "aiohttp/_http_parser.pyx":794 * pyparser._on_chunk_header() * except BaseException as exc: * pyparser._last_error = exc # <<<<<<<<<<<<<< @@ -13426,7 +14217,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser __Pyx_DECREF(__pyx_v_pyparser->_last_error); __pyx_v_pyparser->_last_error = __pyx_v_exc; - /* "aiohttp/_http_parser.pyx":739 + /* "aiohttp/_http_parser.pyx":795 * except BaseException as exc: * pyparser._last_error = exc * return -1 # <<<<<<<<<<<<<< @@ -13440,7 +14231,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser goto __pyx_L13_return; } - /* "aiohttp/_http_parser.pyx":737 + /* "aiohttp/_http_parser.pyx":793 * try: * pyparser._on_chunk_header() * except BaseException as exc: # <<<<<<<<<<<<<< @@ -13460,8 +14251,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "aiohttp/_http_parser.pyx":735 - * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":791 + * cdef int cb_on_chunk_header(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._on_chunk_header() @@ -13480,10 +14271,10 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser goto __pyx_L0; } - /* "aiohttp/_http_parser.pyx":733 + /* "aiohttp/_http_parser.pyx":789 * * - * cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1: # <<<<<<<<<<<<<< + * cdef int cb_on_chunk_header(cparser.llhttp_t* parser) except -1: # <<<<<<<<<<<<<< * cdef HttpParser pyparser = parser.data * try: */ @@ -13502,15 +14293,15 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_header(struct http_parser return __pyx_r; } -/* "aiohttp/_http_parser.pyx":744 +/* "aiohttp/_http_parser.pyx":800 * * - * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1: # <<<<<<<<<<<<<< + * cdef int cb_on_chunk_complete(cparser.llhttp_t* parser) except -1: # <<<<<<<<<<<<<< * cdef HttpParser pyparser = parser.data * try: */ -static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_parser *__pyx_v_parser) { +static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(llhttp_t *__pyx_v_parser) { struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *__pyx_v_pyparser = 0; PyObject *__pyx_v_exc = NULL; int __pyx_r; @@ -13527,9 +14318,9 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars int __pyx_clineno = 0; __Pyx_RefNannySetupContext("cb_on_chunk_complete", 0); - /* "aiohttp/_http_parser.pyx":745 + /* "aiohttp/_http_parser.pyx":801 * - * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1: + * cdef int cb_on_chunk_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data # <<<<<<<<<<<<<< * try: * pyparser._on_chunk_complete() @@ -13539,8 +14330,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars __pyx_v_pyparser = ((struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":746 - * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":802 + * cdef int cb_on_chunk_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._on_chunk_complete() @@ -13555,19 +14346,19 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "aiohttp/_http_parser.pyx":747 + /* "aiohttp/_http_parser.pyx":803 * cdef HttpParser pyparser = parser.data * try: * pyparser._on_chunk_complete() # <<<<<<<<<<<<<< * except BaseException as exc: * pyparser._last_error = exc */ - __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_chunk_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 747, __pyx_L3_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser *)__pyx_v_pyparser->__pyx_vtab)->_on_chunk_complete(__pyx_v_pyparser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 803, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":746 - * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":802 + * cdef int cb_on_chunk_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._on_chunk_complete() @@ -13575,7 +14366,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars */ } - /* "aiohttp/_http_parser.pyx":752 + /* "aiohttp/_http_parser.pyx":808 * return -1 * else: * return 0 # <<<<<<<<<<<<<< @@ -13589,7 +14380,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":748 + /* "aiohttp/_http_parser.pyx":804 * try: * pyparser._on_chunk_complete() * except BaseException as exc: # <<<<<<<<<<<<<< @@ -13599,7 +14390,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_BaseException); if (__pyx_t_5) { __Pyx_AddTraceback("aiohttp._http_parser.cb_on_chunk_complete", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 748, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 804, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); @@ -13607,7 +14398,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars __pyx_v_exc = __pyx_t_6; /*try:*/ { - /* "aiohttp/_http_parser.pyx":749 + /* "aiohttp/_http_parser.pyx":805 * pyparser._on_chunk_complete() * except BaseException as exc: * pyparser._last_error = exc # <<<<<<<<<<<<<< @@ -13620,7 +14411,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars __Pyx_DECREF(__pyx_v_pyparser->_last_error); __pyx_v_pyparser->_last_error = __pyx_v_exc; - /* "aiohttp/_http_parser.pyx":750 + /* "aiohttp/_http_parser.pyx":806 * except BaseException as exc: * pyparser._last_error = exc * return -1 # <<<<<<<<<<<<<< @@ -13634,7 +14425,7 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars goto __pyx_L13_return; } - /* "aiohttp/_http_parser.pyx":748 + /* "aiohttp/_http_parser.pyx":804 * try: * pyparser._on_chunk_complete() * except BaseException as exc: # <<<<<<<<<<<<<< @@ -13654,8 +14445,8 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "aiohttp/_http_parser.pyx":746 - * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1: + /* "aiohttp/_http_parser.pyx":802 + * cdef int cb_on_chunk_complete(cparser.llhttp_t* parser) except -1: * cdef HttpParser pyparser = parser.data * try: # <<<<<<<<<<<<<< * pyparser._on_chunk_complete() @@ -13674,10 +14465,10 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars goto __pyx_L0; } - /* "aiohttp/_http_parser.pyx":744 + /* "aiohttp/_http_parser.pyx":800 * * - * cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1: # <<<<<<<<<<<<<< + * cdef int cb_on_chunk_complete(cparser.llhttp_t* parser) except -1: # <<<<<<<<<<<<<< * cdef HttpParser pyparser = parser.data * try: */ @@ -13696,1328 +14487,383 @@ static int __pyx_f_7aiohttp_12_http_parser_cb_on_chunk_complete(struct http_pars return __pyx_r; } -/* "aiohttp/_http_parser.pyx":755 +/* "aiohttp/_http_parser.pyx":811 * * - * cdef parser_error_from_errno(cparser.http_errno errno): # <<<<<<<<<<<<<< - * cdef bytes desc = cparser.http_errno_description(errno) - * + * cdef parser_error_from_errno(cparser.llhttp_t* parser, data, pointer): # <<<<<<<<<<<<<< + * cdef cparser.llhttp_errno_t errno = cparser.llhttp_get_errno(parser) + * cdef bytes desc = cparser.llhttp_get_error_reason(parser) */ -static PyObject *__pyx_f_7aiohttp_12_http_parser_parser_error_from_errno(enum http_errno __pyx_v_errno) { +static PyObject *__pyx_f_7aiohttp_12_http_parser_parser_error_from_errno(llhttp_t *__pyx_v_parser, PyObject *__pyx_v_data, PyObject *__pyx_v_pointer) { + llhttp_errno_t __pyx_v_errno; PyObject *__pyx_v_desc = 0; - PyObject *__pyx_v_cls = NULL; + PyObject *__pyx_v_err_msg = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("parser_error_from_errno", 0); - /* "aiohttp/_http_parser.pyx":756 + /* "aiohttp/_http_parser.pyx":812 + * + * cdef parser_error_from_errno(cparser.llhttp_t* parser, data, pointer): + * cdef cparser.llhttp_errno_t errno = cparser.llhttp_get_errno(parser) # <<<<<<<<<<<<<< + * cdef bytes desc = cparser.llhttp_get_error_reason(parser) * - * cdef parser_error_from_errno(cparser.http_errno errno): - * cdef bytes desc = cparser.http_errno_description(errno) # <<<<<<<<<<<<<< + */ + __pyx_v_errno = llhttp_get_errno(__pyx_v_parser); + + /* "aiohttp/_http_parser.pyx":813 + * cdef parser_error_from_errno(cparser.llhttp_t* parser, data, pointer): + * cdef cparser.llhttp_errno_t errno = cparser.llhttp_get_errno(parser) + * cdef bytes desc = cparser.llhttp_get_error_reason(parser) # <<<<<<<<<<<<<< * - * if errno in (cparser.HPE_CB_message_begin, + * err_msg = "{}:\n\n {!r}\n {}".format(desc.decode("latin-1"), data, pointer) */ - __pyx_t_1 = __Pyx_PyBytes_FromString(http_errno_description(__pyx_v_errno)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 756, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyBytes_FromString(llhttp_get_error_reason(__pyx_v_parser)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_desc = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":758 - * cdef bytes desc = cparser.http_errno_description(errno) + /* "aiohttp/_http_parser.pyx":815 + * cdef bytes desc = cparser.llhttp_get_error_reason(parser) * - * if errno in (cparser.HPE_CB_message_begin, # <<<<<<<<<<<<<< - * cparser.HPE_CB_url, - * cparser.HPE_CB_header_field, - */ - switch (__pyx_v_errno) { - case HPE_CB_message_begin: - case HPE_CB_url: - - /* "aiohttp/_http_parser.pyx":759 + * err_msg = "{}:\n\n {!r}\n {}".format(desc.decode("latin-1"), data, pointer) # <<<<<<<<<<<<<< * - * if errno in (cparser.HPE_CB_message_begin, - * cparser.HPE_CB_url, # <<<<<<<<<<<<<< - * cparser.HPE_CB_header_field, - * cparser.HPE_CB_header_value, - */ - case HPE_CB_header_field: - - /* "aiohttp/_http_parser.pyx":760 - * if errno in (cparser.HPE_CB_message_begin, - * cparser.HPE_CB_url, - * cparser.HPE_CB_header_field, # <<<<<<<<<<<<<< - * cparser.HPE_CB_header_value, - * cparser.HPE_CB_headers_complete, + * if errno in {cparser.HPE_CB_MESSAGE_BEGIN, */ - case HPE_CB_header_value: - - /* "aiohttp/_http_parser.pyx":761 - * cparser.HPE_CB_url, - * cparser.HPE_CB_header_field, - * cparser.HPE_CB_header_value, # <<<<<<<<<<<<<< - * cparser.HPE_CB_headers_complete, - * cparser.HPE_CB_body, - */ - case HPE_CB_headers_complete: - - /* "aiohttp/_http_parser.pyx":762 - * cparser.HPE_CB_header_field, - * cparser.HPE_CB_header_value, - * cparser.HPE_CB_headers_complete, # <<<<<<<<<<<<<< - * cparser.HPE_CB_body, - * cparser.HPE_CB_message_complete, - */ - case HPE_CB_body: - - /* "aiohttp/_http_parser.pyx":763 - * cparser.HPE_CB_header_value, - * cparser.HPE_CB_headers_complete, - * cparser.HPE_CB_body, # <<<<<<<<<<<<<< - * cparser.HPE_CB_message_complete, - * cparser.HPE_CB_status, - */ - case HPE_CB_message_complete: - - /* "aiohttp/_http_parser.pyx":764 - * cparser.HPE_CB_headers_complete, - * cparser.HPE_CB_body, - * cparser.HPE_CB_message_complete, # <<<<<<<<<<<<<< - * cparser.HPE_CB_status, - * cparser.HPE_CB_chunk_header, - */ - case HPE_CB_status: - - /* "aiohttp/_http_parser.pyx":765 - * cparser.HPE_CB_body, - * cparser.HPE_CB_message_complete, - * cparser.HPE_CB_status, # <<<<<<<<<<<<<< - * cparser.HPE_CB_chunk_header, - * cparser.HPE_CB_chunk_complete): - */ - case HPE_CB_chunk_header: - - /* "aiohttp/_http_parser.pyx":766 - * cparser.HPE_CB_message_complete, - * cparser.HPE_CB_status, - * cparser.HPE_CB_chunk_header, # <<<<<<<<<<<<<< - * cparser.HPE_CB_chunk_complete): - * cls = BadHttpMessage - */ - case HPE_CB_chunk_complete: - - /* "aiohttp/_http_parser.pyx":768 - * cparser.HPE_CB_chunk_header, - * cparser.HPE_CB_chunk_complete): - * cls = BadHttpMessage # <<<<<<<<<<<<<< - * - * elif errno == cparser.HPE_INVALID_STATUS: - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BadHttpMessage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 768, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_cls = __pyx_t_1; - __pyx_t_1 = 0; - - /* "aiohttp/_http_parser.pyx":758 - * cdef bytes desc = cparser.http_errno_description(errno) - * - * if errno in (cparser.HPE_CB_message_begin, # <<<<<<<<<<<<<< - * cparser.HPE_CB_url, - * cparser.HPE_CB_header_field, - */ - break; - case HPE_INVALID_STATUS: - - /* "aiohttp/_http_parser.pyx":771 - * - * elif errno == cparser.HPE_INVALID_STATUS: - * cls = BadStatusLine # <<<<<<<<<<<<<< - * - * elif errno == cparser.HPE_INVALID_METHOD: - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BadStatusLine); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_cls = __pyx_t_1; - __pyx_t_1 = 0; - - /* "aiohttp/_http_parser.pyx":770 - * cls = BadHttpMessage - * - * elif errno == cparser.HPE_INVALID_STATUS: # <<<<<<<<<<<<<< - * cls = BadStatusLine - * - */ - break; - case HPE_INVALID_METHOD: - - /* "aiohttp/_http_parser.pyx":774 - * - * elif errno == cparser.HPE_INVALID_METHOD: - * cls = BadStatusLine # <<<<<<<<<<<<<< - * - * elif errno == cparser.HPE_INVALID_URL: - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BadStatusLine); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_cls = __pyx_t_1; - __pyx_t_1 = 0; - - /* "aiohttp/_http_parser.pyx":773 - * cls = BadStatusLine - * - * elif errno == cparser.HPE_INVALID_METHOD: # <<<<<<<<<<<<<< - * cls = BadStatusLine - * - */ - break; - case HPE_INVALID_URL: - - /* "aiohttp/_http_parser.pyx":777 - * - * elif errno == cparser.HPE_INVALID_URL: - * cls = InvalidURLError # <<<<<<<<<<<<<< - * - * else: - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_InvalidURLError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 777, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_cls = __pyx_t_1; - __pyx_t_1 = 0; - - /* "aiohttp/_http_parser.pyx":776 - * cls = BadStatusLine - * - * elif errno == cparser.HPE_INVALID_URL: # <<<<<<<<<<<<<< - * cls = InvalidURLError - * - */ - break; - default: - - /* "aiohttp/_http_parser.pyx":780 - * - * else: - * cls = BadHttpMessage # <<<<<<<<<<<<<< - * - * return cls(desc.decode('latin-1')) - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BadHttpMessage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_cls = __pyx_t_1; - __pyx_t_1 = 0; - break; - } - - /* "aiohttp/_http_parser.pyx":782 - * cls = BadHttpMessage - * - * return cls(desc.decode('latin-1')) # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_decode_bytes(__pyx_v_desc, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 782, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_r, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_cls); - __pyx_t_3 = __pyx_v_cls; __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + __pyx_t_3 = __Pyx_decode_bytes(__pyx_v_desc, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "aiohttp/_http_parser.pyx":755 - * - * - * cdef parser_error_from_errno(cparser.http_errno errno): # <<<<<<<<<<<<<< - * cdef bytes desc = cparser.http_errno_description(errno) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("aiohttp._http_parser.parser_error_from_errno", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_desc); - __Pyx_XDECREF(__pyx_v_cls); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_http_parser.pyx":785 - * - * - * def parse_url(url): # <<<<<<<<<<<<<< - * cdef: - * Py_buffer py_buf - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_12_http_parser_1parse_url(PyObject *__pyx_self, PyObject *__pyx_v_url); /*proto*/ -static PyMethodDef __pyx_mdef_7aiohttp_12_http_parser_1parse_url = {"parse_url", (PyCFunction)__pyx_pw_7aiohttp_12_http_parser_1parse_url, METH_O, 0}; -static PyObject *__pyx_pw_7aiohttp_12_http_parser_1parse_url(PyObject *__pyx_self, PyObject *__pyx_v_url) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("parse_url (wrapper)", 0); - __pyx_r = __pyx_pf_7aiohttp_12_http_parser_parse_url(__pyx_self, ((PyObject *)__pyx_v_url)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_7aiohttp_12_http_parser_parse_url(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_url) { - Py_buffer __pyx_v_py_buf; - char *__pyx_v_buf_data; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - char const *__pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("parse_url", 0); - - /* "aiohttp/_http_parser.pyx":790 - * char* buf_data - * - * PyObject_GetBuffer(url, &py_buf, PyBUF_SIMPLE) # <<<<<<<<<<<<<< - * try: - * buf_data = py_buf.buf - */ - __pyx_t_1 = PyObject_GetBuffer(__pyx_v_url, (&__pyx_v_py_buf), PyBUF_SIMPLE); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 790, __pyx_L1_error) - - /* "aiohttp/_http_parser.pyx":791 - * - * PyObject_GetBuffer(url, &py_buf, PyBUF_SIMPLE) - * try: # <<<<<<<<<<<<<< - * buf_data = py_buf.buf - * return _parse_url(buf_data, py_buf.len) - */ - /*try:*/ { - - /* "aiohttp/_http_parser.pyx":792 - * PyObject_GetBuffer(url, &py_buf, PyBUF_SIMPLE) - * try: - * buf_data = py_buf.buf # <<<<<<<<<<<<<< - * return _parse_url(buf_data, py_buf.len) - * finally: - */ - __pyx_v_buf_data = ((char *)__pyx_v_py_buf.buf); - - /* "aiohttp/_http_parser.pyx":793 - * try: - * buf_data = py_buf.buf - * return _parse_url(buf_data, py_buf.len) # <<<<<<<<<<<<<< - * finally: - * PyBuffer_Release(&py_buf) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __pyx_f_7aiohttp_12_http_parser__parse_url(__pyx_v_buf_data, __pyx_v_py_buf.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 793, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L3_return; - } - - /* "aiohttp/_http_parser.pyx":795 - * return _parse_url(buf_data, py_buf.len) - * finally: - * PyBuffer_Release(&py_buf) # <<<<<<<<<<<<<< - * - * - */ - /*finally:*/ { - __pyx_L4_error:; - /*exception exit:*/{ - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); - if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); - __Pyx_XGOTREF(__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_10); - __pyx_t_1 = __pyx_lineno; __pyx_t_3 = __pyx_clineno; __pyx_t_4 = __pyx_filename; - { - PyBuffer_Release((&__pyx_v_py_buf)); - } - if (PY_MAJOR_VERSION >= 3) { - __Pyx_XGIVEREF(__pyx_t_8); - __Pyx_XGIVEREF(__pyx_t_9); - __Pyx_XGIVEREF(__pyx_t_10); - __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); - } - __Pyx_XGIVEREF(__pyx_t_5); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_XGIVEREF(__pyx_t_7); - __Pyx_ErrRestore(__pyx_t_5, __pyx_t_6, __pyx_t_7); - __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; - __pyx_lineno = __pyx_t_1; __pyx_clineno = __pyx_t_3; __pyx_filename = __pyx_t_4; - goto __pyx_L1_error; - } - __pyx_L3_return: { - __pyx_t_10 = __pyx_r; - __pyx_r = 0; - PyBuffer_Release((&__pyx_v_py_buf)); - __pyx_r = __pyx_t_10; - __pyx_t_10 = 0; - goto __pyx_L0; + __Pyx_DECREF_SET(__pyx_t_2, function); + __pyx_t_5 = 1; } - } - - /* "aiohttp/_http_parser.pyx":785 - * - * - * def parse_url(url): # <<<<<<<<<<<<<< - * cdef: - * Py_buffer py_buf - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("aiohttp._http_parser.parse_url", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "aiohttp/_http_parser.pyx":798 - * - * - * cdef _parse_url(char* buf_data, size_t length): # <<<<<<<<<<<<<< - * cdef: - * cparser.http_parser_url* parsed - */ - -static PyObject *__pyx_f_7aiohttp_12_http_parser__parse_url(char *__pyx_v_buf_data, size_t __pyx_v_length) { - struct http_parser_url *__pyx_v_parsed; - int __pyx_v_res; - PyObject *__pyx_v_schema = 0; - PyObject *__pyx_v_host = 0; - PyObject *__pyx_v_port = 0; - PyObject *__pyx_v_path = 0; - PyObject *__pyx_v_query = 0; - PyObject *__pyx_v_fragment = 0; - PyObject *__pyx_v_user = 0; - PyObject *__pyx_v_password = 0; - PyObject *__pyx_v_userinfo = 0; - CYTHON_UNUSED PyObject *__pyx_v_result = 0; - int __pyx_v_off; - int __pyx_v_ln; - CYTHON_UNUSED PyObject *__pyx_v_sep = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - uint16_t __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *(*__pyx_t_8)(PyObject *); - PyObject *__pyx_t_9 = NULL; - int __pyx_t_10; - int __pyx_t_11; - char const *__pyx_t_12; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; - PyObject *__pyx_t_16 = NULL; - PyObject *__pyx_t_17 = NULL; - PyObject *__pyx_t_18 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_parse_url", 0); - - /* "aiohttp/_http_parser.pyx":802 - * cparser.http_parser_url* parsed - * int res - * str schema = None # <<<<<<<<<<<<<< - * str host = None - * object port = None - */ - __Pyx_INCREF(Py_None); - __pyx_v_schema = ((PyObject*)Py_None); - - /* "aiohttp/_http_parser.pyx":803 - * int res - * str schema = None - * str host = None # <<<<<<<<<<<<<< - * object port = None - * str path = None - */ - __Pyx_INCREF(Py_None); - __pyx_v_host = ((PyObject*)Py_None); - - /* "aiohttp/_http_parser.pyx":804 - * str schema = None - * str host = None - * object port = None # <<<<<<<<<<<<<< - * str path = None - * str query = None - */ - __Pyx_INCREF(Py_None); - __pyx_v_port = Py_None; - - /* "aiohttp/_http_parser.pyx":805 - * str host = None - * object port = None - * str path = None # <<<<<<<<<<<<<< - * str query = None - * str fragment = None - */ - __Pyx_INCREF(Py_None); - __pyx_v_path = ((PyObject*)Py_None); - - /* "aiohttp/_http_parser.pyx":806 - * object port = None - * str path = None - * str query = None # <<<<<<<<<<<<<< - * str fragment = None - * str user = None - */ - __Pyx_INCREF(Py_None); - __pyx_v_query = ((PyObject*)Py_None); - - /* "aiohttp/_http_parser.pyx":807 - * str path = None - * str query = None - * str fragment = None # <<<<<<<<<<<<<< - * str user = None - * str password = None - */ - __Pyx_INCREF(Py_None); - __pyx_v_fragment = ((PyObject*)Py_None); - - /* "aiohttp/_http_parser.pyx":808 - * str query = None - * str fragment = None - * str user = None # <<<<<<<<<<<<<< - * str password = None - * str userinfo = None - */ - __Pyx_INCREF(Py_None); - __pyx_v_user = ((PyObject*)Py_None); - - /* "aiohttp/_http_parser.pyx":809 - * str fragment = None - * str user = None - * str password = None # <<<<<<<<<<<<<< - * str userinfo = None - * object result = None - */ - __Pyx_INCREF(Py_None); - __pyx_v_password = ((PyObject*)Py_None); - - /* "aiohttp/_http_parser.pyx":810 - * str user = None - * str password = None - * str userinfo = None # <<<<<<<<<<<<<< - * object result = None - * int off - */ - __Pyx_INCREF(Py_None); - __pyx_v_userinfo = ((PyObject*)Py_None); - - /* "aiohttp/_http_parser.pyx":811 - * str password = None - * str userinfo = None - * object result = None # <<<<<<<<<<<<<< - * int off - * int ln - */ - __Pyx_INCREF(Py_None); - __pyx_v_result = Py_None; - - /* "aiohttp/_http_parser.pyx":815 - * int ln - * - * parsed = \ # <<<<<<<<<<<<<< - * PyMem_Malloc(sizeof(cparser.http_parser_url)) - * if parsed is NULL: - */ - __pyx_v_parsed = ((struct http_parser_url *)PyMem_Malloc((sizeof(struct http_parser_url)))); - - /* "aiohttp/_http_parser.pyx":817 - * parsed = \ - * PyMem_Malloc(sizeof(cparser.http_parser_url)) - * if parsed is NULL: # <<<<<<<<<<<<<< - * raise MemoryError() - * cparser.http_parser_url_init(parsed) - */ - __pyx_t_1 = ((__pyx_v_parsed == NULL) != 0); - if (unlikely(__pyx_t_1)) { - - /* "aiohttp/_http_parser.pyx":818 - * PyMem_Malloc(sizeof(cparser.http_parser_url)) - * if parsed is NULL: - * raise MemoryError() # <<<<<<<<<<<<<< - * cparser.http_parser_url_init(parsed) - * try: - */ - PyErr_NoMemory(); __PYX_ERR(0, 818, __pyx_L1_error) - - /* "aiohttp/_http_parser.pyx":817 - * parsed = \ - * PyMem_Malloc(sizeof(cparser.http_parser_url)) - * if parsed is NULL: # <<<<<<<<<<<<<< - * raise MemoryError() - * cparser.http_parser_url_init(parsed) - */ - } - - /* "aiohttp/_http_parser.pyx":819 - * if parsed is NULL: - * raise MemoryError() - * cparser.http_parser_url_init(parsed) # <<<<<<<<<<<<<< - * try: - * res = cparser.http_parser_parse_url(buf_data, length, 0, parsed) - */ - http_parser_url_init(__pyx_v_parsed); - - /* "aiohttp/_http_parser.pyx":820 - * raise MemoryError() - * cparser.http_parser_url_init(parsed) - * try: # <<<<<<<<<<<<<< - * res = cparser.http_parser_parse_url(buf_data, length, 0, parsed) - * - */ - /*try:*/ { - - /* "aiohttp/_http_parser.pyx":821 - * cparser.http_parser_url_init(parsed) - * try: - * res = cparser.http_parser_parse_url(buf_data, length, 0, parsed) # <<<<<<<<<<<<<< - * - * if res == 0: - */ - __pyx_v_res = http_parser_parse_url(__pyx_v_buf_data, __pyx_v_length, 0, __pyx_v_parsed); - - /* "aiohttp/_http_parser.pyx":823 - * res = cparser.http_parser_parse_url(buf_data, length, 0, parsed) - * - * if res == 0: # <<<<<<<<<<<<<< - * if parsed.field_set & (1 << cparser.UF_SCHEMA): - * off = parsed.field_data[cparser.UF_SCHEMA].off - */ - __pyx_t_1 = ((__pyx_v_res == 0) != 0); - if (likely(__pyx_t_1)) { - - /* "aiohttp/_http_parser.pyx":824 - * - * if res == 0: - * if parsed.field_set & (1 << cparser.UF_SCHEMA): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_SCHEMA].off - * ln = parsed.field_data[cparser.UF_SCHEMA].len - */ - __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_SCHEMA)) != 0); - if (__pyx_t_1) { - - /* "aiohttp/_http_parser.pyx":825 - * if res == 0: - * if parsed.field_set & (1 << cparser.UF_SCHEMA): - * off = parsed.field_data[cparser.UF_SCHEMA].off # <<<<<<<<<<<<<< - * ln = parsed.field_data[cparser.UF_SCHEMA].len - * schema = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_SCHEMA)]).off; - __pyx_v_off = __pyx_t_2; - - /* "aiohttp/_http_parser.pyx":826 - * if parsed.field_set & (1 << cparser.UF_SCHEMA): - * off = parsed.field_data[cparser.UF_SCHEMA].off - * ln = parsed.field_data[cparser.UF_SCHEMA].len # <<<<<<<<<<<<<< - * schema = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * else: - */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_SCHEMA)]).len; - __pyx_v_ln = __pyx_t_2; - - /* "aiohttp/_http_parser.pyx":827 - * off = parsed.field_data[cparser.UF_SCHEMA].off - * ln = parsed.field_data[cparser.UF_SCHEMA].len - * schema = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') # <<<<<<<<<<<<<< - * else: - * schema = '' - */ - __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 827, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF_SET(__pyx_v_schema, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "aiohttp/_http_parser.pyx":824 - * - * if res == 0: - * if parsed.field_set & (1 << cparser.UF_SCHEMA): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_SCHEMA].off - * ln = parsed.field_data[cparser.UF_SCHEMA].len - */ - goto __pyx_L8; - } - - /* "aiohttp/_http_parser.pyx":829 - * schema = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * else: - * schema = '' # <<<<<<<<<<<<<< - * - * if parsed.field_set & (1 << cparser.UF_HOST): - */ - /*else*/ { - __Pyx_INCREF(__pyx_kp_u__4); - __Pyx_DECREF_SET(__pyx_v_schema, __pyx_kp_u__4); - } - __pyx_L8:; - - /* "aiohttp/_http_parser.pyx":831 - * schema = '' - * - * if parsed.field_set & (1 << cparser.UF_HOST): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_HOST].off - * ln = parsed.field_data[cparser.UF_HOST].len - */ - __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_HOST)) != 0); - if (__pyx_t_1) { - - /* "aiohttp/_http_parser.pyx":832 - * - * if parsed.field_set & (1 << cparser.UF_HOST): - * off = parsed.field_data[cparser.UF_HOST].off # <<<<<<<<<<<<<< - * ln = parsed.field_data[cparser.UF_HOST].len - * host = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_HOST)]).off; - __pyx_v_off = __pyx_t_2; - - /* "aiohttp/_http_parser.pyx":833 - * if parsed.field_set & (1 << cparser.UF_HOST): - * off = parsed.field_data[cparser.UF_HOST].off - * ln = parsed.field_data[cparser.UF_HOST].len # <<<<<<<<<<<<<< - * host = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * else: - */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_HOST)]).len; - __pyx_v_ln = __pyx_t_2; - - /* "aiohttp/_http_parser.pyx":834 - * off = parsed.field_data[cparser.UF_HOST].off - * ln = parsed.field_data[cparser.UF_HOST].len - * host = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') # <<<<<<<<<<<<<< - * else: - * host = '' - */ - __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF_SET(__pyx_v_host, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "aiohttp/_http_parser.pyx":831 - * schema = '' - * - * if parsed.field_set & (1 << cparser.UF_HOST): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_HOST].off - * ln = parsed.field_data[cparser.UF_HOST].len - */ - goto __pyx_L9; - } - - /* "aiohttp/_http_parser.pyx":836 - * host = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * else: - * host = '' # <<<<<<<<<<<<<< - * - * if parsed.field_set & (1 << cparser.UF_PORT): - */ - /*else*/ { - __Pyx_INCREF(__pyx_kp_u__4); - __Pyx_DECREF_SET(__pyx_v_host, __pyx_kp_u__4); - } - __pyx_L9:; - - /* "aiohttp/_http_parser.pyx":838 - * host = '' - * - * if parsed.field_set & (1 << cparser.UF_PORT): # <<<<<<<<<<<<<< - * port = parsed.port - * - */ - __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_PORT)) != 0); - if (__pyx_t_1) { - - /* "aiohttp/_http_parser.pyx":839 - * - * if parsed.field_set & (1 << cparser.UF_PORT): - * port = parsed.port # <<<<<<<<<<<<<< - * - * if parsed.field_set & (1 << cparser.UF_PATH): - */ - __pyx_t_3 = __Pyx_PyInt_From_uint16_t(__pyx_v_parsed->port); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 839, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF_SET(__pyx_v_port, __pyx_t_3); - __pyx_t_3 = 0; - - /* "aiohttp/_http_parser.pyx":838 - * host = '' - * - * if parsed.field_set & (1 << cparser.UF_PORT): # <<<<<<<<<<<<<< - * port = parsed.port - * - */ - } - - /* "aiohttp/_http_parser.pyx":841 - * port = parsed.port - * - * if parsed.field_set & (1 << cparser.UF_PATH): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_PATH].off - * ln = parsed.field_data[cparser.UF_PATH].len - */ - __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_PATH)) != 0); - if (__pyx_t_1) { - - /* "aiohttp/_http_parser.pyx":842 - * - * if parsed.field_set & (1 << cparser.UF_PATH): - * off = parsed.field_data[cparser.UF_PATH].off # <<<<<<<<<<<<<< - * ln = parsed.field_data[cparser.UF_PATH].len - * path = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_PATH)]).off; - __pyx_v_off = __pyx_t_2; - - /* "aiohttp/_http_parser.pyx":843 - * if parsed.field_set & (1 << cparser.UF_PATH): - * off = parsed.field_data[cparser.UF_PATH].off - * ln = parsed.field_data[cparser.UF_PATH].len # <<<<<<<<<<<<<< - * path = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * else: - */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_PATH)]).len; - __pyx_v_ln = __pyx_t_2; - - /* "aiohttp/_http_parser.pyx":844 - * off = parsed.field_data[cparser.UF_PATH].off - * ln = parsed.field_data[cparser.UF_PATH].len - * path = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') # <<<<<<<<<<<<<< - * else: - * path = '' - */ - __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 844, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF_SET(__pyx_v_path, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "aiohttp/_http_parser.pyx":841 - * port = parsed.port - * - * if parsed.field_set & (1 << cparser.UF_PATH): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_PATH].off - * ln = parsed.field_data[cparser.UF_PATH].len - */ - goto __pyx_L11; - } - - /* "aiohttp/_http_parser.pyx":846 - * path = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * else: - * path = '' # <<<<<<<<<<<<<< - * - * if parsed.field_set & (1 << cparser.UF_QUERY): - */ - /*else*/ { - __Pyx_INCREF(__pyx_kp_u__4); - __Pyx_DECREF_SET(__pyx_v_path, __pyx_kp_u__4); - } - __pyx_L11:; - - /* "aiohttp/_http_parser.pyx":848 - * path = '' - * - * if parsed.field_set & (1 << cparser.UF_QUERY): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_QUERY].off - * ln = parsed.field_data[cparser.UF_QUERY].len - */ - __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_QUERY)) != 0); - if (__pyx_t_1) { - - /* "aiohttp/_http_parser.pyx":849 - * - * if parsed.field_set & (1 << cparser.UF_QUERY): - * off = parsed.field_data[cparser.UF_QUERY].off # <<<<<<<<<<<<<< - * ln = parsed.field_data[cparser.UF_QUERY].len - * query = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_QUERY)]).off; - __pyx_v_off = __pyx_t_2; - - /* "aiohttp/_http_parser.pyx":850 - * if parsed.field_set & (1 << cparser.UF_QUERY): - * off = parsed.field_data[cparser.UF_QUERY].off - * ln = parsed.field_data[cparser.UF_QUERY].len # <<<<<<<<<<<<<< - * query = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * else: - */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_QUERY)]).len; - __pyx_v_ln = __pyx_t_2; - - /* "aiohttp/_http_parser.pyx":851 - * off = parsed.field_data[cparser.UF_QUERY].off - * ln = parsed.field_data[cparser.UF_QUERY].len - * query = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') # <<<<<<<<<<<<<< - * else: - * query = '' - */ - __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 851, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF_SET(__pyx_v_query, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "aiohttp/_http_parser.pyx":848 - * path = '' - * - * if parsed.field_set & (1 << cparser.UF_QUERY): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_QUERY].off - * ln = parsed.field_data[cparser.UF_QUERY].len - */ - goto __pyx_L12; - } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_3, __pyx_v_data, __pyx_v_pointer}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_3, __pyx_v_data, __pyx_v_pointer}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else + #endif + { + __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_3); + __Pyx_INCREF(__pyx_v_data); + __Pyx_GIVEREF(__pyx_v_data); + PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_data); + __Pyx_INCREF(__pyx_v_pointer); + __Pyx_GIVEREF(__pyx_v_pointer); + PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_pointer); + __pyx_t_3 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_err_msg = __pyx_t_1; + __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":853 - * query = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * else: - * query = '' # <<<<<<<<<<<<<< + /* "aiohttp/_http_parser.pyx":817 + * err_msg = "{}:\n\n {!r}\n {}".format(desc.decode("latin-1"), data, pointer) * - * if parsed.field_set & (1 << cparser.UF_FRAGMENT): + * if errno in {cparser.HPE_CB_MESSAGE_BEGIN, # <<<<<<<<<<<<<< + * cparser.HPE_CB_HEADERS_COMPLETE, + * cparser.HPE_CB_MESSAGE_COMPLETE, */ - /*else*/ { - __Pyx_INCREF(__pyx_kp_u__4); - __Pyx_DECREF_SET(__pyx_v_query, __pyx_kp_u__4); - } - __pyx_L12:; + switch (__pyx_v_errno) { + case HPE_CB_MESSAGE_BEGIN: + case HPE_CB_HEADERS_COMPLETE: - /* "aiohttp/_http_parser.pyx":855 - * query = '' + /* "aiohttp/_http_parser.pyx":818 * - * if parsed.field_set & (1 << cparser.UF_FRAGMENT): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_FRAGMENT].off - * ln = parsed.field_data[cparser.UF_FRAGMENT].len + * if errno in {cparser.HPE_CB_MESSAGE_BEGIN, + * cparser.HPE_CB_HEADERS_COMPLETE, # <<<<<<<<<<<<<< + * cparser.HPE_CB_MESSAGE_COMPLETE, + * cparser.HPE_CB_CHUNK_HEADER, */ - __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_FRAGMENT)) != 0); - if (__pyx_t_1) { + case HPE_CB_MESSAGE_COMPLETE: - /* "aiohttp/_http_parser.pyx":856 - * - * if parsed.field_set & (1 << cparser.UF_FRAGMENT): - * off = parsed.field_data[cparser.UF_FRAGMENT].off # <<<<<<<<<<<<<< - * ln = parsed.field_data[cparser.UF_FRAGMENT].len - * fragment = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') + /* "aiohttp/_http_parser.pyx":819 + * if errno in {cparser.HPE_CB_MESSAGE_BEGIN, + * cparser.HPE_CB_HEADERS_COMPLETE, + * cparser.HPE_CB_MESSAGE_COMPLETE, # <<<<<<<<<<<<<< + * cparser.HPE_CB_CHUNK_HEADER, + * cparser.HPE_CB_CHUNK_COMPLETE, */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_FRAGMENT)]).off; - __pyx_v_off = __pyx_t_2; + case HPE_CB_CHUNK_HEADER: - /* "aiohttp/_http_parser.pyx":857 - * if parsed.field_set & (1 << cparser.UF_FRAGMENT): - * off = parsed.field_data[cparser.UF_FRAGMENT].off - * ln = parsed.field_data[cparser.UF_FRAGMENT].len # <<<<<<<<<<<<<< - * fragment = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * else: + /* "aiohttp/_http_parser.pyx":820 + * cparser.HPE_CB_HEADERS_COMPLETE, + * cparser.HPE_CB_MESSAGE_COMPLETE, + * cparser.HPE_CB_CHUNK_HEADER, # <<<<<<<<<<<<<< + * cparser.HPE_CB_CHUNK_COMPLETE, + * cparser.HPE_INVALID_CONSTANT, */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_FRAGMENT)]).len; - __pyx_v_ln = __pyx_t_2; + case HPE_CB_CHUNK_COMPLETE: - /* "aiohttp/_http_parser.pyx":858 - * off = parsed.field_data[cparser.UF_FRAGMENT].off - * ln = parsed.field_data[cparser.UF_FRAGMENT].len - * fragment = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') # <<<<<<<<<<<<<< - * else: - * fragment = '' + /* "aiohttp/_http_parser.pyx":821 + * cparser.HPE_CB_MESSAGE_COMPLETE, + * cparser.HPE_CB_CHUNK_HEADER, + * cparser.HPE_CB_CHUNK_COMPLETE, # <<<<<<<<<<<<<< + * cparser.HPE_INVALID_CONSTANT, + * cparser.HPE_INVALID_HEADER_TOKEN, */ - __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 858, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF_SET(__pyx_v_fragment, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; + case HPE_INVALID_CONSTANT: - /* "aiohttp/_http_parser.pyx":855 - * query = '' - * - * if parsed.field_set & (1 << cparser.UF_FRAGMENT): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_FRAGMENT].off - * ln = parsed.field_data[cparser.UF_FRAGMENT].len + /* "aiohttp/_http_parser.pyx":822 + * cparser.HPE_CB_CHUNK_HEADER, + * cparser.HPE_CB_CHUNK_COMPLETE, + * cparser.HPE_INVALID_CONSTANT, # <<<<<<<<<<<<<< + * cparser.HPE_INVALID_HEADER_TOKEN, + * cparser.HPE_INVALID_CONTENT_LENGTH, */ - goto __pyx_L13; - } + case HPE_INVALID_HEADER_TOKEN: - /* "aiohttp/_http_parser.pyx":860 - * fragment = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * else: - * fragment = '' # <<<<<<<<<<<<<< - * - * if parsed.field_set & (1 << cparser.UF_USERINFO): + /* "aiohttp/_http_parser.pyx":823 + * cparser.HPE_CB_CHUNK_COMPLETE, + * cparser.HPE_INVALID_CONSTANT, + * cparser.HPE_INVALID_HEADER_TOKEN, # <<<<<<<<<<<<<< + * cparser.HPE_INVALID_CONTENT_LENGTH, + * cparser.HPE_INVALID_CHUNK_SIZE, + */ + case HPE_INVALID_CONTENT_LENGTH: + + /* "aiohttp/_http_parser.pyx":824 + * cparser.HPE_INVALID_CONSTANT, + * cparser.HPE_INVALID_HEADER_TOKEN, + * cparser.HPE_INVALID_CONTENT_LENGTH, # <<<<<<<<<<<<<< + * cparser.HPE_INVALID_CHUNK_SIZE, + * cparser.HPE_INVALID_EOF_STATE, + */ + case HPE_INVALID_CHUNK_SIZE: + + /* "aiohttp/_http_parser.pyx":825 + * cparser.HPE_INVALID_HEADER_TOKEN, + * cparser.HPE_INVALID_CONTENT_LENGTH, + * cparser.HPE_INVALID_CHUNK_SIZE, # <<<<<<<<<<<<<< + * cparser.HPE_INVALID_EOF_STATE, + * cparser.HPE_INVALID_TRANSFER_ENCODING}: + */ + case HPE_INVALID_EOF_STATE: + + /* "aiohttp/_http_parser.pyx":826 + * cparser.HPE_INVALID_CONTENT_LENGTH, + * cparser.HPE_INVALID_CHUNK_SIZE, + * cparser.HPE_INVALID_EOF_STATE, # <<<<<<<<<<<<<< + * cparser.HPE_INVALID_TRANSFER_ENCODING}: + * return BadHttpMessage(err_msg) + */ + case HPE_INVALID_TRANSFER_ENCODING: + + /* "aiohttp/_http_parser.pyx":828 + * cparser.HPE_INVALID_EOF_STATE, + * cparser.HPE_INVALID_TRANSFER_ENCODING}: + * return BadHttpMessage(err_msg) # <<<<<<<<<<<<<< + * elif errno in {cparser.HPE_INVALID_STATUS, + * cparser.HPE_INVALID_METHOD, */ - /*else*/ { - __Pyx_INCREF(__pyx_kp_u__4); - __Pyx_DECREF_SET(__pyx_v_fragment, __pyx_kp_u__4); + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_BadHttpMessage); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); } - __pyx_L13:; + } + __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_v_err_msg) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_err_msg); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "aiohttp/_http_parser.pyx":862 - * fragment = '' + /* "aiohttp/_http_parser.pyx":817 + * err_msg = "{}:\n\n {!r}\n {}".format(desc.decode("latin-1"), data, pointer) * - * if parsed.field_set & (1 << cparser.UF_USERINFO): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_USERINFO].off - * ln = parsed.field_data[cparser.UF_USERINFO].len + * if errno in {cparser.HPE_CB_MESSAGE_BEGIN, # <<<<<<<<<<<<<< + * cparser.HPE_CB_HEADERS_COMPLETE, + * cparser.HPE_CB_MESSAGE_COMPLETE, */ - __pyx_t_1 = ((__pyx_v_parsed->field_set & (1 << UF_USERINFO)) != 0); - if (__pyx_t_1) { + break; + case HPE_INVALID_STATUS: - /* "aiohttp/_http_parser.pyx":863 - * - * if parsed.field_set & (1 << cparser.UF_USERINFO): - * off = parsed.field_data[cparser.UF_USERINFO].off # <<<<<<<<<<<<<< - * ln = parsed.field_data[cparser.UF_USERINFO].len - * userinfo = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') + /* "aiohttp/_http_parser.pyx":829 + * cparser.HPE_INVALID_TRANSFER_ENCODING}: + * return BadHttpMessage(err_msg) + * elif errno in {cparser.HPE_INVALID_STATUS, # <<<<<<<<<<<<<< + * cparser.HPE_INVALID_METHOD, + * cparser.HPE_INVALID_VERSION}: */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_USERINFO)]).off; - __pyx_v_off = __pyx_t_2; + case HPE_INVALID_METHOD: - /* "aiohttp/_http_parser.pyx":864 - * if parsed.field_set & (1 << cparser.UF_USERINFO): - * off = parsed.field_data[cparser.UF_USERINFO].off - * ln = parsed.field_data[cparser.UF_USERINFO].len # <<<<<<<<<<<<<< - * userinfo = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * + /* "aiohttp/_http_parser.pyx":830 + * return BadHttpMessage(err_msg) + * elif errno in {cparser.HPE_INVALID_STATUS, + * cparser.HPE_INVALID_METHOD, # <<<<<<<<<<<<<< + * cparser.HPE_INVALID_VERSION}: + * return BadStatusLine(error=err_msg) */ - __pyx_t_2 = (__pyx_v_parsed->field_data[((int)UF_USERINFO)]).len; - __pyx_v_ln = __pyx_t_2; + case HPE_INVALID_VERSION: - /* "aiohttp/_http_parser.pyx":865 - * off = parsed.field_data[cparser.UF_USERINFO].off - * ln = parsed.field_data[cparser.UF_USERINFO].len - * userinfo = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') # <<<<<<<<<<<<<< - * - * user, sep, password = userinfo.partition(':') + /* "aiohttp/_http_parser.pyx":832 + * cparser.HPE_INVALID_METHOD, + * cparser.HPE_INVALID_VERSION}: + * return BadStatusLine(error=err_msg) # <<<<<<<<<<<<<< + * elif errno == cparser.HPE_INVALID_URL: + * return InvalidURLError(err_msg) */ - __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_buf_data, __pyx_v_off, (__pyx_v_off + __pyx_v_ln), NULL, ((char const *)"surrogateescape"), PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 865, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF_SET(__pyx_v_userinfo, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BadStatusLine); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_error, __pyx_v_err_msg) < 0) __PYX_ERR(0, 832, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; - /* "aiohttp/_http_parser.pyx":867 - * userinfo = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - * - * user, sep, password = userinfo.partition(':') # <<<<<<<<<<<<<< - * - * return URL_build(scheme=schema, + /* "aiohttp/_http_parser.pyx":829 + * cparser.HPE_INVALID_TRANSFER_ENCODING}: + * return BadHttpMessage(err_msg) + * elif errno in {cparser.HPE_INVALID_STATUS, # <<<<<<<<<<<<<< + * cparser.HPE_INVALID_METHOD, + * cparser.HPE_INVALID_VERSION}: */ - __pyx_t_3 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_partition, __pyx_v_userinfo, __pyx_kp_u__11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 867, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_3); - if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { - PyObject* sequence = __pyx_t_3; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 867, __pyx_L5_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_4 = PyList_GET_ITEM(sequence, 0); - __pyx_t_5 = PyList_GET_ITEM(sequence, 1); - __pyx_t_6 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - #else - __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 867, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 867, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 867, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_6); - #endif - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 867, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; - index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L15_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L15_unpacking_failed; - __Pyx_GOTREF(__pyx_t_5); - index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L15_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(0, 867, __pyx_L5_error) - __pyx_t_8 = NULL; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L16_unpacking_done; - __pyx_L15_unpacking_failed:; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_8 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 867, __pyx_L5_error) - __pyx_L16_unpacking_done:; - } - if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 867, __pyx_L5_error) - if (!(likely(PyUnicode_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 867, __pyx_L5_error) - __Pyx_DECREF_SET(__pyx_v_user, ((PyObject*)__pyx_t_4)); - __pyx_t_4 = 0; - __pyx_v_sep = __pyx_t_5; - __pyx_t_5 = 0; - __Pyx_DECREF_SET(__pyx_v_password, ((PyObject*)__pyx_t_6)); - __pyx_t_6 = 0; + break; + case HPE_INVALID_URL: - /* "aiohttp/_http_parser.pyx":862 - * fragment = '' + /* "aiohttp/_http_parser.pyx":834 + * return BadStatusLine(error=err_msg) + * elif errno == cparser.HPE_INVALID_URL: + * return InvalidURLError(err_msg) # <<<<<<<<<<<<<< * - * if parsed.field_set & (1 << cparser.UF_USERINFO): # <<<<<<<<<<<<<< - * off = parsed.field_data[cparser.UF_USERINFO].off - * ln = parsed.field_data[cparser.UF_USERINFO].len + * return BadHttpMessage(err_msg) */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_InvalidURLError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); } - - /* "aiohttp/_http_parser.pyx":869 - * user, sep, password = userinfo.partition(':') - * - * return URL_build(scheme=schema, # <<<<<<<<<<<<<< - * user=user, password=password, host=host, port=port, - * path=path, query_string=query, fragment=fragment, encoded=True) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyDict_NewPresized(9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 869, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_scheme, __pyx_v_schema) < 0) __PYX_ERR(0, 869, __pyx_L5_error) - - /* "aiohttp/_http_parser.pyx":870 - * - * return URL_build(scheme=schema, - * user=user, password=password, host=host, port=port, # <<<<<<<<<<<<<< - * path=path, query_string=query, fragment=fragment, encoded=True) - * else: - */ - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_user, __pyx_v_user) < 0) __PYX_ERR(0, 869, __pyx_L5_error) - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_password, __pyx_v_password) < 0) __PYX_ERR(0, 869, __pyx_L5_error) - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_host, __pyx_v_host) < 0) __PYX_ERR(0, 869, __pyx_L5_error) - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_port, __pyx_v_port) < 0) __PYX_ERR(0, 869, __pyx_L5_error) - - /* "aiohttp/_http_parser.pyx":871 - * return URL_build(scheme=schema, - * user=user, password=password, host=host, port=port, - * path=path, query_string=query, fragment=fragment, encoded=True) # <<<<<<<<<<<<<< - * else: - * raise InvalidURLError("invalid url {!r}".format(buf_data)) - */ - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_path, __pyx_v_path) < 0) __PYX_ERR(0, 869, __pyx_L5_error) - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_query_string, __pyx_v_query) < 0) __PYX_ERR(0, 869, __pyx_L5_error) - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_fragment, __pyx_v_fragment) < 0) __PYX_ERR(0, 869, __pyx_L5_error) - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_encoded, Py_True) < 0) __PYX_ERR(0, 869, __pyx_L5_error) - - /* "aiohttp/_http_parser.pyx":869 - * user, sep, password = userinfo.partition(':') - * - * return URL_build(scheme=schema, # <<<<<<<<<<<<<< - * user=user, password=password, host=host, port=port, - * path=path, query_string=query, fragment=fragment, encoded=True) - */ - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_7aiohttp_12_http_parser_URL_build, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 869, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_r = __pyx_t_6; - __pyx_t_6 = 0; - goto __pyx_L4_return; - - /* "aiohttp/_http_parser.pyx":823 - * res = cparser.http_parser_parse_url(buf_data, length, 0, parsed) - * - * if res == 0: # <<<<<<<<<<<<<< - * if parsed.field_set & (1 << cparser.UF_SCHEMA): - * off = parsed.field_data[cparser.UF_SCHEMA].off - */ } + __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_v_err_msg) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_err_msg); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; - /* "aiohttp/_http_parser.pyx":873 - * path=path, query_string=query, fragment=fragment, encoded=True) - * else: - * raise InvalidURLError("invalid url {!r}".format(buf_data)) # <<<<<<<<<<<<<< - * finally: - * PyMem_Free(parsed) + /* "aiohttp/_http_parser.pyx":833 + * cparser.HPE_INVALID_VERSION}: + * return BadStatusLine(error=err_msg) + * elif errno == cparser.HPE_INVALID_URL: # <<<<<<<<<<<<<< + * return InvalidURLError(err_msg) + * */ - /*else*/ { - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InvalidURLError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 873, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_invalid_url_r, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 873, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyBytes_FromString(__pyx_v_buf_data); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 873, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - } - } - __pyx_t_5 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 873, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - } - } - __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 873, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_t_6, 0, 0, 0); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __PYX_ERR(0, 873, __pyx_L5_error) - } + break; + default: break; } - /* "aiohttp/_http_parser.pyx":875 - * raise InvalidURLError("invalid url {!r}".format(buf_data)) - * finally: - * PyMem_Free(parsed) # <<<<<<<<<<<<<< + /* "aiohttp/_http_parser.pyx":836 + * return InvalidURLError(err_msg) + * + * return BadHttpMessage(err_msg) # <<<<<<<<<<<<<< */ - /*finally:*/ { - __pyx_L5_error:; - /*exception exit:*/{ - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); - if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_16); - __Pyx_XGOTREF(__pyx_t_17); - __Pyx_XGOTREF(__pyx_t_18); - __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; - { - PyMem_Free(__pyx_v_parsed); - } - if (PY_MAJOR_VERSION >= 3) { - __Pyx_XGIVEREF(__pyx_t_16); - __Pyx_XGIVEREF(__pyx_t_17); - __Pyx_XGIVEREF(__pyx_t_18); - __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); - } - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); - __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; - __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; - goto __pyx_L1_error; - } - __pyx_L4_return: { - __pyx_t_18 = __pyx_r; - __pyx_r = 0; - PyMem_Free(__pyx_v_parsed); - __pyx_r = __pyx_t_18; - __pyx_t_18 = 0; - goto __pyx_L0; + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_BadHttpMessage); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); } } + __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_v_err_msg) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_err_msg); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; - /* "aiohttp/_http_parser.pyx":798 + /* "aiohttp/_http_parser.pyx":811 * * - * cdef _parse_url(char* buf_data, size_t length): # <<<<<<<<<<<<<< - * cdef: - * cparser.http_parser_url* parsed + * cdef parser_error_from_errno(cparser.llhttp_t* parser, data, pointer): # <<<<<<<<<<<<<< + * cdef cparser.llhttp_errno_t errno = cparser.llhttp_get_errno(parser) + * cdef bytes desc = cparser.llhttp_get_error_reason(parser) */ /* function exit code */ __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("aiohttp._http_parser._parse_url", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("aiohttp._http_parser.parser_error_from_errno", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_schema); - __Pyx_XDECREF(__pyx_v_host); - __Pyx_XDECREF(__pyx_v_port); - __Pyx_XDECREF(__pyx_v_path); - __Pyx_XDECREF(__pyx_v_query); - __Pyx_XDECREF(__pyx_v_fragment); - __Pyx_XDECREF(__pyx_v_user); - __Pyx_XDECREF(__pyx_v_password); - __Pyx_XDECREF(__pyx_v_userinfo); - __Pyx_XDECREF(__pyx_v_result); - __Pyx_XDECREF(__pyx_v_sep); + __Pyx_XDECREF(__pyx_v_desc); + __Pyx_XDECREF(__pyx_v_err_msg); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -15030,9 +14876,9 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser__parse_url(char *__pyx_v_buf_da */ /* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMessage = {"__pyx_unpickle_RawRequestMessage", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMessage, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_7aiohttp_12_http_parser_1__pyx_unpickle_RawRequestMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_7aiohttp_12_http_parser_1__pyx_unpickle_RawRequestMessage = {"__pyx_unpickle_RawRequestMessage", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7aiohttp_12_http_parser_1__pyx_unpickle_RawRequestMessage, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_7aiohttp_12_http_parser_1__pyx_unpickle_RawRequestMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -15098,24 +14944,24 @@ static PyObject *__pyx_pw_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMess __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawRequestMessage(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessage(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawRequestMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -15124,114 +14970,118 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawRequestMess /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result - * if __pyx_checksum != 0x1408252: # <<<<<<<<<<<<<< + * if __pyx_checksum not in (0x1408252, 0xf602a9f, 0x03e51e3): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x1408252, 0xf602a9f, 0x03e51e3) = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) */ - __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x1408252) != 0); - if (__pyx_t_1) { + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__17, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { /* "(tree fragment)":5 * cdef object __pyx_result - * if __pyx_checksum != 0x1408252: + * if __pyx_checksum not in (0x1408252, 0xf602a9f, 0x03e51e3): * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x1408252, 0xf602a9f, 0x03e51e3) = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) * __pyx_result = RawRequestMessage.__new__(__pyx_type) */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_PickleError); __Pyx_GIVEREF(__pyx_n_s_PickleError); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); - __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_2); - __pyx_v___pyx_PickleError = __pyx_t_2; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError); + __pyx_t_4 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_1); + __pyx_v___pyx_PickleError = __pyx_t_1; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "(tree fragment)":6 - * if __pyx_checksum != 0x1408252: + * if __pyx_checksum not in (0x1408252, 0xf602a9f, 0x03e51e3): * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) # <<<<<<<<<<<<<< + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x1408252, 0xf602a9f, 0x03e51e3) = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) # <<<<<<<<<<<<<< * __pyx_result = RawRequestMessage.__new__(__pyx_type) * if __pyx_state is not None: */ - __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x14, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_v___pyx_PickleError); - __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_5); + __pyx_t_1 = __pyx_v___pyx_PickleError; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); + __Pyx_DECREF_SET(__pyx_t_1, function); } } - __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 6, __pyx_L1_error) /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result - * if __pyx_checksum != 0x1408252: # <<<<<<<<<<<<<< + * if __pyx_checksum not in (0x1408252, 0xf602a9f, 0x03e51e3): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x1408252, 0xf602a9f, 0x03e51e3) = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) */ } /* "(tree fragment)":7 * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x1408252, 0xf602a9f, 0x03e51e3) = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) * __pyx_result = RawRequestMessage.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle_RawRequestMessage__set_state( __pyx_result, __pyx_state) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7aiohttp_12_http_parser_RawRequestMessage), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_4); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7aiohttp_12_http_parser_RawRequestMessage), __pyx_n_s_new); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); + __Pyx_DECREF_SET(__pyx_t_1, function); } - } - __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v___pyx_result = __pyx_t_3; - __pyx_t_3 = 0; + } + __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v___pyx_type); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v___pyx_result = __pyx_t_4; + __pyx_t_4 = 0; /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x1408252, 0xf602a9f, 0x03e51e3) = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) * __pyx_result = RawRequestMessage.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_RawRequestMessage__set_state( __pyx_result, __pyx_state) * return __pyx_result */ - __pyx_t_1 = (__pyx_v___pyx_state != Py_None); - __pyx_t_6 = (__pyx_t_1 != 0); - if (__pyx_t_6) { + __pyx_t_3 = (__pyx_v___pyx_state != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { /* "(tree fragment)":9 * __pyx_result = RawRequestMessage.__new__(__pyx_type) @@ -15241,12 +15091,12 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawRequestMess * cdef __pyx_unpickle_RawRequestMessage__set_state(RawRequestMessage __pyx_result, tuple __pyx_state): */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error) - __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessage__set_state(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessage__set_state(((struct __pyx_obj_7aiohttp_12_http_parser_RawRequestMessage *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0x1408252 = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0x1408252, 0xf602a9f, 0x03e51e3) = (chunked, compression, headers, method, path, raw_headers, should_close, upgrade, url, version))" % __pyx_checksum) * __pyx_result = RawRequestMessage.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_RawRequestMessage__set_state( __pyx_result, __pyx_state) @@ -15274,10 +15124,10 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawRequestMess /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("aiohttp._http_parser.__pyx_unpickle_RawRequestMessage", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -15528,9 +15378,9 @@ static PyObject *__pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawRequestMessag */ /* Python wrapper */ -static PyObject *__pyx_pw_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyMethodDef __pyx_mdef_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMessage = {"__pyx_unpickle_RawResponseMessage", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMessage, METH_VARARGS|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_7aiohttp_12_http_parser_3__pyx_unpickle_RawResponseMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_7aiohttp_12_http_parser_3__pyx_unpickle_RawResponseMessage = {"__pyx_unpickle_RawResponseMessage", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7aiohttp_12_http_parser_3__pyx_unpickle_RawResponseMessage, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_7aiohttp_12_http_parser_3__pyx_unpickle_RawResponseMessage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; @@ -15596,24 +15446,24 @@ static PyObject *__pyx_pw_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMes __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_7aiohttp_12_http_parser_4__pyx_unpickle_RawResponseMessage(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + __pyx_r = __pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawResponseMessage(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_7aiohttp_12_http_parser_4__pyx_unpickle_RawResponseMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_7aiohttp_12_http_parser_2__pyx_unpickle_RawResponseMessage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -15622,114 +15472,118 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_4__pyx_unpickle_RawResponseMes /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result - * if __pyx_checksum != 0xc7706dc: # <<<<<<<<<<<<<< + * if __pyx_checksum not in (0xc7706dc, 0xcb2b2ba, 0x4febc0e): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xc7706dc, 0xcb2b2ba, 0x4febc0e) = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) */ - __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xc7706dc) != 0); - if (__pyx_t_1) { + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__18, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { /* "(tree fragment)":5 * cdef object __pyx_result - * if __pyx_checksum != 0xc7706dc: + * if __pyx_checksum not in (0xc7706dc, 0xcb2b2ba, 0x4febc0e): * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< - * raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xc7706dc, 0xcb2b2ba, 0x4febc0e) = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) * __pyx_result = RawResponseMessage.__new__(__pyx_type) */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_PickleError); __Pyx_GIVEREF(__pyx_n_s_PickleError); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); - __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_2); - __pyx_v___pyx_PickleError = __pyx_t_2; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError); + __pyx_t_4 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_1); + __pyx_v___pyx_PickleError = __pyx_t_1; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "(tree fragment)":6 - * if __pyx_checksum != 0xc7706dc: + * if __pyx_checksum not in (0xc7706dc, 0xcb2b2ba, 0x4febc0e): * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) # <<<<<<<<<<<<<< + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xc7706dc, 0xcb2b2ba, 0x4febc0e) = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) # <<<<<<<<<<<<<< * __pyx_result = RawResponseMessage.__new__(__pyx_type) * if __pyx_state is not None: */ - __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xc7, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_v___pyx_PickleError); - __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_5); + __pyx_t_1 = __pyx_v___pyx_PickleError; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); + __Pyx_DECREF_SET(__pyx_t_1, function); } } - __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 6, __pyx_L1_error) /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result - * if __pyx_checksum != 0xc7706dc: # <<<<<<<<<<<<<< + * if __pyx_checksum not in (0xc7706dc, 0xcb2b2ba, 0x4febc0e): # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xc7706dc, 0xcb2b2ba, 0x4febc0e) = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) */ } /* "(tree fragment)":7 * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xc7706dc, 0xcb2b2ba, 0x4febc0e) = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) * __pyx_result = RawResponseMessage.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle_RawResponseMessage__set_state( __pyx_result, __pyx_state) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7aiohttp_12_http_parser_RawResponseMessage), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_4); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7aiohttp_12_http_parser_RawResponseMessage), __pyx_n_s_new); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); + __Pyx_DECREF_SET(__pyx_t_1, function); } } - __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v___pyx_result = __pyx_t_3; - __pyx_t_3 = 0; + __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v___pyx_type); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v___pyx_result = __pyx_t_4; + __pyx_t_4 = 0; /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xc7706dc, 0xcb2b2ba, 0x4febc0e) = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) * __pyx_result = RawResponseMessage.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_RawResponseMessage__set_state( __pyx_result, __pyx_state) * return __pyx_result */ - __pyx_t_1 = (__pyx_v___pyx_state != Py_None); - __pyx_t_6 = (__pyx_t_1 != 0); - if (__pyx_t_6) { + __pyx_t_3 = (__pyx_v___pyx_state != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { /* "(tree fragment)":9 * __pyx_result = RawResponseMessage.__new__(__pyx_type) @@ -15739,12 +15593,12 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_4__pyx_unpickle_RawResponseMes * cdef __pyx_unpickle_RawResponseMessage__set_state(RawResponseMessage __pyx_result, tuple __pyx_state): */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error) - __pyx_t_3 = __pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawResponseMessage__set_state(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_f_7aiohttp_12_http_parser___pyx_unpickle_RawResponseMessage__set_state(((struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "(tree fragment)":8 - * raise __pyx_PickleError("Incompatible checksums (%s vs 0xc7706dc = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xc7706dc, 0xcb2b2ba, 0x4febc0e) = (chunked, code, compression, headers, raw_headers, reason, should_close, upgrade, version))" % __pyx_checksum) * __pyx_result = RawResponseMessage.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_RawResponseMessage__set_state( __pyx_result, __pyx_state) @@ -15772,10 +15626,10 @@ static PyObject *__pyx_pf_7aiohttp_12_http_parser_4__pyx_unpickle_RawResponseMes /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("aiohttp._http_parser.__pyx_unpickle_RawResponseMessage", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -16246,12 +16100,15 @@ static PyTypeObject __pyx_type_7aiohttp_12_http_parser_RawRequestMessage = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static struct __pyx_obj_7aiohttp_12_http_parser_RawResponseMessage *__pyx_freelist_7aiohttp_12_http_parser_RawResponseMessage[250]; @@ -16478,12 +16335,15 @@ static PyTypeObject __pyx_type_7aiohttp_12_http_parser_RawResponseMessage = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpParser __pyx_vtable_7aiohttp_12_http_parser_HttpParser; @@ -16703,12 +16563,15 @@ static PyTypeObject __pyx_type_7aiohttp_12_http_parser_HttpParser = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpRequestParser __pyx_vtable_7aiohttp_12_http_parser_HttpRequestParser; @@ -16788,12 +16651,15 @@ static PyTypeObject __pyx_type_7aiohttp_12_http_parser_HttpRequestParser = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static struct __pyx_vtabstruct_7aiohttp_12_http_parser_HttpResponseParser __pyx_vtable_7aiohttp_12_http_parser_HttpResponseParser; @@ -16873,12 +16739,15 @@ static PyTypeObject __pyx_type_7aiohttp_12_http_parser_HttpResponseParser = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct____repr__ *__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct____repr__[8]; @@ -16988,12 +16857,15 @@ static PyTypeObject __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct____rep #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr *__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_1_genexpr[8]; @@ -17102,12 +16974,15 @@ static PyTypeObject __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_1_gene #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__ *__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_2___repr__[8]; @@ -17217,12 +17092,15 @@ static PyTypeObject __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_2___re #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static struct __pyx_obj_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr *__pyx_freelist_7aiohttp_12_http_parser___pyx_scope_struct_3_genexpr[8]; @@ -17331,12 +17209,15 @@ static PyTypeObject __pyx_type_7aiohttp_12_http_parser___pyx_scope_struct_3_gene #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif - #if PY_VERSION_HEX >= 0x030800b1 + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, /*tp_pypy_flags*/ + #endif }; static PyMethodDef __pyx_methods[] = { @@ -17423,6 +17304,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_COOKIE, __pyx_k_COOKIE, sizeof(__pyx_k_COOKIE), 0, 0, 1, 1}, {&__pyx_n_s_ContentLengthError, __pyx_k_ContentLengthError, sizeof(__pyx_k_ContentLengthError), 0, 0, 1, 1}, {&__pyx_n_s_DATE, __pyx_k_DATE, sizeof(__pyx_k_DATE), 0, 0, 1, 1}, + {&__pyx_n_s_DEBUG, __pyx_k_DEBUG, sizeof(__pyx_k_DEBUG), 0, 0, 1, 1}, {&__pyx_n_s_DESTINATION, __pyx_k_DESTINATION, sizeof(__pyx_k_DESTINATION), 0, 0, 1, 1}, {&__pyx_n_s_DIGEST, __pyx_k_DIGEST, sizeof(__pyx_k_DIGEST), 0, 0, 1, 1}, {&__pyx_n_s_DeflateBuffer, __pyx_k_DeflateBuffer, sizeof(__pyx_k_DeflateBuffer), 0, 0, 1, 1}, @@ -17452,8 +17334,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_IF_NONE_MATCH, __pyx_k_IF_NONE_MATCH, sizeof(__pyx_k_IF_NONE_MATCH), 0, 0, 1, 1}, {&__pyx_n_s_IF_RANGE, __pyx_k_IF_RANGE, sizeof(__pyx_k_IF_RANGE), 0, 0, 1, 1}, {&__pyx_n_s_IF_UNMODIFIED_SINCE, __pyx_k_IF_UNMODIFIED_SINCE, sizeof(__pyx_k_IF_UNMODIFIED_SINCE), 0, 0, 1, 1}, - {&__pyx_kp_s_Incompatible_checksums_s_vs_0x14, __pyx_k_Incompatible_checksums_s_vs_0x14, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x14), 0, 0, 1, 0}, - {&__pyx_kp_s_Incompatible_checksums_s_vs_0xc7, __pyx_k_Incompatible_checksums_s_vs_0xc7, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xc7), 0, 0, 1, 0}, + {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0}, + {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_k_Incompatible_checksums_0x_x_vs_0_2, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_2), 0, 0, 1, 0}, {&__pyx_n_s_InvalidHeader, __pyx_k_InvalidHeader, sizeof(__pyx_k_InvalidHeader), 0, 0, 1, 1}, {&__pyx_n_s_InvalidURLError, __pyx_k_InvalidURLError, sizeof(__pyx_k_InvalidURLError), 0, 0, 1, 1}, {&__pyx_n_s_KEEP_ALIVE, __pyx_k_KEEP_ALIVE, sizeof(__pyx_k_KEEP_ALIVE), 0, 0, 1, 1}, @@ -17511,21 +17393,25 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_X_FORWARDED_HOST, __pyx_k_X_FORWARDED_HOST, sizeof(__pyx_k_X_FORWARDED_HOST), 0, 0, 1, 1}, {&__pyx_n_s_X_FORWARDED_PROTO, __pyx_k_X_FORWARDED_PROTO, sizeof(__pyx_k_X_FORWARDED_PROTO), 0, 0, 1, 1}, {&__pyx_kp_u__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 1, 0, 0}, + {&__pyx_kp_u__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 1, 0, 0}, {&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0}, {&__pyx_kp_u__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 1, 0, 0}, - {&__pyx_n_s__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 1, 1}, {&__pyx_kp_b__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 0, 0}, - {&__pyx_kp_u__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 1, 0, 0}, + {&__pyx_kp_u__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0, 0}, + {&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0}, + {&__pyx_n_s__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 0, 1, 1}, + {&__pyx_kp_b__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 0, 0, 0}, + {&__pyx_kp_u__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 1, 0, 0}, {&__pyx_n_s_add, __pyx_k_add, sizeof(__pyx_k_add), 0, 0, 1, 1}, {&__pyx_n_s_aiohttp, __pyx_k_aiohttp, sizeof(__pyx_k_aiohttp), 0, 0, 1, 1}, {&__pyx_n_s_aiohttp__http_parser, __pyx_k_aiohttp__http_parser, sizeof(__pyx_k_aiohttp__http_parser), 0, 0, 1, 1}, - {&__pyx_kp_s_aiohttp__http_parser_pyx, __pyx_k_aiohttp__http_parser_pyx, sizeof(__pyx_k_aiohttp__http_parser_pyx), 0, 0, 1, 0}, + {&__pyx_n_s_aiohttp_helpers, __pyx_k_aiohttp_helpers, sizeof(__pyx_k_aiohttp_helpers), 0, 0, 1, 1}, {&__pyx_n_s_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 0, 1, 1}, {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, + {&__pyx_n_s_authority, __pyx_k_authority, sizeof(__pyx_k_authority), 0, 0, 1, 1}, {&__pyx_n_s_auto_decompress, __pyx_k_auto_decompress, sizeof(__pyx_k_auto_decompress), 0, 0, 1, 1}, {&__pyx_n_s_begin_http_chunk_receiving, __pyx_k_begin_http_chunk_receiving, sizeof(__pyx_k_begin_http_chunk_receiving), 0, 0, 1, 1}, {&__pyx_n_u_br, __pyx_k_br, sizeof(__pyx_k_br), 0, 1, 0, 1}, - {&__pyx_n_s_buf_data, __pyx_k_buf_data, sizeof(__pyx_k_buf_data), 0, 0, 1, 1}, {&__pyx_n_s_build, __pyx_k_build, sizeof(__pyx_k_build), 0, 0, 1, 1}, {&__pyx_n_s_chunked, __pyx_k_chunked, sizeof(__pyx_k_chunked), 0, 0, 1, 1}, {&__pyx_n_u_chunked, __pyx_k_chunked, sizeof(__pyx_k_chunked), 0, 1, 0, 1}, @@ -17539,6 +17425,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, {&__pyx_n_s_encoded, __pyx_k_encoded, sizeof(__pyx_k_encoded), 0, 0, 1, 1}, {&__pyx_n_s_end_http_chunk_receiving, __pyx_k_end_http_chunk_receiving, sizeof(__pyx_k_end_http_chunk_receiving), 0, 0, 1, 1}, + {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, {&__pyx_n_s_feed_data, __pyx_k_feed_data, sizeof(__pyx_k_feed_data), 0, 0, 1, 1}, {&__pyx_n_s_feed_eof, __pyx_k_feed_eof, sizeof(__pyx_k_feed_eof), 0, 0, 1, 1}, {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, @@ -17549,13 +17436,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_hdrs, __pyx_k_hdrs, sizeof(__pyx_k_hdrs), 0, 0, 1, 1}, {&__pyx_n_s_headers, __pyx_k_headers, sizeof(__pyx_k_headers), 0, 0, 1, 1}, {&__pyx_n_u_headers, __pyx_k_headers, sizeof(__pyx_k_headers), 0, 1, 0, 1}, - {&__pyx_n_s_host, __pyx_k_host, sizeof(__pyx_k_host), 0, 0, 1, 1}, {&__pyx_n_s_http_exceptions, __pyx_k_http_exceptions, sizeof(__pyx_k_http_exceptions), 0, 0, 1, 1}, {&__pyx_n_s_http_parser, __pyx_k_http_parser, sizeof(__pyx_k_http_parser), 0, 0, 1, 1}, {&__pyx_n_s_http_writer, __pyx_k_http_writer, sizeof(__pyx_k_http_writer), 0, 0, 1, 1}, {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_kp_u_invalid_url_r, __pyx_k_invalid_url_r, sizeof(__pyx_k_invalid_url_r), 0, 1, 0, 0}, {&__pyx_n_s_limit, __pyx_k_limit, sizeof(__pyx_k_limit), 0, 0, 1, 1}, {&__pyx_n_s_loop, __pyx_k_loop, sizeof(__pyx_k_loop), 0, 0, 1, 1}, {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1}, @@ -17569,16 +17454,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_n_s_parse_url, __pyx_k_parse_url, sizeof(__pyx_k_parse_url), 0, 0, 1, 1}, - {&__pyx_n_s_partition, __pyx_k_partition, sizeof(__pyx_k_partition), 0, 0, 1, 1}, - {&__pyx_n_s_password, __pyx_k_password, sizeof(__pyx_k_password), 0, 0, 1, 1}, {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1}, {&__pyx_n_u_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 1, 0, 1}, {&__pyx_n_s_payload_exception, __pyx_k_payload_exception, sizeof(__pyx_k_payload_exception), 0, 0, 1, 1}, {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, - {&__pyx_n_s_port, __pyx_k_port, sizeof(__pyx_k_port), 0, 0, 1, 1}, {&__pyx_n_s_protocol, __pyx_k_protocol, sizeof(__pyx_k_protocol), 0, 0, 1, 1}, - {&__pyx_n_s_py_buf, __pyx_k_py_buf, sizeof(__pyx_k_py_buf), 0, 0, 1, 1}, {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, @@ -17588,6 +17468,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_pyx_unpickle_RawResponseMessag, __pyx_k_pyx_unpickle_RawResponseMessag, sizeof(__pyx_k_pyx_unpickle_RawResponseMessag), 0, 0, 1, 1}, {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, {&__pyx_n_s_query_string, __pyx_k_query_string, sizeof(__pyx_k_query_string), 0, 0, 1, 1}, + {&__pyx_kp_u_r, __pyx_k_r, sizeof(__pyx_k_r), 0, 1, 0, 0}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_n_s_raw_headers, __pyx_k_raw_headers, sizeof(__pyx_k_raw_headers), 0, 0, 1, 1}, {&__pyx_n_u_raw_headers, __pyx_k_raw_headers, sizeof(__pyx_k_raw_headers), 0, 1, 0, 1}, @@ -17599,13 +17480,14 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, {&__pyx_n_s_repr___locals_genexpr, __pyx_k_repr___locals_genexpr, sizeof(__pyx_k_repr___locals_genexpr), 0, 0, 1, 1}, {&__pyx_n_s_response_with_body, __pyx_k_response_with_body, sizeof(__pyx_k_response_with_body), 0, 0, 1, 1}, - {&__pyx_n_s_scheme, __pyx_k_scheme, sizeof(__pyx_k_scheme), 0, 0, 1, 1}, + {&__pyx_n_s_rsplit, __pyx_k_rsplit, sizeof(__pyx_k_rsplit), 0, 0, 1, 1}, {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1}, {&__pyx_n_s_set_exception, __pyx_k_set_exception, sizeof(__pyx_k_set_exception), 0, 0, 1, 1}, {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, {&__pyx_n_s_should_close, __pyx_k_should_close, sizeof(__pyx_k_should_close), 0, 0, 1, 1}, {&__pyx_n_u_should_close, __pyx_k_should_close, sizeof(__pyx_k_should_close), 0, 1, 0, 1}, + {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1}, {&__pyx_n_s_streams, __pyx_k_streams, sizeof(__pyx_k_streams), 0, 0, 1, 1}, {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, @@ -17617,7 +17499,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_u_upgrade, __pyx_k_upgrade, sizeof(__pyx_k_upgrade), 0, 1, 0, 1}, {&__pyx_n_s_url, __pyx_k_url, sizeof(__pyx_k_url), 0, 0, 1, 1}, {&__pyx_n_u_url, __pyx_k_url, sizeof(__pyx_k_url), 0, 1, 0, 1}, - {&__pyx_n_s_user, __pyx_k_user, sizeof(__pyx_k_user), 0, 0, 1, 1}, {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1}, {&__pyx_n_u_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 1, 0, 1}, {&__pyx_n_s_yarl, __pyx_k_yarl, sizeof(__pyx_k_yarl), 0, 0, 1, 1}, @@ -17627,7 +17508,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 316, __pyx_L1_error) __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 2, __pyx_L1_error) - __pyx_builtin_BaseException = __Pyx_GetBuiltinName(__pyx_n_s_BaseException); if (!__pyx_builtin_BaseException) __PYX_ERR(0, 631, __pyx_L1_error) + __pyx_builtin_BaseException = __Pyx_GetBuiltinName(__pyx_n_s_BaseException); if (!__pyx_builtin_BaseException) __PYX_ERR(0, 684, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -17637,24 +17518,35 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + /* "aiohttp/_http_parser.pyx":551 + * after = cparser.llhttp_get_error_pos(self._cparser) + * before = data[:after - self.py_buf.buf] + * after_b = after.split(b"\r\n", 1)[0] # <<<<<<<<<<<<<< + * before = before.rsplit(b"\r\n", 1)[-1] + * data = before + after_b + */ + __pyx_tuple__5 = PyTuple_Pack(2, __pyx_kp_b__4, __pyx_int_1); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__5); + __Pyx_GIVEREF(__pyx_tuple__5); + /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__5); - __Pyx_GIVEREF(__pyx_tuple__5); + __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__9); + __Pyx_GIVEREF(__pyx_tuple__9); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__6); - __Pyx_GIVEREF(__pyx_tuple__6); + __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__10); + __Pyx_GIVEREF(__pyx_tuple__10); /* "(tree fragment)":2 * def __reduce_cython__(self): @@ -17662,18 +17554,18 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__7); - __Pyx_GIVEREF(__pyx_tuple__7); + __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__13); + __Pyx_GIVEREF(__pyx_tuple__13); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); + __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__14); + __Pyx_GIVEREF(__pyx_tuple__14); /* "(tree fragment)":2 * def __reduce_cython__(self): @@ -17681,18 +17573,24 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__9); - __Pyx_GIVEREF(__pyx_tuple__9); + __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__15); + __Pyx_GIVEREF(__pyx_tuple__15); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ - __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__10); - __Pyx_GIVEREF(__pyx_tuple__10); + __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__16); + __Pyx_GIVEREF(__pyx_tuple__16); + __pyx_tuple__17 = PyTuple_Pack(3, __pyx_int_21004882, __pyx_int_257960607, __pyx_int_4084195); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__17); + __Pyx_GIVEREF(__pyx_tuple__17); + __pyx_tuple__18 = PyTuple_Pack(3, __pyx_int_209127132, __pyx_int_213037754, __pyx_int_83803150); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__18); + __Pyx_GIVEREF(__pyx_tuple__18); /* "aiohttp/_http_parser.pyx":57 * char* PyByteArray_AsString(object) @@ -17701,35 +17599,23 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { * 'RawRequestMessage', 'RawResponseMessage') * */ - __pyx_tuple__12 = PyTuple_Pack(4, __pyx_n_u_HttpRequestParser, __pyx_n_u_HttpResponseParser, __pyx_n_u_RawRequestMessage_2, __pyx_n_u_RawResponseMessage_2); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 57, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__12); - __Pyx_GIVEREF(__pyx_tuple__12); - - /* "aiohttp/_http_parser.pyx":785 - * - * - * def parse_url(url): # <<<<<<<<<<<<<< - * cdef: - * Py_buffer py_buf - */ - __pyx_tuple__13 = PyTuple_Pack(3, __pyx_n_s_url, __pyx_n_s_py_buf, __pyx_n_s_buf_data); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__13); - __Pyx_GIVEREF(__pyx_tuple__13); - __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_aiohttp__http_parser_pyx, __pyx_n_s_parse_url, 785, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(0, 785, __pyx_L1_error) + __pyx_tuple__19 = PyTuple_Pack(4, __pyx_n_u_HttpRequestParser, __pyx_n_u_HttpResponseParser, __pyx_n_u_RawRequestMessage_2, __pyx_n_u_RawResponseMessage_2); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__19); + __Pyx_GIVEREF(__pyx_tuple__19); /* "(tree fragment)":1 * def __pyx_unpickle_RawRequestMessage(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ - __pyx_tuple__15 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__15); - __Pyx_GIVEREF(__pyx_tuple__15); - __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RawRequestMessage, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(1, 1, __pyx_L1_error) - __pyx_tuple__17 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__17); - __Pyx_GIVEREF(__pyx_tuple__17); - __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RawResponseMessag, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_tuple__20 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__20); + __Pyx_GIVEREF(__pyx_tuple__20); + __pyx_codeobj__21 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__20, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RawRequestMessage, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__21)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_tuple__22 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__22); + __Pyx_GIVEREF(__pyx_tuple__22); + __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RawResponseMessag, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -17738,10 +17624,14 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { } static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { - __pyx_umethod_PyUnicode_Type_partition.type = (PyObject*)&PyUnicode_Type; if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); + __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_4084195 = PyInt_FromLong(4084195L); if (unlikely(!__pyx_int_4084195)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_21004882 = PyInt_FromLong(21004882L); if (unlikely(!__pyx_int_21004882)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_83803150 = PyInt_FromLong(83803150L); if (unlikely(!__pyx_int_83803150)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_209127132 = PyInt_FromLong(209127132L); if (unlikely(!__pyx_int_209127132)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_213037754 = PyInt_FromLong(213037754L); if (unlikely(!__pyx_int_213037754)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_257960607 = PyInt_FromLong(257960607L); if (unlikely(!__pyx_int_257960607)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -17821,7 +17711,7 @@ static int __Pyx_modinit_type_init_code(void) { if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7aiohttp_12_http_parser_RawResponseMessage) < 0) __PYX_ERR(0, 210, __pyx_L1_error) __pyx_ptype_7aiohttp_12_http_parser_RawResponseMessage = &__pyx_type_7aiohttp_12_http_parser_RawResponseMessage; __pyx_vtabptr_7aiohttp_12_http_parser_HttpParser = &__pyx_vtable_7aiohttp_12_http_parser_HttpParser; - __pyx_vtable_7aiohttp_12_http_parser_HttpParser._init = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, enum http_parser_type, PyObject *, PyObject *, int, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args))__pyx_f_7aiohttp_12_http_parser_10HttpParser__init; + __pyx_vtable_7aiohttp_12_http_parser_HttpParser._init = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, enum llhttp_type, PyObject *, PyObject *, int, struct __pyx_opt_args_7aiohttp_12_http_parser_10HttpParser__init *__pyx_optional_args))__pyx_f_7aiohttp_12_http_parser_10HttpParser__init; __pyx_vtable_7aiohttp_12_http_parser_HttpParser._process_header = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_10HttpParser__process_header; __pyx_vtable_7aiohttp_12_http_parser_HttpParser._on_header_field = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, char *, size_t))__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_field; __pyx_vtable_7aiohttp_12_http_parser_HttpParser._on_header_value = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *, char *, size_t))__pyx_f_7aiohttp_12_http_parser_10HttpParser__on_header_value; @@ -17845,31 +17735,31 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_vtable_7aiohttp_12_http_parser_HttpRequestParser.__pyx_base = *__pyx_vtabptr_7aiohttp_12_http_parser_HttpParser; __pyx_vtable_7aiohttp_12_http_parser_HttpRequestParser.__pyx_base._on_status_complete = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_17HttpRequestParser__on_status_complete; __pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_base = __pyx_ptype_7aiohttp_12_http_parser_HttpParser; - if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 563, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 574, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_dictoffset && __pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (__Pyx_SetVtable(__pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_dict, __pyx_vtabptr_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 563, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_HttpRequestParser, (PyObject *)&__pyx_type_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 563, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 563, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_7aiohttp_12_http_parser_HttpRequestParser.tp_dict, __pyx_vtabptr_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 574, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_HttpRequestParser, (PyObject *)&__pyx_type_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 574, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7aiohttp_12_http_parser_HttpRequestParser) < 0) __PYX_ERR(0, 574, __pyx_L1_error) __pyx_ptype_7aiohttp_12_http_parser_HttpRequestParser = &__pyx_type_7aiohttp_12_http_parser_HttpRequestParser; __pyx_vtabptr_7aiohttp_12_http_parser_HttpResponseParser = &__pyx_vtable_7aiohttp_12_http_parser_HttpResponseParser; __pyx_vtable_7aiohttp_12_http_parser_HttpResponseParser.__pyx_base = *__pyx_vtabptr_7aiohttp_12_http_parser_HttpParser; __pyx_vtable_7aiohttp_12_http_parser_HttpResponseParser.__pyx_base._on_status_complete = (PyObject *(*)(struct __pyx_obj_7aiohttp_12_http_parser_HttpParser *))__pyx_f_7aiohttp_12_http_parser_18HttpResponseParser__on_status_complete; __pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_base = __pyx_ptype_7aiohttp_12_http_parser_HttpParser; - if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 591, __pyx_L1_error) + if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 638, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_dictoffset && __pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_getattro = __Pyx_PyObject_GenericGetAttr; } - if (__Pyx_SetVtable(__pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_dict, __pyx_vtabptr_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 591, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_HttpResponseParser, (PyObject *)&__pyx_type_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 591, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 591, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_type_7aiohttp_12_http_parser_HttpResponseParser.tp_dict, __pyx_vtabptr_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 638, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_HttpResponseParser, (PyObject *)&__pyx_type_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 638, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7aiohttp_12_http_parser_HttpResponseParser) < 0) __PYX_ERR(0, 638, __pyx_L1_error) __pyx_ptype_7aiohttp_12_http_parser_HttpResponseParser = &__pyx_type_7aiohttp_12_http_parser_HttpResponseParser; if (PyType_Ready(&__pyx_type_7aiohttp_12_http_parser___pyx_scope_struct____repr__) < 0) __PYX_ERR(0, 135, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 @@ -18136,7 +18026,7 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec__http_parser(PyObject *__pyx_pyini PyObject *__pyx_t_77 = NULL; PyObject *__pyx_t_78 = NULL; long __pyx_t_79; - enum http_method __pyx_t_80; + llhttp_method_t __pyx_t_80; char const *__pyx_t_81; int __pyx_t_82; int __pyx_lineno = 0; @@ -18189,11 +18079,9 @@ if (!__Pyx_RefNanny) { #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS PyEval_InitThreads(); #endif - #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; @@ -18246,14 +18134,14 @@ if (!__Pyx_RefNanny) { if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif - /* "aiohttp/_http_parser.pyx":19 + /* "aiohttp/_http_parser.pyx":18 * from libc.string cimport memcpy * * from multidict import CIMultiDict as _CIMultiDict, CIMultiDictProxy as _CIMultiDictProxy # <<<<<<<<<<<<<< * from yarl import URL as _URL * */ - __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error) + __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_CIMultiDict); __Pyx_GIVEREF(__pyx_n_s_CIMultiDict); @@ -18261,61 +18149,82 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_CIMultiDictProxy); __Pyx_GIVEREF(__pyx_n_s_CIMultiDictProxy); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_CIMultiDictProxy); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_multidict, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error) + __pyx_t_2 = __Pyx_Import(__pyx_n_s_multidict, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CIMultiDict); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CIMultiDict); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CIMultiDict_2, __pyx_t_1) < 0) __PYX_ERR(0, 19, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CIMultiDict_2, __pyx_t_1) < 0) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CIMultiDictProxy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CIMultiDictProxy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CIMultiDictProxy_2, __pyx_t_1) < 0) __PYX_ERR(0, 19, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CIMultiDictProxy_2, __pyx_t_1) < 0) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_parser.pyx":20 + /* "aiohttp/_http_parser.pyx":19 * * from multidict import CIMultiDict as _CIMultiDict, CIMultiDictProxy as _CIMultiDictProxy * from yarl import URL as _URL # <<<<<<<<<<<<<< * * from aiohttp import hdrs */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error) + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_URL); __Pyx_GIVEREF(__pyx_n_s_URL); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_URL); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_yarl, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_n_s_yarl, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_URL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error) + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_URL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_URL_2, __pyx_t_2) < 0) __PYX_ERR(0, 20, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_URL_2, __pyx_t_2) < 0) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_parser.pyx":22 + /* "aiohttp/_http_parser.pyx":21 * from yarl import URL as _URL * * from aiohttp import hdrs # <<<<<<<<<<<<<< + * from aiohttp.helpers import DEBUG * - * from .http_exceptions import ( */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_hdrs); __Pyx_GIVEREF(__pyx_n_s_hdrs); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_hdrs); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_aiohttp, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error) + __pyx_t_2 = __Pyx_Import(__pyx_n_s_aiohttp, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_hdrs, __pyx_t_1) < 0) __PYX_ERR(0, 22, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_hdrs, __pyx_t_1) < 0) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "aiohttp/_http_parser.pyx":22 + * + * from aiohttp import hdrs + * from aiohttp.helpers import DEBUG # <<<<<<<<<<<<<< + * + * from .http_exceptions import ( + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_DEBUG); + __Pyx_GIVEREF(__pyx_n_s_DEBUG); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_DEBUG); + __pyx_t_1 = __Pyx_Import(__pyx_n_s_aiohttp_helpers, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_DEBUG); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEBUG, __pyx_t_2) < 0) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "aiohttp/_http_parser.pyx":25 * * from .http_exceptions import ( @@ -18323,76 +18232,76 @@ if (!__Pyx_RefNanny) { * BadStatusLine, * ContentLengthError, */ - __pyx_t_2 = PyList_New(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_BadHttpMessage); __Pyx_GIVEREF(__pyx_n_s_BadHttpMessage); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_BadHttpMessage); + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_BadHttpMessage); __Pyx_INCREF(__pyx_n_s_BadStatusLine); __Pyx_GIVEREF(__pyx_n_s_BadStatusLine); - PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_BadStatusLine); + PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_BadStatusLine); __Pyx_INCREF(__pyx_n_s_ContentLengthError); __Pyx_GIVEREF(__pyx_n_s_ContentLengthError); - PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_ContentLengthError); + PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_ContentLengthError); __Pyx_INCREF(__pyx_n_s_InvalidHeader); __Pyx_GIVEREF(__pyx_n_s_InvalidHeader); - PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_InvalidHeader); + PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_InvalidHeader); __Pyx_INCREF(__pyx_n_s_InvalidURLError); __Pyx_GIVEREF(__pyx_n_s_InvalidURLError); - PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_InvalidURLError); + PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_s_InvalidURLError); __Pyx_INCREF(__pyx_n_s_LineTooLong); __Pyx_GIVEREF(__pyx_n_s_LineTooLong); - PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_LineTooLong); + PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_s_LineTooLong); __Pyx_INCREF(__pyx_n_s_PayloadEncodingError); __Pyx_GIVEREF(__pyx_n_s_PayloadEncodingError); - PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_PayloadEncodingError); + PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_s_PayloadEncodingError); __Pyx_INCREF(__pyx_n_s_TransferEncodingError); __Pyx_GIVEREF(__pyx_n_s_TransferEncodingError); - PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_s_TransferEncodingError); + PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_s_TransferEncodingError); /* "aiohttp/_http_parser.pyx":24 - * from aiohttp import hdrs + * from aiohttp.helpers import DEBUG * * from .http_exceptions import ( # <<<<<<<<<<<<<< * BadHttpMessage, * BadStatusLine, */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_http_exceptions, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_BadHttpMessage); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_BadHttpMessage, __pyx_t_2) < 0) __PYX_ERR(0, 25, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_BadStatusLine); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_BadStatusLine, __pyx_t_2) < 0) __PYX_ERR(0, 26, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_ContentLengthError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ContentLengthError, __pyx_t_2) < 0) __PYX_ERR(0, 27, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidHeader); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidHeader, __pyx_t_2) < 0) __PYX_ERR(0, 28, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidURLError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidURLError, __pyx_t_2) < 0) __PYX_ERR(0, 29, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LineTooLong, __pyx_t_2) < 0) __PYX_ERR(0, 30, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_PayloadEncodingError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PayloadEncodingError, __pyx_t_2) < 0) __PYX_ERR(0, 31, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_TransferEncodingError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) + __pyx_t_2 = __Pyx_Import(__pyx_n_s_http_exceptions, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TransferEncodingError, __pyx_t_2) < 0) __PYX_ERR(0, 32, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_BadHttpMessage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BadHttpMessage, __pyx_t_1) < 0) __PYX_ERR(0, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_BadStatusLine); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BadStatusLine, __pyx_t_1) < 0) __PYX_ERR(0, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_ContentLengthError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ContentLengthError, __pyx_t_1) < 0) __PYX_ERR(0, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_InvalidHeader); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidHeader, __pyx_t_1) < 0) __PYX_ERR(0, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_InvalidURLError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidURLError, __pyx_t_1) < 0) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_LineTooLong); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LineTooLong, __pyx_t_1) < 0) __PYX_ERR(0, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_PayloadEncodingError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PayloadEncodingError, __pyx_t_1) < 0) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_TransferEncodingError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TransferEncodingError, __pyx_t_1) < 0) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":34 * TransferEncodingError, @@ -18401,19 +18310,19 @@ if (!__Pyx_RefNanny) { * from .http_writer import ( * HttpVersion as _HttpVersion, */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_DeflateBuffer); __Pyx_GIVEREF(__pyx_n_s_DeflateBuffer); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_DeflateBuffer); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_http_parser, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_DeflateBuffer); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_DeflateBuffer); + __pyx_t_1 = __Pyx_Import(__pyx_n_s_http_parser, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DeflateBuffer_2, __pyx_t_1) < 0) __PYX_ERR(0, 34, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_DeflateBuffer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DeflateBuffer_2, __pyx_t_2) < 0) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "aiohttp/_http_parser.pyx":36 * from .http_parser import DeflateBuffer as _DeflateBuffer @@ -18422,17 +18331,17 @@ if (!__Pyx_RefNanny) { * HttpVersion10 as _HttpVersion10, * HttpVersion11 as _HttpVersion11, */ - __pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_HttpVersion); __Pyx_GIVEREF(__pyx_n_s_HttpVersion); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_HttpVersion); + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_HttpVersion); __Pyx_INCREF(__pyx_n_s_HttpVersion10); __Pyx_GIVEREF(__pyx_n_s_HttpVersion10); - PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_HttpVersion10); + PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_HttpVersion10); __Pyx_INCREF(__pyx_n_s_HttpVersion11); __Pyx_GIVEREF(__pyx_n_s_HttpVersion11); - PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_HttpVersion11); + PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_HttpVersion11); /* "aiohttp/_http_parser.pyx":35 * ) @@ -18441,22 +18350,22 @@ if (!__Pyx_RefNanny) { * HttpVersion as _HttpVersion, * HttpVersion10 as _HttpVersion10, */ - __pyx_t_1 = __Pyx_Import(__pyx_n_s_http_writer, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_HttpVersion); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HttpVersion_2, __pyx_t_2) < 0) __PYX_ERR(0, 36, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_HttpVersion10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HttpVersion10_2, __pyx_t_2) < 0) __PYX_ERR(0, 37, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_HttpVersion11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __pyx_t_2 = __Pyx_Import(__pyx_n_s_http_writer, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HttpVersion11_2, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_HttpVersion); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HttpVersion_2, __pyx_t_1) < 0) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_HttpVersion10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HttpVersion10_2, __pyx_t_1) < 0) __PYX_ERR(0, 37, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_HttpVersion11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HttpVersion11_2, __pyx_t_1) < 0) __PYX_ERR(0, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":40 * HttpVersion11 as _HttpVersion11, @@ -18465,26 +18374,26 @@ if (!__Pyx_RefNanny) { * * cimport cython */ - __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_EMPTY_PAYLOAD); __Pyx_GIVEREF(__pyx_n_s_EMPTY_PAYLOAD); - PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_EMPTY_PAYLOAD); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_EMPTY_PAYLOAD); __Pyx_INCREF(__pyx_n_s_StreamReader); __Pyx_GIVEREF(__pyx_n_s_StreamReader); - PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_StreamReader); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_streams, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_EMPTY_PAYLOAD); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_EMPTY_PAYLOAD_2, __pyx_t_1) < 0) __PYX_ERR(0, 40, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_StreamReader); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error) + PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_StreamReader); + __pyx_t_1 = __Pyx_Import(__pyx_n_s_streams, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamReader_2, __pyx_t_1) < 0) __PYX_ERR(0, 40, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_EMPTY_PAYLOAD); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_EMPTY_PAYLOAD_2, __pyx_t_2) < 0) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_StreamReader); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamReader_2, __pyx_t_2) < 0) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "aiohttp/_headers.pxi":4 * # Run ./tools/gen.py to update it after the origin changing. @@ -18493,19 +18402,19 @@ if (!__Pyx_RefNanny) { * cdef tuple headers = ( * hdrs.ACCEPT, */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_hdrs); __Pyx_GIVEREF(__pyx_n_s_hdrs); - PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_hdrs); - __pyx_t_1 = __Pyx_Import(__pyx_n_s__4, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4, __pyx_L1_error) + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_hdrs); + __pyx_t_2 = __Pyx_Import(__pyx_n_s__8, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_hdrs, __pyx_t_2) < 0) __PYX_ERR(5, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_hdrs, __pyx_t_1) < 0) __PYX_ERR(5, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":6 * from . import hdrs @@ -18514,11 +18423,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCEPT_CHARSET, * hdrs.ACCEPT_ENCODING, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCEPT); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCEPT); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":7 * cdef tuple headers = ( @@ -18527,11 +18436,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCEPT_ENCODING, * hdrs.ACCEPT_LANGUAGE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCEPT_CHARSET); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 7, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCEPT_CHARSET); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":8 * hdrs.ACCEPT, @@ -18540,11 +18449,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCEPT_LANGUAGE, * hdrs.ACCEPT_RANGES, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCEPT_ENCODING); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 8, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCEPT_ENCODING); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":9 * hdrs.ACCEPT_CHARSET, @@ -18553,11 +18462,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCEPT_RANGES, * hdrs.ACCESS_CONTROL_ALLOW_CREDENTIALS, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCEPT_LANGUAGE); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 9, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCEPT_LANGUAGE); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":10 * hdrs.ACCEPT_ENCODING, @@ -18566,11 +18475,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCESS_CONTROL_ALLOW_CREDENTIALS, * hdrs.ACCESS_CONTROL_ALLOW_HEADERS, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 10, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCEPT_RANGES); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 10, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCEPT_RANGES); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":11 * hdrs.ACCEPT_LANGUAGE, @@ -18579,11 +18488,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCESS_CONTROL_ALLOW_HEADERS, * hdrs.ACCESS_CONTROL_ALLOW_METHODS, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 11, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_ALLOW_CREDENTIALS); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 11, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCESS_CONTROL_ALLOW_CREDENTIALS); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":12 * hdrs.ACCEPT_RANGES, @@ -18592,11 +18501,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCESS_CONTROL_ALLOW_METHODS, * hdrs.ACCESS_CONTROL_ALLOW_ORIGIN, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_ALLOW_HEADERS); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 12, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCESS_CONTROL_ALLOW_HEADERS); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":13 * hdrs.ACCESS_CONTROL_ALLOW_CREDENTIALS, @@ -18605,11 +18514,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCESS_CONTROL_ALLOW_ORIGIN, * hdrs.ACCESS_CONTROL_EXPOSE_HEADERS, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_ALLOW_METHODS); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 13, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCESS_CONTROL_ALLOW_METHODS); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":14 * hdrs.ACCESS_CONTROL_ALLOW_HEADERS, @@ -18618,11 +18527,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCESS_CONTROL_EXPOSE_HEADERS, * hdrs.ACCESS_CONTROL_MAX_AGE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_ALLOW_ORIGIN); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 14, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCESS_CONTROL_ALLOW_ORIGIN); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":15 * hdrs.ACCESS_CONTROL_ALLOW_METHODS, @@ -18631,11 +18540,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCESS_CONTROL_MAX_AGE, * hdrs.ACCESS_CONTROL_REQUEST_HEADERS, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_EXPOSE_HEADERS); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 15, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCESS_CONTROL_EXPOSE_HEADERS); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":16 * hdrs.ACCESS_CONTROL_ALLOW_ORIGIN, @@ -18644,11 +18553,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCESS_CONTROL_REQUEST_HEADERS, * hdrs.ACCESS_CONTROL_REQUEST_METHOD, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 16, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_MAX_AGE); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 16, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCESS_CONTROL_MAX_AGE); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":17 * hdrs.ACCESS_CONTROL_EXPOSE_HEADERS, @@ -18657,11 +18566,11 @@ if (!__Pyx_RefNanny) { * hdrs.ACCESS_CONTROL_REQUEST_METHOD, * hdrs.AGE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 17, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_REQUEST_HEADERS); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 17, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCESS_CONTROL_REQUEST_HEADERS); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":18 * hdrs.ACCESS_CONTROL_MAX_AGE, @@ -18670,11 +18579,11 @@ if (!__Pyx_RefNanny) { * hdrs.AGE, * hdrs.ALLOW, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 18, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACCESS_CONTROL_REQUEST_METHOD); if (unlikely(!__pyx_t_14)) __PYX_ERR(5, 18, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ACCESS_CONTROL_REQUEST_METHOD); if (unlikely(!__pyx_t_14)) __PYX_ERR(5, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":19 * hdrs.ACCESS_CONTROL_REQUEST_HEADERS, @@ -18683,11 +18592,11 @@ if (!__Pyx_RefNanny) { * hdrs.ALLOW, * hdrs.AUTHORIZATION, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 19, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_AGE); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 19, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_AGE); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 19, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":20 * hdrs.ACCESS_CONTROL_REQUEST_METHOD, @@ -18696,11 +18605,11 @@ if (!__Pyx_RefNanny) { * hdrs.AUTHORIZATION, * hdrs.CACHE_CONTROL, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 20, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ALLOW); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 20, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ALLOW); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 20, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":21 * hdrs.AGE, @@ -18709,11 +18618,11 @@ if (!__Pyx_RefNanny) { * hdrs.CACHE_CONTROL, * hdrs.CONNECTION, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 21, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_AUTHORIZATION); if (unlikely(!__pyx_t_17)) __PYX_ERR(5, 21, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_AUTHORIZATION); if (unlikely(!__pyx_t_17)) __PYX_ERR(5, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":22 * hdrs.ALLOW, @@ -18722,11 +18631,11 @@ if (!__Pyx_RefNanny) { * hdrs.CONNECTION, * hdrs.CONTENT_DISPOSITION, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 22, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CACHE_CONTROL); if (unlikely(!__pyx_t_18)) __PYX_ERR(5, 22, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CACHE_CONTROL); if (unlikely(!__pyx_t_18)) __PYX_ERR(5, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":23 * hdrs.AUTHORIZATION, @@ -18735,11 +18644,11 @@ if (!__Pyx_RefNanny) { * hdrs.CONTENT_DISPOSITION, * hdrs.CONTENT_ENCODING, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 23, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONNECTION); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 23, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CONNECTION); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":24 * hdrs.CACHE_CONTROL, @@ -18748,11 +18657,11 @@ if (!__Pyx_RefNanny) { * hdrs.CONTENT_ENCODING, * hdrs.CONTENT_LANGUAGE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_DISPOSITION); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 24, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CONTENT_DISPOSITION); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":25 * hdrs.CONNECTION, @@ -18761,11 +18670,11 @@ if (!__Pyx_RefNanny) { * hdrs.CONTENT_LANGUAGE, * hdrs.CONTENT_LENGTH, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 25, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_ENCODING); if (unlikely(!__pyx_t_21)) __PYX_ERR(5, 25, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CONTENT_ENCODING); if (unlikely(!__pyx_t_21)) __PYX_ERR(5, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":26 * hdrs.CONTENT_DISPOSITION, @@ -18774,11 +18683,11 @@ if (!__Pyx_RefNanny) { * hdrs.CONTENT_LENGTH, * hdrs.CONTENT_LOCATION, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 26, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_LANGUAGE); if (unlikely(!__pyx_t_22)) __PYX_ERR(5, 26, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CONTENT_LANGUAGE); if (unlikely(!__pyx_t_22)) __PYX_ERR(5, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":27 * hdrs.CONTENT_ENCODING, @@ -18787,11 +18696,11 @@ if (!__Pyx_RefNanny) { * hdrs.CONTENT_LOCATION, * hdrs.CONTENT_MD5, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 27, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_LENGTH); if (unlikely(!__pyx_t_23)) __PYX_ERR(5, 27, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CONTENT_LENGTH); if (unlikely(!__pyx_t_23)) __PYX_ERR(5, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":28 * hdrs.CONTENT_LANGUAGE, @@ -18800,11 +18709,11 @@ if (!__Pyx_RefNanny) { * hdrs.CONTENT_MD5, * hdrs.CONTENT_RANGE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 28, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_LOCATION); if (unlikely(!__pyx_t_24)) __PYX_ERR(5, 28, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CONTENT_LOCATION); if (unlikely(!__pyx_t_24)) __PYX_ERR(5, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":29 * hdrs.CONTENT_LENGTH, @@ -18813,11 +18722,11 @@ if (!__Pyx_RefNanny) { * hdrs.CONTENT_RANGE, * hdrs.CONTENT_TRANSFER_ENCODING, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 29, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_MD5); if (unlikely(!__pyx_t_25)) __PYX_ERR(5, 29, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CONTENT_MD5); if (unlikely(!__pyx_t_25)) __PYX_ERR(5, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":30 * hdrs.CONTENT_LOCATION, @@ -18826,11 +18735,11 @@ if (!__Pyx_RefNanny) { * hdrs.CONTENT_TRANSFER_ENCODING, * hdrs.CONTENT_TYPE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 30, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_RANGE); if (unlikely(!__pyx_t_26)) __PYX_ERR(5, 30, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CONTENT_RANGE); if (unlikely(!__pyx_t_26)) __PYX_ERR(5, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":31 * hdrs.CONTENT_MD5, @@ -18839,11 +18748,11 @@ if (!__Pyx_RefNanny) { * hdrs.CONTENT_TYPE, * hdrs.COOKIE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 31, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_TRANSFER_ENCODING); if (unlikely(!__pyx_t_27)) __PYX_ERR(5, 31, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CONTENT_TRANSFER_ENCODING); if (unlikely(!__pyx_t_27)) __PYX_ERR(5, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":32 * hdrs.CONTENT_RANGE, @@ -18852,11 +18761,11 @@ if (!__Pyx_RefNanny) { * hdrs.COOKIE, * hdrs.DATE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 32, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CONTENT_TYPE); if (unlikely(!__pyx_t_28)) __PYX_ERR(5, 32, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CONTENT_TYPE); if (unlikely(!__pyx_t_28)) __PYX_ERR(5, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_28); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":33 * hdrs.CONTENT_TRANSFER_ENCODING, @@ -18865,11 +18774,11 @@ if (!__Pyx_RefNanny) { * hdrs.DATE, * hdrs.DESTINATION, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 33, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_29 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_COOKIE); if (unlikely(!__pyx_t_29)) __PYX_ERR(5, 33, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_29 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_COOKIE); if (unlikely(!__pyx_t_29)) __PYX_ERR(5, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_29); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":34 * hdrs.CONTENT_TYPE, @@ -18878,11 +18787,11 @@ if (!__Pyx_RefNanny) { * hdrs.DESTINATION, * hdrs.DIGEST, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 34, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_30 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_DATE); if (unlikely(!__pyx_t_30)) __PYX_ERR(5, 34, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_30 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_DATE); if (unlikely(!__pyx_t_30)) __PYX_ERR(5, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_30); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":35 * hdrs.COOKIE, @@ -18891,11 +18800,11 @@ if (!__Pyx_RefNanny) { * hdrs.DIGEST, * hdrs.ETAG, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 35, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_DESTINATION); if (unlikely(!__pyx_t_31)) __PYX_ERR(5, 35, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_DESTINATION); if (unlikely(!__pyx_t_31)) __PYX_ERR(5, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":36 * hdrs.DATE, @@ -18904,11 +18813,11 @@ if (!__Pyx_RefNanny) { * hdrs.ETAG, * hdrs.EXPECT, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 36, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_32 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_DIGEST); if (unlikely(!__pyx_t_32)) __PYX_ERR(5, 36, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_32 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_DIGEST); if (unlikely(!__pyx_t_32)) __PYX_ERR(5, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":37 * hdrs.DESTINATION, @@ -18917,11 +18826,11 @@ if (!__Pyx_RefNanny) { * hdrs.EXPECT, * hdrs.EXPIRES, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 37, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_33 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ETAG); if (unlikely(!__pyx_t_33)) __PYX_ERR(5, 37, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_33 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ETAG); if (unlikely(!__pyx_t_33)) __PYX_ERR(5, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":38 * hdrs.DIGEST, @@ -18930,11 +18839,11 @@ if (!__Pyx_RefNanny) { * hdrs.EXPIRES, * hdrs.FORWARDED, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 38, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_34 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_EXPECT); if (unlikely(!__pyx_t_34)) __PYX_ERR(5, 38, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_34 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_EXPECT); if (unlikely(!__pyx_t_34)) __PYX_ERR(5, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_34); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":39 * hdrs.ETAG, @@ -18943,11 +18852,11 @@ if (!__Pyx_RefNanny) { * hdrs.FORWARDED, * hdrs.FROM, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 39, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_35 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_EXPIRES); if (unlikely(!__pyx_t_35)) __PYX_ERR(5, 39, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_35 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_EXPIRES); if (unlikely(!__pyx_t_35)) __PYX_ERR(5, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_35); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":40 * hdrs.EXPECT, @@ -18956,11 +18865,11 @@ if (!__Pyx_RefNanny) { * hdrs.FROM, * hdrs.HOST, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 40, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_FORWARDED); if (unlikely(!__pyx_t_36)) __PYX_ERR(5, 40, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FORWARDED); if (unlikely(!__pyx_t_36)) __PYX_ERR(5, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_36); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":41 * hdrs.EXPIRES, @@ -18969,11 +18878,11 @@ if (!__Pyx_RefNanny) { * hdrs.HOST, * hdrs.IF_MATCH, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_FROM); if (unlikely(!__pyx_t_37)) __PYX_ERR(5, 41, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FROM); if (unlikely(!__pyx_t_37)) __PYX_ERR(5, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_37); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":42 * hdrs.FORWARDED, @@ -18982,11 +18891,11 @@ if (!__Pyx_RefNanny) { * hdrs.IF_MATCH, * hdrs.IF_MODIFIED_SINCE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 42, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_38 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_HOST); if (unlikely(!__pyx_t_38)) __PYX_ERR(5, 42, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_38 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_HOST); if (unlikely(!__pyx_t_38)) __PYX_ERR(5, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_38); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":43 * hdrs.FROM, @@ -18995,11 +18904,11 @@ if (!__Pyx_RefNanny) { * hdrs.IF_MODIFIED_SINCE, * hdrs.IF_NONE_MATCH, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 43, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_39 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_IF_MATCH); if (unlikely(!__pyx_t_39)) __PYX_ERR(5, 43, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_39 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IF_MATCH); if (unlikely(!__pyx_t_39)) __PYX_ERR(5, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_39); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":44 * hdrs.HOST, @@ -19008,11 +18917,11 @@ if (!__Pyx_RefNanny) { * hdrs.IF_NONE_MATCH, * hdrs.IF_RANGE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 44, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_40 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_IF_MODIFIED_SINCE); if (unlikely(!__pyx_t_40)) __PYX_ERR(5, 44, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_40 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IF_MODIFIED_SINCE); if (unlikely(!__pyx_t_40)) __PYX_ERR(5, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_40); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":45 * hdrs.IF_MATCH, @@ -19021,11 +18930,11 @@ if (!__Pyx_RefNanny) { * hdrs.IF_RANGE, * hdrs.IF_UNMODIFIED_SINCE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 45, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_41 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_IF_NONE_MATCH); if (unlikely(!__pyx_t_41)) __PYX_ERR(5, 45, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_41 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IF_NONE_MATCH); if (unlikely(!__pyx_t_41)) __PYX_ERR(5, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":46 * hdrs.IF_MODIFIED_SINCE, @@ -19034,11 +18943,11 @@ if (!__Pyx_RefNanny) { * hdrs.IF_UNMODIFIED_SINCE, * hdrs.KEEP_ALIVE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 46, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_42 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_IF_RANGE); if (unlikely(!__pyx_t_42)) __PYX_ERR(5, 46, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_42 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IF_RANGE); if (unlikely(!__pyx_t_42)) __PYX_ERR(5, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_42); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":47 * hdrs.IF_NONE_MATCH, @@ -19047,11 +18956,11 @@ if (!__Pyx_RefNanny) { * hdrs.KEEP_ALIVE, * hdrs.LAST_EVENT_ID, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_43 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_IF_UNMODIFIED_SINCE); if (unlikely(!__pyx_t_43)) __PYX_ERR(5, 47, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_43 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IF_UNMODIFIED_SINCE); if (unlikely(!__pyx_t_43)) __PYX_ERR(5, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_43); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":48 * hdrs.IF_RANGE, @@ -19060,11 +18969,11 @@ if (!__Pyx_RefNanny) { * hdrs.LAST_EVENT_ID, * hdrs.LAST_MODIFIED, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 48, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_44 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_KEEP_ALIVE); if (unlikely(!__pyx_t_44)) __PYX_ERR(5, 48, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_44 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_KEEP_ALIVE); if (unlikely(!__pyx_t_44)) __PYX_ERR(5, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_44); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":49 * hdrs.IF_UNMODIFIED_SINCE, @@ -19073,11 +18982,11 @@ if (!__Pyx_RefNanny) { * hdrs.LAST_MODIFIED, * hdrs.LINK, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 49, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_45 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_LAST_EVENT_ID); if (unlikely(!__pyx_t_45)) __PYX_ERR(5, 49, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_45 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_LAST_EVENT_ID); if (unlikely(!__pyx_t_45)) __PYX_ERR(5, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_45); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":50 * hdrs.KEEP_ALIVE, @@ -19086,11 +18995,11 @@ if (!__Pyx_RefNanny) { * hdrs.LINK, * hdrs.LOCATION, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 50, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_46 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_LAST_MODIFIED); if (unlikely(!__pyx_t_46)) __PYX_ERR(5, 50, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_46 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_LAST_MODIFIED); if (unlikely(!__pyx_t_46)) __PYX_ERR(5, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_46); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":51 * hdrs.LAST_EVENT_ID, @@ -19099,11 +19008,11 @@ if (!__Pyx_RefNanny) { * hdrs.LOCATION, * hdrs.MAX_FORWARDS, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 51, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_47 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_LINK); if (unlikely(!__pyx_t_47)) __PYX_ERR(5, 51, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_47 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_LINK); if (unlikely(!__pyx_t_47)) __PYX_ERR(5, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_47); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":52 * hdrs.LAST_MODIFIED, @@ -19112,11 +19021,11 @@ if (!__Pyx_RefNanny) { * hdrs.MAX_FORWARDS, * hdrs.ORIGIN, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 52, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_48 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_LOCATION); if (unlikely(!__pyx_t_48)) __PYX_ERR(5, 52, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_48 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_LOCATION); if (unlikely(!__pyx_t_48)) __PYX_ERR(5, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_48); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":53 * hdrs.LINK, @@ -19125,11 +19034,11 @@ if (!__Pyx_RefNanny) { * hdrs.ORIGIN, * hdrs.PRAGMA, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 53, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_49 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_MAX_FORWARDS); if (unlikely(!__pyx_t_49)) __PYX_ERR(5, 53, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_49 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_MAX_FORWARDS); if (unlikely(!__pyx_t_49)) __PYX_ERR(5, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_49); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":54 * hdrs.LOCATION, @@ -19138,11 +19047,11 @@ if (!__Pyx_RefNanny) { * hdrs.PRAGMA, * hdrs.PROXY_AUTHENTICATE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 54, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_50 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ORIGIN); if (unlikely(!__pyx_t_50)) __PYX_ERR(5, 54, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_50 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ORIGIN); if (unlikely(!__pyx_t_50)) __PYX_ERR(5, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_50); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":55 * hdrs.MAX_FORWARDS, @@ -19151,11 +19060,11 @@ if (!__Pyx_RefNanny) { * hdrs.PROXY_AUTHENTICATE, * hdrs.PROXY_AUTHORIZATION, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 55, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_51 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_PRAGMA); if (unlikely(!__pyx_t_51)) __PYX_ERR(5, 55, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_51 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_PRAGMA); if (unlikely(!__pyx_t_51)) __PYX_ERR(5, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_51); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":56 * hdrs.ORIGIN, @@ -19164,11 +19073,11 @@ if (!__Pyx_RefNanny) { * hdrs.PROXY_AUTHORIZATION, * hdrs.RANGE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 56, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_52 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_PROXY_AUTHENTICATE); if (unlikely(!__pyx_t_52)) __PYX_ERR(5, 56, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_52 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_PROXY_AUTHENTICATE); if (unlikely(!__pyx_t_52)) __PYX_ERR(5, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_52); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":57 * hdrs.PRAGMA, @@ -19177,11 +19086,11 @@ if (!__Pyx_RefNanny) { * hdrs.RANGE, * hdrs.REFERER, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 57, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_PROXY_AUTHORIZATION); if (unlikely(!__pyx_t_53)) __PYX_ERR(5, 57, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_PROXY_AUTHORIZATION); if (unlikely(!__pyx_t_53)) __PYX_ERR(5, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":58 * hdrs.PROXY_AUTHENTICATE, @@ -19190,11 +19099,11 @@ if (!__Pyx_RefNanny) { * hdrs.REFERER, * hdrs.RETRY_AFTER, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 58, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_54 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_RANGE); if (unlikely(!__pyx_t_54)) __PYX_ERR(5, 58, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_54 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_RANGE); if (unlikely(!__pyx_t_54)) __PYX_ERR(5, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":59 * hdrs.PROXY_AUTHORIZATION, @@ -19203,11 +19112,11 @@ if (!__Pyx_RefNanny) { * hdrs.RETRY_AFTER, * hdrs.SEC_WEBSOCKET_ACCEPT, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 59, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_55 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_REFERER); if (unlikely(!__pyx_t_55)) __PYX_ERR(5, 59, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_55 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_REFERER); if (unlikely(!__pyx_t_55)) __PYX_ERR(5, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_55); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":60 * hdrs.RANGE, @@ -19216,11 +19125,11 @@ if (!__Pyx_RefNanny) { * hdrs.SEC_WEBSOCKET_ACCEPT, * hdrs.SEC_WEBSOCKET_EXTENSIONS, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_RETRY_AFTER); if (unlikely(!__pyx_t_56)) __PYX_ERR(5, 60, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_RETRY_AFTER); if (unlikely(!__pyx_t_56)) __PYX_ERR(5, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_56); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":61 * hdrs.REFERER, @@ -19229,11 +19138,11 @@ if (!__Pyx_RefNanny) { * hdrs.SEC_WEBSOCKET_EXTENSIONS, * hdrs.SEC_WEBSOCKET_KEY, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_ACCEPT); if (unlikely(!__pyx_t_57)) __PYX_ERR(5, 61, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SEC_WEBSOCKET_ACCEPT); if (unlikely(!__pyx_t_57)) __PYX_ERR(5, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_57); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":62 * hdrs.RETRY_AFTER, @@ -19242,11 +19151,11 @@ if (!__Pyx_RefNanny) { * hdrs.SEC_WEBSOCKET_KEY, * hdrs.SEC_WEBSOCKET_KEY1, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_EXTENSIONS); if (unlikely(!__pyx_t_58)) __PYX_ERR(5, 62, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SEC_WEBSOCKET_EXTENSIONS); if (unlikely(!__pyx_t_58)) __PYX_ERR(5, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_58); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":63 * hdrs.SEC_WEBSOCKET_ACCEPT, @@ -19255,11 +19164,11 @@ if (!__Pyx_RefNanny) { * hdrs.SEC_WEBSOCKET_KEY1, * hdrs.SEC_WEBSOCKET_PROTOCOL, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 63, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_59 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_KEY); if (unlikely(!__pyx_t_59)) __PYX_ERR(5, 63, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_59 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SEC_WEBSOCKET_KEY); if (unlikely(!__pyx_t_59)) __PYX_ERR(5, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_59); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":64 * hdrs.SEC_WEBSOCKET_EXTENSIONS, @@ -19268,11 +19177,11 @@ if (!__Pyx_RefNanny) { * hdrs.SEC_WEBSOCKET_PROTOCOL, * hdrs.SEC_WEBSOCKET_VERSION, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 64, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_60 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_KEY1); if (unlikely(!__pyx_t_60)) __PYX_ERR(5, 64, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_60 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SEC_WEBSOCKET_KEY1); if (unlikely(!__pyx_t_60)) __PYX_ERR(5, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_60); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":65 * hdrs.SEC_WEBSOCKET_KEY, @@ -19281,11 +19190,11 @@ if (!__Pyx_RefNanny) { * hdrs.SEC_WEBSOCKET_VERSION, * hdrs.SERVER, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 65, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_61 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_PROTOCOL); if (unlikely(!__pyx_t_61)) __PYX_ERR(5, 65, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_61 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SEC_WEBSOCKET_PROTOCOL); if (unlikely(!__pyx_t_61)) __PYX_ERR(5, 65, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_61); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":66 * hdrs.SEC_WEBSOCKET_KEY1, @@ -19294,11 +19203,11 @@ if (!__Pyx_RefNanny) { * hdrs.SERVER, * hdrs.SET_COOKIE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 66, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_62 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_VERSION); if (unlikely(!__pyx_t_62)) __PYX_ERR(5, 66, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_62 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SEC_WEBSOCKET_VERSION); if (unlikely(!__pyx_t_62)) __PYX_ERR(5, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_62); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":67 * hdrs.SEC_WEBSOCKET_PROTOCOL, @@ -19307,11 +19216,11 @@ if (!__Pyx_RefNanny) { * hdrs.SET_COOKIE, * hdrs.TE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_63 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SERVER); if (unlikely(!__pyx_t_63)) __PYX_ERR(5, 67, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_63 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SERVER); if (unlikely(!__pyx_t_63)) __PYX_ERR(5, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_63); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":68 * hdrs.SEC_WEBSOCKET_VERSION, @@ -19320,11 +19229,11 @@ if (!__Pyx_RefNanny) { * hdrs.TE, * hdrs.TRAILER, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_64 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SET_COOKIE); if (unlikely(!__pyx_t_64)) __PYX_ERR(5, 68, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_64 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SET_COOKIE); if (unlikely(!__pyx_t_64)) __PYX_ERR(5, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_64); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":69 * hdrs.SERVER, @@ -19333,11 +19242,11 @@ if (!__Pyx_RefNanny) { * hdrs.TRAILER, * hdrs.TRANSFER_ENCODING, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 69, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_65 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_TE); if (unlikely(!__pyx_t_65)) __PYX_ERR(5, 69, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_65 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_TE); if (unlikely(!__pyx_t_65)) __PYX_ERR(5, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_65); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":70 * hdrs.SET_COOKIE, @@ -19346,11 +19255,11 @@ if (!__Pyx_RefNanny) { * hdrs.TRANSFER_ENCODING, * hdrs.URI, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 70, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_66 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_TRAILER); if (unlikely(!__pyx_t_66)) __PYX_ERR(5, 70, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_66 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_TRAILER); if (unlikely(!__pyx_t_66)) __PYX_ERR(5, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_66); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":71 * hdrs.TE, @@ -19359,11 +19268,11 @@ if (!__Pyx_RefNanny) { * hdrs.URI, * hdrs.UPGRADE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 71, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_67 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_TRANSFER_ENCODING); if (unlikely(!__pyx_t_67)) __PYX_ERR(5, 71, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_67 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_TRANSFER_ENCODING); if (unlikely(!__pyx_t_67)) __PYX_ERR(5, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_67); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":72 * hdrs.TRAILER, @@ -19372,11 +19281,11 @@ if (!__Pyx_RefNanny) { * hdrs.UPGRADE, * hdrs.USER_AGENT, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_68 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_URI); if (unlikely(!__pyx_t_68)) __PYX_ERR(5, 72, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_68 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_URI); if (unlikely(!__pyx_t_68)) __PYX_ERR(5, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_68); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":73 * hdrs.TRANSFER_ENCODING, @@ -19385,11 +19294,11 @@ if (!__Pyx_RefNanny) { * hdrs.USER_AGENT, * hdrs.VARY, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 73, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_69 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_UPGRADE); if (unlikely(!__pyx_t_69)) __PYX_ERR(5, 73, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_69 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_UPGRADE); if (unlikely(!__pyx_t_69)) __PYX_ERR(5, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_69); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":74 * hdrs.URI, @@ -19398,11 +19307,11 @@ if (!__Pyx_RefNanny) { * hdrs.VARY, * hdrs.VIA, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 74, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_70 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_USER_AGENT); if (unlikely(!__pyx_t_70)) __PYX_ERR(5, 74, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_70 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_USER_AGENT); if (unlikely(!__pyx_t_70)) __PYX_ERR(5, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_70); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":75 * hdrs.UPGRADE, @@ -19411,11 +19320,11 @@ if (!__Pyx_RefNanny) { * hdrs.VIA, * hdrs.WWW_AUTHENTICATE, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 75, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_71 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_VARY); if (unlikely(!__pyx_t_71)) __PYX_ERR(5, 75, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_71 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_VARY); if (unlikely(!__pyx_t_71)) __PYX_ERR(5, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_71); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":76 * hdrs.USER_AGENT, @@ -19424,11 +19333,11 @@ if (!__Pyx_RefNanny) { * hdrs.WWW_AUTHENTICATE, * hdrs.WANT_DIGEST, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 76, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_72 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_VIA); if (unlikely(!__pyx_t_72)) __PYX_ERR(5, 76, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_72 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_VIA); if (unlikely(!__pyx_t_72)) __PYX_ERR(5, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_72); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":77 * hdrs.VARY, @@ -19437,11 +19346,11 @@ if (!__Pyx_RefNanny) { * hdrs.WANT_DIGEST, * hdrs.WARNING, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_73 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_WWW_AUTHENTICATE); if (unlikely(!__pyx_t_73)) __PYX_ERR(5, 77, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_73 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_WWW_AUTHENTICATE); if (unlikely(!__pyx_t_73)) __PYX_ERR(5, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_73); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":78 * hdrs.VIA, @@ -19450,11 +19359,11 @@ if (!__Pyx_RefNanny) { * hdrs.WARNING, * hdrs.X_FORWARDED_FOR, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 78, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_74 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_WANT_DIGEST); if (unlikely(!__pyx_t_74)) __PYX_ERR(5, 78, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_74 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_WANT_DIGEST); if (unlikely(!__pyx_t_74)) __PYX_ERR(5, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_74); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":79 * hdrs.WWW_AUTHENTICATE, @@ -19463,11 +19372,11 @@ if (!__Pyx_RefNanny) { * hdrs.X_FORWARDED_FOR, * hdrs.X_FORWARDED_HOST, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 79, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_75 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_WARNING); if (unlikely(!__pyx_t_75)) __PYX_ERR(5, 79, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_75 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_WARNING); if (unlikely(!__pyx_t_75)) __PYX_ERR(5, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_75); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":80 * hdrs.WANT_DIGEST, @@ -19476,11 +19385,11 @@ if (!__Pyx_RefNanny) { * hdrs.X_FORWARDED_HOST, * hdrs.X_FORWARDED_PROTO, */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 80, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_76 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_X_FORWARDED_FOR); if (unlikely(!__pyx_t_76)) __PYX_ERR(5, 80, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_76 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_X_FORWARDED_FOR); if (unlikely(!__pyx_t_76)) __PYX_ERR(5, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_76); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":81 * hdrs.WARNING, @@ -19489,11 +19398,11 @@ if (!__Pyx_RefNanny) { * hdrs.X_FORWARDED_PROTO, * ) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 81, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_77 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_X_FORWARDED_HOST); if (unlikely(!__pyx_t_77)) __PYX_ERR(5, 81, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_77 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_X_FORWARDED_HOST); if (unlikely(!__pyx_t_77)) __PYX_ERR(5, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_77); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":82 * hdrs.X_FORWARDED_FOR, @@ -19501,11 +19410,11 @@ if (!__Pyx_RefNanny) { * hdrs.X_FORWARDED_PROTO, # <<<<<<<<<<<<<< * ) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_78 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_X_FORWARDED_PROTO); if (unlikely(!__pyx_t_78)) __PYX_ERR(5, 82, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_78 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_X_FORWARDED_PROTO); if (unlikely(!__pyx_t_78)) __PYX_ERR(5, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_78); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_headers.pxi":6 * from . import hdrs @@ -19514,163 +19423,163 @@ if (!__Pyx_RefNanny) { * hdrs.ACCEPT_CHARSET, * hdrs.ACCEPT_ENCODING, */ - __pyx_t_1 = PyTuple_New(77); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); + __pyx_t_2 = PyTuple_New(77); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); - PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_2, 6, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_9); - PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_2, 7, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_10); - PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_t_10); + PyTuple_SET_ITEM(__pyx_t_2, 8, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_11); - PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_t_11); + PyTuple_SET_ITEM(__pyx_t_2, 9, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_12); - PyTuple_SET_ITEM(__pyx_t_1, 10, __pyx_t_12); + PyTuple_SET_ITEM(__pyx_t_2, 10, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_13); - PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_t_13); + PyTuple_SET_ITEM(__pyx_t_2, 11, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_14); - PyTuple_SET_ITEM(__pyx_t_1, 12, __pyx_t_14); + PyTuple_SET_ITEM(__pyx_t_2, 12, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_15); - PyTuple_SET_ITEM(__pyx_t_1, 13, __pyx_t_15); + PyTuple_SET_ITEM(__pyx_t_2, 13, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_16); - PyTuple_SET_ITEM(__pyx_t_1, 14, __pyx_t_16); + PyTuple_SET_ITEM(__pyx_t_2, 14, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_17); - PyTuple_SET_ITEM(__pyx_t_1, 15, __pyx_t_17); + PyTuple_SET_ITEM(__pyx_t_2, 15, __pyx_t_17); __Pyx_GIVEREF(__pyx_t_18); - PyTuple_SET_ITEM(__pyx_t_1, 16, __pyx_t_18); + PyTuple_SET_ITEM(__pyx_t_2, 16, __pyx_t_18); __Pyx_GIVEREF(__pyx_t_19); - PyTuple_SET_ITEM(__pyx_t_1, 17, __pyx_t_19); + PyTuple_SET_ITEM(__pyx_t_2, 17, __pyx_t_19); __Pyx_GIVEREF(__pyx_t_20); - PyTuple_SET_ITEM(__pyx_t_1, 18, __pyx_t_20); + PyTuple_SET_ITEM(__pyx_t_2, 18, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_21); - PyTuple_SET_ITEM(__pyx_t_1, 19, __pyx_t_21); + PyTuple_SET_ITEM(__pyx_t_2, 19, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_22); - PyTuple_SET_ITEM(__pyx_t_1, 20, __pyx_t_22); + PyTuple_SET_ITEM(__pyx_t_2, 20, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_23); - PyTuple_SET_ITEM(__pyx_t_1, 21, __pyx_t_23); + PyTuple_SET_ITEM(__pyx_t_2, 21, __pyx_t_23); __Pyx_GIVEREF(__pyx_t_24); - PyTuple_SET_ITEM(__pyx_t_1, 22, __pyx_t_24); + PyTuple_SET_ITEM(__pyx_t_2, 22, __pyx_t_24); __Pyx_GIVEREF(__pyx_t_25); - PyTuple_SET_ITEM(__pyx_t_1, 23, __pyx_t_25); + PyTuple_SET_ITEM(__pyx_t_2, 23, __pyx_t_25); __Pyx_GIVEREF(__pyx_t_26); - PyTuple_SET_ITEM(__pyx_t_1, 24, __pyx_t_26); + PyTuple_SET_ITEM(__pyx_t_2, 24, __pyx_t_26); __Pyx_GIVEREF(__pyx_t_27); - PyTuple_SET_ITEM(__pyx_t_1, 25, __pyx_t_27); + PyTuple_SET_ITEM(__pyx_t_2, 25, __pyx_t_27); __Pyx_GIVEREF(__pyx_t_28); - PyTuple_SET_ITEM(__pyx_t_1, 26, __pyx_t_28); + PyTuple_SET_ITEM(__pyx_t_2, 26, __pyx_t_28); __Pyx_GIVEREF(__pyx_t_29); - PyTuple_SET_ITEM(__pyx_t_1, 27, __pyx_t_29); + PyTuple_SET_ITEM(__pyx_t_2, 27, __pyx_t_29); __Pyx_GIVEREF(__pyx_t_30); - PyTuple_SET_ITEM(__pyx_t_1, 28, __pyx_t_30); + PyTuple_SET_ITEM(__pyx_t_2, 28, __pyx_t_30); __Pyx_GIVEREF(__pyx_t_31); - PyTuple_SET_ITEM(__pyx_t_1, 29, __pyx_t_31); + PyTuple_SET_ITEM(__pyx_t_2, 29, __pyx_t_31); __Pyx_GIVEREF(__pyx_t_32); - PyTuple_SET_ITEM(__pyx_t_1, 30, __pyx_t_32); + PyTuple_SET_ITEM(__pyx_t_2, 30, __pyx_t_32); __Pyx_GIVEREF(__pyx_t_33); - PyTuple_SET_ITEM(__pyx_t_1, 31, __pyx_t_33); + PyTuple_SET_ITEM(__pyx_t_2, 31, __pyx_t_33); __Pyx_GIVEREF(__pyx_t_34); - PyTuple_SET_ITEM(__pyx_t_1, 32, __pyx_t_34); + PyTuple_SET_ITEM(__pyx_t_2, 32, __pyx_t_34); __Pyx_GIVEREF(__pyx_t_35); - PyTuple_SET_ITEM(__pyx_t_1, 33, __pyx_t_35); + PyTuple_SET_ITEM(__pyx_t_2, 33, __pyx_t_35); __Pyx_GIVEREF(__pyx_t_36); - PyTuple_SET_ITEM(__pyx_t_1, 34, __pyx_t_36); + PyTuple_SET_ITEM(__pyx_t_2, 34, __pyx_t_36); __Pyx_GIVEREF(__pyx_t_37); - PyTuple_SET_ITEM(__pyx_t_1, 35, __pyx_t_37); + PyTuple_SET_ITEM(__pyx_t_2, 35, __pyx_t_37); __Pyx_GIVEREF(__pyx_t_38); - PyTuple_SET_ITEM(__pyx_t_1, 36, __pyx_t_38); + PyTuple_SET_ITEM(__pyx_t_2, 36, __pyx_t_38); __Pyx_GIVEREF(__pyx_t_39); - PyTuple_SET_ITEM(__pyx_t_1, 37, __pyx_t_39); + PyTuple_SET_ITEM(__pyx_t_2, 37, __pyx_t_39); __Pyx_GIVEREF(__pyx_t_40); - PyTuple_SET_ITEM(__pyx_t_1, 38, __pyx_t_40); + PyTuple_SET_ITEM(__pyx_t_2, 38, __pyx_t_40); __Pyx_GIVEREF(__pyx_t_41); - PyTuple_SET_ITEM(__pyx_t_1, 39, __pyx_t_41); + PyTuple_SET_ITEM(__pyx_t_2, 39, __pyx_t_41); __Pyx_GIVEREF(__pyx_t_42); - PyTuple_SET_ITEM(__pyx_t_1, 40, __pyx_t_42); + PyTuple_SET_ITEM(__pyx_t_2, 40, __pyx_t_42); __Pyx_GIVEREF(__pyx_t_43); - PyTuple_SET_ITEM(__pyx_t_1, 41, __pyx_t_43); + PyTuple_SET_ITEM(__pyx_t_2, 41, __pyx_t_43); __Pyx_GIVEREF(__pyx_t_44); - PyTuple_SET_ITEM(__pyx_t_1, 42, __pyx_t_44); + PyTuple_SET_ITEM(__pyx_t_2, 42, __pyx_t_44); __Pyx_GIVEREF(__pyx_t_45); - PyTuple_SET_ITEM(__pyx_t_1, 43, __pyx_t_45); + PyTuple_SET_ITEM(__pyx_t_2, 43, __pyx_t_45); __Pyx_GIVEREF(__pyx_t_46); - PyTuple_SET_ITEM(__pyx_t_1, 44, __pyx_t_46); + PyTuple_SET_ITEM(__pyx_t_2, 44, __pyx_t_46); __Pyx_GIVEREF(__pyx_t_47); - PyTuple_SET_ITEM(__pyx_t_1, 45, __pyx_t_47); + PyTuple_SET_ITEM(__pyx_t_2, 45, __pyx_t_47); __Pyx_GIVEREF(__pyx_t_48); - PyTuple_SET_ITEM(__pyx_t_1, 46, __pyx_t_48); + PyTuple_SET_ITEM(__pyx_t_2, 46, __pyx_t_48); __Pyx_GIVEREF(__pyx_t_49); - PyTuple_SET_ITEM(__pyx_t_1, 47, __pyx_t_49); + PyTuple_SET_ITEM(__pyx_t_2, 47, __pyx_t_49); __Pyx_GIVEREF(__pyx_t_50); - PyTuple_SET_ITEM(__pyx_t_1, 48, __pyx_t_50); + PyTuple_SET_ITEM(__pyx_t_2, 48, __pyx_t_50); __Pyx_GIVEREF(__pyx_t_51); - PyTuple_SET_ITEM(__pyx_t_1, 49, __pyx_t_51); + PyTuple_SET_ITEM(__pyx_t_2, 49, __pyx_t_51); __Pyx_GIVEREF(__pyx_t_52); - PyTuple_SET_ITEM(__pyx_t_1, 50, __pyx_t_52); + PyTuple_SET_ITEM(__pyx_t_2, 50, __pyx_t_52); __Pyx_GIVEREF(__pyx_t_53); - PyTuple_SET_ITEM(__pyx_t_1, 51, __pyx_t_53); + PyTuple_SET_ITEM(__pyx_t_2, 51, __pyx_t_53); __Pyx_GIVEREF(__pyx_t_54); - PyTuple_SET_ITEM(__pyx_t_1, 52, __pyx_t_54); + PyTuple_SET_ITEM(__pyx_t_2, 52, __pyx_t_54); __Pyx_GIVEREF(__pyx_t_55); - PyTuple_SET_ITEM(__pyx_t_1, 53, __pyx_t_55); + PyTuple_SET_ITEM(__pyx_t_2, 53, __pyx_t_55); __Pyx_GIVEREF(__pyx_t_56); - PyTuple_SET_ITEM(__pyx_t_1, 54, __pyx_t_56); + PyTuple_SET_ITEM(__pyx_t_2, 54, __pyx_t_56); __Pyx_GIVEREF(__pyx_t_57); - PyTuple_SET_ITEM(__pyx_t_1, 55, __pyx_t_57); + PyTuple_SET_ITEM(__pyx_t_2, 55, __pyx_t_57); __Pyx_GIVEREF(__pyx_t_58); - PyTuple_SET_ITEM(__pyx_t_1, 56, __pyx_t_58); + PyTuple_SET_ITEM(__pyx_t_2, 56, __pyx_t_58); __Pyx_GIVEREF(__pyx_t_59); - PyTuple_SET_ITEM(__pyx_t_1, 57, __pyx_t_59); + PyTuple_SET_ITEM(__pyx_t_2, 57, __pyx_t_59); __Pyx_GIVEREF(__pyx_t_60); - PyTuple_SET_ITEM(__pyx_t_1, 58, __pyx_t_60); + PyTuple_SET_ITEM(__pyx_t_2, 58, __pyx_t_60); __Pyx_GIVEREF(__pyx_t_61); - PyTuple_SET_ITEM(__pyx_t_1, 59, __pyx_t_61); + PyTuple_SET_ITEM(__pyx_t_2, 59, __pyx_t_61); __Pyx_GIVEREF(__pyx_t_62); - PyTuple_SET_ITEM(__pyx_t_1, 60, __pyx_t_62); + PyTuple_SET_ITEM(__pyx_t_2, 60, __pyx_t_62); __Pyx_GIVEREF(__pyx_t_63); - PyTuple_SET_ITEM(__pyx_t_1, 61, __pyx_t_63); + PyTuple_SET_ITEM(__pyx_t_2, 61, __pyx_t_63); __Pyx_GIVEREF(__pyx_t_64); - PyTuple_SET_ITEM(__pyx_t_1, 62, __pyx_t_64); + PyTuple_SET_ITEM(__pyx_t_2, 62, __pyx_t_64); __Pyx_GIVEREF(__pyx_t_65); - PyTuple_SET_ITEM(__pyx_t_1, 63, __pyx_t_65); + PyTuple_SET_ITEM(__pyx_t_2, 63, __pyx_t_65); __Pyx_GIVEREF(__pyx_t_66); - PyTuple_SET_ITEM(__pyx_t_1, 64, __pyx_t_66); + PyTuple_SET_ITEM(__pyx_t_2, 64, __pyx_t_66); __Pyx_GIVEREF(__pyx_t_67); - PyTuple_SET_ITEM(__pyx_t_1, 65, __pyx_t_67); + PyTuple_SET_ITEM(__pyx_t_2, 65, __pyx_t_67); __Pyx_GIVEREF(__pyx_t_68); - PyTuple_SET_ITEM(__pyx_t_1, 66, __pyx_t_68); + PyTuple_SET_ITEM(__pyx_t_2, 66, __pyx_t_68); __Pyx_GIVEREF(__pyx_t_69); - PyTuple_SET_ITEM(__pyx_t_1, 67, __pyx_t_69); + PyTuple_SET_ITEM(__pyx_t_2, 67, __pyx_t_69); __Pyx_GIVEREF(__pyx_t_70); - PyTuple_SET_ITEM(__pyx_t_1, 68, __pyx_t_70); + PyTuple_SET_ITEM(__pyx_t_2, 68, __pyx_t_70); __Pyx_GIVEREF(__pyx_t_71); - PyTuple_SET_ITEM(__pyx_t_1, 69, __pyx_t_71); + PyTuple_SET_ITEM(__pyx_t_2, 69, __pyx_t_71); __Pyx_GIVEREF(__pyx_t_72); - PyTuple_SET_ITEM(__pyx_t_1, 70, __pyx_t_72); + PyTuple_SET_ITEM(__pyx_t_2, 70, __pyx_t_72); __Pyx_GIVEREF(__pyx_t_73); - PyTuple_SET_ITEM(__pyx_t_1, 71, __pyx_t_73); + PyTuple_SET_ITEM(__pyx_t_2, 71, __pyx_t_73); __Pyx_GIVEREF(__pyx_t_74); - PyTuple_SET_ITEM(__pyx_t_1, 72, __pyx_t_74); + PyTuple_SET_ITEM(__pyx_t_2, 72, __pyx_t_74); __Pyx_GIVEREF(__pyx_t_75); - PyTuple_SET_ITEM(__pyx_t_1, 73, __pyx_t_75); + PyTuple_SET_ITEM(__pyx_t_2, 73, __pyx_t_75); __Pyx_GIVEREF(__pyx_t_76); - PyTuple_SET_ITEM(__pyx_t_1, 74, __pyx_t_76); + PyTuple_SET_ITEM(__pyx_t_2, 74, __pyx_t_76); __Pyx_GIVEREF(__pyx_t_77); - PyTuple_SET_ITEM(__pyx_t_1, 75, __pyx_t_77); + PyTuple_SET_ITEM(__pyx_t_2, 75, __pyx_t_77); __Pyx_GIVEREF(__pyx_t_78); - PyTuple_SET_ITEM(__pyx_t_1, 76, __pyx_t_78); - __pyx_t_2 = 0; + PyTuple_SET_ITEM(__pyx_t_2, 76, __pyx_t_78); + __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; @@ -19748,9 +19657,9 @@ if (!__Pyx_RefNanny) { __pyx_t_77 = 0; __pyx_t_78 = 0; __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_headers); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_headers, ((PyObject*)__pyx_t_1)); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_headers, ((PyObject*)__pyx_t_2)); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":57 * char* PyByteArray_AsString(object) @@ -19759,7 +19668,7 @@ if (!__Pyx_RefNanny) { * 'RawRequestMessage', 'RawResponseMessage') * */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_all, __pyx_tuple__12) < 0) __PYX_ERR(0, 57, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_all, __pyx_tuple__19) < 0) __PYX_ERR(0, 57, __pyx_L1_error) /* "aiohttp/_http_parser.pyx":60 * 'RawRequestMessage', 'RawResponseMessage') @@ -19768,12 +19677,12 @@ if (!__Pyx_RefNanny) { * cdef object URL_build = URL.build * cdef object CIMultiDict = _CIMultiDict */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_URL_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_URL_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_URL); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_URL, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_URL, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":61 * @@ -19782,12 +19691,12 @@ if (!__Pyx_RefNanny) { * cdef object CIMultiDict = _CIMultiDict * cdef object CIMultiDictProxy = _CIMultiDictProxy */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_7aiohttp_12_http_parser_URL, __pyx_n_s_build); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_7aiohttp_12_http_parser_URL, __pyx_n_s_build); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_URL_build); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_URL_build, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_URL_build, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":62 * cdef object URL = _URL @@ -19796,12 +19705,12 @@ if (!__Pyx_RefNanny) { * cdef object CIMultiDictProxy = _CIMultiDictProxy * cdef object HttpVersion = _HttpVersion */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CIMultiDict_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CIMultiDict_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_CIMultiDict); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_CIMultiDict, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_CIMultiDict, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":63 * cdef object URL_build = URL.build @@ -19810,12 +19719,12 @@ if (!__Pyx_RefNanny) { * cdef object HttpVersion = _HttpVersion * cdef object HttpVersion10 = _HttpVersion10 */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CIMultiDictProxy_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CIMultiDictProxy_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_CIMultiDictProxy); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_CIMultiDictProxy, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_CIMultiDictProxy, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":64 * cdef object CIMultiDict = _CIMultiDict @@ -19824,12 +19733,12 @@ if (!__Pyx_RefNanny) { * cdef object HttpVersion10 = _HttpVersion10 * cdef object HttpVersion11 = _HttpVersion11 */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_HttpVersion_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_HttpVersion_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_HttpVersion); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_HttpVersion, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_HttpVersion, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":65 * cdef object CIMultiDictProxy = _CIMultiDictProxy @@ -19838,12 +19747,12 @@ if (!__Pyx_RefNanny) { * cdef object HttpVersion11 = _HttpVersion11 * cdef object SEC_WEBSOCKET_KEY1 = hdrs.SEC_WEBSOCKET_KEY1 */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_HttpVersion10_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_HttpVersion10_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_HttpVersion10); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_HttpVersion10, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_HttpVersion10, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":66 * cdef object HttpVersion = _HttpVersion @@ -19852,12 +19761,12 @@ if (!__Pyx_RefNanny) { * cdef object SEC_WEBSOCKET_KEY1 = hdrs.SEC_WEBSOCKET_KEY1 * cdef object CONTENT_ENCODING = hdrs.CONTENT_ENCODING */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_HttpVersion11_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_HttpVersion11_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_HttpVersion11); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_HttpVersion11, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_HttpVersion11, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":67 * cdef object HttpVersion10 = _HttpVersion10 @@ -19866,11 +19775,11 @@ if (!__Pyx_RefNanny) { * cdef object CONTENT_ENCODING = hdrs.CONTENT_ENCODING * cdef object EMPTY_PAYLOAD = _EMPTY_PAYLOAD */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_78 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SEC_WEBSOCKET_KEY1); if (unlikely(!__pyx_t_78)) __PYX_ERR(0, 67, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_78 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SEC_WEBSOCKET_KEY1); if (unlikely(!__pyx_t_78)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_78); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1); __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_SEC_WEBSOCKET_KEY1, __pyx_t_78); __Pyx_GIVEREF(__pyx_t_78); @@ -19885,13 +19794,13 @@ if (!__Pyx_RefNanny) { */ __Pyx_GetModuleGlobalName(__pyx_t_78, __pyx_n_s_hdrs); if (unlikely(!__pyx_t_78)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_78); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_78, __pyx_n_s_CONTENT_ENCODING); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_78, __pyx_n_s_CONTENT_ENCODING); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_78); __pyx_t_78 = 0; __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_CONTENT_ENCODING); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_CONTENT_ENCODING, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_CONTENT_ENCODING, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":69 * cdef object SEC_WEBSOCKET_KEY1 = hdrs.SEC_WEBSOCKET_KEY1 @@ -19900,12 +19809,12 @@ if (!__Pyx_RefNanny) { * cdef object StreamReader = _StreamReader * cdef object DeflateBuffer = _DeflateBuffer */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EMPTY_PAYLOAD_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_EMPTY_PAYLOAD_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_EMPTY_PAYLOAD, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":70 * cdef object CONTENT_ENCODING = hdrs.CONTENT_ENCODING @@ -19914,12 +19823,12 @@ if (!__Pyx_RefNanny) { * cdef object DeflateBuffer = _DeflateBuffer * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StreamReader_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StreamReader_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_StreamReader); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_StreamReader, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_StreamReader, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":71 * cdef object EMPTY_PAYLOAD = _EMPTY_PAYLOAD @@ -19928,45 +19837,45 @@ if (!__Pyx_RefNanny) { * * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DeflateBuffer_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DeflateBuffer_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser_DeflateBuffer); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_DeflateBuffer, __pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser_DeflateBuffer, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":85 - * DEF METHODS_COUNT = 34; + * DEF METHODS_COUNT = 46; * * cdef list _http_method = [] # <<<<<<<<<<<<<< * * for i in range(METHODS_COUNT): */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_7aiohttp_12_http_parser__http_method); - __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser__http_method, ((PyObject*)__pyx_t_1)); - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_7aiohttp_12_http_parser__http_method, ((PyObject*)__pyx_t_2)); + __Pyx_GIVEREF(__pyx_t_2); + __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":87 * cdef list _http_method = [] * * for i in range(METHODS_COUNT): # <<<<<<<<<<<<<< * _http_method.append( - * cparser.http_method_str( i).decode('ascii')) + * cparser.llhttp_method_name( i).decode('ascii')) */ - for (__pyx_t_79 = 0; __pyx_t_79 < 34; __pyx_t_79+=1) { - __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_79); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_i, __pyx_t_1) < 0) __PYX_ERR(0, 87, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (__pyx_t_79 = 0; __pyx_t_79 < 46; __pyx_t_79+=1) { + __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_t_79); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_i, __pyx_t_2) < 0) __PYX_ERR(0, 87, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":88 * * for i in range(METHODS_COUNT): * _http_method.append( # <<<<<<<<<<<<<< - * cparser.http_method_str( i).decode('ascii')) + * cparser.llhttp_method_name( i).decode('ascii')) * */ if (unlikely(__pyx_v_7aiohttp_12_http_parser__http_method == Py_None)) { @@ -19977,50 +19886,38 @@ if (!__Pyx_RefNanny) { /* "aiohttp/_http_parser.pyx":89 * for i in range(METHODS_COUNT): * _http_method.append( - * cparser.http_method_str( i).decode('ascii')) # <<<<<<<<<<<<<< + * cparser.llhttp_method_name( i).decode('ascii')) # <<<<<<<<<<<<<< * * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 89, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_80 = ((enum http_method)__Pyx_PyInt_As_enum__http_method(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 89, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_81 = http_method_str(((enum http_method)__pyx_t_80)); - __pyx_t_1 = __Pyx_decode_c_string(__pyx_t_81, 0, strlen(__pyx_t_81), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 89, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_80 = ((enum llhttp_method)__Pyx_PyInt_As_enum__llhttp_method(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 89, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_81 = llhttp_method_name(((llhttp_method_t)__pyx_t_80)); + __pyx_t_2 = __Pyx_decode_c_string(__pyx_t_81, 0, strlen(__pyx_t_81), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); /* "aiohttp/_http_parser.pyx":88 * * for i in range(METHODS_COUNT): * _http_method.append( # <<<<<<<<<<<<<< - * cparser.http_method_str( i).decode('ascii')) + * cparser.llhttp_method_name( i).decode('ascii')) * */ - __pyx_t_82 = __Pyx_PyList_Append(__pyx_v_7aiohttp_12_http_parser__http_method, __pyx_t_1); if (unlikely(__pyx_t_82 == ((int)-1))) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_82 = __Pyx_PyList_Append(__pyx_v_7aiohttp_12_http_parser__http_method, __pyx_t_2); if (unlikely(__pyx_t_82 == ((int)-1))) __PYX_ERR(0, 88, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - /* "aiohttp/_http_parser.pyx":785 - * - * - * def parse_url(url): # <<<<<<<<<<<<<< - * cdef: - * Py_buffer py_buf - */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7aiohttp_12_http_parser_1parse_url, NULL, __pyx_n_s_aiohttp__http_parser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse_url, __pyx_t_1) < 0) __PYX_ERR(0, 785, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "(tree fragment)":1 * def __pyx_unpickle_RawRequestMessage(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7aiohttp_12_http_parser_3__pyx_unpickle_RawRequestMessage, NULL, __pyx_n_s_aiohttp__http_parser); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RawRequestMessage, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7aiohttp_12_http_parser_1__pyx_unpickle_RawRequestMessage, NULL, __pyx_n_s_aiohttp__http_parser); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RawRequestMessage, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "(tree fragment)":11 * __pyx_unpickle_RawRequestMessage__set_state( __pyx_result, __pyx_state) @@ -20029,20 +19926,20 @@ if (!__Pyx_RefNanny) { * __pyx_result.chunked = __pyx_state[0]; __pyx_result.compression = __pyx_state[1]; __pyx_result.headers = __pyx_state[2]; __pyx_result.method = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.raw_headers = __pyx_state[5]; __pyx_result.should_close = __pyx_state[6]; __pyx_result.upgrade = __pyx_state[7]; __pyx_result.url = __pyx_state[8]; __pyx_result.version = __pyx_state[9] * if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7aiohttp_12_http_parser_5__pyx_unpickle_RawResponseMessage, NULL, __pyx_n_s_aiohttp__http_parser); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RawResponseMessag, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7aiohttp_12_http_parser_3__pyx_unpickle_RawResponseMessage, NULL, __pyx_n_s_aiohttp__http_parser); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RawResponseMessag, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_http_parser.pyx":1 * #cython: language_level=3 # <<<<<<<<<<<<<< * # * # Based on https://github.com/MagicStack/httptools */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /*--- Wrapped vars code ---*/ @@ -20850,7 +20747,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; - ternaryfunc call = func->ob_type->tp_call; + ternaryfunc call = Py_TYPE(func)->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) @@ -20953,7 +20850,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); #if CYTHON_FAST_PYCCALL - } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { + } else if (__Pyx_PyFastCFunction_Check(func)) { return __Pyx_PyCFunction_FastCall(func, &arg, 1); #endif } @@ -21179,7 +21076,7 @@ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int eq return (equals == Py_EQ); } else { int result; -#if CYTHON_USE_UNICODE_INTERNALS +#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000) Py_hash_t hash1, hash2; hash1 = ((PyBytesObject*)s1)->ob_shash; hash2 = ((PyBytesObject*)s2)->ob_shash; @@ -21405,6 +21302,50 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj, return NULL; } +/* GetItemIntUnicode */ +static CYTHON_INLINE Py_UCS4 __Pyx_GetItemInt_Unicode_Fast(PyObject* ustring, Py_ssize_t i, + int wraparound, int boundscheck) { + Py_ssize_t length; + if (unlikely(__Pyx_PyUnicode_READY(ustring) < 0)) return (Py_UCS4)-1; + if (wraparound | boundscheck) { + length = __Pyx_PyUnicode_GET_LENGTH(ustring); + if (wraparound & unlikely(i < 0)) i += length; + if ((!boundscheck) || likely(__Pyx_is_valid_index(i, length))) { + return __Pyx_PyUnicode_READ_CHAR(ustring, i); + } else { + PyErr_SetString(PyExc_IndexError, "string index out of range"); + return (Py_UCS4)-1; + } + } else { + return __Pyx_PyUnicode_READ_CHAR(ustring, i); + } +} + +/* PyUnicode_Substring */ +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Substring( + PyObject* text, Py_ssize_t start, Py_ssize_t stop) { + Py_ssize_t length; + if (unlikely(__Pyx_PyUnicode_READY(text) == -1)) return NULL; + length = __Pyx_PyUnicode_GET_LENGTH(text); + if (start < 0) { + start += length; + if (start < 0) + start = 0; + } + if (stop < 0) + stop += length; + else if (stop > length) + stop = length; + if (stop <= start) + return __Pyx_NewRef(__pyx_empty_unicode); +#if CYTHON_PEP393_ENABLED + return PyUnicode_FromKindAndData(PyUnicode_KIND(text), + PyUnicode_1BYTE_DATA(text) + start*PyUnicode_KIND(text), stop-start); +#else + return PyUnicode_FromUnicode(PyUnicode_AS_UNICODE(text)+start, stop-start); +#endif +} + /* GetException */ #if CYTHON_FAST_THREAD_STATE static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) @@ -21570,111 +21511,6 @@ static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject } #endif -/* decode_c_string */ -static CYTHON_INLINE PyObject* __Pyx_decode_c_string( - const char* cstring, Py_ssize_t start, Py_ssize_t stop, - const char* encoding, const char* errors, - PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { - Py_ssize_t length; - if (unlikely((start < 0) | (stop < 0))) { - size_t slen = strlen(cstring); - if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { - PyErr_SetString(PyExc_OverflowError, - "c-string too long to convert to Python"); - return NULL; - } - length = (Py_ssize_t) slen; - if (start < 0) { - start += length; - if (start < 0) - start = 0; - } - if (stop < 0) - stop += length; - } - if (unlikely(stop <= start)) - return __Pyx_NewRef(__pyx_empty_unicode); - length = stop - start; - cstring += start; - if (decode_func) { - return decode_func(cstring, length, errors); - } else { - return PyUnicode_Decode(cstring, length, encoding, errors); - } -} - -/* UnpackUnboundCMethod */ -static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) { - PyObject *method; - method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name); - if (unlikely(!method)) - return -1; - target->method = method; -#if CYTHON_COMPILING_IN_CPYTHON - #if PY_MAJOR_VERSION >= 3 - if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type))) - #endif - { - PyMethodDescrObject *descr = (PyMethodDescrObject*) method; - target->func = descr->d_method->ml_meth; - target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS); - } -#endif - return 0; -} - -/* CallUnboundCMethod1 */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) { - if (likely(cfunc->func)) { - int flag = cfunc->flag; - if (flag == METH_O) { - return (*(cfunc->func))(self, arg); - } else if (PY_VERSION_HEX >= 0x030600B1 && flag == METH_FASTCALL) { - if (PY_VERSION_HEX >= 0x030700A0) { - return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, &arg, 1); - } else { - return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL); - } - } else if (PY_VERSION_HEX >= 0x030700A0 && flag == (METH_FASTCALL | METH_KEYWORDS)) { - return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL); - } - } - return __Pyx__CallUnboundCMethod1(cfunc, self, arg); -} -#endif -static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){ - PyObject *args, *result = NULL; - if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; -#if CYTHON_COMPILING_IN_CPYTHON - if (cfunc->func && (cfunc->flag & METH_VARARGS)) { - args = PyTuple_New(1); - if (unlikely(!args)) goto bad; - Py_INCREF(arg); - PyTuple_SET_ITEM(args, 0, arg); - if (cfunc->flag & METH_KEYWORDS) - result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL); - else - result = (*cfunc->func)(self, args); - } else { - args = PyTuple_New(2); - if (unlikely(!args)) goto bad; - Py_INCREF(self); - PyTuple_SET_ITEM(args, 0, self); - Py_INCREF(arg); - PyTuple_SET_ITEM(args, 1, arg); - result = __Pyx_PyObject_Call(cfunc->method, args, NULL); - } -#else - args = PyTuple_Pack(2, self, arg); - if (unlikely(!args)) goto bad; - result = __Pyx_PyObject_Call(cfunc->method, args, NULL); -#endif -bad: - Py_XDECREF(args); - return result; -} - /* Import */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; @@ -21864,17 +21700,35 @@ static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { static int __Pyx_setup_reduce(PyObject* type_obj) { int ret = 0; PyObject *object_reduce = NULL; + PyObject *object_getstate = NULL; PyObject *object_reduce_ex = NULL; PyObject *reduce = NULL; PyObject *reduce_ex = NULL; PyObject *reduce_cython = NULL; PyObject *setstate = NULL; PyObject *setstate_cython = NULL; + PyObject *getstate = NULL; +#if CYTHON_USE_PYTYPE_LOOKUP + getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate); +#else + getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate); + if (!getstate && PyErr_Occurred()) { + goto __PYX_BAD; + } +#endif + if (getstate) { #if CYTHON_USE_PYTYPE_LOOKUP - if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; + object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate); #else - if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; + object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate); + if (!object_getstate && PyErr_Occurred()) { + goto __PYX_BAD; + } #endif + if (object_getstate != getstate) { + goto __PYX_GOOD; + } + } #if CYTHON_USE_PYTYPE_LOOKUP object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; #else @@ -21919,6 +21773,8 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { #if !CYTHON_USE_PYTYPE_LOOKUP Py_XDECREF(object_reduce); Py_XDECREF(object_reduce_ex); + Py_XDECREF(object_getstate); + Py_XDECREF(getstate); #endif Py_XDECREF(reduce); Py_XDECREF(reduce_ex); @@ -21993,19 +21849,52 @@ static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, module_name, class_name, size, basicsize); goto bad; } - else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) { - PyOS_snprintf(warning, sizeof(warning), - "%s.%s size changed, may indicate binary incompatibility. " - "Expected %zd from C header, got %zd from PyObject", - module_name, class_name, size, basicsize); - if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; + else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) { + PyOS_snprintf(warning, sizeof(warning), + "%s.%s size changed, may indicate binary incompatibility. " + "Expected %zd from C header, got %zd from PyObject", + module_name, class_name, size, basicsize); + if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; + } + return (PyTypeObject *)result; +bad: + Py_XDECREF(result); + return NULL; +} +#endif + +/* decode_c_string */ +static CYTHON_INLINE PyObject* __Pyx_decode_c_string( + const char* cstring, Py_ssize_t start, Py_ssize_t stop, + const char* encoding, const char* errors, + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { + Py_ssize_t length; + if (unlikely((start < 0) | (stop < 0))) { + size_t slen = strlen(cstring); + if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { + PyErr_SetString(PyExc_OverflowError, + "c-string too long to convert to Python"); + return NULL; + } + length = (Py_ssize_t) slen; + if (start < 0) { + start += length; + if (start < 0) + start = 0; + } + if (stop < 0) + stop += length; + } + if (unlikely(stop <= start)) + return __Pyx_NewRef(__pyx_empty_unicode); + length = stop - start; + cstring += start; + if (decode_func) { + return decode_func(cstring, length, errors); + } else { + return PyUnicode_Decode(cstring, length, encoding, errors); } - return (PyTypeObject *)result; -bad: - Py_XDECREF(result); - return NULL; } -#endif /* CLineInTraceback */ #ifndef CYTHON_CLINE_IN_TRACEBACK @@ -22039,7 +21928,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int } if (!use_cline) { c_line = 0; - PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; @@ -22133,33 +22022,40 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { #include "compile.h" #include "frameobject.h" #include "traceback.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; + PyCodeObject *py_code = NULL; + PyObject *py_funcname = NULL; #if PY_MAJOR_VERSION < 3 + PyObject *py_srcfile = NULL; py_srcfile = PyString_FromString(filename); - #else - py_srcfile = PyUnicode_FromString(filename); - #endif if (!py_srcfile) goto bad; + #endif if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; + funcname = PyUnicode_AsUTF8(py_funcname); + if (!funcname) goto bad; #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); + if (!py_funcname) goto bad; #endif } - if (!py_funcname) goto bad; + #if PY_MAJOR_VERSION < 3 py_code = __Pyx_PyCode_New( 0, 0, @@ -22178,11 +22074,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); - Py_DECREF(py_funcname); + #else + py_code = PyCode_NewEmpty(filename, funcname, py_line); + #endif + Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline return py_code; bad: - Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_srcfile); + #endif return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, @@ -22190,14 +22091,24 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject *ptype, *pvalue, *ptraceback; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); - if (!py_code) goto bad; + if (!py_code) { + /* If the code object creation fails, then we should clear the + fetched exception references and propagate the new exception */ + Py_XDECREF(ptype); + Py_XDECREF(pvalue); + Py_XDECREF(ptraceback); + goto bad; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( @@ -22214,37 +22125,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, Py_XDECREF(py_frame); } -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(int) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(int) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(int), - little, !is_unsigned); - } -} - /* CIntFromPyVerify */ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) @@ -22268,117 +22148,31 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { } /* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) { - const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(unsigned int) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(unsigned int) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(unsigned int), - little, !is_unsigned); - } -} - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_short(unsigned short value) { - const unsigned short neg_one = (unsigned short) ((unsigned short) 0 - (unsigned short) 1), const_zero = (unsigned short) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(unsigned short) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(unsigned short) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(unsigned short) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(unsigned short) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(unsigned short) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(unsigned short), - little, !is_unsigned); - } -} - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" #endif - } - } else { - if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop #endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } -} - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint16_t(uint16_t value) { - const uint16_t neg_one = (uint16_t) ((uint16_t) 0 - (uint16_t) 1), const_zero = (uint16_t) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { - if (sizeof(uint16_t) < sizeof(long)) { + if (sizeof(int) < sizeof(long)) { return PyInt_FromLong((long) value); - } else if (sizeof(uint16_t) <= sizeof(unsigned long)) { + } else if (sizeof(int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG - } else if (sizeof(uint16_t) <= sizeof(unsigned PY_LONG_LONG)) { + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { - if (sizeof(uint16_t) <= sizeof(long)) { + if (sizeof(int) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG - } else if (sizeof(uint16_t) <= sizeof(PY_LONG_LONG)) { + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } @@ -22386,14 +22180,21 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint16_t(uint16_t value) { { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; - return _PyLong_FromByteArray(bytes, sizeof(uint16_t), + return _PyLong_FromByteArray(bytes, sizeof(int), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -22581,19 +22382,26 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { } /* CIntFromPy */ -static CYTHON_INLINE enum http_method __Pyx_PyInt_As_enum__http_method(PyObject *x) { - const enum http_method neg_one = (enum http_method) ((enum http_method) 0 - (enum http_method) 1), const_zero = (enum http_method) 0; +static CYTHON_INLINE enum llhttp_method __Pyx_PyInt_As_enum__llhttp_method(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const enum llhttp_method neg_one = (enum llhttp_method) -1, const_zero = (enum llhttp_method) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { - if (sizeof(enum http_method) < sizeof(long)) { - __PYX_VERIFY_RETURN_INT(enum http_method, long, PyInt_AS_LONG(x)) + if (sizeof(enum llhttp_method) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(enum llhttp_method, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } - return (enum http_method) val; + return (enum llhttp_method) val; } } else #endif @@ -22602,32 +22410,32 @@ static CYTHON_INLINE enum http_method __Pyx_PyInt_As_enum__http_method(PyObject #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { - case 0: return (enum http_method) 0; - case 1: __PYX_VERIFY_RETURN_INT(enum http_method, digit, digits[0]) + case 0: return (enum llhttp_method) 0; + case 1: __PYX_VERIFY_RETURN_INT(enum llhttp_method, digit, digits[0]) case 2: - if (8 * sizeof(enum http_method) > 1 * PyLong_SHIFT) { + if (8 * sizeof(enum llhttp_method) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(enum http_method) >= 2 * PyLong_SHIFT) { - return (enum http_method) (((((enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0])); + __PYX_VERIFY_RETURN_INT(enum llhttp_method, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum llhttp_method) >= 2 * PyLong_SHIFT) { + return (enum llhttp_method) (((((enum llhttp_method)digits[1]) << PyLong_SHIFT) | (enum llhttp_method)digits[0])); } } break; case 3: - if (8 * sizeof(enum http_method) > 2 * PyLong_SHIFT) { + if (8 * sizeof(enum llhttp_method) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(enum http_method) >= 3 * PyLong_SHIFT) { - return (enum http_method) (((((((enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0])); + __PYX_VERIFY_RETURN_INT(enum llhttp_method, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum llhttp_method) >= 3 * PyLong_SHIFT) { + return (enum llhttp_method) (((((((enum llhttp_method)digits[2]) << PyLong_SHIFT) | (enum llhttp_method)digits[1]) << PyLong_SHIFT) | (enum llhttp_method)digits[0])); } } break; case 4: - if (8 * sizeof(enum http_method) > 3 * PyLong_SHIFT) { + if (8 * sizeof(enum llhttp_method) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(enum http_method) >= 4 * PyLong_SHIFT) { - return (enum http_method) (((((((((enum http_method)digits[3]) << PyLong_SHIFT) | (enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0])); + __PYX_VERIFY_RETURN_INT(enum llhttp_method, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum llhttp_method) >= 4 * PyLong_SHIFT) { + return (enum llhttp_method) (((((((((enum llhttp_method)digits[3]) << PyLong_SHIFT) | (enum llhttp_method)digits[2]) << PyLong_SHIFT) | (enum llhttp_method)digits[1]) << PyLong_SHIFT) | (enum llhttp_method)digits[0])); } } break; @@ -22641,86 +22449,86 @@ static CYTHON_INLINE enum http_method __Pyx_PyInt_As_enum__http_method(PyObject { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) - return (enum http_method) -1; + return (enum llhttp_method) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif - if (sizeof(enum http_method) <= sizeof(unsigned long)) { - __PYX_VERIFY_RETURN_INT_EXC(enum http_method, unsigned long, PyLong_AsUnsignedLong(x)) + if (sizeof(enum llhttp_method) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(enum llhttp_method, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG - } else if (sizeof(enum http_method) <= sizeof(unsigned PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(enum http_method, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) + } else if (sizeof(enum llhttp_method) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(enum llhttp_method, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { - case 0: return (enum http_method) 0; - case -1: __PYX_VERIFY_RETURN_INT(enum http_method, sdigit, (sdigit) (-(sdigit)digits[0])) - case 1: __PYX_VERIFY_RETURN_INT(enum http_method, digit, +digits[0]) + case 0: return (enum llhttp_method) 0; + case -1: __PYX_VERIFY_RETURN_INT(enum llhttp_method, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(enum llhttp_method, digit, +digits[0]) case -2: - if (8 * sizeof(enum http_method) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(enum llhttp_method) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(enum http_method, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(enum http_method) - 1 > 2 * PyLong_SHIFT) { - return (enum http_method) (((enum http_method)-1)*(((((enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0]))); + __PYX_VERIFY_RETURN_INT(enum llhttp_method, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum llhttp_method) - 1 > 2 * PyLong_SHIFT) { + return (enum llhttp_method) (((enum llhttp_method)-1)*(((((enum llhttp_method)digits[1]) << PyLong_SHIFT) | (enum llhttp_method)digits[0]))); } } break; case 2: - if (8 * sizeof(enum http_method) > 1 * PyLong_SHIFT) { + if (8 * sizeof(enum llhttp_method) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(enum http_method) - 1 > 2 * PyLong_SHIFT) { - return (enum http_method) ((((((enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0]))); + __PYX_VERIFY_RETURN_INT(enum llhttp_method, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum llhttp_method) - 1 > 2 * PyLong_SHIFT) { + return (enum llhttp_method) ((((((enum llhttp_method)digits[1]) << PyLong_SHIFT) | (enum llhttp_method)digits[0]))); } } break; case -3: - if (8 * sizeof(enum http_method) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(enum llhttp_method) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(enum http_method, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(enum http_method) - 1 > 3 * PyLong_SHIFT) { - return (enum http_method) (((enum http_method)-1)*(((((((enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0]))); + __PYX_VERIFY_RETURN_INT(enum llhttp_method, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum llhttp_method) - 1 > 3 * PyLong_SHIFT) { + return (enum llhttp_method) (((enum llhttp_method)-1)*(((((((enum llhttp_method)digits[2]) << PyLong_SHIFT) | (enum llhttp_method)digits[1]) << PyLong_SHIFT) | (enum llhttp_method)digits[0]))); } } break; case 3: - if (8 * sizeof(enum http_method) > 2 * PyLong_SHIFT) { + if (8 * sizeof(enum llhttp_method) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(enum http_method) - 1 > 3 * PyLong_SHIFT) { - return (enum http_method) ((((((((enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0]))); + __PYX_VERIFY_RETURN_INT(enum llhttp_method, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum llhttp_method) - 1 > 3 * PyLong_SHIFT) { + return (enum llhttp_method) ((((((((enum llhttp_method)digits[2]) << PyLong_SHIFT) | (enum llhttp_method)digits[1]) << PyLong_SHIFT) | (enum llhttp_method)digits[0]))); } } break; case -4: - if (8 * sizeof(enum http_method) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(enum llhttp_method) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(enum http_method, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(enum http_method) - 1 > 4 * PyLong_SHIFT) { - return (enum http_method) (((enum http_method)-1)*(((((((((enum http_method)digits[3]) << PyLong_SHIFT) | (enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0]))); + __PYX_VERIFY_RETURN_INT(enum llhttp_method, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum llhttp_method) - 1 > 4 * PyLong_SHIFT) { + return (enum llhttp_method) (((enum llhttp_method)-1)*(((((((((enum llhttp_method)digits[3]) << PyLong_SHIFT) | (enum llhttp_method)digits[2]) << PyLong_SHIFT) | (enum llhttp_method)digits[1]) << PyLong_SHIFT) | (enum llhttp_method)digits[0]))); } } break; case 4: - if (8 * sizeof(enum http_method) > 3 * PyLong_SHIFT) { + if (8 * sizeof(enum llhttp_method) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { - __PYX_VERIFY_RETURN_INT(enum http_method, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if (8 * sizeof(enum http_method) - 1 > 4 * PyLong_SHIFT) { - return (enum http_method) ((((((((((enum http_method)digits[3]) << PyLong_SHIFT) | (enum http_method)digits[2]) << PyLong_SHIFT) | (enum http_method)digits[1]) << PyLong_SHIFT) | (enum http_method)digits[0]))); + __PYX_VERIFY_RETURN_INT(enum llhttp_method, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum llhttp_method) - 1 > 4 * PyLong_SHIFT) { + return (enum llhttp_method) ((((((((((enum llhttp_method)digits[3]) << PyLong_SHIFT) | (enum llhttp_method)digits[2]) << PyLong_SHIFT) | (enum llhttp_method)digits[1]) << PyLong_SHIFT) | (enum llhttp_method)digits[0]))); } } break; } #endif - if (sizeof(enum http_method) <= sizeof(long)) { - __PYX_VERIFY_RETURN_INT_EXC(enum http_method, long, PyLong_AsLong(x)) + if (sizeof(enum llhttp_method) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(enum llhttp_method, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG - } else if (sizeof(enum http_method) <= sizeof(PY_LONG_LONG)) { - __PYX_VERIFY_RETURN_INT_EXC(enum http_method, PY_LONG_LONG, PyLong_AsLongLong(x)) + } else if (sizeof(enum llhttp_method) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(enum llhttp_method, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } @@ -22729,7 +22537,7 @@ static CYTHON_INLINE enum http_method __Pyx_PyInt_As_enum__http_method(PyObject PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else - enum http_method val; + enum llhttp_method val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { @@ -22749,29 +22557,36 @@ static CYTHON_INLINE enum http_method __Pyx_PyInt_As_enum__http_method(PyObject return val; } #endif - return (enum http_method) -1; + return (enum llhttp_method) -1; } } else { - enum http_method val; + enum llhttp_method val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (enum http_method) -1; - val = __Pyx_PyInt_As_enum__http_method(tmp); + if (!tmp) return (enum llhttp_method) -1; + val = __Pyx_PyInt_As_enum__llhttp_method(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, - "value too large to convert to enum http_method"); - return (enum http_method) -1; + "value too large to convert to enum llhttp_method"); + return (enum llhttp_method) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to enum http_method"); - return (enum http_method) -1; + "can't convert negative value to enum llhttp_method"); + return (enum llhttp_method) -1; } /* CIntFromPy */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { - const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const size_t neg_one = (size_t) -1, const_zero = (size_t) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -22960,7 +22775,14 @@ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -23147,6 +22969,82 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { return (long) -1; } +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint8_t(uint8_t value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const uint8_t neg_one = (uint8_t) -1, const_zero = (uint8_t) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(uint8_t) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(uint8_t) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(uint8_t) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(uint8_t) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(uint8_t) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(uint8_t), + little, !is_unsigned); + } +} + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(long) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(long), + little, !is_unsigned); + } +} + /* FastTypeChecks */ #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { @@ -23403,6 +23301,12 @@ static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name /* CoroutineBase */ #include #include +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif #define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom) static int __Pyx_PyGen__FetchStopIterationValue(CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject **pvalue) { PyObject *et, *ev, *tb; @@ -23574,9 +23478,13 @@ PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, i if (exc_state->exc_traceback) { PyTracebackObject *tb = (PyTracebackObject *) exc_state->exc_traceback; PyFrameObject *f = tb->tb_frame; - Py_XINCREF(tstate->frame); assert(f->f_back == NULL); + #if PY_VERSION_HEX >= 0x030B00A1 + f->f_back = PyThreadState_GetFrame(tstate); + #else + Py_XINCREF(tstate->frame); f->f_back = tstate->frame; + #endif } #endif } @@ -23629,6 +23537,30 @@ PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *re } return retval; } +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) +static CYTHON_INLINE +PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) { +#if PY_VERSION_HEX <= 0x030A00A1 + return _PyGen_Send(gen, arg); +#else + PyObject *result; + if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) { + if (PyAsyncGen_CheckExact(gen)) { + assert(result == Py_None); + PyErr_SetNone(PyExc_StopAsyncIteration); + } + else if (result == Py_None) { + PyErr_SetNone(PyExc_StopIteration); + } + else { + _PyGen_SetStopIterationValue(result); + } + Py_CLEAR(result); + } + return result; +#endif +} +#endif static CYTHON_INLINE PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) { PyObject *ret; @@ -23665,12 +23597,12 @@ static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) { #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) if (PyGen_CheckExact(yf)) { - ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); + ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); } else #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) if (PyCoro_CheckExact(yf)) { - ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); + ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); } else #endif { @@ -23754,7 +23686,7 @@ static PyObject *__Pyx_Generator_Next(PyObject *self) { #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) if (PyGen_CheckExact(yf)) { - ret = _PyGen_Send((PyGenObject*)yf, NULL); + ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL); } else #endif #ifdef __Pyx_Coroutine_USED @@ -23914,6 +23846,7 @@ static int __Pyx_Coroutine_clear(PyObject *self) { } #endif Py_CLEAR(gen->gi_code); + Py_CLEAR(gen->gi_frame); Py_CLEAR(gen->gi_name); Py_CLEAR(gen->gi_qualname); Py_CLEAR(gen->gi_modulename); @@ -23930,7 +23863,7 @@ static void __Pyx_Coroutine_dealloc(PyObject *self) { if (PyObject_CallFinalizerFromDealloc(self)) #else Py_TYPE(gen)->tp_del(self); - if (self->ob_refcnt > 0) + if (Py_REFCNT(self) > 0) #endif { return; @@ -23957,7 +23890,7 @@ static void __Pyx_Coroutine_del(PyObject *self) { } #if !CYTHON_USE_TP_FINALIZE assert(self->ob_refcnt == 0); - self->ob_refcnt = 1; + __Pyx_SET_REFCNT(self, 1); #endif __Pyx_PyThreadState_assign __Pyx_ErrFetch(&error_type, &error_value, &error_traceback); @@ -24024,17 +23957,17 @@ static void __Pyx_Coroutine_del(PyObject *self) { } __Pyx_ErrRestore(error_type, error_value, error_traceback); #if !CYTHON_USE_TP_FINALIZE - assert(self->ob_refcnt > 0); + assert(Py_REFCNT(self) > 0); if (--self->ob_refcnt == 0) { return; } { - Py_ssize_t refcnt = self->ob_refcnt; + Py_ssize_t refcnt = Py_REFCNT(self); _Py_NewReference(self); - self->ob_refcnt = refcnt; + __Pyx_SET_REFCNT(self, refcnt); } #if CYTHON_COMPILING_IN_CPYTHON - assert(PyType_IS_GC(self->ob_type) && + assert(PyType_IS_GC(Py_TYPE(self)) && _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED); _Py_DEC_REFTOTAL; #endif @@ -24100,6 +24033,27 @@ __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHO Py_XDECREF(tmp); return 0; } +static PyObject * +__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context) +{ + PyObject *frame = self->gi_frame; + if (!frame) { + if (unlikely(!self->gi_code)) { + Py_RETURN_NONE; + } + frame = (PyObject *) PyFrame_New( + PyThreadState_Get(), /*PyThreadState *tstate,*/ + (PyCodeObject*) self->gi_code, /*PyCodeObject *code,*/ + __pyx_d, /*PyObject *globals,*/ + 0 /*PyObject *locals*/ + ); + if (unlikely(!frame)) + return NULL; + self->gi_frame = frame; + } + Py_INCREF(frame); + return frame; +} static __pyx_CoroutineObject *__Pyx__Coroutine_New( PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name) { @@ -24133,6 +24087,7 @@ static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit( gen->gi_modulename = module_name; Py_XINCREF(code); gen->gi_code = code; + gen->gi_frame = NULL; PyObject_GC_Track(gen); return gen; } @@ -24256,6 +24211,8 @@ static PyGetSetDef __pyx_Generator_getsets[] = { (char*) PyDoc_STR("name of the generator"), 0}, {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname, (char*) PyDoc_STR("qualified name of the generator"), 0}, + {(char *) "gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL, + (char*) PyDoc_STR("Frame of the generator"), 0}, {0, 0, 0, 0, 0} }; static PyTypeObject __pyx_GeneratorType_type = { @@ -24315,12 +24272,15 @@ static PyTypeObject __pyx_GeneratorType_type = { #elif PY_VERSION_HEX >= 0x030400a1 0, #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, #endif +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 + 0, +#endif }; static int __pyx_Generator_init(void) { __pyx_GeneratorType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; @@ -24334,11 +24294,33 @@ static int __pyx_Generator_init(void) { /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { - char ctversion[4], rtversion[4]; - PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); - PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); - if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { + char ctversion[5]; + int same=1, i, found_dot; + const char* rt_from_call = Py_GetVersion(); + PyOS_snprintf(ctversion, 5, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); + found_dot = 0; + for (i = 0; i < 4; i++) { + if (!ctversion[i]) { + same = (rt_from_call[i] < '0' || rt_from_call[i] > '9'); + break; + } + if (rt_from_call[i] != ctversion[i]) { + same = 0; + break; + } + } + if (!same) { + char rtversion[5] = {'\0'}; char message[200]; + for (i=0; i<4; ++i) { + if (rt_from_call[i] == '.') { + if (found_dot) break; + found_dot = 1; + } else if (rt_from_call[i] < '0' || rt_from_call[i] > '9') { + break; + } + rtversion[i] = rt_from_call[i]; + } PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", @@ -24596,6 +24578,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_DECREF(x); return ival; } +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { + if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { + return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); +#if PY_MAJOR_VERSION < 3 + } else if (likely(PyInt_CheckExact(o))) { + return PyInt_AS_LONG(o); +#endif + } else { + Py_ssize_t ival; + PyObject *x; + x = PyNumber_Index(o); + if (!x) return -1; + ival = PyInt_AsLong(x); + Py_DECREF(x); + return ival; + } +} static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } diff --git a/aiohttp/_http_parser.pyx b/aiohttp/_http_parser.pyx index c24e310..3f28fbd 100644 --- a/aiohttp/_http_parser.pyx +++ b/aiohttp/_http_parser.pyx @@ -2,7 +2,6 @@ # # Based on https://github.com/MagicStack/httptools # -from __future__ import absolute_import, print_function from cpython cimport ( Py_buffer, @@ -20,6 +19,7 @@ from multidict import CIMultiDict as _CIMultiDict, CIMultiDictProxy as _CIMultiD from yarl import URL as _URL from aiohttp import hdrs +from aiohttp.helpers import DEBUG from .http_exceptions import ( BadHttpMessage, @@ -80,13 +80,13 @@ cdef inline object extend(object buf, const char* at, size_t length): memcpy(ptr + s, at, length) -DEF METHODS_COUNT = 34; +DEF METHODS_COUNT = 46; cdef list _http_method = [] for i in range(METHODS_COUNT): _http_method.append( - cparser.http_method_str( i).decode('ascii')) + cparser.llhttp_method_name( i).decode('ascii')) cdef inline str http_method_str(int i): @@ -272,8 +272,8 @@ cdef _new_response_message(object version, cdef class HttpParser: cdef: - cparser.http_parser* _cparser - cparser.http_parser_settings* _csettings + cparser.llhttp_t* _cparser + cparser.llhttp_settings_t* _csettings bytearray _raw_name bytearray _raw_value @@ -310,13 +310,13 @@ cdef class HttpParser: Py_buffer py_buf def __cinit__(self): - self._cparser = \ - PyMem_Malloc(sizeof(cparser.http_parser)) + self._cparser = \ + PyMem_Malloc(sizeof(cparser.llhttp_t)) if self._cparser is NULL: raise MemoryError() - self._csettings = \ - PyMem_Malloc(sizeof(cparser.http_parser_settings)) + self._csettings = \ + PyMem_Malloc(sizeof(cparser.llhttp_settings_t)) if self._csettings is NULL: raise MemoryError() @@ -324,19 +324,20 @@ cdef class HttpParser: PyMem_Free(self._cparser) PyMem_Free(self._csettings) - cdef _init(self, cparser.http_parser_type mode, - object protocol, object loop, int limit, - object timer=None, - size_t max_line_size=8190, size_t max_headers=32768, - size_t max_field_size=8190, payload_exception=None, - bint response_with_body=True, bint read_until_eof=False, - bint auto_decompress=True): - cparser.http_parser_init(self._cparser, mode) + cdef _init( + self, cparser.llhttp_type mode, + object protocol, object loop, int limit, + object timer=None, + size_t max_line_size=8190, size_t max_headers=32768, + size_t max_field_size=8190, payload_exception=None, + bint response_with_body=True, bint read_until_eof=False, + bint auto_decompress=True, + ): + cparser.llhttp_settings_init(self._csettings) + cparser.llhttp_init(self._cparser, mode, self._csettings) self._cparser.data = self self._cparser.content_length = 0 - cparser.http_parser_settings_init(self._csettings) - self._protocol = protocol self._loop = loop self._timer = timer @@ -417,14 +418,14 @@ cdef class HttpParser: self._process_header() method = http_method_str(self._cparser.method) - should_close = not cparser.http_should_keep_alive(self._cparser) + should_close = not cparser.llhttp_should_keep_alive(self._cparser) upgrade = self._cparser.upgrade chunked = self._cparser.flags & cparser.F_CHUNKED raw_headers = tuple(self._raw_headers) headers = CIMultiDictProxy(self._headers) - if upgrade or self._cparser.method == 5: # cparser.CONNECT: + if upgrade or self._cparser.method == cparser.HTTP_CONNECT: self._upgraded = True # do not support old websocket spec @@ -450,11 +451,12 @@ cdef class HttpParser: headers, raw_headers, should_close, encoding, upgrade, chunked) - if (ULLONG_MAX > self._cparser.content_length > 0 or chunked or - self._cparser.method == 5 or # CONNECT: 5 - (self._cparser.status_code >= 199 and - self._cparser.content_length == ULLONG_MAX and - self._read_until_eof) + if ( + ULLONG_MAX > self._cparser.content_length > 0 or chunked or + self._cparser.method == cparser.HTTP_CONNECT or + (self._cparser.status_code >= 199 and + self._cparser.content_length == 0 and + self._read_until_eof) ): payload = StreamReader( self._protocol, timer=self._timer, loop=self._loop, @@ -485,7 +487,7 @@ cdef class HttpParser: pass cdef inline http_version(self): - cdef cparser.http_parser* parser = self._cparser + cdef cparser.llhttp_t* parser = self._cparser if parser.http_major == 1: if parser.http_minor == 0: @@ -504,12 +506,11 @@ cdef class HttpParser: if self._cparser.flags & cparser.F_CHUNKED: raise TransferEncodingError( "Not enough data for satisfy transfer length header.") - elif self._cparser.flags & cparser.F_CONTENTLENGTH: + elif self._cparser.flags & cparser.F_CONTENT_LENGTH: raise ContentLengthError( "Not enough data for satisfy content length header.") - elif self._cparser.http_errno != cparser.HPE_OK: - desc = cparser.http_errno_description( - self._cparser.http_errno) + elif cparser.llhttp_get_errno(self._cparser) != cparser.HPE_OK: + desc = cparser.llhttp_get_error_reason(self._cparser) raise PayloadEncodingError(desc.decode('latin-1')) else: self._payload.feed_eof() @@ -522,26 +523,36 @@ cdef class HttpParser: cdef: size_t data_len size_t nb + cdef cparser.llhttp_errno_t errno PyObject_GetBuffer(data, &self.py_buf, PyBUF_SIMPLE) data_len = self.py_buf.len - nb = cparser.http_parser_execute( + errno = cparser.llhttp_execute( self._cparser, - self._csettings, self.py_buf.buf, data_len) + if errno is cparser.HPE_PAUSED_UPGRADE: + cparser.llhttp_resume_after_upgrade(self._cparser) + + nb = cparser.llhttp_get_error_pos(self._cparser) - self.py_buf.buf + PyBuffer_Release(&self.py_buf) - if (self._cparser.http_errno != cparser.HPE_OK): + if errno not in (cparser.HPE_OK, cparser.HPE_PAUSED_UPGRADE): if self._payload_error == 0: if self._last_error is not None: ex = self._last_error self._last_error = None else: - ex = parser_error_from_errno( - self._cparser.http_errno) + after = cparser.llhttp_get_error_pos(self._cparser) + before = data[:after - self.py_buf.buf] + after_b = after.split(b"\r\n", 1)[0] + before = before.rsplit(b"\r\n", 1)[-1] + data = before + after_b + pointer = " " * (len(repr(before))-1) + "^" + ex = parser_error_from_errno(self._cparser, data, pointer) self._payload = None raise ex @@ -562,44 +573,86 @@ cdef class HttpParser: cdef class HttpRequestParser(HttpParser): - def __init__(self, protocol, loop, int limit, timer=None, - size_t max_line_size=8190, size_t max_headers=32768, - size_t max_field_size=8190, payload_exception=None, - bint response_with_body=True, bint read_until_eof=False, + def __init__( + self, protocol, loop, int limit, timer=None, + size_t max_line_size=8190, size_t max_headers=32768, + size_t max_field_size=8190, payload_exception=None, + bint response_with_body=True, bint read_until_eof=False, + bint auto_decompress=True, ): - self._init(cparser.HTTP_REQUEST, protocol, loop, limit, timer, - max_line_size, max_headers, max_field_size, - payload_exception, response_with_body, read_until_eof) + self._init(cparser.HTTP_REQUEST, protocol, loop, limit, timer, + max_line_size, max_headers, max_field_size, + payload_exception, response_with_body, read_until_eof, + auto_decompress) cdef object _on_status_complete(self): - cdef Py_buffer py_buf - if not self._buf: - return - self._path = self._buf.decode('utf-8', 'surrogateescape') - if self._cparser.method == 5: # CONNECT - self._url = URL(self._path) - else: - PyObject_GetBuffer(self._buf, &py_buf, PyBUF_SIMPLE) - try: - self._url = _parse_url(py_buf.buf, - py_buf.len) - finally: - PyBuffer_Release(&py_buf) - PyByteArray_Resize(self._buf, 0) + cdef int idx1, idx2 + if not self._buf: + return + self._path = self._buf.decode('utf-8', 'surrogateescape') + try: + idx3 = len(self._path) + if self._cparser.method == cparser.HTTP_CONNECT: + # authority-form, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.3 + self._url = URL.build(authority=self._path, encoded=True) + elif idx3 > 1 and self._path[0] == '/': + # origin-form, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.1 + idx1 = self._path.find("?") + if idx1 == -1: + query = "" + idx2 = self._path.find("#") + if idx2 == -1: + path = self._path + fragment = "" + else: + path = self._path[0: idx2] + fragment = self._path[idx2+1:] + + else: + path = self._path[0:idx1] + idx1 += 1 + idx2 = self._path.find("#", idx1+1) + if idx2 == -1: + query = self._path[idx1:] + fragment = "" + else: + query = self._path[idx1: idx2] + fragment = self._path[idx2+1:] + + self._url = URL.build( + path=path, + query_string=query, + fragment=fragment, + encoded=True, + ) + else: + # absolute-form for proxy maybe, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.2 + self._url = URL(self._path, encoded=True) + finally: + PyByteArray_Resize(self._buf, 0) cdef class HttpResponseParser(HttpParser): - def __init__(self, protocol, loop, int limit, timer=None, - size_t max_line_size=8190, size_t max_headers=32768, - size_t max_field_size=8190, payload_exception=None, - bint response_with_body=True, bint read_until_eof=False, - bint auto_decompress=True + def __init__( + self, protocol, loop, int limit, timer=None, + size_t max_line_size=8190, size_t max_headers=32768, + size_t max_field_size=8190, payload_exception=None, + bint response_with_body=True, bint read_until_eof=False, + bint auto_decompress=True ): self._init(cparser.HTTP_RESPONSE, protocol, loop, limit, timer, max_line_size, max_headers, max_field_size, payload_exception, response_with_body, read_until_eof, auto_decompress) + # Use strict parsing on dev mode, so users are warned about broken servers. + if not DEBUG: + cparser.llhttp_set_lenient_headers(self._cparser, 1) + cparser.llhttp_set_lenient_optional_cr_before_lf(self._cparser, 1) + cparser.llhttp_set_lenient_spaces_after_chunk_size(self._cparser, 1) cdef object _on_status_complete(self): if self._buf: @@ -608,7 +661,7 @@ cdef class HttpResponseParser(HttpParser): else: self._reason = self._reason or '' -cdef int cb_on_message_begin(cparser.http_parser* parser) except -1: +cdef int cb_on_message_begin(cparser.llhttp_t* parser) except -1: cdef HttpParser pyparser = parser.data pyparser._started = True @@ -620,7 +673,7 @@ cdef int cb_on_message_begin(cparser.http_parser* parser) except -1: return 0 -cdef int cb_on_url(cparser.http_parser* parser, +cdef int cb_on_url(cparser.llhttp_t* parser, const char *at, size_t length) except -1: cdef HttpParser pyparser = parser.data try: @@ -635,7 +688,7 @@ cdef int cb_on_url(cparser.http_parser* parser, return 0 -cdef int cb_on_status(cparser.http_parser* parser, +cdef int cb_on_status(cparser.llhttp_t* parser, const char *at, size_t length) except -1: cdef HttpParser pyparser = parser.data cdef str reason @@ -651,7 +704,7 @@ cdef int cb_on_status(cparser.http_parser* parser, return 0 -cdef int cb_on_header_field(cparser.http_parser* parser, +cdef int cb_on_header_field(cparser.llhttp_t* parser, const char *at, size_t length) except -1: cdef HttpParser pyparser = parser.data cdef Py_ssize_t size @@ -669,7 +722,7 @@ cdef int cb_on_header_field(cparser.http_parser* parser, return 0 -cdef int cb_on_header_value(cparser.http_parser* parser, +cdef int cb_on_header_value(cparser.llhttp_t* parser, const char *at, size_t length) except -1: cdef HttpParser pyparser = parser.data cdef Py_ssize_t size @@ -686,7 +739,7 @@ cdef int cb_on_header_value(cparser.http_parser* parser, return 0 -cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1: +cdef int cb_on_headers_complete(cparser.llhttp_t* parser) except -1: cdef HttpParser pyparser = parser.data try: pyparser._on_status_complete() @@ -695,13 +748,16 @@ cdef int cb_on_headers_complete(cparser.http_parser* parser) except -1: pyparser._last_error = exc return -1 else: - if pyparser._cparser.upgrade or pyparser._cparser.method == 5: # CONNECT + if ( + pyparser._cparser.upgrade or + pyparser._cparser.method == cparser.HTTP_CONNECT + ): return 2 else: return 0 -cdef int cb_on_body(cparser.http_parser* parser, +cdef int cb_on_body(cparser.llhttp_t* parser, const char *at, size_t length) except -1: cdef HttpParser pyparser = parser.data cdef bytes body = at[:length] @@ -718,7 +774,7 @@ cdef int cb_on_body(cparser.http_parser* parser, return 0 -cdef int cb_on_message_complete(cparser.http_parser* parser) except -1: +cdef int cb_on_message_complete(cparser.llhttp_t* parser) except -1: cdef HttpParser pyparser = parser.data try: pyparser._started = False @@ -730,7 +786,7 @@ cdef int cb_on_message_complete(cparser.http_parser* parser) except -1: return 0 -cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1: +cdef int cb_on_chunk_header(cparser.llhttp_t* parser) except -1: cdef HttpParser pyparser = parser.data try: pyparser._on_chunk_header() @@ -741,7 +797,7 @@ cdef int cb_on_chunk_header(cparser.http_parser* parser) except -1: return 0 -cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1: +cdef int cb_on_chunk_complete(cparser.llhttp_t* parser) except -1: cdef HttpParser pyparser = parser.data try: pyparser._on_chunk_complete() @@ -752,124 +808,29 @@ cdef int cb_on_chunk_complete(cparser.http_parser* parser) except -1: return 0 -cdef parser_error_from_errno(cparser.http_errno errno): - cdef bytes desc = cparser.http_errno_description(errno) - - if errno in (cparser.HPE_CB_message_begin, - cparser.HPE_CB_url, - cparser.HPE_CB_header_field, - cparser.HPE_CB_header_value, - cparser.HPE_CB_headers_complete, - cparser.HPE_CB_body, - cparser.HPE_CB_message_complete, - cparser.HPE_CB_status, - cparser.HPE_CB_chunk_header, - cparser.HPE_CB_chunk_complete): - cls = BadHttpMessage - - elif errno == cparser.HPE_INVALID_STATUS: - cls = BadStatusLine - - elif errno == cparser.HPE_INVALID_METHOD: - cls = BadStatusLine - +cdef parser_error_from_errno(cparser.llhttp_t* parser, data, pointer): + cdef cparser.llhttp_errno_t errno = cparser.llhttp_get_errno(parser) + cdef bytes desc = cparser.llhttp_get_error_reason(parser) + + err_msg = "{}:\n\n {!r}\n {}".format(desc.decode("latin-1"), data, pointer) + + if errno in {cparser.HPE_CB_MESSAGE_BEGIN, + cparser.HPE_CB_HEADERS_COMPLETE, + cparser.HPE_CB_MESSAGE_COMPLETE, + cparser.HPE_CB_CHUNK_HEADER, + cparser.HPE_CB_CHUNK_COMPLETE, + cparser.HPE_INVALID_CONSTANT, + cparser.HPE_INVALID_HEADER_TOKEN, + cparser.HPE_INVALID_CONTENT_LENGTH, + cparser.HPE_INVALID_CHUNK_SIZE, + cparser.HPE_INVALID_EOF_STATE, + cparser.HPE_INVALID_TRANSFER_ENCODING}: + return BadHttpMessage(err_msg) + elif errno in {cparser.HPE_INVALID_STATUS, + cparser.HPE_INVALID_METHOD, + cparser.HPE_INVALID_VERSION}: + return BadStatusLine(error=err_msg) elif errno == cparser.HPE_INVALID_URL: - cls = InvalidURLError + return InvalidURLError(err_msg) - else: - cls = BadHttpMessage - - return cls(desc.decode('latin-1')) - - -def parse_url(url): - cdef: - Py_buffer py_buf - char* buf_data - - PyObject_GetBuffer(url, &py_buf, PyBUF_SIMPLE) - try: - buf_data = py_buf.buf - return _parse_url(buf_data, py_buf.len) - finally: - PyBuffer_Release(&py_buf) - - -cdef _parse_url(char* buf_data, size_t length): - cdef: - cparser.http_parser_url* parsed - int res - str schema = None - str host = None - object port = None - str path = None - str query = None - str fragment = None - str user = None - str password = None - str userinfo = None - object result = None - int off - int ln - - parsed = \ - PyMem_Malloc(sizeof(cparser.http_parser_url)) - if parsed is NULL: - raise MemoryError() - cparser.http_parser_url_init(parsed) - try: - res = cparser.http_parser_parse_url(buf_data, length, 0, parsed) - - if res == 0: - if parsed.field_set & (1 << cparser.UF_SCHEMA): - off = parsed.field_data[cparser.UF_SCHEMA].off - ln = parsed.field_data[cparser.UF_SCHEMA].len - schema = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - else: - schema = '' - - if parsed.field_set & (1 << cparser.UF_HOST): - off = parsed.field_data[cparser.UF_HOST].off - ln = parsed.field_data[cparser.UF_HOST].len - host = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - else: - host = '' - - if parsed.field_set & (1 << cparser.UF_PORT): - port = parsed.port - - if parsed.field_set & (1 << cparser.UF_PATH): - off = parsed.field_data[cparser.UF_PATH].off - ln = parsed.field_data[cparser.UF_PATH].len - path = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - else: - path = '' - - if parsed.field_set & (1 << cparser.UF_QUERY): - off = parsed.field_data[cparser.UF_QUERY].off - ln = parsed.field_data[cparser.UF_QUERY].len - query = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - else: - query = '' - - if parsed.field_set & (1 << cparser.UF_FRAGMENT): - off = parsed.field_data[cparser.UF_FRAGMENT].off - ln = parsed.field_data[cparser.UF_FRAGMENT].len - fragment = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - else: - fragment = '' - - if parsed.field_set & (1 << cparser.UF_USERINFO): - off = parsed.field_data[cparser.UF_USERINFO].off - ln = parsed.field_data[cparser.UF_USERINFO].len - userinfo = buf_data[off:off+ln].decode('utf-8', 'surrogateescape') - - user, sep, password = userinfo.partition(':') - - return URL_build(scheme=schema, - user=user, password=password, host=host, port=port, - path=path, query_string=query, fragment=fragment, encoded=True) - else: - raise InvalidURLError("invalid url {!r}".format(buf_data)) - finally: - PyMem_Free(parsed) + return BadHttpMessage(err_msg) diff --git a/aiohttp/_http_writer.c b/aiohttp/_http_writer.c index 09e3efa..42c099a 100644 --- a/aiohttp/_http_writer.c +++ b/aiohttp/_http_writer.c @@ -1,14 +1,16 @@ -/* Generated by Cython 0.29.21 */ +/* Generated by Cython 0.29.32 */ +#ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN +#endif /* PY_SSIZE_T_CLEAN */ #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else -#define CYTHON_ABI "0_29_21" -#define CYTHON_HEX_VERSION 0x001D15F0 +#define CYTHON_ABI "0_29_32" +#define CYTHON_HEX_VERSION 0x001D20F0 #define CYTHON_FUTURE_DIVISION 1 #include #ifndef offsetof @@ -47,6 +49,7 @@ #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_PYTYPE_LOOKUP @@ -83,10 +86,14 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_HEX >= 0x07030900) + #endif #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -124,10 +131,59 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 + #endif +#elif defined(PY_NOGIL) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #ifndef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 1 + #endif + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 1 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -155,7 +211,7 @@ #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif - #if PY_VERSION_HEX < 0x030300F0 + #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) @@ -170,11 +226,14 @@ #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif - #ifndef CYTHON_FAST_THREAD_STATE + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #elif !defined(CYTHON_FAST_THREAD_STATE) #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 + #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030A0000) #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) @@ -185,15 +244,23 @@ #ifndef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) #endif - #ifndef CYTHON_USE_EXC_INFO_STACK + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #elif !defined(CYTHON_USE_EXC_INFO_STACK) #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) #endif + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 1 + #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if CYTHON_USE_PYLONG_INTERNALS - #include "longintrepr.h" + #if PY_MAJOR_VERSION < 3 + #include "longintrepr.h" + #endif #undef SHIFT #undef BASE #undef MASK @@ -310,9 +377,68 @@ #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) + #define __Pyx_DefaultClassType PyType_Type +#if PY_VERSION_HEX >= 0x030B00A1 + static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f, + PyObject *code, PyObject *c, PyObject* n, PyObject *v, + PyObject *fv, PyObject *cell, PyObject* fn, + PyObject *name, int fline, PyObject *lnos) { + PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL; + PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL; + const char *fn_cstr=NULL; + const char *name_cstr=NULL; + PyCodeObject* co=NULL; + PyObject *type, *value, *traceback; + PyErr_Fetch(&type, &value, &traceback); + if (!(kwds=PyDict_New())) goto end; + if (!(argcount=PyLong_FromLong(a))) goto end; + if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end; + if (!(posonlyargcount=PyLong_FromLong(0))) goto end; + if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end; + if (!(kwonlyargcount=PyLong_FromLong(k))) goto end; + if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end; + if (!(nlocals=PyLong_FromLong(l))) goto end; + if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end; + if (!(stacksize=PyLong_FromLong(s))) goto end; + if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end; + if (!(flags=PyLong_FromLong(f))) goto end; + if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end; + if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end; + if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end; + if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end; + if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too; + if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here + if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too; + Py_XDECREF((PyObject*)co); + co = (PyCodeObject*)call_result; + call_result = NULL; + if (0) { + cleanup_code_too: + Py_XDECREF((PyObject*)co); + co = NULL; + } + end: + Py_XDECREF(kwds); + Py_XDECREF(argcount); + Py_XDECREF(posonlyargcount); + Py_XDECREF(kwonlyargcount); + Py_XDECREF(nlocals); + Py_XDECREF(stacksize); + Py_XDECREF(replace); + Py_XDECREF(call_result); + Py_XDECREF(empty); + if (type) { + PyErr_Restore(type, value, traceback); + } + return co; + } #else #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) @@ -426,8 +552,12 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 + #if defined(PyUnicode_IS_READY) #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) + #else + #define __Pyx_PyUnicode_READY(op) (0) + #endif #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) @@ -436,7 +566,11 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) + #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) + #endif #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) #endif @@ -542,10 +676,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) @@ -570,8 +704,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { } __Pyx_PyAsyncMethodsStruct; #endif -#if defined(WIN32) || defined(MS_WINDOWS) - #define _USE_MATH_DEFINES +#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS) + #if !defined(_USE_MATH_DEFINES) + #define _USE_MATH_DEFINES + #endif #endif #include #ifdef NAN @@ -704,6 +840,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else @@ -976,13 +1113,21 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif +#if CYTHON_FAST_PYCALL static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif // CYTHON_FAST_PYCALL #endif /* PyObjectCall.proto */ @@ -1006,6 +1151,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); +/* PyUnicodeContains.proto */ +static CYTHON_INLINE int __Pyx_PyUnicode_ContainsTF(PyObject* substring, PyObject* text, int eq) { + int result = PyUnicode_Contains(text, substring); + return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); +} + /* RaiseArgTupleInvalid.proto */ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); @@ -1024,14 +1175,6 @@ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ __Pyx__ArgTypeTest(obj, type, name, exact)) static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); -/* GetTopmostException.proto */ -#if CYTHON_USE_EXC_INFO_STACK -static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); -#endif - -/* ReRaiseException.proto */ -static CYTHON_INLINE void __Pyx_ReraiseException(void); - /* IterFinish.proto */ static CYTHON_INLINE int __Pyx_IterFinish(void); @@ -1081,6 +1224,14 @@ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); +/* GetTopmostException.proto */ +#if CYTHON_USE_EXC_INFO_STACK +static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); +#endif + +/* ReRaiseException.proto */ +static CYTHON_INLINE void __Pyx_ReraiseException(void); + /* GetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) @@ -1198,6 +1349,11 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); +/* GCCDiagnostics.proto */ +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define __Pyx_HAS_GCC_DIAGNOSTIC +#endif + /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); @@ -1257,12 +1413,16 @@ static CYTHON_INLINE int __pyx_f_7aiohttp_12_http_writer__write_byte(struct __py static CYTHON_INLINE int __pyx_f_7aiohttp_12_http_writer__write_utf8(struct __pyx_t_7aiohttp_12_http_writer_Writer *, Py_UCS4); /*proto*/ static CYTHON_INLINE int __pyx_f_7aiohttp_12_http_writer__write_str(struct __pyx_t_7aiohttp_12_http_writer_Writer *, PyObject *); /*proto*/ static PyObject *__pyx_f_7aiohttp_12_http_writer_to_str(PyObject *); /*proto*/ +static void __pyx_f_7aiohttp_12_http_writer__safe_header(PyObject *); /*proto*/ #define __Pyx_MODULE_NAME "aiohttp._http_writer" extern int __pyx_module_is_main_aiohttp___http_writer; int __pyx_module_is_main_aiohttp___http_writer = 0; /* Implementation of 'aiohttp._http_writer' */ static PyObject *__pyx_builtin_TypeError; +static PyObject *__pyx_builtin_ValueError; +static const char __pyx_k_[] = "\r"; +static const char __pyx_k__2[] = "\n"; static const char __pyx_k_key[] = "key"; static const char __pyx_k_ret[] = "ret"; static const char __pyx_k_val[] = "val"; @@ -1277,14 +1437,20 @@ static const char __pyx_k_writer[] = "writer"; static const char __pyx_k_headers[] = "headers"; static const char __pyx_k_TypeError[] = "TypeError"; static const char __pyx_k_multidict[] = "multidict"; +static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_status_line[] = "status_line"; static const char __pyx_k_serialize_headers[] = "_serialize_headers"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; static const char __pyx_k_aiohttp__http_writer[] = "aiohttp._http_writer"; static const char __pyx_k_aiohttp__http_writer_pyx[] = "aiohttp/_http_writer.pyx"; static const char __pyx_k_Cannot_serialize_non_str_key_r[] = "Cannot serialize non-str key {!r}"; +static const char __pyx_k_Newline_or_carriage_return_chara[] = "Newline or carriage return character detected in HTTP status message or header. This is a potential security issue."; +static PyObject *__pyx_kp_u_; static PyObject *__pyx_kp_u_Cannot_serialize_non_str_key_r; +static PyObject *__pyx_kp_u_Newline_or_carriage_return_chara; static PyObject *__pyx_n_s_TypeError; +static PyObject *__pyx_n_s_ValueError; +static PyObject *__pyx_kp_u__2; static PyObject *__pyx_n_s_aiohttp__http_writer; static PyObject *__pyx_kp_s_aiohttp__http_writer_pyx; static PyObject *__pyx_n_s_cline_in_traceback; @@ -1304,8 +1470,9 @@ static PyObject *__pyx_n_s_test; static PyObject *__pyx_n_s_val; static PyObject *__pyx_n_s_writer; static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_status_line, PyObject *__pyx_v_headers); /* proto */ -static PyObject *__pyx_tuple_; -static PyObject *__pyx_codeobj__2; +static PyObject *__pyx_tuple__3; +static PyObject *__pyx_tuple__4; +static PyObject *__pyx_codeobj__5; /* Late includes */ /* "aiohttp/_http_writer.pyx":24 @@ -2323,6 +2490,92 @@ static PyObject *__pyx_f_7aiohttp_12_http_writer_to_str(PyObject *__pyx_v_s) { } /* "aiohttp/_http_writer.pyx":114 + * + * + * cdef void _safe_header(str string) except *: # <<<<<<<<<<<<<< + * if "\r" in string or "\n" in string: + * raise ValueError( + */ + +static void __pyx_f_7aiohttp_12_http_writer__safe_header(PyObject *__pyx_v_string) { + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_safe_header", 0); + + /* "aiohttp/_http_writer.pyx":115 + * + * cdef void _safe_header(str string) except *: + * if "\r" in string or "\n" in string: # <<<<<<<<<<<<<< + * raise ValueError( + * "Newline or carriage return character detected in HTTP status message or " + */ + if (unlikely(__pyx_v_string == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); + __PYX_ERR(0, 115, __pyx_L1_error) + } + __pyx_t_2 = (__Pyx_PyUnicode_ContainsTF(__pyx_kp_u_, __pyx_v_string, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 115, __pyx_L1_error) + __pyx_t_3 = (__pyx_t_2 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + if (unlikely(__pyx_v_string == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); + __PYX_ERR(0, 115, __pyx_L1_error) + } + __pyx_t_3 = (__Pyx_PyUnicode_ContainsTF(__pyx_kp_u__2, __pyx_v_string, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 115, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (unlikely(__pyx_t_1)) { + + /* "aiohttp/_http_writer.pyx":116 + * cdef void _safe_header(str string) except *: + * if "\r" in string or "\n" in string: + * raise ValueError( # <<<<<<<<<<<<<< + * "Newline or carriage return character detected in HTTP status message or " + * "header. This is a potential security issue." + */ + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(0, 116, __pyx_L1_error) + + /* "aiohttp/_http_writer.pyx":115 + * + * cdef void _safe_header(str string) except *: + * if "\r" in string or "\n" in string: # <<<<<<<<<<<<<< + * raise ValueError( + * "Newline or carriage return character detected in HTTP status message or " + */ + } + + /* "aiohttp/_http_writer.pyx":114 + * + * + * cdef void _safe_header(str string) except *: # <<<<<<<<<<<<<< + * if "\r" in string or "\n" in string: + * raise ValueError( + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("aiohttp._http_writer._safe_header", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "aiohttp/_http_writer.pyx":122 * * * def _serialize_headers(str status_line, headers): # <<<<<<<<<<<<<< @@ -2365,11 +2618,11 @@ static PyObject *__pyx_pw_7aiohttp_12_http_writer_1_serialize_headers(PyObject * case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_headers)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("_serialize_headers", 1, 2, 2, 1); __PYX_ERR(0, 114, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_serialize_headers", 1, 2, 2, 1); __PYX_ERR(0, 122, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_serialize_headers") < 0)) __PYX_ERR(0, 114, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_serialize_headers") < 0)) __PYX_ERR(0, 122, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; @@ -2382,13 +2635,13 @@ static PyObject *__pyx_pw_7aiohttp_12_http_writer_1_serialize_headers(PyObject * } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_serialize_headers", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 114, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_serialize_headers", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 122, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("aiohttp._http_writer._serialize_headers", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status_line), (&PyUnicode_Type), 1, "status_line", 1))) __PYX_ERR(0, 114, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_status_line), (&PyUnicode_Type), 1, "status_line", 1))) __PYX_ERR(0, 122, __pyx_L1_error) __pyx_r = __pyx_pf_7aiohttp_12_http_writer__serialize_headers(__pyx_self, __pyx_v_status_line, __pyx_v_headers); /* function exit code */ @@ -2406,13 +2659,13 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS PyObject *__pyx_v_val = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - int __pyx_t_5; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; + int __pyx_t_7; int __pyx_t_8; char const *__pyx_t_9; PyObject *__pyx_t_10 = NULL; @@ -2426,44 +2679,98 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_serialize_headers", 0); - /* "aiohttp/_http_writer.pyx":120 + /* "aiohttp/_http_writer.pyx":128 * cdef bytes ret * * _init_writer(&writer) # <<<<<<<<<<<<<< * - * try: + * for key, val in headers.items(): */ __pyx_f_7aiohttp_12_http_writer__init_writer((&__pyx_v_writer)); - /* "aiohttp/_http_writer.pyx":122 + /* "aiohttp/_http_writer.pyx":130 * _init_writer(&writer) * + * for key, val in headers.items(): # <<<<<<<<<<<<<< + * _safe_header(to_str(key)) + * _safe_header(to_str(val)) + */ + __pyx_t_2 = 0; + if (unlikely(__pyx_v_headers == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); + __PYX_ERR(0, 130, __pyx_L1_error) + } + __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_headers, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_1); + __pyx_t_1 = __pyx_t_5; + __pyx_t_5 = 0; + while (1) { + __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4); + if (unlikely(__pyx_t_7 == 0)) break; + if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5); + __pyx_t_5 = 0; + __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_6); + __pyx_t_6 = 0; + + /* "aiohttp/_http_writer.pyx":131 + * + * for key, val in headers.items(): + * _safe_header(to_str(key)) # <<<<<<<<<<<<<< + * _safe_header(to_str(val)) + * + */ + __pyx_t_6 = __pyx_f_7aiohttp_12_http_writer_to_str(__pyx_v_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_f_7aiohttp_12_http_writer__safe_header(((PyObject*)__pyx_t_6)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 131, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "aiohttp/_http_writer.pyx":132 + * for key, val in headers.items(): + * _safe_header(to_str(key)) + * _safe_header(to_str(val)) # <<<<<<<<<<<<<< + * + * try: + */ + __pyx_t_6 = __pyx_f_7aiohttp_12_http_writer_to_str(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_f_7aiohttp_12_http_writer__safe_header(((PyObject*)__pyx_t_6)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 132, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "aiohttp/_http_writer.pyx":134 + * _safe_header(to_str(val)) + * * try: # <<<<<<<<<<<<<< * if _write_str(&writer, status_line) < 0: * raise */ /*try:*/ { - /* "aiohttp/_http_writer.pyx":123 + /* "aiohttp/_http_writer.pyx":135 * * try: * if _write_str(&writer, status_line) < 0: # <<<<<<<<<<<<<< * raise * if _write_byte(&writer, b'\r') < 0: */ - __pyx_t_1 = ((__pyx_f_7aiohttp_12_http_writer__write_str((&__pyx_v_writer), __pyx_v_status_line) < 0) != 0); - if (unlikely(__pyx_t_1)) { + __pyx_t_8 = ((__pyx_f_7aiohttp_12_http_writer__write_str((&__pyx_v_writer), __pyx_v_status_line) < 0) != 0); + if (unlikely(__pyx_t_8)) { - /* "aiohttp/_http_writer.pyx":124 + /* "aiohttp/_http_writer.pyx":136 * try: * if _write_str(&writer, status_line) < 0: * raise # <<<<<<<<<<<<<< * if _write_byte(&writer, b'\r') < 0: * raise */ - __Pyx_ReraiseException(); __PYX_ERR(0, 124, __pyx_L4_error) + __Pyx_ReraiseException(); __PYX_ERR(0, 136, __pyx_L6_error) - /* "aiohttp/_http_writer.pyx":123 + /* "aiohttp/_http_writer.pyx":135 * * try: * if _write_str(&writer, status_line) < 0: # <<<<<<<<<<<<<< @@ -2472,26 +2779,26 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS */ } - /* "aiohttp/_http_writer.pyx":125 + /* "aiohttp/_http_writer.pyx":137 * if _write_str(&writer, status_line) < 0: * raise * if _write_byte(&writer, b'\r') < 0: # <<<<<<<<<<<<<< * raise * if _write_byte(&writer, b'\n') < 0: */ - __pyx_t_1 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\r') < 0) != 0); - if (unlikely(__pyx_t_1)) { + __pyx_t_8 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\r') < 0) != 0); + if (unlikely(__pyx_t_8)) { - /* "aiohttp/_http_writer.pyx":126 + /* "aiohttp/_http_writer.pyx":138 * raise * if _write_byte(&writer, b'\r') < 0: * raise # <<<<<<<<<<<<<< * if _write_byte(&writer, b'\n') < 0: * raise */ - __Pyx_ReraiseException(); __PYX_ERR(0, 126, __pyx_L4_error) + __Pyx_ReraiseException(); __PYX_ERR(0, 138, __pyx_L6_error) - /* "aiohttp/_http_writer.pyx":125 + /* "aiohttp/_http_writer.pyx":137 * if _write_str(&writer, status_line) < 0: * raise * if _write_byte(&writer, b'\r') < 0: # <<<<<<<<<<<<<< @@ -2500,26 +2807,26 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS */ } - /* "aiohttp/_http_writer.pyx":127 + /* "aiohttp/_http_writer.pyx":139 * if _write_byte(&writer, b'\r') < 0: * raise * if _write_byte(&writer, b'\n') < 0: # <<<<<<<<<<<<<< * raise * */ - __pyx_t_1 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\n') < 0) != 0); - if (unlikely(__pyx_t_1)) { + __pyx_t_8 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\n') < 0) != 0); + if (unlikely(__pyx_t_8)) { - /* "aiohttp/_http_writer.pyx":128 + /* "aiohttp/_http_writer.pyx":140 * raise * if _write_byte(&writer, b'\n') < 0: * raise # <<<<<<<<<<<<<< * * for key, val in headers.items(): */ - __Pyx_ReraiseException(); __PYX_ERR(0, 128, __pyx_L4_error) + __Pyx_ReraiseException(); __PYX_ERR(0, 140, __pyx_L6_error) - /* "aiohttp/_http_writer.pyx":127 + /* "aiohttp/_http_writer.pyx":139 * if _write_byte(&writer, b'\r') < 0: * raise * if _write_byte(&writer, b'\n') < 0: # <<<<<<<<<<<<<< @@ -2528,7 +2835,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS */ } - /* "aiohttp/_http_writer.pyx":130 + /* "aiohttp/_http_writer.pyx":142 * raise * * for key, val in headers.items(): # <<<<<<<<<<<<<< @@ -2538,47 +2845,47 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS __pyx_t_3 = 0; if (unlikely(__pyx_v_headers == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(0, 130, __pyx_L4_error) + __PYX_ERR(0, 142, __pyx_L6_error) } - __pyx_t_6 = __Pyx_dict_iterator(__pyx_v_headers, 0, __pyx_n_s_items, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 130, __pyx_L4_error) + __pyx_t_6 = __Pyx_dict_iterator(__pyx_v_headers, 0, __pyx_n_s_items, (&__pyx_t_2), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 142, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_2); - __pyx_t_2 = __pyx_t_6; + __Pyx_XDECREF(__pyx_t_1); + __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; while (1) { - __pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, &__pyx_t_7, NULL, __pyx_t_5); - if (unlikely(__pyx_t_8 == 0)) break; - if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 130, __pyx_L4_error) + __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_2, &__pyx_t_3, &__pyx_t_6, &__pyx_t_5, NULL, __pyx_t_4); + if (unlikely(__pyx_t_7 == 0)) break; + if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 142, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_7); - __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_5); + __pyx_t_5 = 0; - /* "aiohttp/_http_writer.pyx":131 + /* "aiohttp/_http_writer.pyx":143 * * for key, val in headers.items(): * if _write_str(&writer, to_str(key)) < 0: # <<<<<<<<<<<<<< * raise * if _write_byte(&writer, b':') < 0: */ - __pyx_t_7 = __pyx_f_7aiohttp_12_http_writer_to_str(__pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 131, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = ((__pyx_f_7aiohttp_12_http_writer__write_str((&__pyx_v_writer), ((PyObject*)__pyx_t_7)) < 0) != 0); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(__pyx_t_1)) { + __pyx_t_5 = __pyx_f_7aiohttp_12_http_writer_to_str(__pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = ((__pyx_f_7aiohttp_12_http_writer__write_str((&__pyx_v_writer), ((PyObject*)__pyx_t_5)) < 0) != 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_t_8)) { - /* "aiohttp/_http_writer.pyx":132 + /* "aiohttp/_http_writer.pyx":144 * for key, val in headers.items(): * if _write_str(&writer, to_str(key)) < 0: * raise # <<<<<<<<<<<<<< * if _write_byte(&writer, b':') < 0: * raise */ - __Pyx_ReraiseException(); __PYX_ERR(0, 132, __pyx_L4_error) + __Pyx_ReraiseException(); __PYX_ERR(0, 144, __pyx_L6_error) - /* "aiohttp/_http_writer.pyx":131 + /* "aiohttp/_http_writer.pyx":143 * * for key, val in headers.items(): * if _write_str(&writer, to_str(key)) < 0: # <<<<<<<<<<<<<< @@ -2587,26 +2894,26 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS */ } - /* "aiohttp/_http_writer.pyx":133 + /* "aiohttp/_http_writer.pyx":145 * if _write_str(&writer, to_str(key)) < 0: * raise * if _write_byte(&writer, b':') < 0: # <<<<<<<<<<<<<< * raise * if _write_byte(&writer, b' ') < 0: */ - __pyx_t_1 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), ':') < 0) != 0); - if (unlikely(__pyx_t_1)) { + __pyx_t_8 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), ':') < 0) != 0); + if (unlikely(__pyx_t_8)) { - /* "aiohttp/_http_writer.pyx":134 + /* "aiohttp/_http_writer.pyx":146 * raise * if _write_byte(&writer, b':') < 0: * raise # <<<<<<<<<<<<<< * if _write_byte(&writer, b' ') < 0: * raise */ - __Pyx_ReraiseException(); __PYX_ERR(0, 134, __pyx_L4_error) + __Pyx_ReraiseException(); __PYX_ERR(0, 146, __pyx_L6_error) - /* "aiohttp/_http_writer.pyx":133 + /* "aiohttp/_http_writer.pyx":145 * if _write_str(&writer, to_str(key)) < 0: * raise * if _write_byte(&writer, b':') < 0: # <<<<<<<<<<<<<< @@ -2615,26 +2922,26 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS */ } - /* "aiohttp/_http_writer.pyx":135 + /* "aiohttp/_http_writer.pyx":147 * if _write_byte(&writer, b':') < 0: * raise * if _write_byte(&writer, b' ') < 0: # <<<<<<<<<<<<<< * raise * if _write_str(&writer, to_str(val)) < 0: */ - __pyx_t_1 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), ' ') < 0) != 0); - if (unlikely(__pyx_t_1)) { + __pyx_t_8 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), ' ') < 0) != 0); + if (unlikely(__pyx_t_8)) { - /* "aiohttp/_http_writer.pyx":136 + /* "aiohttp/_http_writer.pyx":148 * raise * if _write_byte(&writer, b' ') < 0: * raise # <<<<<<<<<<<<<< * if _write_str(&writer, to_str(val)) < 0: * raise */ - __Pyx_ReraiseException(); __PYX_ERR(0, 136, __pyx_L4_error) + __Pyx_ReraiseException(); __PYX_ERR(0, 148, __pyx_L6_error) - /* "aiohttp/_http_writer.pyx":135 + /* "aiohttp/_http_writer.pyx":147 * if _write_byte(&writer, b':') < 0: * raise * if _write_byte(&writer, b' ') < 0: # <<<<<<<<<<<<<< @@ -2643,29 +2950,29 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS */ } - /* "aiohttp/_http_writer.pyx":137 + /* "aiohttp/_http_writer.pyx":149 * if _write_byte(&writer, b' ') < 0: * raise * if _write_str(&writer, to_str(val)) < 0: # <<<<<<<<<<<<<< * raise * if _write_byte(&writer, b'\r') < 0: */ - __pyx_t_7 = __pyx_f_7aiohttp_12_http_writer_to_str(__pyx_v_val); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 137, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = ((__pyx_f_7aiohttp_12_http_writer__write_str((&__pyx_v_writer), ((PyObject*)__pyx_t_7)) < 0) != 0); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(__pyx_t_1)) { + __pyx_t_5 = __pyx_f_7aiohttp_12_http_writer_to_str(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 149, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = ((__pyx_f_7aiohttp_12_http_writer__write_str((&__pyx_v_writer), ((PyObject*)__pyx_t_5)) < 0) != 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_t_8)) { - /* "aiohttp/_http_writer.pyx":138 + /* "aiohttp/_http_writer.pyx":150 * raise * if _write_str(&writer, to_str(val)) < 0: * raise # <<<<<<<<<<<<<< * if _write_byte(&writer, b'\r') < 0: * raise */ - __Pyx_ReraiseException(); __PYX_ERR(0, 138, __pyx_L4_error) + __Pyx_ReraiseException(); __PYX_ERR(0, 150, __pyx_L6_error) - /* "aiohttp/_http_writer.pyx":137 + /* "aiohttp/_http_writer.pyx":149 * if _write_byte(&writer, b' ') < 0: * raise * if _write_str(&writer, to_str(val)) < 0: # <<<<<<<<<<<<<< @@ -2674,26 +2981,26 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS */ } - /* "aiohttp/_http_writer.pyx":139 + /* "aiohttp/_http_writer.pyx":151 * if _write_str(&writer, to_str(val)) < 0: * raise * if _write_byte(&writer, b'\r') < 0: # <<<<<<<<<<<<<< * raise * if _write_byte(&writer, b'\n') < 0: */ - __pyx_t_1 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\r') < 0) != 0); - if (unlikely(__pyx_t_1)) { + __pyx_t_8 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\r') < 0) != 0); + if (unlikely(__pyx_t_8)) { - /* "aiohttp/_http_writer.pyx":140 + /* "aiohttp/_http_writer.pyx":152 * raise * if _write_byte(&writer, b'\r') < 0: * raise # <<<<<<<<<<<<<< * if _write_byte(&writer, b'\n') < 0: * raise */ - __Pyx_ReraiseException(); __PYX_ERR(0, 140, __pyx_L4_error) + __Pyx_ReraiseException(); __PYX_ERR(0, 152, __pyx_L6_error) - /* "aiohttp/_http_writer.pyx":139 + /* "aiohttp/_http_writer.pyx":151 * if _write_str(&writer, to_str(val)) < 0: * raise * if _write_byte(&writer, b'\r') < 0: # <<<<<<<<<<<<<< @@ -2702,26 +3009,26 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS */ } - /* "aiohttp/_http_writer.pyx":141 + /* "aiohttp/_http_writer.pyx":153 * if _write_byte(&writer, b'\r') < 0: * raise * if _write_byte(&writer, b'\n') < 0: # <<<<<<<<<<<<<< * raise * */ - __pyx_t_1 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\n') < 0) != 0); - if (unlikely(__pyx_t_1)) { + __pyx_t_8 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\n') < 0) != 0); + if (unlikely(__pyx_t_8)) { - /* "aiohttp/_http_writer.pyx":142 + /* "aiohttp/_http_writer.pyx":154 * raise * if _write_byte(&writer, b'\n') < 0: * raise # <<<<<<<<<<<<<< * * if _write_byte(&writer, b'\r') < 0: */ - __Pyx_ReraiseException(); __PYX_ERR(0, 142, __pyx_L4_error) + __Pyx_ReraiseException(); __PYX_ERR(0, 154, __pyx_L6_error) - /* "aiohttp/_http_writer.pyx":141 + /* "aiohttp/_http_writer.pyx":153 * if _write_byte(&writer, b'\r') < 0: * raise * if _write_byte(&writer, b'\n') < 0: # <<<<<<<<<<<<<< @@ -2730,28 +3037,28 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS */ } } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "aiohttp/_http_writer.pyx":144 + /* "aiohttp/_http_writer.pyx":156 * raise * * if _write_byte(&writer, b'\r') < 0: # <<<<<<<<<<<<<< * raise * if _write_byte(&writer, b'\n') < 0: */ - __pyx_t_1 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\r') < 0) != 0); - if (unlikely(__pyx_t_1)) { + __pyx_t_8 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\r') < 0) != 0); + if (unlikely(__pyx_t_8)) { - /* "aiohttp/_http_writer.pyx":145 + /* "aiohttp/_http_writer.pyx":157 * * if _write_byte(&writer, b'\r') < 0: * raise # <<<<<<<<<<<<<< * if _write_byte(&writer, b'\n') < 0: * raise */ - __Pyx_ReraiseException(); __PYX_ERR(0, 145, __pyx_L4_error) + __Pyx_ReraiseException(); __PYX_ERR(0, 157, __pyx_L6_error) - /* "aiohttp/_http_writer.pyx":144 + /* "aiohttp/_http_writer.pyx":156 * raise * * if _write_byte(&writer, b'\r') < 0: # <<<<<<<<<<<<<< @@ -2760,26 +3067,26 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS */ } - /* "aiohttp/_http_writer.pyx":146 + /* "aiohttp/_http_writer.pyx":158 * if _write_byte(&writer, b'\r') < 0: * raise * if _write_byte(&writer, b'\n') < 0: # <<<<<<<<<<<<<< * raise * */ - __pyx_t_1 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\n') < 0) != 0); - if (unlikely(__pyx_t_1)) { + __pyx_t_8 = ((__pyx_f_7aiohttp_12_http_writer__write_byte((&__pyx_v_writer), '\n') < 0) != 0); + if (unlikely(__pyx_t_8)) { - /* "aiohttp/_http_writer.pyx":147 + /* "aiohttp/_http_writer.pyx":159 * raise * if _write_byte(&writer, b'\n') < 0: * raise # <<<<<<<<<<<<<< * * return PyBytes_FromStringAndSize(writer.buf, writer.pos) */ - __Pyx_ReraiseException(); __PYX_ERR(0, 147, __pyx_L4_error) + __Pyx_ReraiseException(); __PYX_ERR(0, 159, __pyx_L6_error) - /* "aiohttp/_http_writer.pyx":146 + /* "aiohttp/_http_writer.pyx":158 * if _write_byte(&writer, b'\r') < 0: * raise * if _write_byte(&writer, b'\n') < 0: # <<<<<<<<<<<<<< @@ -2788,7 +3095,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS */ } - /* "aiohttp/_http_writer.pyx":149 + /* "aiohttp/_http_writer.pyx":161 * raise * * return PyBytes_FromStringAndSize(writer.buf, writer.pos) # <<<<<<<<<<<<<< @@ -2796,27 +3103,27 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS * _release_writer(&writer) */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyBytes_FromStringAndSize(__pyx_v_writer.buf, __pyx_v_writer.pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L3_return; + __pyx_t_1 = PyBytes_FromStringAndSize(__pyx_v_writer.buf, __pyx_v_writer.pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L5_return; } - /* "aiohttp/_http_writer.pyx":151 + /* "aiohttp/_http_writer.pyx":163 * return PyBytes_FromStringAndSize(writer.buf, writer.pos) * finally: * _release_writer(&writer) # <<<<<<<<<<<<<< */ /*finally:*/ { - __pyx_L4_error:; + __pyx_L6_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); __Pyx_XGOTREF(__pyx_t_10); @@ -2825,7 +3132,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); - __pyx_t_5 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_9 = __pyx_filename; + __pyx_t_4 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_9 = __pyx_filename; { __pyx_f_7aiohttp_12_http_writer__release_writer((&__pyx_v_writer)); } @@ -2840,10 +3147,10 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ErrRestore(__pyx_t_10, __pyx_t_11, __pyx_t_12); __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; - __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_9; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_9; goto __pyx_L1_error; } - __pyx_L3_return: { + __pyx_L5_return: { __pyx_t_15 = __pyx_r; __pyx_r = 0; __pyx_f_7aiohttp_12_http_writer__release_writer((&__pyx_v_writer)); @@ -2853,7 +3160,7 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS } } - /* "aiohttp/_http_writer.pyx":114 + /* "aiohttp/_http_writer.pyx":122 * * * def _serialize_headers(str status_line, headers): # <<<<<<<<<<<<<< @@ -2863,9 +3170,9 @@ static PyObject *__pyx_pf_7aiohttp_12_http_writer__serialize_headers(CYTHON_UNUS /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("aiohttp._http_writer._serialize_headers", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -2922,8 +3229,12 @@ static struct PyModuleDef __pyx_moduledef = { #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_kp_u_, __pyx_k_, sizeof(__pyx_k_), 0, 1, 0, 0}, {&__pyx_kp_u_Cannot_serialize_non_str_key_r, __pyx_k_Cannot_serialize_non_str_key_r, sizeof(__pyx_k_Cannot_serialize_non_str_key_r), 0, 1, 0, 0}, + {&__pyx_kp_u_Newline_or_carriage_return_chara, __pyx_k_Newline_or_carriage_return_chara, sizeof(__pyx_k_Newline_or_carriage_return_chara), 0, 1, 0, 0}, {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, + {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, + {&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0}, {&__pyx_n_s_aiohttp__http_writer, __pyx_k_aiohttp__http_writer, sizeof(__pyx_k_aiohttp__http_writer), 0, 0, 1, 1}, {&__pyx_kp_s_aiohttp__http_writer_pyx, __pyx_k_aiohttp__http_writer_pyx, sizeof(__pyx_k_aiohttp__http_writer_pyx), 0, 0, 1, 0}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, @@ -2946,6 +3257,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { }; static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 109, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 116, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -2955,17 +3267,28 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "aiohttp/_http_writer.pyx":114 + /* "aiohttp/_http_writer.pyx":116 + * cdef void _safe_header(str string) except *: + * if "\r" in string or "\n" in string: + * raise ValueError( # <<<<<<<<<<<<<< + * "Newline or carriage return character detected in HTTP status message or " + * "header. This is a potential security issue." + */ + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_Newline_or_carriage_return_chara); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__3); + __Pyx_GIVEREF(__pyx_tuple__3); + + /* "aiohttp/_http_writer.pyx":122 * * * def _serialize_headers(str status_line, headers): # <<<<<<<<<<<<<< * cdef Writer writer * cdef object key */ - __pyx_tuple_ = PyTuple_Pack(6, __pyx_n_s_status_line, __pyx_n_s_headers, __pyx_n_s_writer, __pyx_n_s_key, __pyx_n_s_val, __pyx_n_s_ret); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple_); - __Pyx_GIVEREF(__pyx_tuple_); - __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple_, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_aiohttp__http_writer_pyx, __pyx_n_s_serialize_headers, 114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 114, __pyx_L1_error) + __pyx_tuple__4 = PyTuple_Pack(6, __pyx_n_s_status_line, __pyx_n_s_headers, __pyx_n_s_writer, __pyx_n_s_key, __pyx_n_s_val, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__4); + __Pyx_GIVEREF(__pyx_tuple__4); + __pyx_codeobj__5 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__4, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_aiohttp__http_writer_pyx, __pyx_n_s_serialize_headers, 122, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__5)) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -3210,11 +3533,9 @@ if (!__Pyx_RefNanny) { #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS PyEval_InitThreads(); #endif - #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; @@ -3302,16 +3623,16 @@ if (!__Pyx_RefNanny) { __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; - /* "aiohttp/_http_writer.pyx":114 + /* "aiohttp/_http_writer.pyx":122 * * * def _serialize_headers(str status_line, headers): # <<<<<<<<<<<<<< * cdef Writer writer * cdef object key */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7aiohttp_12_http_writer_1_serialize_headers, NULL, __pyx_n_s_aiohttp__http_writer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 114, __pyx_L1_error) + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7aiohttp_12_http_writer_1_serialize_headers, NULL, __pyx_n_s_aiohttp__http_writer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_serialize_headers, __pyx_t_2) < 0) __PYX_ERR(0, 114, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_serialize_headers, __pyx_t_2) < 0) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "aiohttp/_http_writer.pyx":1 @@ -3623,7 +3944,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; - ternaryfunc call = func->ob_type->tp_call; + ternaryfunc call = Py_TYPE(func)->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) @@ -3710,7 +4031,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); #if CYTHON_FAST_PYCCALL - } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { + } else if (__Pyx_PyFastCFunction_Check(func)) { return __Pyx_PyCFunction_FastCall(func, &arg, 1); #endif } @@ -4050,57 +4371,6 @@ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *nam return 0; } -/* GetTopmostException */ -#if CYTHON_USE_EXC_INFO_STACK -static _PyErr_StackItem * -__Pyx_PyErr_GetTopmostException(PyThreadState *tstate) -{ - _PyErr_StackItem *exc_info = tstate->exc_info; - while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && - exc_info->previous_item != NULL) - { - exc_info = exc_info->previous_item; - } - return exc_info; -} -#endif - -/* ReRaiseException */ -static CYTHON_INLINE void __Pyx_ReraiseException(void) { - PyObject *type = NULL, *value = NULL, *tb = NULL; -#if CYTHON_FAST_THREAD_STATE - PyThreadState *tstate = PyThreadState_GET(); - #if CYTHON_USE_EXC_INFO_STACK - _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); - type = exc_info->exc_type; - value = exc_info->exc_value; - tb = exc_info->exc_traceback; - #else - type = tstate->exc_type; - value = tstate->exc_value; - tb = tstate->exc_traceback; - #endif -#else - PyErr_GetExcInfo(&type, &value, &tb); -#endif - if (!type || type == Py_None) { -#if !CYTHON_FAST_THREAD_STATE - Py_XDECREF(type); - Py_XDECREF(value); - Py_XDECREF(tb); -#endif - PyErr_SetString(PyExc_RuntimeError, - "No active exception to reraise"); - } else { -#if CYTHON_FAST_THREAD_STATE - Py_INCREF(type); - Py_XINCREF(value); - Py_XINCREF(tb); -#endif - PyErr_Restore(type, value, tb); - } -} - /* IterFinish */ static CYTHON_INLINE int __Pyx_IterFinish(void) { #if CYTHON_FAST_THREAD_STATE @@ -4476,6 +4746,57 @@ static CYTHON_INLINE int __Pyx_dict_iter_next( return 1; } +/* GetTopmostException */ +#if CYTHON_USE_EXC_INFO_STACK +static _PyErr_StackItem * +__Pyx_PyErr_GetTopmostException(PyThreadState *tstate) +{ + _PyErr_StackItem *exc_info = tstate->exc_info; + while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && + exc_info->previous_item != NULL) + { + exc_info = exc_info->previous_item; + } + return exc_info; +} +#endif + +/* ReRaiseException */ +static CYTHON_INLINE void __Pyx_ReraiseException(void) { + PyObject *type = NULL, *value = NULL, *tb = NULL; +#if CYTHON_FAST_THREAD_STATE + PyThreadState *tstate = PyThreadState_GET(); + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); + type = exc_info->exc_type; + value = exc_info->exc_value; + tb = exc_info->exc_traceback; + #else + type = tstate->exc_type; + value = tstate->exc_value; + tb = tstate->exc_traceback; + #endif +#else + PyErr_GetExcInfo(&type, &value, &tb); +#endif + if (!type || type == Py_None) { +#if !CYTHON_FAST_THREAD_STATE + Py_XDECREF(type); + Py_XDECREF(value); + Py_XDECREF(tb); +#endif + PyErr_SetString(PyExc_RuntimeError, + "No active exception to reraise"); + } else { +#if CYTHON_FAST_THREAD_STATE + Py_INCREF(type); + Py_XINCREF(value); + Py_XINCREF(tb); +#endif + PyErr_Restore(type, value, tb); + } +} + /* GetException */ #if CYTHON_FAST_THREAD_STATE static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) @@ -4859,7 +5180,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int } if (!use_cline) { c_line = 0; - PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; @@ -4953,33 +5274,40 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { #include "compile.h" #include "frameobject.h" #include "traceback.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; + PyCodeObject *py_code = NULL; + PyObject *py_funcname = NULL; #if PY_MAJOR_VERSION < 3 + PyObject *py_srcfile = NULL; py_srcfile = PyString_FromString(filename); - #else - py_srcfile = PyUnicode_FromString(filename); - #endif if (!py_srcfile) goto bad; + #endif if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; + funcname = PyUnicode_AsUTF8(py_funcname); + if (!funcname) goto bad; #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); + if (!py_funcname) goto bad; #endif } - if (!py_funcname) goto bad; + #if PY_MAJOR_VERSION < 3 py_code = __Pyx_PyCode_New( 0, 0, @@ -4998,11 +5326,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); - Py_DECREF(py_funcname); + #else + py_code = PyCode_NewEmpty(filename, funcname, py_line); + #endif + Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline return py_code; bad: - Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_srcfile); + #endif return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, @@ -5010,14 +5343,24 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject *ptype, *pvalue, *ptraceback; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); - if (!py_code) goto bad; + if (!py_code) { + /* If the code object creation fails, then we should clear the + fetched exception references and propagate the new exception */ + Py_XDECREF(ptype); + Py_XDECREF(pvalue); + Py_XDECREF(ptraceback); + goto bad; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( @@ -5036,7 +5379,14 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { @@ -5089,7 +5439,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -5278,7 +5635,14 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -5567,11 +5931,33 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { - char ctversion[4], rtversion[4]; - PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); - PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); - if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { + char ctversion[5]; + int same=1, i, found_dot; + const char* rt_from_call = Py_GetVersion(); + PyOS_snprintf(ctversion, 5, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); + found_dot = 0; + for (i = 0; i < 4; i++) { + if (!ctversion[i]) { + same = (rt_from_call[i] < '0' || rt_from_call[i] > '9'); + break; + } + if (rt_from_call[i] != ctversion[i]) { + same = 0; + break; + } + } + if (!same) { + char rtversion[5] = {'\0'}; char message[200]; + for (i=0; i<4; ++i) { + if (rt_from_call[i] == '.') { + if (found_dot) break; + found_dot = 1; + } else if (rt_from_call[i] < '0' || rt_from_call[i] > '9') { + break; + } + rtversion[i] = rt_from_call[i]; + } PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", @@ -5829,6 +6215,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_DECREF(x); return ival; } +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { + if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { + return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); +#if PY_MAJOR_VERSION < 3 + } else if (likely(PyInt_CheckExact(o))) { + return PyInt_AS_LONG(o); +#endif + } else { + Py_ssize_t ival; + PyObject *x; + x = PyNumber_Index(o); + if (!x) return -1; + ival = PyInt_AsLong(x); + Py_DECREF(x); + return ival; + } +} static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } diff --git a/aiohttp/_http_writer.pyx b/aiohttp/_http_writer.pyx index 84b42fa..eff8521 100644 --- a/aiohttp/_http_writer.pyx +++ b/aiohttp/_http_writer.pyx @@ -111,6 +111,14 @@ cdef str to_str(object s): return str(s) +cdef void _safe_header(str string) except *: + if "\r" in string or "\n" in string: + raise ValueError( + "Newline or carriage return character detected in HTTP status message or " + "header. This is a potential security issue." + ) + + def _serialize_headers(str status_line, headers): cdef Writer writer cdef object key @@ -119,6 +127,10 @@ def _serialize_headers(str status_line, headers): _init_writer(&writer) + for key, val in headers.items(): + _safe_header(to_str(key)) + _safe_header(to_str(val)) + try: if _write_str(&writer, status_line) < 0: raise diff --git a/aiohttp/_websocket.c b/aiohttp/_websocket.c index 4891c24..de83e09 100644 --- a/aiohttp/_websocket.c +++ b/aiohttp/_websocket.c @@ -1,14 +1,16 @@ -/* Generated by Cython 0.29.21 */ +/* Generated by Cython 0.29.32 */ +#ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN +#endif /* PY_SSIZE_T_CLEAN */ #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else -#define CYTHON_ABI "0_29_21" -#define CYTHON_HEX_VERSION 0x001D15F0 +#define CYTHON_ABI "0_29_32" +#define CYTHON_HEX_VERSION 0x001D20F0 #define CYTHON_FUTURE_DIVISION 1 #include #ifndef offsetof @@ -47,6 +49,7 @@ #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_PYTYPE_LOOKUP @@ -83,10 +86,14 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_HEX >= 0x07030900) + #endif #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -124,10 +131,59 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 + #endif +#elif defined(PY_NOGIL) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #ifndef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 1 + #endif + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 1 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -155,7 +211,7 @@ #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif - #if PY_VERSION_HEX < 0x030300F0 + #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) @@ -170,11 +226,14 @@ #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif - #ifndef CYTHON_FAST_THREAD_STATE + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #elif !defined(CYTHON_FAST_THREAD_STATE) #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 + #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030A0000) #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) @@ -185,15 +244,23 @@ #ifndef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) #endif - #ifndef CYTHON_USE_EXC_INFO_STACK + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #elif !defined(CYTHON_USE_EXC_INFO_STACK) #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) #endif + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 1 + #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if CYTHON_USE_PYLONG_INTERNALS - #include "longintrepr.h" + #if PY_MAJOR_VERSION < 3 + #include "longintrepr.h" + #endif #undef SHIFT #undef BASE #undef MASK @@ -310,9 +377,68 @@ #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) + #define __Pyx_DefaultClassType PyType_Type +#if PY_VERSION_HEX >= 0x030B00A1 + static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f, + PyObject *code, PyObject *c, PyObject* n, PyObject *v, + PyObject *fv, PyObject *cell, PyObject* fn, + PyObject *name, int fline, PyObject *lnos) { + PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL; + PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL; + const char *fn_cstr=NULL; + const char *name_cstr=NULL; + PyCodeObject* co=NULL; + PyObject *type, *value, *traceback; + PyErr_Fetch(&type, &value, &traceback); + if (!(kwds=PyDict_New())) goto end; + if (!(argcount=PyLong_FromLong(a))) goto end; + if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end; + if (!(posonlyargcount=PyLong_FromLong(0))) goto end; + if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end; + if (!(kwonlyargcount=PyLong_FromLong(k))) goto end; + if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end; + if (!(nlocals=PyLong_FromLong(l))) goto end; + if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end; + if (!(stacksize=PyLong_FromLong(s))) goto end; + if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end; + if (!(flags=PyLong_FromLong(f))) goto end; + if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end; + if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end; + if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end; + if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end; + if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too; + if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here + if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too; + Py_XDECREF((PyObject*)co); + co = (PyCodeObject*)call_result; + call_result = NULL; + if (0) { + cleanup_code_too: + Py_XDECREF((PyObject*)co); + co = NULL; + } + end: + Py_XDECREF(kwds); + Py_XDECREF(argcount); + Py_XDECREF(posonlyargcount); + Py_XDECREF(kwonlyargcount); + Py_XDECREF(nlocals); + Py_XDECREF(stacksize); + Py_XDECREF(replace); + Py_XDECREF(call_result); + Py_XDECREF(empty); + if (type) { + PyErr_Restore(type, value, traceback); + } + return co; + } #else #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) @@ -426,8 +552,12 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 + #if defined(PyUnicode_IS_READY) #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) + #else + #define __Pyx_PyUnicode_READY(op) (0) + #endif #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) @@ -436,7 +566,11 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) + #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) + #endif #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) #endif @@ -542,10 +676,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) @@ -570,8 +704,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { } __Pyx_PyAsyncMethodsStruct; #endif -#if defined(WIN32) || defined(MS_WINDOWS) - #define _USE_MATH_DEFINES +#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS) + #if !defined(_USE_MATH_DEFINES) + #define _USE_MATH_DEFINES + #endif #endif #include #ifdef NAN @@ -705,6 +841,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else @@ -932,13 +1069,21 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif +#if CYTHON_FAST_PYCALL static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif // CYTHON_FAST_PYCALL #endif /* PyObjectCall.proto */ @@ -1055,6 +1200,11 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); +/* GCCDiagnostics.proto */ +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define __Pyx_HAS_GCC_DIAGNOSTIC +#endif + /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); @@ -1951,11 +2101,9 @@ if (!__Pyx_RefNanny) { #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS PyEval_InitThreads(); #endif - #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; @@ -2388,7 +2536,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; - ternaryfunc call = func->ob_type->tp_call; + ternaryfunc call = Py_TYPE(func)->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) @@ -2446,7 +2594,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); #if CYTHON_FAST_PYCCALL - } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { + } else if (__Pyx_PyFastCFunction_Check(func)) { return __Pyx_PyCFunction_FastCall(func, &arg, 1); #endif } @@ -2607,7 +2755,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int } if (!use_cline) { c_line = 0; - PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; @@ -2701,33 +2849,40 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { #include "compile.h" #include "frameobject.h" #include "traceback.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; + PyCodeObject *py_code = NULL; + PyObject *py_funcname = NULL; #if PY_MAJOR_VERSION < 3 + PyObject *py_srcfile = NULL; py_srcfile = PyString_FromString(filename); - #else - py_srcfile = PyUnicode_FromString(filename); - #endif if (!py_srcfile) goto bad; + #endif if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; + funcname = PyUnicode_AsUTF8(py_funcname); + if (!funcname) goto bad; #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); + if (!py_funcname) goto bad; #endif } - if (!py_funcname) goto bad; + #if PY_MAJOR_VERSION < 3 py_code = __Pyx_PyCode_New( 0, 0, @@ -2746,11 +2901,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); - Py_DECREF(py_funcname); + #else + py_code = PyCode_NewEmpty(filename, funcname, py_line); + #endif + Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline return py_code; bad: - Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_srcfile); + #endif return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, @@ -2758,14 +2918,24 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject *ptype, *pvalue, *ptraceback; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); - if (!py_code) goto bad; + if (!py_code) { + /* If the code object creation fails, then we should clear the + fetched exception references and propagate the new exception */ + Py_XDECREF(ptype); + Py_XDECREF(pvalue); + Py_XDECREF(ptraceback); + goto bad; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( @@ -2784,7 +2954,14 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { @@ -2837,7 +3014,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -3026,7 +3210,14 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -3315,11 +3506,33 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { - char ctversion[4], rtversion[4]; - PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); - PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); - if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { + char ctversion[5]; + int same=1, i, found_dot; + const char* rt_from_call = Py_GetVersion(); + PyOS_snprintf(ctversion, 5, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); + found_dot = 0; + for (i = 0; i < 4; i++) { + if (!ctversion[i]) { + same = (rt_from_call[i] < '0' || rt_from_call[i] > '9'); + break; + } + if (rt_from_call[i] != ctversion[i]) { + same = 0; + break; + } + } + if (!same) { + char rtversion[5] = {'\0'}; char message[200]; + for (i=0; i<4; ++i) { + if (rt_from_call[i] == '.') { + if (found_dot) break; + found_dot = 1; + } else if (rt_from_call[i] < '0' || rt_from_call[i] > '9') { + break; + } + rtversion[i] = rt_from_call[i]; + } PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", @@ -3577,6 +3790,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_DECREF(x); return ival; } +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { + if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { + return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); +#if PY_MAJOR_VERSION < 3 + } else if (likely(PyInt_CheckExact(o))) { + return PyInt_AS_LONG(o); +#endif + } else { + Py_ssize_t ival; + PyObject *x; + x = PyNumber_Index(o); + if (!x) return -1; + ival = PyInt_AsLong(x); + Py_DECREF(x); + return ival; + } +} static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } diff --git a/aiohttp/abc.py b/aiohttp/abc.py index 4abfd79..44a3bda 100644 --- a/aiohttp/abc.py +++ b/aiohttp/abc.py @@ -135,6 +135,9 @@ async def close(self) -> None: IterableBase = Iterable +ClearCookiePredicate = Callable[["Morsel[str]"], bool] + + class AbstractCookieJar(Sized, IterableBase): """Abstract Cookie Jar.""" @@ -142,8 +145,12 @@ def __init__(self, *, loop: Optional[asyncio.AbstractEventLoop] = None) -> None: self._loop = get_running_loop(loop) @abstractmethod - def clear(self) -> None: - """Clear all cookies.""" + def clear(self, predicate: Optional[ClearCookiePredicate] = None) -> None: + """Clear all cookies if no predicate is passed.""" + + @abstractmethod + def clear_domain(self, domain: str) -> None: + """Clear all cookies for domain and all subdomains.""" @abstractmethod def update_cookies(self, cookies: LooseCookies, response_url: URL = URL()) -> None: @@ -159,7 +166,7 @@ class AbstractStreamWriter(ABC): buffer_size = 0 output_size = 0 - length = 0 # type: Optional[int] + length: Optional[int] = 0 @abstractmethod async def write(self, chunk: bytes) -> None: diff --git a/aiohttp/base_protocol.py b/aiohttp/base_protocol.py index 01e1831..4c9f0a7 100644 --- a/aiohttp/base_protocol.py +++ b/aiohttp/base_protocol.py @@ -15,13 +15,17 @@ class BaseProtocol(asyncio.Protocol): ) def __init__(self, loop: asyncio.AbstractEventLoop) -> None: - self._loop = loop # type: asyncio.AbstractEventLoop + self._loop: asyncio.AbstractEventLoop = loop self._paused = False - self._drain_waiter = None # type: Optional[asyncio.Future[None]] - self._connection_lost = False + self._drain_waiter: Optional[asyncio.Future[None]] = None self._reading_paused = False - self.transport = None # type: Optional[asyncio.Transport] + self.transport: Optional[asyncio.Transport] = None + + @property + def connected(self) -> bool: + """Return True if the connection is open.""" + return self.transport is not None def pause_writing(self) -> None: assert not self._paused @@ -59,7 +63,6 @@ def connection_made(self, transport: asyncio.BaseTransport) -> None: self.transport = tr def connection_lost(self, exc: Optional[BaseException]) -> None: - self._connection_lost = True # Wake up the writer if currently paused. self.transport = None if not self._paused: @@ -76,12 +79,12 @@ def connection_lost(self, exc: Optional[BaseException]) -> None: waiter.set_exception(exc) async def _drain_helper(self) -> None: - if self._connection_lost: + if not self.connected: raise ConnectionResetError("Connection lost") if not self._paused: return waiter = self._drain_waiter - assert waiter is None or waiter.cancelled() - waiter = self._loop.create_future() - self._drain_waiter = waiter - await waiter + if waiter is None: + waiter = self._loop.create_future() + self._drain_waiter = waiter + await asyncio.shield(waiter) diff --git a/aiohttp/client.py b/aiohttp/client.py index a9da8e1..4f56f61 100644 --- a/aiohttp/client.py +++ b/aiohttp/client.py @@ -8,6 +8,7 @@ import sys import traceback import warnings +from contextlib import suppress from types import SimpleNamespace, TracebackType from typing import ( Any, @@ -74,10 +75,10 @@ DEBUG, PY_36, BasicAuth, - CeilTimeout, TimeoutHandle, + ceil_timeout, + get_env_proxy_for_url, get_running_loop, - proxies_from_env, sentinel, strip_auth_from_url, ) @@ -85,7 +86,12 @@ from .http_websocket import WSHandshakeError, WSMessage, ws_ext_gen, ws_ext_parse from .streams import FlowControlDataQueue from .tracing import Trace, TraceConfig -from .typedefs import JSONEncoder, LooseCookies, LooseHeaders, StrOrURL +from .typedefs import Final, JSONEncoder, LooseCookies, LooseHeaders, StrOrURL + +try: + import cchardet as chardet +except ImportError: # pragma: no cover + import charset_normalizer as chardet # type: ignore[no-redef] __all__ = ( # client_exceptions @@ -130,7 +136,7 @@ try: from ssl import SSLContext except ImportError: # pragma: no cover - SSLContext = object # type: ignore + SSLContext = object # type: ignore[misc,assignment] @attr.s(auto_attribs=True, frozen=True, slots=True) @@ -155,9 +161,25 @@ class ClientTimeout: # 5 Minute default read timeout -DEFAULT_TIMEOUT = ClientTimeout(total=5 * 60) +DEFAULT_TIMEOUT: Final[ClientTimeout] = ClientTimeout(total=5 * 60) _RetType = TypeVar("_RetType") +_CharsetResolver = Callable[[ClientResponse, bytes], str] + + +def _default_fallback_charset_resolver(response: ClientResponse, body: bytes) -> str: + + ret: str = chardet.detect(body)["encoding"] or "utf-8" + + if ret != "utf-8": + warnings.warn( + "Automatic charset detection will be removed in 3.9, see: " + "https://docs.aiohttp.org/en/stable/client_advanced.html#character-set-detection", # noqa: E501 + DeprecationWarning, + stacklevel=3, + ) + + return ret class ClientSession: @@ -165,6 +187,7 @@ class ClientSession: ATTRS = frozenset( [ + "_base_url", "_source_traceback", "_connector", "requote_redirect_url", @@ -189,10 +212,12 @@ class ClientSession: ] ) - _source_traceback = None + _source_traceback = None # type: Optional[traceback.StackSummary] + _connector = None # type: Optional[BaseConnector] def __init__( self, + base_url: Optional[StrOrURL] = None, *, connector: Optional[BaseConnector] = None, loop: Optional[asyncio.AbstractEventLoop] = None, @@ -215,15 +240,25 @@ def __init__( trust_env: bool = False, requote_redirect_url: bool = True, trace_configs: Optional[List[TraceConfig]] = None, - read_bufsize: int = 2 ** 16, + read_bufsize: int = 2**16, + fallback_charset_resolver: _CharsetResolver = ( + _default_fallback_charset_resolver + ), ) -> None: - if loop is None: if connector is not None: loop = connector._loop loop = get_running_loop(loop) + if base_url is None or isinstance(base_url, URL): + self._base_url: Optional[URL] = base_url + else: + self._base_url = URL(base_url) + assert ( + self._base_url.origin() == self._base_url + ), "Only absolute URLs without path part are supported" + if connector is None: connector = TCPConnector(loop=loop) @@ -242,7 +277,7 @@ def __init__( if cookies is not None: self._cookie_jar.update_cookies(cookies) - self._connector = connector # type: Optional[BaseConnector] + self._connector = connector self._connector_owner = connector_owner self._default_auth = auth self._version = version @@ -264,7 +299,7 @@ def __init__( stacklevel=2, ) else: - self._timeout = timeout # type: ignore + self._timeout = timeout # type: ignore[assignment] if read_timeout is not sentinel: raise ValueError( "read_timeout and timeout parameters " @@ -285,12 +320,12 @@ def __init__( # Convert to list of tuples if headers: - real_headers = CIMultiDict(headers) # type: CIMultiDict[str] + real_headers: CIMultiDict[str] = CIMultiDict(headers) else: real_headers = CIMultiDict() - self._default_headers = real_headers # type: CIMultiDict[str] + self._default_headers: CIMultiDict[str] = real_headers if skip_auto_headers is not None: - self._skip_auto_headers = frozenset([istr(i) for i in skip_auto_headers]) + self._skip_auto_headers = frozenset(istr(i) for i in skip_auto_headers) else: self._skip_auto_headers = frozenset() @@ -302,6 +337,8 @@ def __init__( for trace_config in self._trace_configs: trace_config.freeze() + self._resolve_charset = fallback_charset_resolver + def __init_subclass__(cls: Type["ClientSession"]) -> None: warnings.warn( "Inheritance class {} from ClientSession " @@ -342,6 +379,14 @@ def request( """Perform HTTP request.""" return _RequestContextManager(self._request(method, url, **kwargs)) + def _build_url(self, str_or_url: StrOrURL) -> URL: + url = URL(str_or_url) + if self._base_url is None: + return url + else: + assert not url.is_absolute() and url.path.startswith("/") + return self._base_url.join(url) + async def _request( self, method: str, @@ -401,7 +446,7 @@ async def _request( proxy_headers = self._prepare_headers(proxy_headers) try: - url = URL(str_or_url) + url = self._build_url(str_or_url) except ValueError as e: raise InvalidURL(str_or_url) from e @@ -417,10 +462,10 @@ async def _request( raise InvalidURL(proxy) from e if timeout is sentinel: - real_timeout = self._timeout # type: ClientTimeout + real_timeout: ClientTimeout = self._timeout else: if not isinstance(timeout, ClientTimeout): - real_timeout = ClientTimeout(total=timeout) # type: ignore + real_timeout = ClientTimeout(total=timeout) # type: ignore[arg-type] else: real_timeout = timeout # timeout is cumulative for all request operations @@ -441,7 +486,7 @@ async def _request( ] for trace in traces: - await trace.send_request_start(method, url, headers) + await trace.send_request_start(method, url.update_query(params), headers) timer = tm.timer() try: @@ -483,11 +528,8 @@ async def _request( if proxy is not None: proxy = URL(proxy) elif self._trust_env: - for scheme, proxy_info in proxies_from_env().items(): - if scheme == url.scheme: - proxy = proxy_info.proxy - proxy_auth = proxy_info.proxy_auth - break + with suppress(LookupError): + proxy, proxy_auth = get_env_proxy_for_url(url) req = self._request_class( method, @@ -515,7 +557,7 @@ async def _request( # connection timeout try: - with CeilTimeout(real_timeout.connect, loop=self._loop): + async with ceil_timeout(real_timeout.connect): assert self._connector is not None conn = await self._connector.connect( req, traces=traces, timeout=real_timeout @@ -551,6 +593,8 @@ async def _request( except ClientError: raise except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise raise ClientOSError(*exc.args) from exc self._cookie_jar.update_cookies(resp.cookies, resp.url) @@ -560,7 +604,7 @@ async def _request( for trace in traces: await trace.send_request_redirect( - method, url, headers, resp + method, url.update_query(params), headers, resp ) redirects += 1 @@ -634,7 +678,9 @@ async def _request( resp._history = tuple(history) for trace in traces: - await trace.send_request_end(method, url, headers, resp) + await trace.send_request_end( + method, url.update_query(params), headers, resp + ) return resp except BaseException as e: @@ -645,7 +691,9 @@ async def _request( handle = None for trace in traces: - await trace.send_request_exception(method, url, headers, e) + await trace.send_request_exception( + method, url.update_query(params), headers, e + ) raise def ws_connect( @@ -661,6 +709,7 @@ def ws_connect( heartbeat: Optional[float] = None, auth: Optional[BasicAuth] = None, origin: Optional[str] = None, + params: Optional[Mapping[str, str]] = None, headers: Optional[LooseHeaders] = None, proxy: Optional[StrOrURL] = None, proxy_auth: Optional[BasicAuth] = None, @@ -685,6 +734,7 @@ def ws_connect( heartbeat=heartbeat, auth=auth, origin=origin, + params=params, headers=headers, proxy=proxy, proxy_auth=proxy_auth, @@ -711,6 +761,7 @@ async def _ws_connect( heartbeat: Optional[float] = None, auth: Optional[BasicAuth] = None, origin: Optional[str] = None, + params: Optional[Mapping[str, str]] = None, headers: Optional[LooseHeaders] = None, proxy: Optional[StrOrURL] = None, proxy_auth: Optional[BasicAuth] = None, @@ -724,7 +775,7 @@ async def _ws_connect( ) -> ClientWebSocketResponse: if headers is None: - real_headers = CIMultiDict() # type: CIMultiDict[str] + real_headers: CIMultiDict[str] = CIMultiDict() else: real_headers = CIMultiDict(headers) @@ -754,6 +805,7 @@ async def _ws_connect( resp = await self.request( method, url, + params=params, headers=real_headers, read_until_eof=False, auth=auth, @@ -842,9 +894,9 @@ async def _ws_connect( assert conn_proto is not None transport = conn.transport assert transport is not None - reader = FlowControlDataQueue( - conn_proto, 2 ** 16, loop=self._loop - ) # type: FlowControlDataQueue[WSMessage] + reader: FlowControlDataQueue[WSMessage] = FlowControlDataQueue( + conn_proto, 2**16, loop=self._loop + ) conn_proto.set_parser(WebSocketReader(reader, max_msg_size), reader) writer = WebSocketWriter( conn_proto, @@ -879,7 +931,7 @@ def _prepare_headers(self, headers: Optional[LooseHeaders]) -> "CIMultiDict[str] if headers: if not isinstance(headers, (MultiDictProxy, MultiDict)): headers = CIMultiDict(headers) - added_names = set() # type: Set[str] + added_names: Set[str] = set() for key, value in headers.items(): if key in added_names: result.add(key, value) @@ -1001,7 +1053,7 @@ def loop(self) -> asyncio.AbstractEventLoop: return self._loop @property - def timeout(self) -> Union[object, ClientTimeout]: + def timeout(self) -> ClientTimeout: """Timeout for the session.""" return self._timeout @@ -1034,23 +1086,21 @@ def connector_owner(self) -> bool: def raise_for_status( self, ) -> Union[bool, Callable[[ClientResponse], Awaitable[None]]]: - """ - Should `ClientResponse.raise_for_status()` - be called for each response - """ + """Should `ClientResponse.raise_for_status()` be called for each response.""" return self._raise_for_status @property def auto_decompress(self) -> bool: - """Should the body response be automatically decompressed""" + """Should the body response be automatically decompressed.""" return self._auto_decompress @property def trust_env(self) -> bool: """ - Should get proxies information - from HTTP_PROXY / HTTPS_PROXY environment variables - or ~/.netrc file if present + Should proxies information from environment or netrc be trusted. + + Information is from HTTP_PROXY / HTTPS_PROXY environment variables + or ~/.netrc file if present. """ return self._trust_env @@ -1100,7 +1150,7 @@ def __init__(self, coro: Coroutine["asyncio.Future[Any]", None, _RetType]) -> No def send(self, arg: None) -> "asyncio.Future[Any]": return self._coro.send(arg) - def throw(self, arg: BaseException) -> None: # type: ignore + def throw(self, arg: BaseException) -> None: # type: ignore[arg-type,override] self._coro.throw(arg) def close(self) -> None: @@ -1119,6 +1169,8 @@ async def __aenter__(self) -> _RetType: class _RequestContextManager(_BaseRequestContextManager[ClientResponse]): + __slots__ = () + async def __aexit__( self, exc_type: Optional[Type[BaseException]], @@ -1134,6 +1186,8 @@ async def __aexit__( class _WSRequestContextManager(_BaseRequestContextManager[ClientWebSocketResponse]): + __slots__ = () + async def __aexit__( self, exc_type: Optional[Type[BaseException]], @@ -1153,7 +1207,7 @@ def __init__( session: ClientSession, ) -> None: self._coro = coro - self._resp = None # type: Optional[ClientResponse] + self._resp: Optional[ClientResponse] = None self._session = session async def __aenter__(self) -> ClientResponse: @@ -1202,7 +1256,9 @@ def request( read_bufsize: Optional[int] = None, loop: Optional[asyncio.AbstractEventLoop] = None, ) -> _SessionRequestContextManager: - """Constructs and sends a request. Returns response object. + """Constructs and sends a request. + + Returns response object. method - HTTP method url - request url params - (optional) Dictionary or bytes to be sent in the query diff --git a/aiohttp/client_exceptions.py b/aiohttp/client_exceptions.py index f4be3bf..c640e1e 100644 --- a/aiohttp/client_exceptions.py +++ b/aiohttp/client_exceptions.py @@ -4,6 +4,7 @@ import warnings from typing import TYPE_CHECKING, Any, Optional, Tuple, Union +from .http_parser import RawResponseMessage from .typedefs import LooseHeaders try: @@ -11,7 +12,7 @@ SSLContext = ssl.SSLContext except ImportError: # pragma: no cover - ssl = SSLContext = None # type: ignore + ssl = SSLContext = None # type: ignore[assignment] if TYPE_CHECKING: # pragma: no cover @@ -99,7 +100,7 @@ def __repr__(self) -> str: args += f", message={self.message!r}" if self.headers is not None: args += f", headers={self.headers!r}" - return "{}({})".format(type(self).__name__, args) + return f"{type(self).__name__}({args})" @property def code(self) -> int: @@ -153,7 +154,7 @@ class ClientConnectorError(ClientOSError): """Client connector error. Raised in :class:`aiohttp.connector.TCPConnector` if - connection to proxy can not be established. + a connection can not be established. """ def __init__(self, connection_key: ConnectionKey, os_error: OSError) -> None: @@ -195,6 +196,29 @@ class ClientProxyConnectionError(ClientConnectorError): """ +class UnixClientConnectorError(ClientConnectorError): + """Unix connector error. + + Raised in :py:class:`aiohttp.connector.UnixConnector` + if connection to unix socket can not be established. + """ + + def __init__( + self, path: str, connection_key: ConnectionKey, os_error: OSError + ) -> None: + self._path = path + super().__init__(connection_key, os_error) + + @property + def path(self) -> str: + return self._path + + def __str__(self) -> str: + return "Cannot connect to unix socket {0.path} ssl:{1} [{2}]".format( + self, self.ssl if self.ssl is not None else "default", self.strerror + ) + + class ServerConnectionError(ClientConnectionError): """Server connection errors.""" @@ -202,7 +226,7 @@ class ServerConnectionError(ClientConnectionError): class ServerDisconnectedError(ServerConnectionError): """Server disconnected.""" - def __init__(self, message: Optional[str] = None) -> None: + def __init__(self, message: Union[RawResponseMessage, str, None] = None) -> None: if message is None: message = "Server disconnected" @@ -238,7 +262,8 @@ class InvalidURL(ClientError, ValueError): """Invalid URL. URL used for fetching is malformed, e.g. it doesn't contains host - part.""" + part. + """ # Derive from ValueError for backward compatibility @@ -279,11 +304,11 @@ class ClientSSLError(ClientConnectorError): ssl_error_bases = (ClientSSLError,) -class ClientConnectorSSLError(*ssl_error_bases): # type: ignore +class ClientConnectorSSLError(*ssl_error_bases): # type: ignore[misc] """Response ssl error.""" -class ClientConnectorCertificateError(*cert_errors_bases): # type: ignore +class ClientConnectorCertificateError(*cert_errors_bases): # type: ignore[misc] """Response certificate error.""" def __init__( diff --git a/aiohttp/client_proto.py b/aiohttp/client_proto.py index 2973342..3041157 100644 --- a/aiohttp/client_proto.py +++ b/aiohttp/client_proto.py @@ -23,7 +23,7 @@ def __init__(self, loop: asyncio.AbstractEventLoop) -> None: self._should_close = False - self._payload = None + self._payload: Optional[StreamReader] = None self._skip_payload = False self._payload_parser = None @@ -31,10 +31,10 @@ def __init__(self, loop: asyncio.AbstractEventLoop) -> None: self._tail = b"" self._upgraded = False - self._parser = None # type: Optional[HttpResponseParser] + self._parser: Optional[HttpResponseParser] = None - self._read_timeout = None # type: Optional[float] - self._read_timeout_handle = None # type: Optional[asyncio.TimerHandle] + self._read_timeout: Optional[float] = None + self._read_timeout_handle: Optional[asyncio.TimerHandle] = None @property def upgraded(self) -> bool: @@ -142,7 +142,7 @@ def set_response_params( read_until_eof: bool = False, auto_decompress: bool = True, read_timeout: Optional[float] = None, - read_bufsize: int = 2 ** 16 + read_bufsize: int = 2**16, ) -> None: self._skip_payload = skip_payload @@ -223,7 +223,7 @@ def data_received(self, data: bytes) -> None: self._upgraded = upgraded - payload = None + payload: Optional[StreamReader] = None for message, payload in messages: if message.should_close: self._should_close = True @@ -231,7 +231,7 @@ def data_received(self, data: bytes) -> None: self._payload = payload if self._skip_payload or message.code in (204, 304): - self.feed_data((message, EMPTY_PAYLOAD), 0) # type: ignore + self.feed_data((message, EMPTY_PAYLOAD), 0) else: self.feed_data((message, payload), 0) if payload is not None: diff --git a/aiohttp/client_reqrep.py b/aiohttp/client_reqrep.py index d826bfe..987d68f 100644 --- a/aiohttp/client_reqrep.py +++ b/aiohttp/client_reqrep.py @@ -1,5 +1,6 @@ import asyncio import codecs +import contextlib import functools import io import re @@ -12,6 +13,7 @@ from typing import ( TYPE_CHECKING, Any, + Callable, Dict, Iterable, List, @@ -63,13 +65,8 @@ import ssl from ssl import SSLContext except ImportError: # pragma: no cover - ssl = None # type: ignore - SSLContext = object # type: ignore - -try: - import cchardet as chardet -except ImportError: # pragma: no cover - import chardet # type: ignore + ssl = None # type: ignore[assignment] + SSLContext = object # type: ignore[misc,assignment] __all__ = ("ClientRequest", "ClientResponse", "RequestInfo", "Fingerprint") @@ -294,7 +291,7 @@ def __init__( real_response_class = ClientResponse else: real_response_class = response_class - self.response_class = real_response_class # type: Type[ClientResponse] + self.response_class: Type[ClientResponse] = real_response_class self._timer = timer if timer is not None else TimerNoop() self._ssl = ssl @@ -311,7 +308,7 @@ def __init__( self.update_proxy(proxy, proxy_auth, proxy_headers) self.update_body_from_data(data) - if data or self.method not in self.GET_METHODS: + if data is not None or self.method not in self.GET_METHODS: self.update_transfer_encoding() self.update_expect_continue(expect100) if traces is None: @@ -329,9 +326,7 @@ def ssl(self) -> Union["SSLContext", None, bool, Fingerprint]: def connection_key(self) -> ConnectionKey: proxy_headers = self.proxy_headers if proxy_headers: - h = hash( - tuple((k, v) for k, v in proxy_headers.items()) - ) # type: Optional[int] + h: Optional[int] = hash(tuple((k, v) for k, v in proxy_headers.items())) else: h = None return ConnectionKey( @@ -356,7 +351,7 @@ def port(self) -> Optional[int]: @property def request_info(self) -> RequestInfo: - headers = CIMultiDictProxy(self.headers) # type: CIMultiDictProxy[str] + headers: CIMultiDictProxy[str] = CIMultiDictProxy(self.headers) return RequestInfo(self.url, self.method, headers, self.original_url) def update_host(self, url: URL) -> None: @@ -387,7 +382,7 @@ def update_version(self, version: Union[http.HttpVersion, str]) -> None: def update_headers(self, headers: Optional[LooseHeaders]) -> None: """Update request headers.""" - self.headers = CIMultiDict() # type: CIMultiDict[str] + self.headers: CIMultiDict[str] = CIMultiDict() # add host netloc = cast(str, self.url.raw_host) @@ -399,9 +394,9 @@ def update_headers(self, headers: Optional[LooseHeaders]) -> None: if headers: if isinstance(headers, (dict, MultiDictProxy, MultiDict)): - headers = headers.items() # type: ignore + headers = headers.items() # type: ignore[assignment] - for key, value in headers: # type: ignore + for key, value in headers: # type: ignore[misc] # A special case for Host header if key.lower() == "host": self.headers[key] = value @@ -413,7 +408,7 @@ def update_auto_headers(self, skip_auto_headers: Iterable[str]) -> None: (hdr, None) for hdr in sorted(skip_auto_headers) ) used_headers = self.headers.copy() - used_headers.extend(self.skip_auto_headers) # type: ignore + used_headers.extend(self.skip_auto_headers) # type: ignore[arg-type] for hdr, val in self.DEFAULT_HEADERS.items(): if hdr not in used_headers: @@ -427,7 +422,7 @@ def update_cookies(self, cookies: Optional[LooseCookies]) -> None: if not cookies: return - c = SimpleCookie() # type: SimpleCookie[str] + c: SimpleCookie[str] = SimpleCookie() if hdrs.COOKIE in self.headers: c.load(self.headers.get(hdrs.COOKIE, "")) del self.headers[hdrs.COOKIE] @@ -435,7 +430,7 @@ def update_cookies(self, cookies: Optional[LooseCookies]) -> None: if isinstance(cookies, Mapping): iter_cookies = cookies.items() else: - iter_cookies = cookies # type: ignore + iter_cookies = cookies # type: ignore[assignment] for name, value in iter_cookies: if isinstance(value, Morsel): # Preserve coded_value @@ -443,13 +438,13 @@ def update_cookies(self, cookies: Optional[LooseCookies]) -> None: mrsl_val.set(value.key, value.value, value.coded_value) c[name] = mrsl_val else: - c[name] = value # type: ignore + c[name] = value # type: ignore[assignment] self.headers[hdrs.COOKIE] = c.output(header="", sep=";").strip() def update_content_encoding(self, data: Any) -> None: """Set request content encoding.""" - if not data: + if data is None: return enc = self.headers.get(hdrs.CONTENT_ENCODING, "").lower() @@ -499,7 +494,7 @@ def update_auth(self, auth: Optional[BasicAuth]) -> None: self.headers[hdrs.AUTHORIZATION] = auth.encode() def update_body_from_data(self, body: Any) -> None: - if not body: + if body is None: return # FormData @@ -547,8 +542,6 @@ def update_proxy( proxy_auth: Optional[BasicAuth], proxy_headers: Optional[LooseHeaders], ) -> None: - if proxy and not proxy.scheme == "http": - raise ValueError("Only http proxies are supported") if proxy_auth and not isinstance(proxy_auth, helpers.BasicAuth): raise ValueError("proxy_auth must be None or BasicAuth() tuple") self.proxy = proxy @@ -585,19 +578,22 @@ async def write_bytes( await self.body.write(writer) else: if isinstance(self.body, (bytes, bytearray)): - self.body = (self.body,) # type: ignore + self.body = (self.body,) # type: ignore[assignment] for chunk in self.body: - await writer.write(chunk) # type: ignore + await writer.write(chunk) # type: ignore[arg-type] await writer.write_eof() except OSError as exc: - new_exc = ClientOSError( - exc.errno, "Can not write request body for %s" % self.url - ) - new_exc.__context__ = exc - new_exc.__cause__ = exc - protocol.set_exception(new_exc) + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + protocol.set_exception(exc) + else: + new_exc = ClientOSError( + exc.errno, "Can not write request body for %s" % self.url + ) + new_exc.__context__ = exc + new_exc.__cause__ = exc + protocol.set_exception(new_exc) except asyncio.CancelledError as exc: if not conn.closed: protocol.set_exception(exc) @@ -632,6 +628,9 @@ async def send(self, conn: "Connection") -> "ClientResponse": on_chunk_sent=functools.partial( self._on_chunk_request_sent, self.method, self.url ), + on_headers_sent=functools.partial( + self._on_headers_request_sent, self.method, self.url + ), ) if self.compress: @@ -701,21 +700,27 @@ async def _on_chunk_request_sent(self, method: str, url: URL, chunk: bytes) -> N for trace in self._traces: await trace.send_request_chunk_sent(method, url, chunk) + async def _on_headers_request_sent( + self, method: str, url: URL, headers: "CIMultiDict[str]" + ) -> None: + for trace in self._traces: + await trace.send_request_headers(method, url, headers) + class ClientResponse(HeadersMixin): # from the Status-Line of the response version = None # HTTP-Version - status = None # type: int # Status-Code + status: int = None # type: ignore[assignment] # Status-Code reason = None # Reason-Phrase - content = None # type: StreamReader # Payload stream - _headers = None # type: CIMultiDictProxy[str] # Response headers - _raw_headers = None # type: RawHeaders # Response raw headers + content: StreamReader = None # type: ignore[assignment] # Payload stream + _headers: "CIMultiDictProxy[str]" = None # type: ignore[assignment] + _raw_headers: RawHeaders = None # type: ignore[assignment] # Response raw headers _connection = None # current connection - _source_traceback = None - # setted up by ClientRequest after ClientResponse object creation + _source_traceback: Optional[traceback.StackSummary] = None + # set up by ClientRequest after ClientResponse object creation # post-init stage allows to not change ctor signature _closed = True # to allow __del__ for non-initialized properly response _released = False @@ -736,22 +741,31 @@ def __init__( assert isinstance(url, URL) self.method = method - self.cookies = SimpleCookie() # type: SimpleCookie[str] + self.cookies: SimpleCookie[str] = SimpleCookie() self._real_url = url self._url = url.with_fragment(None) - self._body = None # type: Any - self._writer = writer # type: Optional[asyncio.Task[None]] + self._body: Any = None + self._writer: Optional[asyncio.Task[None]] = writer self._continue = continue100 # None by default self._closed = True - self._history = () # type: Tuple[ClientResponse, ...] + self._history: Tuple[ClientResponse, ...] = () self._request_info = request_info self._timer = timer if timer is not None else TimerNoop() - self._cache = {} # type: Dict[str, Any] + self._cache: Dict[str, Any] = {} self._traces = traces self._loop = loop # store a reference to session #1985 - self._session = session # type: Optional[ClientSession] + self._session: Optional[ClientSession] = session + # Save reference to _resolve_charset, so that get_encoding() will still + # work after the response has finished reading the body. + if session is None: + # TODO: Fix session=None in tests (see ClientRequest.__init__). + self._resolve_charset: Callable[ + ["ClientResponse", bytes], str + ] = lambda *_: "utf-8" + else: + self._resolve_charset = session._resolve_charset if loop.get_debug(): self._source_traceback = traceback.extract_stack(sys._getframe(1)) @@ -848,7 +862,7 @@ def links(self) -> "MultiDictProxy[MultiDictProxy[Union[str, URL]]]": if not links_str: return MultiDictProxy(MultiDict()) - links = MultiDict() # type: MultiDict[MultiDictProxy[Union[str, URL]]] + links: MultiDict[MultiDictProxy[Union[str, URL]]] = MultiDict() for val in re.split(r",(?=\s*<)", links_str): match = re.match(r"\s*<(.*)>(.*)", val) @@ -858,7 +872,7 @@ def links(self) -> "MultiDictProxy[MultiDictProxy[Union[str, URL]]]": url, params_str = match.groups() params = params_str.split(";")[1:] - link = MultiDict() # type: MultiDict[Union[str, URL]] + link: MultiDict[Union[str, URL]] = MultiDict() for param in params: match = re.match(r"^\s*(\S*)\s*=\s*(['\"]?)(.*?)(\2)\s*$", param, re.M) @@ -869,7 +883,7 @@ def links(self) -> "MultiDictProxy[MultiDictProxy[Union[str, URL]]]": link.add(key, value) - key = link.get("rel", url) # type: ignore + key = link.get("rel", url) # type: ignore[assignment] link.add("url", self.url.join(URL(url))) @@ -887,7 +901,8 @@ async def start(self, connection: "Connection") -> "ClientResponse": while True: # read response try: - message, payload = await self._protocol.read() # type: ignore + protocol = self._protocol + message, payload = await protocol.read() # type: ignore[union-attr] except http.HttpProcessingError as exc: raise ClientResponseError( self.request_info, @@ -986,14 +1001,10 @@ def ok(self) -> bool: This is **not** a check for ``200 OK`` but a check that the response status is under 400. """ - try: - self.raise_for_status() - except ClientResponseError: - return False - return True + return 400 > self.status def raise_for_status(self) -> None: - if 400 <= self.status: + if not self.ok: # reason should always be not None for a started response assert self.reason is not None self.release() @@ -1040,7 +1051,7 @@ async def read(self) -> bytes: elif self._released: raise ClientConnectionError("Connection closed") - return self._body + return self._body # type: ignore[no-any-return] def get_encoding(self) -> str: ctype = self.headers.get(hdrs.CONTENT_TYPE, "").lower() @@ -1048,27 +1059,22 @@ def get_encoding(self) -> str: encoding = mimetype.parameters.get("charset") if encoding: - try: - codecs.lookup(encoding) - except LookupError: - encoding = None - if not encoding: - if mimetype.type == "application" and ( - mimetype.subtype == "json" or mimetype.subtype == "rdap" - ): - # RFC 7159 states that the default encoding is UTF-8. - # RFC 7483 defines application/rdap+json - encoding = "utf-8" - elif self._body is None: - raise RuntimeError( - "Cannot guess the encoding of " "a not yet read body" - ) - else: - encoding = chardet.detect(self._body)["encoding"] - if not encoding: - encoding = "utf-8" + with contextlib.suppress(LookupError): + return codecs.lookup(encoding).name - return encoding + if mimetype.type == "application" and ( + mimetype.subtype == "json" or mimetype.subtype == "rdap" + ): + # RFC 7159 states that the default encoding is UTF-8. + # RFC 7483 defines application/rdap+json + return "utf-8" + + if self._body is None: + raise RuntimeError( + "Cannot compute fallback encoding of a not yet read body" + ) + + return self._resolve_charset(self, self._body) async def text(self, encoding: Optional[str] = None, errors: str = "strict") -> str: """Read response payload and decode.""" @@ -1078,7 +1084,9 @@ async def text(self, encoding: Optional[str] = None, errors: str = "strict") -> if encoding is None: encoding = self.get_encoding() - return self._body.decode(encoding, errors=errors) # type: ignore + return self._body.decode( # type: ignore[no-any-return,union-attr] + encoding, errors=errors + ) async def json( self, @@ -1103,7 +1111,7 @@ async def json( headers=self.headers, ) - stripped = self._body.strip() # type: ignore + stripped = self._body.strip() # type: ignore[union-attr] if not stripped: return None diff --git a/aiohttp/client_ws.py b/aiohttp/client_ws.py index 28fa371..9a8ba84 100644 --- a/aiohttp/client_ws.py +++ b/aiohttp/client_ws.py @@ -1,7 +1,7 @@ """WebSocket client for asyncio.""" import asyncio -from typing import Any, Optional +from typing import Any, Optional, cast import async_timeout @@ -12,6 +12,7 @@ WS_CLOSED_MESSAGE, WS_CLOSING_MESSAGE, WebSocketError, + WSCloseCode, WSMessage, WSMsgType, ) @@ -50,19 +51,19 @@ def __init__( self._protocol = protocol self._closed = False self._closing = False - self._close_code = None # type: Optional[int] + self._close_code: Optional[int] = None self._timeout = timeout self._receive_timeout = receive_timeout self._autoclose = autoclose self._autoping = autoping self._heartbeat = heartbeat - self._heartbeat_cb = None + self._heartbeat_cb: Optional[asyncio.TimerHandle] = None if heartbeat is not None: self._pong_heartbeat = heartbeat / 2.0 - self._pong_response_cb = None + self._pong_response_cb: Optional[asyncio.TimerHandle] = None self._loop = loop - self._waiting = None # type: Optional[asyncio.Future[bool]] - self._exception = None # type: Optional[BaseException] + self._waiting: Optional[asyncio.Future[bool]] = None + self._exception: Optional[BaseException] = None self._compress = compress self._client_notakeover = client_notakeover @@ -101,7 +102,7 @@ def _send_heartbeat(self) -> None: def _pong_not_received(self) -> None: if not self._closed: self._closed = True - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE self._exception = asyncio.TimeoutError() self._response.close() @@ -163,7 +164,7 @@ async def send_json( ) -> None: await self.send_str(dumps(data), compress=compress) - async def close(self, *, code: int = 1000, message: bytes = b"") -> bool: + async def close(self, *, code: int = WSCloseCode.OK, message: bytes = b"") -> bool: # we need to break `receive()` cycle first, # `close()` may be called from different task if self._waiting is not None and not self._closed: @@ -176,11 +177,11 @@ async def close(self, *, code: int = 1000, message: bytes = b"") -> bool: try: await self._writer.close(code, message) except asyncio.CancelledError: - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE self._response.close() raise except Exception as exc: - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE self._exception = exc self._response.close() return True @@ -191,14 +192,14 @@ async def close(self, *, code: int = 1000, message: bytes = b"") -> bool: while True: try: - with async_timeout.timeout(self._timeout, loop=self._loop): + async with async_timeout.timeout(self._timeout): msg = await self._reader.read() except asyncio.CancelledError: - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE self._response.close() raise except Exception as exc: - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE self._exception = exc self._response.close() return True @@ -224,9 +225,7 @@ async def receive(self, timeout: Optional[float] = None) -> WSMessage: try: self._waiting = self._loop.create_future() try: - with async_timeout.timeout( - timeout or self._receive_timeout, loop=self._loop - ): + async with async_timeout.timeout(timeout or self._receive_timeout): msg = await self._reader.read() self._reset_heartbeat() finally: @@ -234,15 +233,15 @@ async def receive(self, timeout: Optional[float] = None) -> WSMessage: self._waiting = None set_result(waiter, True) except (asyncio.CancelledError, asyncio.TimeoutError): - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE raise except EofStream: - self._close_code = 1000 + self._close_code = WSCloseCode.OK await self.close() return WSMessage(WSMsgType.CLOSED, None, None) except ClientError: self._closed = True - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE return WS_CLOSED_MESSAGE except WebSocketError as exc: self._close_code = exc.code @@ -251,7 +250,7 @@ async def receive(self, timeout: Optional[float] = None) -> WSMessage: except Exception as exc: self._exception = exc self._closing = True - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE await self.close() return WSMessage(WSMsgType.ERROR, exc, None) @@ -274,13 +273,13 @@ async def receive_str(self, *, timeout: Optional[float] = None) -> str: msg = await self.receive(timeout) if msg.type != WSMsgType.TEXT: raise TypeError(f"Received message {msg.type}:{msg.data!r} is not str") - return msg.data + return cast(str, msg.data) async def receive_bytes(self, *, timeout: Optional[float] = None) -> bytes: msg = await self.receive(timeout) if msg.type != WSMsgType.BINARY: raise TypeError(f"Received message {msg.type}:{msg.data!r} is not bytes") - return msg.data + return cast(bytes, msg.data) async def receive_json( self, diff --git a/aiohttp/connector.py b/aiohttp/connector.py index 748b22a..2499a2d 100644 --- a/aiohttp/connector.py +++ b/aiohttp/connector.py @@ -39,12 +39,20 @@ ClientHttpProxyError, ClientProxyConnectionError, ServerFingerprintMismatch, + UnixClientConnectorError, cert_errors, ssl_errors, ) from .client_proto import ResponseHandler from .client_reqrep import ClientRequest, Fingerprint, _merge_ssl_params -from .helpers import PY_36, CeilTimeout, get_running_loop, is_ip_address, noop, sentinel +from .helpers import ( + PY_36, + ceil_timeout, + get_running_loop, + is_ip_address, + noop, + sentinel, +) from .http import RESPONSES from .locks import EventResultOrError from .resolver import DefaultResolver @@ -54,8 +62,8 @@ SSLContext = ssl.SSLContext except ImportError: # pragma: no cover - ssl = None # type: ignore - SSLContext = object # type: ignore + ssl = None # type: ignore[assignment] + SSLContext = object # type: ignore[misc,assignment] __all__ = ("BaseConnector", "TCPConnector", "UnixConnector", "NamedPipeConnector") @@ -102,8 +110,8 @@ def __init__( self._key = key self._connector = connector self._loop = loop - self._protocol = protocol # type: Optional[ResponseHandler] - self._callbacks = [] # type: List[Callable[[], None]] + self._protocol: Optional[ResponseHandler] = protocol + self._callbacks: List[Callable[[], None]] = [] if loop.get_debug(): self._source_traceback = traceback.extract_stack(sys._getframe(1)) @@ -178,7 +186,7 @@ def closed(self) -> bool: class _TransportPlaceholder: - """ placeholder for BaseConnector.connect function """ + """placeholder for BaseConnector.connect function""" def close(self) -> None: pass @@ -229,33 +237,31 @@ def __init__( if loop.get_debug(): self._source_traceback = traceback.extract_stack(sys._getframe(1)) - self._conns = ( - {} - ) # type: Dict[ConnectionKey, List[Tuple[ResponseHandler, float]]] + self._conns: Dict[ConnectionKey, List[Tuple[ResponseHandler, float]]] = {} self._limit = limit self._limit_per_host = limit_per_host - self._acquired = set() # type: Set[ResponseHandler] - self._acquired_per_host = defaultdict( - set - ) # type: DefaultDict[ConnectionKey, Set[ResponseHandler]] + self._acquired: Set[ResponseHandler] = set() + self._acquired_per_host: DefaultDict[ + ConnectionKey, Set[ResponseHandler] + ] = defaultdict(set) self._keepalive_timeout = cast(float, keepalive_timeout) self._force_close = force_close # {host_key: FIFO list of waiters} - self._waiters = defaultdict(deque) # type: ignore + self._waiters = defaultdict(deque) # type: ignore[var-annotated] self._loop = loop self._factory = functools.partial(ResponseHandler, loop=loop) - self.cookies = SimpleCookie() # type: SimpleCookie[str] + self.cookies: SimpleCookie[str] = SimpleCookie() # start keep-alive connection cleanup task - self._cleanup_handle = None + self._cleanup_handle: Optional[asyncio.TimerHandle] = None # start cleanup closed transports task - self._cleanup_closed_handle = None + self._cleanup_closed_handle: Optional[asyncio.TimerHandle] = None self._cleanup_closed_disabled = not enable_cleanup_closed - self._cleanup_closed_transports = [] # type: List[Optional[asyncio.Transport]] + self._cleanup_closed_transports: List[Optional[asyncio.Transport]] = [] self._cleanup_closed() def __del__(self, _warnings: Any = warnings) -> None: @@ -284,14 +290,14 @@ def __del__(self, _warnings: Any = warnings) -> None: def __enter__(self) -> "BaseConnector": warnings.warn( - '"witn Connector():" is deprecated, ' + '"with Connector():" is deprecated, ' 'use "async with Connector():" instead', DeprecationWarning, ) return self def __exit__(self, *exc: Any) -> None: - self.close() + self._close() async def __aenter__(self) -> "BaseConnector": return self @@ -320,12 +326,10 @@ def limit(self) -> int: @property def limit_per_host(self) -> int: - """The limit_per_host for simultaneous connections - to the same endpoint. + """The limit for simultaneous connections to the same endpoint. Endpoints are the same if they are have equal (host, port, is_ssl) triple. - """ return self._limit_per_host @@ -383,6 +387,7 @@ def _drop_acquired_per_host( def _cleanup_closed(self) -> None: """Double confirmation for transport close. + Some broken ssl servers may leave socket open without proper close. """ if self._cleanup_closed_handle: @@ -451,13 +456,13 @@ def closed(self) -> bool: def _available_connections(self, key: "ConnectionKey") -> int: """ - Return number of available connections taking into account - the limit, limit_per_host and the connection key. + Return number of available connections. - If it returns less than 1 means that there is no connections - availables. - """ + The limit, limit_per_host and the connection key are taken into account. + If it returns less than 1 means that there are no connections + available. + """ if self._limit: # total calc available connections available = self._limit - len(self._acquired) @@ -552,8 +557,14 @@ async def connect( await trace.send_connection_create_end() else: if traces: + # Acquire the connection to prevent race conditions with limits + placeholder = cast(ResponseHandler, _TransportPlaceholder()) + self._acquired.add(placeholder) + self._acquired_per_host[key].add(placeholder) for trace in traces: await trace.send_connection_reuseconn() + self._acquired.remove(placeholder) + self._drop_acquired_per_host(key, placeholder) self._acquired.add(proto) self._acquired_per_host[key].add(proto) @@ -592,7 +603,9 @@ def _get(self, key: "ConnectionKey") -> Optional[ResponseHandler]: def _release_waiter(self) -> None: """ - Iterates over all waiters till found one that is not finsihed and + Iterates over all waiters until one to be released is found. + + The one to be released is not finsihed and belongs to a host that has available connections. """ if not self._waiters: @@ -670,10 +683,8 @@ async def _create_connection( class _DNSCacheTable: def __init__(self, ttl: Optional[float] = None) -> None: - self._addrs_rr = ( - {} - ) # type: Dict[Tuple[str, int], Tuple[Iterator[Dict[str, Any]], int]] - self._timestamps = {} # type: Dict[Tuple[str, int], float] + self._addrs_rr: Dict[Tuple[str, int], Tuple[Iterator[Dict[str, Any]], int]] = {} + self._timestamps: Dict[Tuple[str, int], float] = {} self._ttl = ttl def __contains__(self, host: object) -> bool: @@ -769,9 +780,7 @@ def __init__( self._use_dns_cache = use_dns_cache self._cached_hosts = _DNSCacheTable(ttl=ttl_dns_cache) - self._throttle_dns_events = ( - {} - ) # type: Dict[Tuple[str, int], EventResultOrError] + self._throttle_dns_events: Dict[Tuple[str, int], EventResultOrError] = {} self._family = family self._local_addr = local_addr @@ -899,9 +908,11 @@ def _make_ssl_context(verified: bool) -> SSLContext: if verified: return ssl.create_default_context() else: - sslcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + sslcontext = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) sslcontext.options |= ssl.OP_NO_SSLv2 sslcontext.options |= ssl.OP_NO_SSLv3 + sslcontext.check_hostname = False + sslcontext.verify_mode = ssl.CERT_NONE try: sslcontext.options |= ssl.OP_NO_COMPRESSION except AttributeError as attr_err: @@ -965,15 +976,160 @@ async def _wrap_create_connection( **kwargs: Any, ) -> Tuple[asyncio.Transport, ResponseHandler]: try: - with CeilTimeout(timeout.sock_connect): - return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa + async with ceil_timeout(timeout.sock_connect): + return await self._loop.create_connection(*args, **kwargs) # type: ignore[return-value] # noqa except cert_errors as exc: raise ClientConnectorCertificateError(req.connection_key, exc) from exc except ssl_errors as exc: raise ClientConnectorSSLError(req.connection_key, exc) from exc except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise raise client_error(req.connection_key, exc) from exc + def _fail_on_no_start_tls(self, req: "ClientRequest") -> None: + """Raise a :py:exc:`RuntimeError` on missing ``start_tls()``. + + One case is that :py:meth:`asyncio.loop.start_tls` is not yet + implemented under Python 3.6. It is necessary for TLS-in-TLS so + that it is possible to send HTTPS queries through HTTPS proxies. + + This doesn't affect regular HTTP requests, though. + """ + if not req.is_ssl(): + return + + proxy_url = req.proxy + assert proxy_url is not None + if proxy_url.scheme != "https": + return + + self._check_loop_for_start_tls() + + def _check_loop_for_start_tls(self) -> None: + try: + self._loop.start_tls + except AttributeError as attr_exc: + raise RuntimeError( + "An HTTPS request is being sent through an HTTPS proxy. " + "This needs support for TLS in TLS but it is not implemented " + "in your runtime for the stdlib asyncio.\n\n" + "Please upgrade to Python 3.7 or higher. For more details, " + "please see:\n" + "* https://bugs.python.org/issue37179\n" + "* https://github.com/python/cpython/pull/28073\n" + "* https://docs.aiohttp.org/en/stable/" + "client_advanced.html#proxy-support\n" + "* https://github.com/aio-libs/aiohttp/discussions/6044\n", + ) from attr_exc + + def _loop_supports_start_tls(self) -> bool: + try: + self._check_loop_for_start_tls() + except RuntimeError: + return False + else: + return True + + def _warn_about_tls_in_tls( + self, + underlying_transport: asyncio.Transport, + req: "ClientRequest", + ) -> None: + """Issue a warning if the requested URL has HTTPS scheme.""" + if req.request_info.url.scheme != "https": + return + + asyncio_supports_tls_in_tls = getattr( + underlying_transport, + "_start_tls_compatible", + False, + ) + + if asyncio_supports_tls_in_tls: + return + + warnings.warn( + "An HTTPS request is being sent through an HTTPS proxy. " + "This support for TLS in TLS is known to be disabled " + "in the stdlib asyncio. This is why you'll probably see " + "an error in the log below.\n\n" + "It is possible to enable it via monkeypatching under " + "Python 3.7 or higher. For more details, see:\n" + "* https://bugs.python.org/issue37179\n" + "* https://github.com/python/cpython/pull/28073\n\n" + "You can temporarily patch this as follows:\n" + "* https://docs.aiohttp.org/en/stable/client_advanced.html#proxy-support\n" + "* https://github.com/aio-libs/aiohttp/discussions/6044\n", + RuntimeWarning, + source=self, + # Why `4`? At least 3 of the calls in the stack originate + # from the methods in this class. + stacklevel=3, + ) + + async def _start_tls_connection( + self, + underlying_transport: asyncio.Transport, + req: "ClientRequest", + timeout: "ClientTimeout", + client_error: Type[Exception] = ClientConnectorError, + ) -> Tuple[asyncio.BaseTransport, ResponseHandler]: + """Wrap the raw TCP transport with TLS.""" + tls_proto = self._factory() # Create a brand new proto for TLS + + # Safety of the `cast()` call here is based on the fact that + # internally `_get_ssl_context()` only returns `None` when + # `req.is_ssl()` evaluates to `False` which is never gonna happen + # in this code path. Of course, it's rather fragile + # maintainability-wise but this is to be solved separately. + sslcontext = cast(ssl.SSLContext, self._get_ssl_context(req)) + + try: + async with ceil_timeout(timeout.sock_connect): + try: + tls_transport = await self._loop.start_tls( + underlying_transport, + tls_proto, + sslcontext, + server_hostname=req.host, + ssl_handshake_timeout=timeout.total, + ) + except BaseException: + # We need to close the underlying transport since + # `start_tls()` probably failed before it had a + # chance to do this: + underlying_transport.close() + raise + except cert_errors as exc: + raise ClientConnectorCertificateError(req.connection_key, exc) from exc + except ssl_errors as exc: + raise ClientConnectorSSLError(req.connection_key, exc) from exc + except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise + raise client_error(req.connection_key, exc) from exc + except TypeError as type_err: + # Example cause looks like this: + # TypeError: transport is not supported by start_tls() + + raise ClientConnectionError( + "Cannot initialize a TLS-in-TLS connection to host " + f"{req.host!s}:{req.port:d} through an underlying connection " + f"to an HTTPS proxy {req.proxy!s} ssl:{req.ssl or 'default'} " + f"[{type_err!s}]" + ) from type_err + else: + if tls_transport is None: + msg = "Failed to start TLS (possibly caused by closing transport)" + raise client_error(req.connection_key, OSError(msg)) + tls_proto.connection_made( + tls_transport + ) # Kick the state machine of the new TLS protocol + + return tls_transport, tls_proto + async def _create_direct_connection( self, req: "ClientRequest", @@ -1006,11 +1162,13 @@ def drop_exception(fut: "asyncio.Future[List[Dict[str, Any]]]") -> None: host_resolved.add_done_callback(drop_exception) raise except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise # in case of proxy it is not ClientProxyConnectionError # it is problem of resolving proxy ip itself raise ClientConnectorError(req.connection_key, exc) from exc - last_exc = None # type: Optional[Exception] + last_exc: Optional[Exception] = None for hinfo in hosts: host = hinfo["host"] @@ -1052,10 +1210,13 @@ def drop_exception(fut: "asyncio.Future[List[Dict[str, Any]]]") -> None: async def _create_proxy_connection( self, req: "ClientRequest", traces: List["Trace"], timeout: "ClientTimeout" - ) -> Tuple[asyncio.Transport, ResponseHandler]: - headers = {} # type: Dict[str, str] + ) -> Tuple[asyncio.BaseTransport, ResponseHandler]: + self._fail_on_no_start_tls(req) + runtime_has_start_tls = self._loop_supports_start_tls() + + headers: Dict[str, str] = {} if req.proxy_headers is not None: - headers = req.proxy_headers # type: ignore + headers = req.proxy_headers # type: ignore[assignment] headers[hdrs.HOST] = req.headers[hdrs.HOST] url = req.proxy @@ -1087,7 +1248,9 @@ async def _create_proxy_connection( proxy_req.headers[hdrs.PROXY_AUTHORIZATION] = auth if req.is_ssl(): - sslcontext = self._get_ssl_context(req) + if runtime_has_start_tls: + self._warn_about_tls_in_tls(transport, req) + # For HTTPS requests over HTTP proxy # we must notify proxy to tunnel connection # so we send CONNECT command: @@ -1107,7 +1270,11 @@ async def _create_proxy_connection( try: protocol = conn._protocol assert protocol is not None - protocol.set_response_params() + + # read_until_eof=True will ensure the connection isn't closed + # once the response is received and processed allowing + # START_TLS to work on the connection below. + protocol.set_response_params(read_until_eof=runtime_has_start_tls) resp = await proxy_resp.start(conn) except BaseException: proxy_resp.close() @@ -1128,21 +1295,42 @@ async def _create_proxy_connection( message=message, headers=resp.headers, ) - rawsock = transport.get_extra_info("socket", default=None) - if rawsock is None: - raise RuntimeError("Transport does not expose socket instance") - # Duplicate the socket, so now we can close proxy transport - rawsock = rawsock.dup() - finally: + if not runtime_has_start_tls: + rawsock = transport.get_extra_info("socket", default=None) + if rawsock is None: + raise RuntimeError( + "Transport does not expose socket instance" + ) + # Duplicate the socket, so now we can close proxy transport + rawsock = rawsock.dup() + except BaseException: + # It shouldn't be closed in `finally` because it's fed to + # `loop.start_tls()` and the docs say not to touch it after + # passing there. transport.close() - - transport, proto = await self._wrap_create_connection( - self._factory, - timeout=timeout, - ssl=sslcontext, - sock=rawsock, - server_hostname=req.host, + raise + finally: + if not runtime_has_start_tls: + transport.close() + + if not runtime_has_start_tls: + # HTTP proxy with support for upgrade to HTTPS + sslcontext = self._get_ssl_context(req) + return await self._wrap_create_connection( + self._factory, + timeout=timeout, + ssl=sslcontext, + sock=rawsock, + server_hostname=req.host, + req=req, + ) + + return await self._start_tls_connection( + # Access the old transport for the last time before it's + # closed and forgotten forever: + transport, req=req, + timeout=timeout, ) finally: proxy_resp.close() @@ -1189,12 +1377,14 @@ async def _create_connection( self, req: "ClientRequest", traces: List["Trace"], timeout: "ClientTimeout" ) -> ResponseHandler: try: - with CeilTimeout(timeout.sock_connect): + async with ceil_timeout(timeout.sock_connect): _, proto = await self._loop.create_unix_connection( self._factory, self._path ) except OSError as exc: - raise ClientConnectorError(req.connection_key, exc) from exc + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise + raise UnixClientConnectorError(self.path, req.connection_key, exc) from exc return cast(ResponseHandler, proto) @@ -1230,7 +1420,9 @@ def __init__( limit_per_host=limit_per_host, loop=loop, ) - if not isinstance(self._loop, asyncio.ProactorEventLoop): # type: ignore + if not isinstance( + self._loop, asyncio.ProactorEventLoop # type: ignore[attr-defined] + ): raise RuntimeError( "Named Pipes only available in proactor " "loop under windows" ) @@ -1245,8 +1437,8 @@ async def _create_connection( self, req: "ClientRequest", traces: List["Trace"], timeout: "ClientTimeout" ) -> ResponseHandler: try: - with CeilTimeout(timeout.sock_connect): - _, proto = await self._loop.create_pipe_connection( # type: ignore + async with ceil_timeout(timeout.sock_connect): + _, proto = await self._loop.create_pipe_connection( # type: ignore[attr-defined] # noqa: E501 self._factory, self._path ) # the drain is required so that the connection_made is called @@ -1257,6 +1449,8 @@ async def _create_connection( # other option is to manually set transport like # `proto.transport = trans` except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise raise ClientConnectorError(req.connection_key, exc) from exc return cast(ResponseHandler, proto) diff --git a/aiohttp/cookiejar.py b/aiohttp/cookiejar.py index b6b59d6..e395b74 100644 --- a/aiohttp/cookiejar.py +++ b/aiohttp/cookiejar.py @@ -1,4 +1,5 @@ import asyncio +import contextlib import datetime import os # noqa import pathlib @@ -11,6 +12,7 @@ Dict, Iterable, Iterator, + List, Mapping, Optional, Set, @@ -21,9 +23,9 @@ from yarl import URL -from .abc import AbstractCookieJar +from .abc import AbstractCookieJar, ClearCookiePredicate from .helpers import is_ip_address, next_whole_second -from .typedefs import LooseCookies, PathLike +from .typedefs import LooseCookies, PathLike, StrOrURL __all__ = ("CookieJar", "DummyCookieJar") @@ -52,24 +54,37 @@ class CookieJar(AbstractCookieJar): MAX_TIME = datetime.datetime.max.replace(tzinfo=datetime.timezone.utc) - MAX_32BIT_TIME = datetime.datetime.utcfromtimestamp(2 ** 31 - 1) + MAX_32BIT_TIME = datetime.datetime.utcfromtimestamp(2**31 - 1) def __init__( self, *, unsafe: bool = False, quote_cookie: bool = True, - loop: Optional[asyncio.AbstractEventLoop] = None + treat_as_secure_origin: Union[StrOrURL, List[StrOrURL], None] = None, + loop: Optional[asyncio.AbstractEventLoop] = None, ) -> None: super().__init__(loop=loop) - self._cookies = defaultdict( + self._cookies: DefaultDict[Tuple[str, str], SimpleCookie[str]] = defaultdict( SimpleCookie - ) # type: DefaultDict[str, SimpleCookie[str]] - self._host_only_cookies = set() # type: Set[Tuple[str, str]] + ) + self._host_only_cookies: Set[Tuple[str, str]] = set() self._unsafe = unsafe self._quote_cookie = quote_cookie + if treat_as_secure_origin is None: + treat_as_secure_origin = [] + elif isinstance(treat_as_secure_origin, URL): + treat_as_secure_origin = [treat_as_secure_origin.origin()] + elif isinstance(treat_as_secure_origin, str): + treat_as_secure_origin = [URL(treat_as_secure_origin).origin()] + else: + treat_as_secure_origin = [ + URL(url).origin() if isinstance(url, str) else url.origin() + for url in treat_as_secure_origin + ] + self._treat_as_secure_origin = treat_as_secure_origin self._next_expiration = next_whole_second() - self._expirations = {} # type: Dict[Tuple[str, str], datetime.datetime] + self._expirations: Dict[Tuple[str, str, str], datetime.datetime] = {} # #4515: datetime.max may not be representable on 32-bit platforms self._max_time = self.MAX_TIME try: @@ -87,11 +102,41 @@ def load(self, file_path: PathLike) -> None: with file_path.open(mode="rb") as f: self._cookies = pickle.load(f) - def clear(self) -> None: - self._cookies.clear() - self._host_only_cookies.clear() - self._next_expiration = next_whole_second() - self._expirations.clear() + def clear(self, predicate: Optional[ClearCookiePredicate] = None) -> None: + if predicate is None: + self._next_expiration = next_whole_second() + self._cookies.clear() + self._host_only_cookies.clear() + self._expirations.clear() + return + + to_del = [] + now = datetime.datetime.now(datetime.timezone.utc) + for (domain, path), cookie in self._cookies.items(): + for name, morsel in cookie.items(): + key = (domain, path, name) + if ( + key in self._expirations and self._expirations[key] <= now + ) or predicate(morsel): + to_del.append(key) + + for domain, path, name in to_del: + self._host_only_cookies.discard((domain, name)) + key = (domain, path, name) + if key in self._expirations: + del self._expirations[(domain, path, name)] + self._cookies[(domain, path)].pop(name, None) + + next_expiration = min(self._expirations.values(), default=self._max_time) + try: + self._next_expiration = next_expiration.replace( + microsecond=0 + ) + datetime.timedelta(seconds=1) + except OverflowError: + self._next_expiration = self._max_time + + def clear_domain(self, domain: str) -> None: + self.clear(lambda x: self._is_domain_match(domain, x["domain"])) def __iter__(self) -> "Iterator[Morsel[str]]": self._do_expiration() @@ -102,35 +147,13 @@ def __len__(self) -> int: return sum(1 for i in self) def _do_expiration(self) -> None: - now = datetime.datetime.now(datetime.timezone.utc) - if self._next_expiration > now: - return - if not self._expirations: - return - next_expiration = self._max_time - to_del = [] - cookies = self._cookies - expirations = self._expirations - for (domain, name), when in expirations.items(): - if when <= now: - cookies[domain].pop(name, None) - to_del.append((domain, name)) - self._host_only_cookies.discard((domain, name)) - else: - next_expiration = min(next_expiration, when) - for key in to_del: - del expirations[key] + self.clear(lambda x: False) - try: - self._next_expiration = next_expiration.replace( - microsecond=0 - ) + datetime.timedelta(seconds=1) - except OverflowError: - self._next_expiration = self._max_time - - def _expire_cookie(self, when: datetime.datetime, domain: str, name: str) -> None: + def _expire_cookie( + self, when: datetime.datetime, domain: str, path: str, name: str + ) -> None: self._next_expiration = min(self._next_expiration, when) - self._expirations[(domain, name)] = when + self._expirations[(domain, path, name)] = when def update_cookies(self, cookies: LooseCookies, response_url: URL = URL()) -> None: """Update cookies.""" @@ -145,8 +168,8 @@ def update_cookies(self, cookies: LooseCookies, response_url: URL = URL()) -> No for name, cookie in cookies: if not isinstance(cookie, Morsel): - tmp = SimpleCookie() # type: SimpleCookie[str] - tmp[name] = cookie # type: ignore + tmp: SimpleCookie[str] = SimpleCookie() + tmp[name] = cookie # type: ignore[assignment] cookie = tmp[name] domain = cookie["domain"] @@ -192,7 +215,7 @@ def update_cookies(self, cookies: LooseCookies, response_url: URL = URL()) -> No ) + datetime.timedelta(seconds=delta_seconds) except OverflowError: max_age_expiration = self._max_time - self._expire_cookie(max_age_expiration, domain, name) + self._expire_cookie(max_age_expiration, domain, path, name) except ValueError: cookie["max-age"] = "" @@ -201,11 +224,11 @@ def update_cookies(self, cookies: LooseCookies, response_url: URL = URL()) -> No if expires: expire_time = self._parse_date(expires) if expire_time: - self._expire_cookie(expire_time, domain, name) + self._expire_cookie(expire_time, domain, path, name) else: cookie["expires"] = "" - self._cookies[domain][name] = cookie + self._cookies[(domain, path)][name] = cookie self._do_expiration() @@ -219,9 +242,17 @@ def filter_cookies( SimpleCookie() if self._quote_cookie else BaseCookie() ) hostname = request_url.raw_host or "" - is_not_secure = request_url.scheme not in ("https", "wss") + request_origin = URL() + with contextlib.suppress(ValueError): + request_origin = request_url.origin() - for cookie in self: + is_not_secure = ( + request_url.scheme not in ("https", "wss") + and request_origin not in self._treat_as_secure_origin + ) + + # Point 2: https://www.rfc-editor.org/rfc/rfc6265.html#section-5.4 + for cookie in sorted(self, key=lambda c: len(c["path"])): name = cookie.key domain = cookie["domain"] @@ -312,7 +343,7 @@ def _parse_date(cls, date_str: str) -> Optional[datetime.datetime]: time_match = cls.DATE_HMS_TIME_RE.match(token) if time_match: found_time = True - hour, minute, second = [int(s) for s in time_match.groups()] + hour, minute, second = (int(s) for s in time_match.groups()) continue if not found_day: @@ -372,7 +403,10 @@ def __iter__(self) -> "Iterator[Morsel[str]]": def __len__(self) -> int: return 0 - def clear(self) -> None: + def clear(self, predicate: Optional[ClearCookiePredicate] = None) -> None: + pass + + def clear_domain(self, domain: str) -> None: pass def update_cookies(self, cookies: LooseCookies, response_url: URL = URL()) -> None: diff --git a/aiohttp/formdata.py b/aiohttp/formdata.py index 900716b..e7cd24c 100644 --- a/aiohttp/formdata.py +++ b/aiohttp/formdata.py @@ -12,8 +12,10 @@ class FormData: - """Helper class for multipart/form-data and - application/x-www-form-urlencoded body generation.""" + """Helper class for form body generation. + + Supports multipart/form-data and application/x-www-form-urlencoded. + """ def __init__( self, @@ -22,7 +24,7 @@ def __init__( charset: Optional[str] = None, ) -> None: self._writer = multipart.MultipartWriter("form-data") - self._fields = [] # type: List[Any] + self._fields: List[Any] = [] self._is_multipart = False self._is_processed = False self._quote_fields = quote_fields @@ -45,7 +47,7 @@ def add_field( *, content_type: Optional[str] = None, filename: Optional[str] = None, - content_transfer_encoding: Optional[str] = None + content_transfer_encoding: Optional[str] = None, ) -> None: if isinstance(value, io.IOBase): @@ -54,7 +56,7 @@ def add_field( if filename is None and content_transfer_encoding is None: filename = name - type_options = MultiDict({"name": name}) # type: MultiDict[str] + type_options: MultiDict[str] = MultiDict({"name": name}) if filename is not None and not isinstance(filename, str): raise TypeError( "filename must be an instance of str. " "Got: %s" % filename @@ -92,14 +94,14 @@ def add_fields(self, *fields: Any) -> None: if isinstance(rec, io.IOBase): k = guess_filename(rec, "unknown") - self.add_field(k, rec) # type: ignore + self.add_field(k, rec) # type: ignore[arg-type] elif isinstance(rec, (MultiDictProxy, MultiDict)): to_add.extend(rec.items()) elif isinstance(rec, (list, tuple)) and len(rec) == 2: k, fp = rec - self.add_field(k, fp) # type: ignore + self.add_field(k, fp) # type: ignore[arg-type] else: raise TypeError( diff --git a/aiohttp/frozenlist.py b/aiohttp/frozenlist.py deleted file mode 100644 index 46b2610..0000000 --- a/aiohttp/frozenlist.py +++ /dev/null @@ -1,72 +0,0 @@ -from collections.abc import MutableSequence -from functools import total_ordering - -from .helpers import NO_EXTENSIONS - - -@total_ordering -class FrozenList(MutableSequence): - - __slots__ = ("_frozen", "_items") - - def __init__(self, items=None): - self._frozen = False - if items is not None: - items = list(items) - else: - items = [] - self._items = items - - @property - def frozen(self): - return self._frozen - - def freeze(self): - self._frozen = True - - def __getitem__(self, index): - return self._items[index] - - def __setitem__(self, index, value): - if self._frozen: - raise RuntimeError("Cannot modify frozen list.") - self._items[index] = value - - def __delitem__(self, index): - if self._frozen: - raise RuntimeError("Cannot modify frozen list.") - del self._items[index] - - def __len__(self): - return self._items.__len__() - - def __iter__(self): - return self._items.__iter__() - - def __reversed__(self): - return self._items.__reversed__() - - def __eq__(self, other): - return list(self) == other - - def __le__(self, other): - return list(self) <= other - - def insert(self, pos, item): - if self._frozen: - raise RuntimeError("Cannot modify frozen list.") - self._items.insert(pos, item) - - def __repr__(self): - return f"" - - -PyFrozenList = FrozenList - -try: - from aiohttp._frozenlist import FrozenList as CFrozenList # type: ignore - - if not NO_EXTENSIONS: - FrozenList = CFrozenList # type: ignore -except ImportError: # pragma: no cover - pass diff --git a/aiohttp/frozenlist.pyi b/aiohttp/frozenlist.pyi deleted file mode 100644 index 72ab086..0000000 --- a/aiohttp/frozenlist.pyi +++ /dev/null @@ -1,46 +0,0 @@ -from typing import ( - Generic, - Iterable, - Iterator, - List, - MutableSequence, - Optional, - TypeVar, - Union, - overload, -) - -_T = TypeVar("_T") -_Arg = Union[List[_T], Iterable[_T]] - -class FrozenList(MutableSequence[_T], Generic[_T]): - def __init__(self, items: Optional[_Arg[_T]] = ...) -> None: ... - @property - def frozen(self) -> bool: ... - def freeze(self) -> None: ... - @overload - def __getitem__(self, i: int) -> _T: ... - @overload - def __getitem__(self, s: slice) -> FrozenList[_T]: ... - @overload - def __setitem__(self, i: int, o: _T) -> None: ... - @overload - def __setitem__(self, s: slice, o: Iterable[_T]) -> None: ... - @overload - def __delitem__(self, i: int) -> None: ... - @overload - def __delitem__(self, i: slice) -> None: ... - def __len__(self) -> int: ... - def __iter__(self) -> Iterator[_T]: ... - def __reversed__(self) -> Iterator[_T]: ... - def __eq__(self, other: object) -> bool: ... - def __le__(self, other: FrozenList[_T]) -> bool: ... - def __ne__(self, other: object) -> bool: ... - def __lt__(self, other: FrozenList[_T]) -> bool: ... - def __ge__(self, other: FrozenList[_T]) -> bool: ... - def __gt__(self, other: FrozenList[_T]) -> bool: ... - def insert(self, pos: int, item: _T) -> None: ... - def __repr__(self) -> str: ... - -# types for C accelerators are the same -CFrozenList = PyFrozenList = FrozenList diff --git a/aiohttp/hdrs.py b/aiohttp/hdrs.py index f04a545..a619f25 100644 --- a/aiohttp/hdrs.py +++ b/aiohttp/hdrs.py @@ -2,21 +2,28 @@ # After changing the file content call ./tools/gen.py # to regenerate the headers parser +import sys +from typing import Set from multidict import istr -METH_ANY = "*" -METH_CONNECT = "CONNECT" -METH_HEAD = "HEAD" -METH_GET = "GET" -METH_DELETE = "DELETE" -METH_OPTIONS = "OPTIONS" -METH_PATCH = "PATCH" -METH_POST = "POST" -METH_PUT = "PUT" -METH_TRACE = "TRACE" +if sys.version_info >= (3, 8): + from typing import Final +else: + from typing_extensions import Final -METH_ALL = { +METH_ANY: Final[str] = "*" +METH_CONNECT: Final[str] = "CONNECT" +METH_HEAD: Final[str] = "HEAD" +METH_GET: Final[str] = "GET" +METH_DELETE: Final[str] = "DELETE" +METH_OPTIONS: Final[str] = "OPTIONS" +METH_PATCH: Final[str] = "PATCH" +METH_POST: Final[str] = "POST" +METH_PUT: Final[str] = "PUT" +METH_TRACE: Final[str] = "TRACE" + +METH_ALL: Final[Set[str]] = { METH_CONNECT, METH_HEAD, METH_GET, @@ -28,81 +35,80 @@ METH_TRACE, } - -ACCEPT = istr("Accept") -ACCEPT_CHARSET = istr("Accept-Charset") -ACCEPT_ENCODING = istr("Accept-Encoding") -ACCEPT_LANGUAGE = istr("Accept-Language") -ACCEPT_RANGES = istr("Accept-Ranges") -ACCESS_CONTROL_MAX_AGE = istr("Access-Control-Max-Age") -ACCESS_CONTROL_ALLOW_CREDENTIALS = istr("Access-Control-Allow-Credentials") -ACCESS_CONTROL_ALLOW_HEADERS = istr("Access-Control-Allow-Headers") -ACCESS_CONTROL_ALLOW_METHODS = istr("Access-Control-Allow-Methods") -ACCESS_CONTROL_ALLOW_ORIGIN = istr("Access-Control-Allow-Origin") -ACCESS_CONTROL_EXPOSE_HEADERS = istr("Access-Control-Expose-Headers") -ACCESS_CONTROL_REQUEST_HEADERS = istr("Access-Control-Request-Headers") -ACCESS_CONTROL_REQUEST_METHOD = istr("Access-Control-Request-Method") -AGE = istr("Age") -ALLOW = istr("Allow") -AUTHORIZATION = istr("Authorization") -CACHE_CONTROL = istr("Cache-Control") -CONNECTION = istr("Connection") -CONTENT_DISPOSITION = istr("Content-Disposition") -CONTENT_ENCODING = istr("Content-Encoding") -CONTENT_LANGUAGE = istr("Content-Language") -CONTENT_LENGTH = istr("Content-Length") -CONTENT_LOCATION = istr("Content-Location") -CONTENT_MD5 = istr("Content-MD5") -CONTENT_RANGE = istr("Content-Range") -CONTENT_TRANSFER_ENCODING = istr("Content-Transfer-Encoding") -CONTENT_TYPE = istr("Content-Type") -COOKIE = istr("Cookie") -DATE = istr("Date") -DESTINATION = istr("Destination") -DIGEST = istr("Digest") -ETAG = istr("Etag") -EXPECT = istr("Expect") -EXPIRES = istr("Expires") -FORWARDED = istr("Forwarded") -FROM = istr("From") -HOST = istr("Host") -IF_MATCH = istr("If-Match") -IF_MODIFIED_SINCE = istr("If-Modified-Since") -IF_NONE_MATCH = istr("If-None-Match") -IF_RANGE = istr("If-Range") -IF_UNMODIFIED_SINCE = istr("If-Unmodified-Since") -KEEP_ALIVE = istr("Keep-Alive") -LAST_EVENT_ID = istr("Last-Event-ID") -LAST_MODIFIED = istr("Last-Modified") -LINK = istr("Link") -LOCATION = istr("Location") -MAX_FORWARDS = istr("Max-Forwards") -ORIGIN = istr("Origin") -PRAGMA = istr("Pragma") -PROXY_AUTHENTICATE = istr("Proxy-Authenticate") -PROXY_AUTHORIZATION = istr("Proxy-Authorization") -RANGE = istr("Range") -REFERER = istr("Referer") -RETRY_AFTER = istr("Retry-After") -SEC_WEBSOCKET_ACCEPT = istr("Sec-WebSocket-Accept") -SEC_WEBSOCKET_VERSION = istr("Sec-WebSocket-Version") -SEC_WEBSOCKET_PROTOCOL = istr("Sec-WebSocket-Protocol") -SEC_WEBSOCKET_EXTENSIONS = istr("Sec-WebSocket-Extensions") -SEC_WEBSOCKET_KEY = istr("Sec-WebSocket-Key") -SEC_WEBSOCKET_KEY1 = istr("Sec-WebSocket-Key1") -SERVER = istr("Server") -SET_COOKIE = istr("Set-Cookie") -TE = istr("TE") -TRAILER = istr("Trailer") -TRANSFER_ENCODING = istr("Transfer-Encoding") -UPGRADE = istr("Upgrade") -URI = istr("URI") -USER_AGENT = istr("User-Agent") -VARY = istr("Vary") -VIA = istr("Via") -WANT_DIGEST = istr("Want-Digest") -WARNING = istr("Warning") -WWW_AUTHENTICATE = istr("WWW-Authenticate") -X_FORWARDED_FOR = istr("X-Forwarded-For") -X_FORWARDED_HOST = istr("X-Forwarded-Host") -X_FORWARDED_PROTO = istr("X-Forwarded-Proto") +ACCEPT: Final[istr] = istr("Accept") +ACCEPT_CHARSET: Final[istr] = istr("Accept-Charset") +ACCEPT_ENCODING: Final[istr] = istr("Accept-Encoding") +ACCEPT_LANGUAGE: Final[istr] = istr("Accept-Language") +ACCEPT_RANGES: Final[istr] = istr("Accept-Ranges") +ACCESS_CONTROL_MAX_AGE: Final[istr] = istr("Access-Control-Max-Age") +ACCESS_CONTROL_ALLOW_CREDENTIALS: Final[istr] = istr("Access-Control-Allow-Credentials") +ACCESS_CONTROL_ALLOW_HEADERS: Final[istr] = istr("Access-Control-Allow-Headers") +ACCESS_CONTROL_ALLOW_METHODS: Final[istr] = istr("Access-Control-Allow-Methods") +ACCESS_CONTROL_ALLOW_ORIGIN: Final[istr] = istr("Access-Control-Allow-Origin") +ACCESS_CONTROL_EXPOSE_HEADERS: Final[istr] = istr("Access-Control-Expose-Headers") +ACCESS_CONTROL_REQUEST_HEADERS: Final[istr] = istr("Access-Control-Request-Headers") +ACCESS_CONTROL_REQUEST_METHOD: Final[istr] = istr("Access-Control-Request-Method") +AGE: Final[istr] = istr("Age") +ALLOW: Final[istr] = istr("Allow") +AUTHORIZATION: Final[istr] = istr("Authorization") +CACHE_CONTROL: Final[istr] = istr("Cache-Control") +CONNECTION: Final[istr] = istr("Connection") +CONTENT_DISPOSITION: Final[istr] = istr("Content-Disposition") +CONTENT_ENCODING: Final[istr] = istr("Content-Encoding") +CONTENT_LANGUAGE: Final[istr] = istr("Content-Language") +CONTENT_LENGTH: Final[istr] = istr("Content-Length") +CONTENT_LOCATION: Final[istr] = istr("Content-Location") +CONTENT_MD5: Final[istr] = istr("Content-MD5") +CONTENT_RANGE: Final[istr] = istr("Content-Range") +CONTENT_TRANSFER_ENCODING: Final[istr] = istr("Content-Transfer-Encoding") +CONTENT_TYPE: Final[istr] = istr("Content-Type") +COOKIE: Final[istr] = istr("Cookie") +DATE: Final[istr] = istr("Date") +DESTINATION: Final[istr] = istr("Destination") +DIGEST: Final[istr] = istr("Digest") +ETAG: Final[istr] = istr("Etag") +EXPECT: Final[istr] = istr("Expect") +EXPIRES: Final[istr] = istr("Expires") +FORWARDED: Final[istr] = istr("Forwarded") +FROM: Final[istr] = istr("From") +HOST: Final[istr] = istr("Host") +IF_MATCH: Final[istr] = istr("If-Match") +IF_MODIFIED_SINCE: Final[istr] = istr("If-Modified-Since") +IF_NONE_MATCH: Final[istr] = istr("If-None-Match") +IF_RANGE: Final[istr] = istr("If-Range") +IF_UNMODIFIED_SINCE: Final[istr] = istr("If-Unmodified-Since") +KEEP_ALIVE: Final[istr] = istr("Keep-Alive") +LAST_EVENT_ID: Final[istr] = istr("Last-Event-ID") +LAST_MODIFIED: Final[istr] = istr("Last-Modified") +LINK: Final[istr] = istr("Link") +LOCATION: Final[istr] = istr("Location") +MAX_FORWARDS: Final[istr] = istr("Max-Forwards") +ORIGIN: Final[istr] = istr("Origin") +PRAGMA: Final[istr] = istr("Pragma") +PROXY_AUTHENTICATE: Final[istr] = istr("Proxy-Authenticate") +PROXY_AUTHORIZATION: Final[istr] = istr("Proxy-Authorization") +RANGE: Final[istr] = istr("Range") +REFERER: Final[istr] = istr("Referer") +RETRY_AFTER: Final[istr] = istr("Retry-After") +SEC_WEBSOCKET_ACCEPT: Final[istr] = istr("Sec-WebSocket-Accept") +SEC_WEBSOCKET_VERSION: Final[istr] = istr("Sec-WebSocket-Version") +SEC_WEBSOCKET_PROTOCOL: Final[istr] = istr("Sec-WebSocket-Protocol") +SEC_WEBSOCKET_EXTENSIONS: Final[istr] = istr("Sec-WebSocket-Extensions") +SEC_WEBSOCKET_KEY: Final[istr] = istr("Sec-WebSocket-Key") +SEC_WEBSOCKET_KEY1: Final[istr] = istr("Sec-WebSocket-Key1") +SERVER: Final[istr] = istr("Server") +SET_COOKIE: Final[istr] = istr("Set-Cookie") +TE: Final[istr] = istr("TE") +TRAILER: Final[istr] = istr("Trailer") +TRANSFER_ENCODING: Final[istr] = istr("Transfer-Encoding") +UPGRADE: Final[istr] = istr("Upgrade") +URI: Final[istr] = istr("URI") +USER_AGENT: Final[istr] = istr("User-Agent") +VARY: Final[istr] = istr("Vary") +VIA: Final[istr] = istr("Via") +WANT_DIGEST: Final[istr] = istr("Want-Digest") +WARNING: Final[istr] = istr("Warning") +WWW_AUTHENTICATE: Final[istr] = istr("WWW-Authenticate") +X_FORWARDED_FOR: Final[istr] = istr("X-Forwarded-For") +X_FORWARDED_HOST: Final[istr] = istr("X-Forwarded-Host") +X_FORWARDED_PROTO: Final[istr] = istr("X-Forwarded-Proto") diff --git a/aiohttp/helpers.py b/aiohttp/helpers.py index bbf5f12..eb0782f 100644 --- a/aiohttp/helpers.py +++ b/aiohttp/helpers.py @@ -3,7 +3,7 @@ import asyncio import base64 import binascii -import cgi +import contextlib import datetime import functools import inspect @@ -17,12 +17,15 @@ import weakref from collections import namedtuple from contextlib import suppress +from email.parser import HeaderParser +from email.utils import parsedate from math import ceil from pathlib import Path from types import TracebackType from typing import ( Any, Callable, + ContextManager, Dict, Generator, Generic, @@ -40,58 +43,55 @@ cast, ) from urllib.parse import quote -from urllib.request import getproxies +from urllib.request import getproxies, proxy_bypass import async_timeout import attr from multidict import MultiDict, MultiDictProxy -from typing_extensions import Protocol from yarl import URL from . import hdrs from .log import client_logger, internal_logger -from .typedefs import PathLike # noqa +from .typedefs import PathLike, Protocol # noqa -__all__ = ("BasicAuth", "ChainMapProxy") +__all__ = ("BasicAuth", "ChainMapProxy", "ETag") + +IS_MACOS = platform.system() == "Darwin" +IS_WINDOWS = platform.system() == "Windows" PY_36 = sys.version_info >= (3, 6) PY_37 = sys.version_info >= (3, 7) PY_38 = sys.version_info >= (3, 8) +PY_310 = sys.version_info >= (3, 10) +PY_311 = sys.version_info >= (3, 11) -if not PY_37: +if sys.version_info < (3, 7): import idna_ssl idna_ssl.patch_match_hostname() -try: - from typing import ContextManager -except ImportError: - from typing_extensions import ContextManager - - -def all_tasks( - loop: Optional[asyncio.AbstractEventLoop] = None, -) -> Set["asyncio.Task[Any]"]: - tasks = list(asyncio.Task.all_tasks(loop)) - return {t for t in tasks if not t.done()} - + def all_tasks( + loop: Optional[asyncio.AbstractEventLoop] = None, + ) -> Set["asyncio.Task[Any]"]: + tasks = list(asyncio.Task.all_tasks(loop)) + return {t for t in tasks if not t.done()} -if PY_37: - all_tasks = getattr(asyncio, "all_tasks") +else: + all_tasks = asyncio.all_tasks _T = TypeVar("_T") _S = TypeVar("_S") -sentinel = object() # type: Any -NO_EXTENSIONS = bool(os.environ.get("AIOHTTP_NO_EXTENSIONS")) # type: bool +sentinel: Any = object() +NO_EXTENSIONS: bool = bool(os.environ.get("AIOHTTP_NO_EXTENSIONS")) # N.B. sys.flags.dev_mode is available on Python 3.7+, use getattr # for compatibility with older versions -DEBUG = getattr(sys.flags, "dev_mode", False) or ( +DEBUG: bool = getattr(sys.flags, "dev_mode", False) or ( not sys.flags.ignore_environment and bool(os.environ.get("PYTHONASYNCIODEBUG")) -) # type: bool +) CHAR = {chr(i) for i in range(0, 128)} @@ -197,7 +197,9 @@ def strip_auth_from_url(url: URL) -> Tuple[URL, Optional[BasicAuth]]: def netrc_from_env() -> Optional[netrc.netrc]: - """Attempt to load the netrc file from the path specified by the env-var + """Load netrc from file. + + Attempt to load it from the path specified by the env-var NETRC or in the default location in the user's home directory. Returns None if it couldn't be found or fails to parse. @@ -218,17 +220,18 @@ def netrc_from_env() -> Optional[netrc.netrc]: ) return None - netrc_path = home_dir / ( - "_netrc" if platform.system() == "Windows" else ".netrc" - ) + netrc_path = home_dir / ("_netrc" if IS_WINDOWS else ".netrc") try: return netrc.netrc(str(netrc_path)) except netrc.NetrcParseError as e: client_logger.warning("Could not parse .netrc file: %s", e) except OSError as e: + netrc_exists = False + with contextlib.suppress(OSError): + netrc_exists = netrc_path.is_file() # we couldn't read the file (doesn't exist, permissions, etc.) - if netrc_env or netrc_path.is_file(): + if netrc_env or netrc_exists: # only warn if the environment wanted us to load it, # or it appears like the default file does actually exist client_logger.warning("Could not read .netrc file: %s", e) @@ -243,14 +246,20 @@ class ProxyInfo: def proxies_from_env() -> Dict[str, ProxyInfo]: - proxy_urls = {k: URL(v) for k, v in getproxies().items() if k in ("http", "https")} + proxy_urls = { + k: URL(v) + for k, v in getproxies().items() + if k in ("http", "https", "ws", "wss") + } netrc_obj = netrc_from_env() stripped = {k: strip_auth_from_url(v) for k, v in proxy_urls.items()} ret = {} for proto, val in stripped.items(): proxy, auth = val - if proxy.scheme == "https": - client_logger.warning("HTTPS proxies %s are not supported, ignoring", proxy) + if proxy.scheme in ("https", "wss"): + client_logger.warning( + "%s proxies %s are not supported, ignoring", proxy.scheme.upper(), proxy + ) continue if netrc_obj and auth is None: auth_from_netrc = None @@ -270,7 +279,7 @@ def proxies_from_env() -> Dict[str, ProxyInfo]: def current_task( loop: Optional[asyncio.AbstractEventLoop] = None, ) -> "Optional[asyncio.Task[Any]]": - if PY_37: + if sys.version_info >= (3, 7): return asyncio.current_task(loop=loop) else: return asyncio.Task.current_task(loop=loop) @@ -297,11 +306,25 @@ def get_running_loop( def isasyncgenfunction(obj: Any) -> bool: func = getattr(inspect, "isasyncgenfunction", None) if func is not None: - return func(obj) + return func(obj) # type: ignore[no-any-return] else: return False +def get_env_proxy_for_url(url: URL) -> Tuple[URL, Optional[BasicAuth]]: + """Get a permitted proxy for the given URL from the env.""" + if url.host is not None and proxy_bypass(url.host): + raise LookupError(f"Proxying is disallowed for `{url.host!r}`") + + proxies_in_env = proxies_from_env() + try: + proxy_info = proxies_in_env[url.scheme] + except KeyError: + raise LookupError(f"No proxies found for `{url!s}` in the env") + else: + return proxy_info.proxy, proxy_info.proxy_auth + + @attr.s(auto_attribs=True, frozen=True, slots=True) class MimeType: type: str @@ -331,7 +354,7 @@ def parse_mimetype(mimetype: str) -> MimeType: ) parts = mimetype.split(";") - params = MultiDict() # type: MultiDict[str] + params: MultiDict[str] = MultiDict() for item in parts[1:]: if not item: continue @@ -365,14 +388,41 @@ def guess_filename(obj: Any, default: Optional[str] = None) -> Optional[str]: return default +not_qtext_re = re.compile(r"[^\041\043-\133\135-\176]") +QCONTENT = {chr(i) for i in range(0x20, 0x7F)} | {"\t"} + + +def quoted_string(content: str) -> str: + """Return 7-bit content as quoted-string. + + Format content into a quoted-string as defined in RFC5322 for + Internet Message Format. Notice that this is not the 8-bit HTTP + format, but the 7-bit email format. Content must be in usascii or + a ValueError is raised. + """ + if not (QCONTENT > set(content)): + raise ValueError(f"bad content for quoted-string {content!r}") + return not_qtext_re.sub(lambda x: "\\" + x.group(0), content) + + def content_disposition_header( - disptype: str, quote_fields: bool = True, **params: str + disptype: str, quote_fields: bool = True, _charset: str = "utf-8", **params: str ) -> str: - """Sets ``Content-Disposition`` header. + """Sets ``Content-Disposition`` header for MIME. + + This is the MIME payload Content-Disposition header from RFC 2183 + and RFC 7579 section 4.2, not the HTTP Content-Disposition from + RFC 6266. disptype is a disposition type: inline, attachment, form-data. Should be valid extension token (see RFC 2183) + quote_fields performs value quoting to 7-bit MIME headers + according to RFC 7578. Set to quote_fields to False if recipient + can take 8-bit file names and field values. + + _charset specifies the charset to use when quote_fields is True. + params is a dict with disposition params. """ if not disptype or not (TOKEN > set(disptype)): @@ -386,26 +436,40 @@ def content_disposition_header( raise ValueError( "bad content disposition parameter" " {!r}={!r}".format(key, val) ) - qval = quote(val, "") if quote_fields else val - lparams.append((key, '"%s"' % qval)) - if key == "filename": - lparams.append(("filename*", "utf-8''" + qval)) + if quote_fields: + if key.lower() == "filename": + qval = quote(val, "", encoding=_charset) + lparams.append((key, '"%s"' % qval)) + else: + try: + qval = quoted_string(val) + except ValueError: + qval = "".join( + (_charset, "''", quote(val, "", encoding=_charset)) + ) + lparams.append((key + "*", qval)) + else: + lparams.append((key, '"%s"' % qval)) + else: + qval = val.replace("\\", "\\\\").replace('"', '\\"') + lparams.append((key, '"%s"' % qval)) sparams = "; ".join("=".join(pair) for pair in lparams) value = "; ".join((value, sparams)) return value -class _TSelf(Protocol): - _cache: Dict[str, Any] +class _TSelf(Protocol, Generic[_T]): + _cache: Dict[str, _T] class reify(Generic[_T]): - """Use as a class method decorator. It operates almost exactly like + """Use as a class method decorator. + + It operates almost exactly like the Python `@property` decorator, but it puts the result of the method it decorates into the instance dict after the first call, effectively replacing the function it decorates with an instance variable. It is, in Python parlance, a data descriptor. - """ def __init__(self, wrapped: Callable[..., _T]) -> None: @@ -413,7 +477,7 @@ def __init__(self, wrapped: Callable[..., _T]) -> None: self.__doc__ = wrapped.__doc__ self.name = wrapped.__name__ - def __get__(self, inst: _TSelf, owner: Optional[Type[Any]] = None) -> _T: + def __get__(self, inst: _TSelf[_T], owner: Optional[Type[Any]] = None) -> _T: try: try: return inst._cache[self.name] @@ -426,7 +490,7 @@ def __get__(self, inst: _TSelf, owner: Optional[Type[Any]] = None) -> _T: return self raise - def __set__(self, inst: _TSelf, value: _T) -> None: + def __set__(self, inst: _TSelf[_T], value: _T) -> None: raise AttributeError("reified property is read-only") @@ -436,7 +500,7 @@ def __set__(self, inst: _TSelf, value: _T) -> None: from ._helpers import reify as reify_c if not NO_EXTENSIONS: - reify = reify_c # type: ignore + reify = reify_c # type: ignore[misc,assignment] except ImportError: pass @@ -470,7 +534,7 @@ def _is_ip_address( elif isinstance(host, (bytes, bytearray, memoryview)): return bool(regexb.match(host)) else: - raise TypeError("{} [{}] is not a str or bytes".format(host, type(host))) + raise TypeError(f"{host} [{type(host)}] is not a str or bytes") is_ipv4_address = functools.partial(_is_ip_address, _ipv4_regex, _ipv4_regexb) @@ -488,7 +552,7 @@ def next_whole_second() -> datetime.datetime: ) + datetime.timedelta(seconds=0) -_cached_current_datetime = None # type: Optional[int] +_cached_current_datetime: Optional[int] = None _cached_formatted_datetime = "" @@ -532,7 +596,7 @@ def rfc822_formatted_time() -> str: return _cached_formatted_datetime -def _weakref_handle(info): # type: ignore +def _weakref_handle(info: "Tuple[weakref.ref[object], str]") -> None: ref, name = info ob = ref() if ob is not None: @@ -540,34 +604,40 @@ def _weakref_handle(info): # type: ignore getattr(ob, name)() -def weakref_handle(ob, name, timeout, loop): # type: ignore +def weakref_handle( + ob: object, name: str, timeout: float, loop: asyncio.AbstractEventLoop +) -> Optional[asyncio.TimerHandle]: if timeout is not None and timeout > 0: when = loop.time() + timeout if timeout >= 5: when = ceil(when) return loop.call_at(when, _weakref_handle, (weakref.ref(ob), name)) + return None -def call_later(cb, timeout, loop): # type: ignore +def call_later( + cb: Callable[[], Any], timeout: float, loop: asyncio.AbstractEventLoop +) -> Optional[asyncio.TimerHandle]: if timeout is not None and timeout > 0: when = loop.time() + timeout if timeout > 5: when = ceil(when) return loop.call_at(when, cb) + return None class TimeoutHandle: - """ Timeout handle """ + """Timeout handle""" def __init__( self, loop: asyncio.AbstractEventLoop, timeout: Optional[float] ) -> None: self._timeout = timeout self._loop = loop - self._callbacks = ( - [] - ) # type: List[Tuple[Callable[..., None], Tuple[Any, ...], Dict[str, Any]]] + self._callbacks: List[ + Tuple[Callable[..., None], Tuple[Any, ...], Dict[str, Any]] + ] = [] def register( self, callback: Callable[..., None], *args: Any, **kwargs: Any @@ -621,11 +691,11 @@ def __exit__( class TimerContext(BaseTimerContext): - """ Low resolution timeout context manager """ + """Low resolution timeout context manager""" def __init__(self, loop: asyncio.AbstractEventLoop) -> None: self._loop = loop - self._tasks = [] # type: List[asyncio.Task[Any]] + self._tasks: List[asyncio.Task[Any]] = [] self._cancelled = False def __enter__(self) -> BaseTimerContext: @@ -637,7 +707,6 @@ def __enter__(self) -> BaseTimerContext: ) if self._cancelled: - task.cancel() raise asyncio.TimeoutError from None self._tasks.append(task) @@ -664,29 +733,23 @@ def timeout(self) -> None: self._cancelled = True -class CeilTimeout(async_timeout.timeout): - def __enter__(self) -> async_timeout.timeout: - if self._timeout is not None: - self._task = current_task(loop=self._loop) - if self._task is None: - raise RuntimeError( - "Timeout context manager should be used inside a task" - ) - now = self._loop.time() - delay = self._timeout - when = now + delay - if delay > 5: - when = ceil(when) - self._cancel_handler = self._loop.call_at(when, self._cancel_task) - return self +def ceil_timeout(delay: Optional[float]) -> async_timeout.Timeout: + if delay is None or delay <= 0: + return async_timeout.timeout(None) + loop = get_running_loop() + now = loop.time() + when = now + delay + if delay > 5: + when = ceil(when) + return async_timeout.timeout_at(when) -class HeadersMixin: +class HeadersMixin: ATTRS = frozenset(["_content_type", "_content_dict", "_stored_content_type"]) - _content_type = None # type: Optional[str] - _content_dict = None # type: Optional[Dict[str, str]] + _content_type: Optional[str] = None + _content_dict: Optional[Dict[str, str]] = None _stored_content_type = sentinel def _parse_content_type(self, raw: str) -> None: @@ -696,28 +759,33 @@ def _parse_content_type(self, raw: str) -> None: self._content_type = "application/octet-stream" self._content_dict = {} else: - self._content_type, self._content_dict = cgi.parse_header(raw) + msg = HeaderParser().parsestr("Content-Type: " + raw) + self._content_type = msg.get_content_type() + params = msg.get_params() + self._content_dict = dict(params[1:]) # First element is content type again @property def content_type(self) -> str: """The value of content part for Content-Type HTTP header.""" - raw = self._headers.get(hdrs.CONTENT_TYPE) # type: ignore + raw = self._headers.get(hdrs.CONTENT_TYPE) # type: ignore[attr-defined] if self._stored_content_type != raw: self._parse_content_type(raw) - return self._content_type # type: ignore + return self._content_type # type: ignore[return-value] @property def charset(self) -> Optional[str]: """The value of charset part for Content-Type HTTP header.""" - raw = self._headers.get(hdrs.CONTENT_TYPE) # type: ignore + raw = self._headers.get(hdrs.CONTENT_TYPE) # type: ignore[attr-defined] if self._stored_content_type != raw: self._parse_content_type(raw) - return self._content_dict.get("charset") # type: ignore + return self._content_dict.get("charset") # type: ignore[union-attr] @property def content_length(self) -> Optional[int]: """The value of Content-Length HTTP header.""" - content_length = self._headers.get(hdrs.CONTENT_LENGTH) # type: ignore + content_length = self._headers.get( # type: ignore[attr-defined] + hdrs.CONTENT_LENGTH + ) if content_length is not None: return int(content_length) @@ -760,10 +828,10 @@ def get(self, key: str, default: Any = None) -> Any: def __len__(self) -> int: # reuses stored hash values if possible - return len(set().union(*self._maps)) # type: ignore + return len(set().union(*self._maps)) # type: ignore[arg-type] def __iter__(self) -> Iterator[str]: - d = {} # type: Dict[str, Any] + d: Dict[str, Any] = {} for mapping in reversed(self._maps): # reuses stored hash values if possible d.update(mapping) @@ -778,3 +846,36 @@ def __bool__(self) -> bool: def __repr__(self) -> str: content = ", ".join(map(repr, self._maps)) return f"ChainMapProxy({content})" + + +# https://tools.ietf.org/html/rfc7232#section-2.3 +_ETAGC = r"[!#-}\x80-\xff]+" +_ETAGC_RE = re.compile(_ETAGC) +_QUOTED_ETAG = rf'(W/)?"({_ETAGC})"' +QUOTED_ETAG_RE = re.compile(_QUOTED_ETAG) +LIST_QUOTED_ETAG_RE = re.compile(rf"({_QUOTED_ETAG})(?:\s*,\s*|$)|(.)") + +ETAG_ANY = "*" + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class ETag: + value: str + is_weak: bool = False + + +def validate_etag_value(value: str) -> None: + if value != ETAG_ANY and not _ETAGC_RE.fullmatch(value): + raise ValueError( + f"Value {value!r} is not a valid etag. Maybe it contains '\"'?" + ) + + +def parse_http_date(date_str: Optional[str]) -> Optional[datetime.datetime]: + """Process a date string, return a datetime object""" + if date_str is not None: + timetuple = parsedate(date_str) + if timetuple is not None: + with suppress(ValueError): + return datetime.datetime(*timetuple[:6], tzinfo=datetime.timezone.utc) + return None diff --git a/aiohttp/http.py b/aiohttp/http.py index 415ffbf..ca9dc54 100644 --- a/aiohttp/http.py +++ b/aiohttp/http.py @@ -63,10 +63,8 @@ ) -SERVER_SOFTWARE = "Python/{0[0]}.{0[1]} aiohttp/{1}".format( +SERVER_SOFTWARE: str = "Python/{0[0]}.{0[1]} aiohttp/{1}".format( sys.version_info, __version__ -) # type: str +) -RESPONSES = ( - http.server.BaseHTTPRequestHandler.responses -) # type: Mapping[int, Tuple[str, str]] +RESPONSES: Mapping[int, Tuple[str, str]] = http.server.BaseHTTPRequestHandler.responses diff --git a/aiohttp/http_exceptions.py b/aiohttp/http_exceptions.py index c885f80..63c20af 100644 --- a/aiohttp/http_exceptions.py +++ b/aiohttp/http_exceptions.py @@ -1,6 +1,7 @@ """Low-level http related exceptions.""" +from textwrap import indent from typing import Optional, Union from .typedefs import _CIMultiDict @@ -35,10 +36,11 @@ def __init__( self.message = message def __str__(self) -> str: - return f"{self.code}, message={self.message!r}" + msg = indent(self.message, " ") + return f"{self.code}, message:\n{msg}" def __repr__(self) -> str: - return f"<{self.__class__.__name__}: {self}>" + return f"<{self.__class__.__name__}: {self.code}, message={self.message!r}>" class BadHttpMessage(HttpProcessingError): @@ -93,10 +95,10 @@ def __init__(self, hdr: Union[bytes, str]) -> None: class BadStatusLine(BadHttpMessage): - def __init__(self, line: str = "") -> None: + def __init__(self, line: str = "", error: Optional[str] = None) -> None: if not isinstance(line, str): line = repr(line) - super().__init__(f"Bad status line {line!r}") + super().__init__(error or f"Bad status line {line!r}") self.args = (line,) self.line = line diff --git a/aiohttp/http_parser.py b/aiohttp/http_parser.py index 71ba815..91e01f4 100644 --- a/aiohttp/http_parser.py +++ b/aiohttp/http_parser.py @@ -3,17 +3,34 @@ import collections import re import string +import sys import zlib +from contextlib import suppress from enum import IntEnum -from typing import Any, List, Optional, Tuple, Type, Union +from typing import ( + Any, + ClassVar, + Generic, + List, + NamedTuple, + Optional, + Pattern, + Set, + Tuple, + Type, + TypeVar, + Union, + cast, +) from multidict import CIMultiDict, CIMultiDictProxy, istr from yarl import URL from . import hdrs from .base_protocol import BaseProtocol -from .helpers import NO_EXTENSIONS, BaseTimerContext +from .helpers import DEBUG, NO_EXTENSIONS, BaseTimerContext from .http_exceptions import ( + BadHttpMessage, BadStatusLine, ContentEncodingError, ContentLengthError, @@ -24,7 +41,12 @@ from .http_writer import HttpVersion, HttpVersion10 from .log import internal_logger from .streams import EMPTY_PAYLOAD, StreamReader -from .typedefs import RawHeaders +from .typedefs import Final, RawHeaders + +if sys.version_info >= (3, 8): + from typing import Literal +else: + from typing_extensions import Literal try: import brotli @@ -43,34 +65,35 @@ "RawResponseMessage", ) -ASCIISET = set(string.printable) +_SEP = Literal[b"\r\n", b"\n"] + +ASCIISET: Final[Set[str]] = set(string.printable) -# See https://tools.ietf.org/html/rfc7230#section-3.1.1 -# and https://tools.ietf.org/html/rfc7230#appendix-B +# See https://www.rfc-editor.org/rfc/rfc9110.html#name-overview +# and https://www.rfc-editor.org/rfc/rfc9110.html#name-tokens # # method = token # tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / # "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA # token = 1*tchar -METHRE = re.compile(r"[!#$%&'*+\-.^_`|~0-9A-Za-z]+") -VERSRE = re.compile(r"HTTP/(\d+).(\d+)") -HDRRE = re.compile(rb"[\x00-\x1F\x7F()<>@,;:\[\]={} \t\\\\\"]") +METHRE: Final[Pattern[str]] = re.compile(r"[!#$%&'*+\-.^_`|~0-9A-Za-z]+") +VERSRE: Final[Pattern[str]] = re.compile(r"HTTP/(\d).(\d)") +HDRRE: Final[Pattern[bytes]] = re.compile(rb"[\x00-\x1F\x7F()<>@,;:\[\]={} \t\"\\]") +HEXDIGIT = re.compile(rb"[0-9a-fA-F]+") + + +class RawRequestMessage(NamedTuple): + method: str + path: str + version: HttpVersion + headers: "CIMultiDictProxy[str]" + raw_headers: RawHeaders + should_close: bool + compression: Optional[str] + upgrade: bool + chunked: bool + url: URL -RawRequestMessage = collections.namedtuple( - "RawRequestMessage", - [ - "method", - "path", - "version", - "headers", - "raw_headers", - "should_close", - "compression", - "upgrade", - "chunked", - "url", - ], -) RawResponseMessage = collections.namedtuple( "RawResponseMessage", @@ -88,6 +111,9 @@ ) +_MsgT = TypeVar("_MsgT", RawRequestMessage, RawResponseMessage) + + class ParseState(IntEnum): PARSE_NONE = 0 @@ -118,7 +144,7 @@ def __init__( def parse_headers( self, lines: List[bytes] ) -> Tuple["CIMultiDictProxy[str]", RawHeaders]: - headers = CIMultiDict() # type: CIMultiDict[str] + headers: CIMultiDict[str] = CIMultiDict() raw_headers = [] lines_idx = 1 @@ -132,8 +158,11 @@ def parse_headers( except ValueError: raise InvalidHeader(line) from None - bname = bname.strip(b" \t") - bvalue = bvalue.lstrip() + # https://www.rfc-editor.org/rfc/rfc9112.html#section-5.1-2 + if {bname[0], bname[-1]} & {32, 9}: # {" ", "\t"} + raise InvalidHeader(line) + + bvalue = bvalue.lstrip(b" \t") if HDRRE.search(bname): raise InvalidHeader(bname) if len(bname) > self.max_field_size: @@ -154,6 +183,8 @@ def parse_headers( # consume continuation lines continuation = line and line[0] in (32, 9) # (' ', '\t') + # Deprecated: + # https://www.rfc-editor.org/rfc/rfc9112.html#name-obsolete-line-folding if continuation: bvalue_lst = [bvalue] while continuation: @@ -188,22 +219,28 @@ def parse_headers( str(header_length), ) - bvalue = bvalue.strip() + bvalue = bvalue.strip(b" \t") name = bname.decode("utf-8", "surrogateescape") value = bvalue.decode("utf-8", "surrogateescape") + # https://www.rfc-editor.org/rfc/rfc9110.html#section-5.5-5 + if "\n" in value or "\r" in value or "\x00" in value: + raise InvalidHeader(bvalue) + headers.add(name, value) raw_headers.append((bname, bvalue)) return (CIMultiDictProxy(headers), tuple(raw_headers)) -class HttpParser(abc.ABC): +class HttpParser(abc.ABC, Generic[_MsgT]): + lax: ClassVar[bool] = False + def __init__( self, protocol: Optional[BaseProtocol] = None, loop: Optional[asyncio.AbstractEventLoop] = None, - limit: int = 2 ** 16, + limit: int = 2**16, max_line_size: int = 8190, max_headers: int = 32768, max_field_size: int = 8190, @@ -229,20 +266,20 @@ def __init__( self.response_with_body = response_with_body self.read_until_eof = read_until_eof - self._lines = [] # type: List[bytes] + self._lines: List[bytes] = [] self._tail = b"" self._upgraded = False self._payload = None - self._payload_parser = None # type: Optional[HttpPayloadParser] + self._payload_parser: Optional[HttpPayloadParser] = None self._auto_decompress = auto_decompress self._limit = limit self._headers_parser = HeadersParser(max_line_size, max_headers, max_field_size) @abc.abstractmethod - def parse_message(self, lines: List[bytes]) -> Any: + def parse_message(self, lines: List[bytes]) -> _MsgT: pass - def feed_eof(self) -> Any: + def feed_eof(self) -> Optional[_MsgT]: if self._payload_parser is not None: self._payload_parser.feed_eof() self._payload_parser = None @@ -254,20 +291,19 @@ def feed_eof(self) -> Any: if self._lines: if self._lines[-1] != "\r\n": self._lines.append(b"") - try: + with suppress(Exception): return self.parse_message(self._lines) - except Exception: - return None + return None def feed_data( self, data: bytes, - SEP: bytes = b"\r\n", + SEP: _SEP = b"\r\n", EMPTY: bytes = b"", CONTENT_LENGTH: istr = hdrs.CONTENT_LENGTH, METH_CONNECT: str = hdrs.METH_CONNECT, SEC_WEBSOCKET_KEY1: istr = hdrs.SEC_WEBSOCKET_KEY1, - ) -> Tuple[List[Any], bool, bytes]: + ) -> Tuple[List[Tuple[_MsgT, StreamReader]], bool, bytes]: messages = [] @@ -286,31 +322,38 @@ def feed_data( pos = data.find(SEP, start_pos) # consume \r\n if pos == start_pos and not self._lines: - start_pos = pos + 2 + start_pos = pos + len(SEP) continue if pos >= start_pos: # line found - self._lines.append(data[start_pos:pos]) - start_pos = pos + 2 + line = data[start_pos:pos] + if SEP == b"\n": # For lax response parsing + line = line.rstrip(b"\r") + self._lines.append(line) + start_pos = pos + len(SEP) # \r\n\r\n found if self._lines[-1] == EMPTY: try: - msg = self.parse_message(self._lines) + msg: _MsgT = self.parse_message(self._lines) finally: self._lines.clear() - # payload length - length = msg.headers.get(CONTENT_LENGTH) - if length is not None: - try: - length = int(length) - except ValueError: - raise InvalidHeader(CONTENT_LENGTH) - if length < 0: + def get_content_length() -> Optional[int]: + # payload length + length_hdr = msg.headers.get(CONTENT_LENGTH) + if length_hdr is None: + return None + + # Shouldn't allow +/- or other number formats. + # https://www.rfc-editor.org/rfc/rfc9110#section-8.6-2 + if not length_hdr.strip(" \t").isdecimal(): raise InvalidHeader(CONTENT_LENGTH) + return int(length_hdr) + + length = get_content_length() # do not support old websocket spec if SEC_WEBSOCKET_KEY1 in msg.headers: raise InvalidHeader(SEC_WEBSOCKET_KEY1) @@ -342,10 +385,12 @@ def feed_data( readall=self.readall, response_with_body=self.response_with_body, auto_decompress=self._auto_decompress, + lax=self.lax, ) if not payload_parser.done: self._payload_parser = payload_parser elif method == METH_CONNECT: + assert isinstance(msg, RawRequestMessage) payload = StreamReader( self.protocol, timer=self.timer, @@ -359,6 +404,7 @@ def feed_data( compression=msg.compression, readall=True, auto_decompress=self._auto_decompress, + lax=self.lax, ) else: if ( @@ -382,11 +428,12 @@ def feed_data( readall=True, response_with_body=self.response_with_body, auto_decompress=self._auto_decompress, + lax=self.lax, ) if not payload_parser.done: self._payload_parser = payload_parser else: - payload = EMPTY_PAYLOAD # type: ignore + payload = EMPTY_PAYLOAD messages.append((msg, payload)) else: @@ -404,7 +451,7 @@ def feed_data( assert not self._lines assert self._payload_parser is not None try: - eof, data = self._payload_parser.feed_data(data[start_pos:]) + eof, data = self._payload_parser.feed_data(data[start_pos:], SEP) except BaseException as exc: if self.payload_exception is not None: self._payload_parser.payload.set_exception( @@ -447,6 +494,24 @@ def parse_headers( upgrade = False chunked = False + # https://www.rfc-editor.org/rfc/rfc9110.html#section-5.5-6 + # https://www.rfc-editor.org/rfc/rfc9110.html#name-collected-abnf + singletons = ( + hdrs.CONTENT_LENGTH, + hdrs.CONTENT_LOCATION, + hdrs.CONTENT_RANGE, + hdrs.CONTENT_TYPE, + hdrs.ETAG, + hdrs.HOST, + hdrs.MAX_FORWARDS, + hdrs.SERVER, + hdrs.TRANSFER_ENCODING, + hdrs.USER_AGENT, + ) + bad_hdr = next((h for h in singletons if len(headers.getall(h, ())) > 1), None) + if bad_hdr is not None: + raise BadHttpMessage(f"Duplicate '{bad_hdr}' header found.") + # keep-alive conn = headers.get(hdrs.CONNECTION) if conn: @@ -467,29 +532,40 @@ def parse_headers( # chunking te = headers.get(hdrs.TRANSFER_ENCODING) - if te and "chunked" in te.lower(): - chunked = True + if te is not None: + if "chunked" == te.lower(): + chunked = True + else: + raise BadHttpMessage("Request has invalid `Transfer-Encoding`") + + if hdrs.CONTENT_LENGTH in headers: + raise BadHttpMessage( + "Transfer-Encoding can't be present with Content-Length", + ) return (headers, raw_headers, close_conn, encoding, upgrade, chunked) def set_upgraded(self, val: bool) -> None: """Set connection upgraded (to websocket) mode. + :param bool val: new state. """ self._upgraded = val -class HttpRequestParser(HttpParser): - """Read request status line. Exception .http_exceptions.BadStatusLine +class HttpRequestParser(HttpParser[RawRequestMessage]): + """Read request status line. + + Exception .http_exceptions.BadStatusLine could be raised in case of any errors in status line. Returns RawRequestMessage. """ - def parse_message(self, lines: List[bytes]) -> Any: + def parse_message(self, lines: List[bytes]) -> RawRequestMessage: # request line line = lines[0].decode("utf-8", "surrogateescape") try: - method, path, version = line.split(None, 2) + method, path, version = line.split(maxsplit=2) except ValueError: raise BadStatusLine(line) from None @@ -498,22 +574,40 @@ def parse_message(self, lines: List[bytes]) -> Any: "Status line is too long", str(self.max_line_size), str(len(path)) ) - path_part, _hash_separator, url_fragment = path.partition("#") - path_part, _question_mark_separator, qs_part = path_part.partition("?") - # method if not METHRE.match(method): raise BadStatusLine(method) # version - try: - if version.startswith("HTTP/"): - n1, n2 = version[5:].split(".", 1) - version_o = HttpVersion(int(n1), int(n2)) - else: - raise BadStatusLine(version) - except Exception: - raise BadStatusLine(version) + match = VERSRE.match(version) + if match is None: + raise BadStatusLine(line) + version_o = HttpVersion(int(match.group(1)), int(match.group(2))) + + if method == "CONNECT": + # authority-form, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.3 + url = URL.build(authority=path, encoded=True) + elif path.startswith("/"): + # origin-form, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.1 + path_part, _hash_separator, url_fragment = path.partition("#") + path_part, _question_mark_separator, qs_part = path_part.partition("?") + + # NOTE: `yarl.URL.build()` is used to mimic what the Cython-based + # NOTE: parser does, otherwise it results into the same + # NOTE: HTTP Request-Line input producing different + # NOTE: `yarl.URL()` objects + url = URL.build( + path=path_part, + query_string=qs_part, + fragment=url_fragment, + encoded=True, + ) + else: + # absolute-form for proxy maybe, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.2 + url = URL(path, encoded=True) # read headers ( @@ -541,34 +635,40 @@ def parse_message(self, lines: List[bytes]) -> Any: compression, upgrade, chunked, - # NOTE: `yarl.URL.build()` is used to mimic what the Cython-based - # NOTE: parser does, otherwise it results into the same - # NOTE: HTTP Request-Line input producing different - # NOTE: `yarl.URL()` objects - URL.build( - path=path_part, - query_string=qs_part, - fragment=url_fragment, - encoded=True, - ), + url, ) -class HttpResponseParser(HttpParser): +class HttpResponseParser(HttpParser[RawResponseMessage]): """Read response status line and headers. BadStatusLine could be raised in case of any errors in status line. - Returns RawResponseMessage""" + Returns RawResponseMessage. + """ - def parse_message(self, lines: List[bytes]) -> Any: + # Lax mode should only be enabled on response parser. + lax = not DEBUG + + def feed_data( + self, + data: bytes, + SEP: Optional[_SEP] = None, + *args: Any, + **kwargs: Any, + ) -> Tuple[List[Tuple[RawResponseMessage, StreamReader]], bool, bytes]: + if SEP is None: + SEP = b"\r\n" if DEBUG else b"\n" + return super().feed_data(data, SEP, *args, **kwargs) + + def parse_message(self, lines: List[bytes]) -> RawResponseMessage: line = lines[0].decode("utf-8", "surrogateescape") try: - version, status = line.split(None, 1) + version, status = line.split(maxsplit=1) except ValueError: raise BadStatusLine(line) from None try: - status, reason = status.split(None, 1) + status, reason = status.split(maxsplit=1) except ValueError: reason = "" @@ -584,13 +684,9 @@ def parse_message(self, lines: List[bytes]) -> Any: version_o = HttpVersion(int(match.group(1)), int(match.group(2))) # The status code is a three-digit number - try: - status_i = int(status) - except ValueError: - raise BadStatusLine(line) from None - - if status_i > 999: + if len(status) != 3 or not status.isdecimal(): raise BadStatusLine(line) + status_i = int(status) # read headers ( @@ -630,6 +726,7 @@ def __init__( readall: bool = False, response_with_body: bool = True, auto_decompress: bool = True, + lax: bool = False, ) -> None: self._length = 0 self._type = ParseState.PARSE_NONE @@ -637,13 +734,14 @@ def __init__( self._chunk_size = 0 self._chunk_tail = b"" self._auto_decompress = auto_decompress + self._lax = lax self.done = False # payload decompression wrapper if response_with_body and compression and self._auto_decompress: - real_payload = DeflateBuffer( + real_payload: Union[StreamReader, DeflateBuffer] = DeflateBuffer( payload, compression - ) # type: Union[StreamReader, DeflateBuffer] + ) else: real_payload = payload @@ -688,7 +786,7 @@ def feed_eof(self) -> None: ) def feed_data( - self, chunk: bytes, SEP: bytes = b"\r\n", CHUNK_EXT: bytes = b";" + self, chunk: bytes, SEP: _SEP = b"\r\n", CHUNK_EXT: bytes = b";" ) -> Tuple[bool, bytes]: # Read specified amount of bytes if self._type == ParseState.PARSE_LENGTH: @@ -725,18 +823,22 @@ def feed_data( else: size_b = chunk[:pos] - try: - size = int(bytes(size_b), 16) - except ValueError: + if self._lax: # Allow whitespace in lax mode. + size_b = size_b.strip() + + if not re.fullmatch(HEXDIGIT, size_b): exc = TransferEncodingError( chunk[:pos].decode("ascii", "surrogateescape") ) self.payload.set_exception(exc) - raise exc from None + raise exc + size = int(bytes(size_b), 16) - chunk = chunk[pos + 2 :] + chunk = chunk[pos + len(SEP) :] if size == 0: # eof marker self._chunk = ChunkState.PARSE_MAYBE_TRAILERS + if self._lax and chunk.startswith(b"\r"): + chunk = chunk[1:] else: self._chunk = ChunkState.PARSE_CHUNKED_CHUNK self._chunk_size = size @@ -758,13 +860,15 @@ def feed_data( self._chunk_size = 0 self.payload.feed_data(chunk[:required], required) chunk = chunk[required:] + if self._lax and chunk.startswith(b"\r"): + chunk = chunk[1:] self._chunk = ChunkState.PARSE_CHUNKED_CHUNK_EOF self.payload.end_http_chunk_receiving() # toss the CRLF at the end of the chunk if self._chunk == ChunkState.PARSE_CHUNKED_CHUNK_EOF: - if chunk[:2] == SEP: - chunk = chunk[2:] + if chunk[: len(SEP)] == SEP: + chunk = chunk[len(SEP) :] self._chunk = ChunkState.PARSE_CHUNKED_SIZE else: self._chunk_tail = chunk @@ -774,11 +878,11 @@ def feed_data( # we should get another \r\n otherwise # trailers needs to be skiped until \r\n\r\n if self._chunk == ChunkState.PARSE_MAYBE_TRAILERS: - head = chunk[:2] + head = chunk[: len(SEP)] if head == SEP: # end of stream self.payload.feed_eof() - return True, chunk[2:] + return True, chunk[len(SEP) :] # Both CR and LF, or only LF may not be received yet. It is # expected that CRLF or LF will be shown at the very first # byte next time, otherwise trailers should come. The last @@ -796,7 +900,7 @@ def feed_data( if self._chunk == ChunkState.PARSE_TRAILERS: pos = chunk.find(SEP) if pos >= 0: - chunk = chunk[pos + 2 :] + chunk = chunk[pos + len(SEP) :] self._chunk = ChunkState.PARSE_MAYBE_TRAILERS else: self._chunk_tail = chunk @@ -812,6 +916,8 @@ def feed_data( class DeflateBuffer: """DeflateStream decompress stream and feed data into specified stream.""" + decompressor: Any + def __init__(self, out: StreamReader, encoding: Optional[str]) -> None: self.out = out self.size = 0 @@ -822,9 +928,27 @@ def __init__(self, out: StreamReader, encoding: Optional[str]) -> None: if not HAS_BROTLI: # pragma: no cover raise ContentEncodingError( "Can not decode content-encoding: brotli (br). " - "Please install `brotlipy`" + "Please install `Brotli`" ) - self.decompressor = brotli.Decompressor() + + class BrotliDecoder: + # Supports both 'brotlipy' and 'Brotli' packages + # since they share an import name. The top branches + # are for 'brotlipy' and bottom branches for 'Brotli' + def __init__(self) -> None: + self._obj = brotli.Decompressor() + + def decompress(self, data: bytes) -> bytes: + if hasattr(self._obj, "decompress"): + return cast(bytes, self._obj.decompress(data)) + return cast(bytes, self._obj.process(data)) + + def flush(self) -> bytes: + if hasattr(self._obj, "flush"): + return cast(bytes, self._obj.flush()) + return b"" + + self.decompressor = BrotliDecoder() else: zlib_mode = 16 + zlib.MAX_WBITS if encoding == "gzip" else zlib.MAX_WBITS self.decompressor = zlib.decompressobj(wbits=zlib_mode) @@ -886,7 +1010,7 @@ def end_http_chunk_receiving(self) -> None: try: if not NO_EXTENSIONS: - from ._http_parser import ( # type: ignore + from ._http_parser import ( # type: ignore[import,no-redef] HttpRequestParser, HttpResponseParser, RawRequestMessage, diff --git a/aiohttp/http_websocket.py b/aiohttp/http_websocket.py index 5cdaeea..2cfc519 100644 --- a/aiohttp/http_websocket.py +++ b/aiohttp/http_websocket.py @@ -9,11 +9,12 @@ import zlib from enum import IntEnum from struct import Struct -from typing import Any, Callable, List, Optional, Tuple, Union +from typing import Any, Callable, List, Optional, Pattern, Set, Tuple, Union, cast from .base_protocol import BaseProtocol from .helpers import NO_EXTENSIONS from .streams import DataQueue +from .typedefs import Final __all__ = ( "WS_CLOSED_MESSAGE", @@ -33,6 +34,7 @@ class WSCloseCode(IntEnum): GOING_AWAY = 1001 PROTOCOL_ERROR = 1002 UNSUPPORTED_DATA = 1003 + ABNORMAL_CLOSURE = 1006 INVALID_TEXT = 1007 POLICY_VIOLATION = 1008 MESSAGE_TOO_BIG = 1009 @@ -40,9 +42,10 @@ class WSCloseCode(IntEnum): INTERNAL_ERROR = 1011 SERVICE_RESTART = 1012 TRY_AGAIN_LATER = 1013 + BAD_GATEWAY = 1014 -ALLOWED_CLOSE_CODES = {int(i) for i in WSCloseCode} +ALLOWED_CLOSE_CODES: Final[Set[int]] = {int(i) for i in WSCloseCode} class WSMsgType(IntEnum): @@ -69,7 +72,7 @@ class WSMsgType(IntEnum): error = ERROR -WS_KEY = b"258EAFA5-E914-47DA-95CA-C5AB0DC85B11" +WS_KEY: Final[bytes] = b"258EAFA5-E914-47DA-95CA-C5AB0DC85B11" UNPACK_LEN2 = Struct("!H").unpack_from @@ -79,8 +82,8 @@ class WSMsgType(IntEnum): PACK_LEN2 = Struct("!BBH").pack PACK_LEN3 = Struct("!BBQ").pack PACK_CLOSE_CODE = Struct("!H").pack -MSG_SIZE = 2 ** 14 -DEFAULT_LIMIT = 2 ** 16 +MSG_SIZE: Final[int] = 2**14 +DEFAULT_LIMIT: Final[int] = 2**16 _WSMessageBase = collections.namedtuple("_WSMessageBase", ["type", "data", "extra"]) @@ -107,18 +110,18 @@ def __init__(self, code: int, message: str) -> None: super().__init__(code, message) def __str__(self) -> str: - return self.args[1] + return cast(str, self.args[1]) class WSHandshakeError(Exception): """WebSocket protocol handshake error.""" -native_byteorder = sys.byteorder +native_byteorder: Final[str] = sys.byteorder # Used by _websocket_mask_python -_XOR_TABLE = [bytes(a ^ b for a in range(256)) for b in range(256)] +_XOR_TABLE: Final[List[bytes]] = [bytes(a ^ b for a in range(256)) for b in range(256)] def _websocket_mask_python(mask: bytes, data: bytearray) -> None: @@ -149,16 +152,16 @@ def _websocket_mask_python(mask: bytes, data: bytearray) -> None: _websocket_mask = _websocket_mask_python else: try: - from ._websocket import _websocket_mask_cython # type: ignore + from ._websocket import _websocket_mask_cython # type: ignore[import] _websocket_mask = _websocket_mask_cython except ImportError: # pragma: no cover _websocket_mask = _websocket_mask_python -_WS_DEFLATE_TRAILING = bytes([0x00, 0x00, 0xFF, 0xFF]) +_WS_DEFLATE_TRAILING: Final[bytes] = bytes([0x00, 0x00, 0xFF, 0xFF]) -_WS_EXT_RE = re.compile( +_WS_EXT_RE: Final[Pattern[str]] = re.compile( r"^(?:;\s*(?:" r"(server_no_context_takeover)|" r"(client_no_context_takeover)|" @@ -166,7 +169,7 @@ def _websocket_mask_python(mask: bytes, data: bytearray) -> None: r"(client_max_window_bits(?:=(\d+))?)))*$" ) -_WS_EXT_RE_SPLIT = re.compile(r"permessage-deflate([^,]+)?") +_WS_EXT_RE_SPLIT: Final[Pattern[str]] = re.compile(r"permessage-deflate([^,]+)?") def ws_ext_parse(extstr: Optional[str], isserver: bool = False) -> Tuple[int, bool]: @@ -256,22 +259,22 @@ def __init__( self.queue = queue self._max_msg_size = max_msg_size - self._exc = None # type: Optional[BaseException] + self._exc: Optional[BaseException] = None self._partial = bytearray() self._state = WSParserState.READ_HEADER - self._opcode = None # type: Optional[int] + self._opcode: Optional[int] = None self._frame_fin = False - self._frame_opcode = None # type: Optional[int] + self._frame_opcode: Optional[int] = None self._frame_payload = bytearray() self._tail = b"" self._has_mask = False - self._frame_mask = None # type: Optional[bytes] + self._frame_mask: Optional[bytes] = None self._payload_length = 0 self._payload_length_flag = 0 - self._compressed = None # type: Optional[bool] - self._decompressobj = None # type: Any # zlib.decompressobj actually + self._compressed: Optional[bool] = None + self._decompressobj: Any = None # zlib.decompressobj actually self._compress = compress def feed_eof(self) -> None: @@ -588,7 +591,7 @@ def __init__( self._closing = False self._limit = limit self._output_size = 0 - self._compressobj = None # type: Any # actually compressobj + self._compressobj: Any = None # actually compressobj async def _send_frame( self, message: bytes, opcode: int, compress: Optional[int] = None diff --git a/aiohttp/http_writer.py b/aiohttp/http_writer.py index d261fc4..73f0f96 100644 --- a/aiohttp/http_writer.py +++ b/aiohttp/http_writer.py @@ -1,9 +1,8 @@ """Http related parsers and protocol.""" import asyncio -import collections import zlib -from typing import Any, Awaitable, Callable, Optional, Union # noqa +from typing import Any, Awaitable, Callable, NamedTuple, Optional, Union # noqa from multidict import CIMultiDict @@ -13,12 +12,18 @@ __all__ = ("StreamWriter", "HttpVersion", "HttpVersion10", "HttpVersion11") -HttpVersion = collections.namedtuple("HttpVersion", ["major", "minor"]) + +class HttpVersion(NamedTuple): + major: int + minor: int + + HttpVersion10 = HttpVersion(1, 0) HttpVersion11 = HttpVersion(1, 1) _T_OnChunkSent = Optional[Callable[[bytes], Awaitable[None]]] +_T_OnHeadersSent = Optional[Callable[["CIMultiDict[str]"], Awaitable[None]]] class StreamWriter(AbstractStreamWriter): @@ -27,9 +32,9 @@ def __init__( protocol: BaseProtocol, loop: asyncio.AbstractEventLoop, on_chunk_sent: _T_OnChunkSent = None, + on_headers_sent: _T_OnHeadersSent = None, ) -> None: self._protocol = protocol - self._transport = protocol.transport self.loop = loop self.length = None @@ -38,14 +43,15 @@ def __init__( self.output_size = 0 self._eof = False - self._compress = None # type: Any + self._compress: Any = None self._drain_waiter = None - self._on_chunk_sent = on_chunk_sent # type: _T_OnChunkSent + self._on_chunk_sent: _T_OnChunkSent = on_chunk_sent + self._on_headers_sent: _T_OnHeadersSent = on_headers_sent @property def transport(self) -> Optional[asyncio.Transport]: - return self._transport + return self._protocol.transport @property def protocol(self) -> BaseProtocol: @@ -54,18 +60,20 @@ def protocol(self) -> BaseProtocol: def enable_chunking(self) -> None: self.chunked = True - def enable_compression(self, encoding: str = "deflate") -> None: + def enable_compression( + self, encoding: str = "deflate", strategy: int = zlib.Z_DEFAULT_STRATEGY + ) -> None: zlib_mode = 16 + zlib.MAX_WBITS if encoding == "gzip" else zlib.MAX_WBITS - self._compress = zlib.compressobj(wbits=zlib_mode) + self._compress = zlib.compressobj(wbits=zlib_mode, strategy=strategy) def _write(self, chunk: bytes) -> None: size = len(chunk) self.buffer_size += size self.output_size += size - - if self._transport is None or self._transport.is_closing(): + transport = self.transport + if not self._protocol.connected or transport is None or transport.is_closing(): raise ConnectionResetError("Cannot write to closing transport") - self._transport.write(chunk) + transport.write(chunk) async def write( self, chunk: bytes, *, drain: bool = True, LIMIT: int = 0x10000 @@ -114,6 +122,9 @@ async def write_headers( self, status_line: str, headers: "CIMultiDict[str]" ) -> None: """Write request/response status and headers.""" + if self._on_headers_sent is not None: + await self._on_headers_sent(headers) + # status + headers buf = _serialize_headers(status_line, headers) self._write(buf) @@ -147,7 +158,6 @@ async def write_eof(self, chunk: bytes = b"") -> None: await self.drain() self._eof = True - self._transport = None async def drain(self) -> None: """Flush the write buffer. @@ -161,19 +171,25 @@ async def drain(self) -> None: await self._protocol._drain_helper() +def _safe_header(string: str) -> str: + if "\r" in string or "\n" in string: + raise ValueError( + "Newline or carriage return detected in headers. " + "Potential header injection attack." + ) + return string + + def _py_serialize_headers(status_line: str, headers: "CIMultiDict[str]") -> bytes: - line = ( - status_line - + "\r\n" - + "".join([k + ": " + v + "\r\n" for k, v in headers.items()]) - ) - return line.encode("utf-8") + b"\r\n" + headers_gen = (_safe_header(k) + ": " + _safe_header(v) for k, v in headers.items()) + line = status_line + "\r\n" + "\r\n".join(headers_gen) + "\r\n\r\n" + return line.encode("utf-8") _serialize_headers = _py_serialize_headers try: - import aiohttp._http_writer as _http_writer # type: ignore + import aiohttp._http_writer as _http_writer # type: ignore[import] _c_serialize_headers = _http_writer._serialize_headers if not NO_EXTENSIONS: diff --git a/aiohttp/locks.py b/aiohttp/locks.py index ce5b9c6..de2dc83 100644 --- a/aiohttp/locks.py +++ b/aiohttp/locks.py @@ -1,16 +1,12 @@ import asyncio import collections -from typing import Any, Optional - -try: - from typing import Deque -except ImportError: - from typing_extensions import Deque +from typing import Any, Deque, Optional class EventResultOrError: - """ - This class wrappers the Event asyncio lock allowing either awake the + """Event asyncio lock helper class. + + Wraps the Event asyncio lock allowing either to awake the locked Tasks without any error or raising an exception. thanks to @vorpalsmith for the simple design. @@ -18,9 +14,9 @@ class EventResultOrError: def __init__(self, loop: asyncio.AbstractEventLoop) -> None: self._loop = loop - self._exc = None # type: Optional[BaseException] + self._exc: Optional[BaseException] = None self._event = asyncio.Event() - self._waiters = collections.deque() # type: Deque[asyncio.Future[Any]] + self._waiters: Deque[asyncio.Future[Any]] = collections.deque() def set(self, exc: Optional[BaseException] = None) -> None: self._exc = exc @@ -40,6 +36,6 @@ async def wait(self) -> Any: return val def cancel(self) -> None: - """ Cancel all waiters """ + """Cancel all waiters""" for waiter in self._waiters: waiter.cancel() diff --git a/aiohttp/multipart.py b/aiohttp/multipart.py index 9e1ca92..73801f4 100644 --- a/aiohttp/multipart.py +++ b/aiohttp/multipart.py @@ -11,6 +11,7 @@ TYPE_CHECKING, Any, AsyncIterator, + Deque, Dict, Iterator, List, @@ -20,6 +21,7 @@ Tuple, Type, Union, + cast, ) from urllib.parse import parse_qsl, unquote, urlencode @@ -101,7 +103,7 @@ def unescape(text: str, *, chars: str = "".join(map(re.escape, CHAR))) -> str: warnings.warn(BadContentDispositionHeader(header)) return None, {} - params = {} # type: Dict[str, str] + params: Dict[str, str] = {} while parts: item = parts.pop(0) @@ -152,7 +154,7 @@ def unescape(text: str, *, chars: str = "".join(map(re.escape, CHAR))) -> str: elif parts: # maybe just ; in filename, in any case this is just # one case fix, for proper fix we need to redesign parser - _value = "{};{}".format(value, parts[0]) + _value = f"{value};{parts[0]}" if is_quoted(_value): parts.pop(0) value = unescape(_value[1:-1].lstrip("\\/")) @@ -240,8 +242,10 @@ async def next( return item async def release(self) -> None: - """Releases the connection gracefully, reading all the content - to the void.""" + """Release the connection gracefully. + + All remaining content is read to the void. + """ await self.resp.release() @@ -261,13 +265,13 @@ def __init__( self._length = int(length) if length is not None else None self._read_bytes = 0 # TODO: typeing.Deque is not supported by Python 3.5 - self._unread = deque() # type: Any - self._prev_chunk = None # type: Optional[bytes] + self._unread: Deque[bytes] = deque() + self._prev_chunk: Optional[bytes] = None self._content_eof = 0 - self._cache = {} # type: Dict[str, Any] + self._cache: Dict[str, Any] = {} def __aiter__(self) -> AsyncIterator["BodyPartReader"]: - return self # type: ignore + return self # type: ignore[return-value] async def __anext__(self) -> bytes: part = await self.next() @@ -411,12 +415,10 @@ async def json(self, *, encoding: Optional[str] = None) -> Optional[Dict[str, An if not data: return None encoding = encoding or self.get_charset(default="utf-8") - return json.loads(data.decode(encoding)) + return cast(Dict[str, Any], json.loads(data.decode(encoding))) async def form(self, *, encoding: Optional[str] = None) -> List[Tuple[str, str]]: - """Like read(), but assumes that body parts contains form - urlencoded data. - """ + """Like read(), but assumes that body parts contain form urlencoded data.""" data = await self.read(decode=True) if not data: return [] @@ -435,7 +437,9 @@ def at_eof(self) -> bool: return self._at_eof def decode(self, data: bytes) -> bytes: - """Decodes data according the specified Content-Encoding + """Decodes data. + + Decoding is done according the specified Content-Encoding or Content-Transfer-Encoding headers value. """ if CONTENT_TRANSFER_ENCODING in self.headers: @@ -478,17 +482,18 @@ def get_charset(self, default: str) -> str: @reify def name(self) -> Optional[str]: - """Returns name specified in Content-Disposition header or None - if missed or header is malformed. - """ + """Returns name specified in Content-Disposition header. + If the header is missing or malformed, returns None. + """ _, params = parse_content_disposition(self.headers.get(CONTENT_DISPOSITION)) return content_disposition_filename(params, "name") @reify def filename(self) -> Optional[str]: - """Returns filename specified in Content-Disposition header or None - if missed or header is malformed. + """Returns filename specified in Content-Disposition header. + + Returns None if the header is missing or malformed. """ _, params = parse_content_disposition(self.headers.get(CONTENT_DISPOSITION)) return content_disposition_filename(params, "filename") @@ -499,7 +504,7 @@ class BodyPartReaderPayload(Payload): def __init__(self, value: BodyPartReader, *args: Any, **kwargs: Any) -> None: super().__init__(value, *args, **kwargs) - params = {} # type: Dict[str, str] + params: Dict[str, str] = {} if value.name is not None: params["name"] = value.name if value.filename is not None: @@ -510,10 +515,10 @@ def __init__(self, value: BodyPartReader, *args: Any, **kwargs: Any) -> None: async def write(self, writer: Any) -> None: field = self._value - chunk = await field.read_chunk(size=2 ** 16) + chunk = await field.read_chunk(size=2**16) while chunk: await writer.write(field.decode(chunk)) - chunk = await field.read_chunk(size=2 ** 16) + chunk = await field.read_chunk(size=2**16) class MultipartReader: @@ -531,17 +536,15 @@ def __init__(self, headers: Mapping[str, str], content: StreamReader) -> None: self.headers = headers self._boundary = ("--" + self._get_boundary()).encode() self._content = content - self._last_part = ( - None - ) # type: Optional[Union['MultipartReader', BodyPartReader]] + self._last_part: Optional[Union["MultipartReader", BodyPartReader]] = None self._at_eof = False self._at_bof = True - self._unread = [] # type: List[bytes] + self._unread: List[bytes] = [] def __aiter__( self, ) -> AsyncIterator["BodyPartReader"]: - return self # type: ignore + return self # type: ignore[return-value] async def __anext__( self, @@ -566,9 +569,7 @@ def from_response( return obj def at_eof(self) -> bool: - """Returns True if the final boundary was reached or - False otherwise. - """ + """Returns True if the final boundary was reached, false otherwise.""" return self._at_eof async def next( @@ -608,8 +609,9 @@ def _get_part_reader( self, headers: "CIMultiDictProxy[str]", ) -> Union["MultipartReader", BodyPartReader]: - """Dispatches the response by the `Content-Type` header, returning - suitable reader instance. + """Dispatches the response by the `Content-Type` header. + + Returns a suitable reader instance. :param dict headers: Response headers """ @@ -723,7 +725,7 @@ def __init__(self, subtype: str = "mixed", boundary: Optional[str] = None) -> No super().__init__(None, content_type=ctype) - self._parts = [] # type: List[_Part] + self._parts: List[_Part] = [] def __enter__(self) -> "MultipartWriter": return self @@ -745,8 +747,8 @@ def __len__(self) -> int: def __bool__(self) -> bool: return True - _valid_tchar_regex = re.compile(br"\A[!#$%&'*+\-.^_`|~\w]+\Z") - _invalid_qdtext_char_regex = re.compile(br"[\x00-\x08\x0A-\x1F\x7F]") + _valid_tchar_regex = re.compile(rb"\A[!#$%&'*+\-.^_`|~\w]+\Z") + _invalid_qdtext_char_regex = re.compile(rb"[\x00-\x08\x0A-\x1F\x7F]") @property def _boundary_value(self) -> str: @@ -802,20 +804,20 @@ def append(self, obj: Any, headers: Optional[MultiMapping[str]] = None) -> Paylo def append_payload(self, payload: Payload) -> Payload: """Adds a new body part to multipart writer.""" # compression - encoding = payload.headers.get( + encoding: Optional[str] = payload.headers.get( CONTENT_ENCODING, "", - ).lower() # type: Optional[str] + ).lower() if encoding and encoding not in ("deflate", "gzip", "identity"): raise RuntimeError(f"unknown content encoding: {encoding}") if encoding == "identity": encoding = None # te encoding - te_encoding = payload.headers.get( + te_encoding: Optional[str] = payload.headers.get( CONTENT_TRANSFER_ENCODING, "", - ).lower() # type: Optional[str] + ).lower() if te_encoding not in ("", "base64", "quoted-printable", "binary"): raise RuntimeError( "unknown content transfer encoding: {}" "".format(te_encoding) @@ -828,7 +830,7 @@ def append_payload(self, payload: Payload) -> Payload: if size is not None and not (encoding or te_encoding): payload.headers[CONTENT_LENGTH] = str(size) - self._parts.append((payload, encoding, te_encoding)) # type: ignore + self._parts.append((payload, encoding, te_encoding)) # type: ignore[arg-type] return payload def append_json( @@ -893,7 +895,7 @@ async def write(self, writer: Any, close_boundary: bool = True) -> None: w.enable_compression(encoding) if te_encoding: w.enable_encoding(te_encoding) - await part.write(w) # type: ignore + await part.write(w) # type: ignore[arg-type] await w.write_eof() else: await part.write(writer) @@ -907,9 +909,9 @@ async def write(self, writer: Any, close_boundary: bool = True) -> None: class MultipartPayloadWriter: def __init__(self, writer: Any) -> None: self._writer = writer - self._encoding = None # type: Optional[str] - self._compress = None # type: Any - self._encoding_buffer = None # type: Optional[bytearray] + self._encoding: Optional[str] = None + self._compress: Any = None + self._encoding_buffer: Optional[bytearray] = None def enable_encoding(self, encoding: str) -> None: if encoding == "base64": @@ -918,9 +920,11 @@ def enable_encoding(self, encoding: str) -> None: elif encoding == "quoted-printable": self._encoding = "quoted-printable" - def enable_compression(self, encoding: str = "deflate") -> None: + def enable_compression( + self, encoding: str = "deflate", strategy: int = zlib.Z_DEFAULT_STRATEGY + ) -> None: zlib_mode = 16 + zlib.MAX_WBITS if encoding == "gzip" else -zlib.MAX_WBITS - self._compress = zlib.compressobj(wbits=zlib_mode) + self._compress = zlib.compressobj(wbits=zlib_mode, strategy=strategy) async def write_eof(self) -> None: if self._compress is not None: diff --git a/aiohttp/payload.py b/aiohttp/payload.py index c63dd22..a2340e2 100644 --- a/aiohttp/payload.py +++ b/aiohttp/payload.py @@ -15,7 +15,6 @@ Dict, Iterable, Optional, - Text, TextIO, Tuple, Type, @@ -34,7 +33,7 @@ sentinel, ) from .streams import StreamReader -from .typedefs import JSONEncoder, _CIMultiDict +from .typedefs import Final, JSONEncoder, _CIMultiDict __all__ = ( "PAYLOAD_REGISTRY", @@ -52,8 +51,7 @@ "AsyncIterablePayload", ) -TOO_LARGE_BYTES_BODY = 2 ** 20 # 1 MB - +TOO_LARGE_BYTES_BODY: Final[int] = 2**20 # 1 MB if TYPE_CHECKING: # pragma: no cover from typing import List @@ -89,6 +87,10 @@ def __call__(self, factory: Type["Payload"]) -> Type["Payload"]: return factory +PayloadType = Type["Payload"] +_PayloadRegistryItem = Tuple[PayloadType, Any] + + class PayloadRegistry: """Payload registry. @@ -96,12 +98,16 @@ class PayloadRegistry: """ def __init__(self) -> None: - self._first = [] # type: List[Tuple[Type[Payload], Any]] - self._normal = [] # type: List[Tuple[Type[Payload], Any]] - self._last = [] # type: List[Tuple[Type[Payload], Any]] + self._first: List[_PayloadRegistryItem] = [] + self._normal: List[_PayloadRegistryItem] = [] + self._last: List[_PayloadRegistryItem] = [] def get( - self, data: Any, *args: Any, _CHAIN: Any = chain, **kwargs: Any + self, + data: Any, + *args: Any, + _CHAIN: "Type[chain[_PayloadRegistryItem]]" = chain, + **kwargs: Any, ) -> "Payload": if isinstance(data, Payload): return data @@ -112,7 +118,7 @@ def get( raise LookupError() def register( - self, factory: Type["Payload"], type: Any, *, order: Order = Order.normal + self, factory: PayloadType, type: Any, *, order: Order = Order.normal ) -> None: if order is Order.try_first: self._first.append((factory, type)) @@ -126,8 +132,8 @@ def register( class Payload(ABC): - _default_content_type = "application/octet-stream" # type: str - _size = None # type: Optional[int] + _default_content_type: str = "application/octet-stream" + _size: Optional[int] = None def __init__( self, @@ -142,7 +148,7 @@ def __init__( ) -> None: self._encoding = encoding self._filename = filename - self._headers = CIMultiDict() # type: _CIMultiDict + self._headers: _CIMultiDict = CIMultiDict() self._value = value if content_type is not sentinel and content_type is not None: self._headers[hdrs.CONTENT_TYPE] = content_type @@ -190,11 +196,15 @@ def content_type(self) -> str: return self._headers[hdrs.CONTENT_TYPE] def set_content_disposition( - self, disptype: str, quote_fields: bool = True, **params: Any + self, + disptype: str, + quote_fields: bool = True, + _charset: str = "utf-8", + **params: Any, ) -> None: """Sets ``Content-Disposition`` header.""" self._headers[hdrs.CONTENT_DISPOSITION] = content_disposition_header( - disptype, quote_fields=quote_fields, **params + disptype, quote_fields=quote_fields, _charset=_charset, **params ) @abstractmethod @@ -208,9 +218,7 @@ async def write(self, writer: AbstractStreamWriter) -> None: class BytesPayload(Payload): def __init__(self, value: ByteString, *args: Any, **kwargs: Any) -> None: if not isinstance(value, (bytes, bytearray, memoryview)): - raise TypeError( - "value argument must be byte-ish, not {!r}".format(type(value)) - ) + raise TypeError(f"value argument must be byte-ish, not {type(value)!r}") if "content_type" not in kwargs: kwargs["content_type"] = "application/octet-stream" @@ -242,7 +250,7 @@ async def write(self, writer: AbstractStreamWriter) -> None: class StringPayload(BytesPayload): def __init__( self, - value: Text, + value: str, *args: Any, encoding: Optional[str] = None, content_type: Optional[str] = None, @@ -276,6 +284,8 @@ def __init__(self, value: IO[str], *args: Any, **kwargs: Any) -> None: class IOBasePayload(Payload): + _value: IO[Any] + def __init__( self, value: IO[Any], disposition: str = "attachment", *args: Any, **kwargs: Any ) -> None: @@ -291,15 +301,17 @@ def __init__( async def write(self, writer: AbstractStreamWriter) -> None: loop = asyncio.get_event_loop() try: - chunk = await loop.run_in_executor(None, self._value.read, 2 ** 16) + chunk = await loop.run_in_executor(None, self._value.read, 2**16) while chunk: await writer.write(chunk) - chunk = await loop.run_in_executor(None, self._value.read, 2 ** 16) + chunk = await loop.run_in_executor(None, self._value.read, 2**16) finally: await loop.run_in_executor(None, self._value.close) class TextIOPayload(IOBasePayload): + _value: TextIO + def __init__( self, value: TextIO, @@ -338,10 +350,15 @@ def size(self) -> Optional[int]: async def write(self, writer: AbstractStreamWriter) -> None: loop = asyncio.get_event_loop() try: - chunk = await loop.run_in_executor(None, self._value.read, 2 ** 16) + chunk = await loop.run_in_executor(None, self._value.read, 2**16) while chunk: - await writer.write(chunk.encode(self._encoding)) - chunk = await loop.run_in_executor(None, self._value.read, 2 ** 16) + data = ( + chunk.encode(encoding=self._encoding) + if self._encoding + else chunk.encode() + ) + await writer.write(data) + chunk = await loop.run_in_executor(None, self._value.read, 2**16) finally: await loop.run_in_executor(None, self._value.close) @@ -400,13 +417,13 @@ def __init__( class AsyncIterablePayload(Payload): - _iter = None # type: Optional[_AsyncIterator] + _iter: Optional[_AsyncIterator] = None def __init__(self, value: _AsyncIterable, *args: Any, **kwargs: Any) -> None: if not isinstance(value, AsyncIterable): raise TypeError( "value argument must support " - "collections.abc.AsyncIterablebe interface, " + "collections.abc.AsyncIterable interface, " "got {!r}".format(type(value)) ) diff --git a/aiohttp/payload_streamer.py b/aiohttp/payload_streamer.py index 3b2de15..9f8b8bc 100644 --- a/aiohttp/payload_streamer.py +++ b/aiohttp/payload_streamer.py @@ -1,4 +1,5 @@ -""" Payload implemenation for coroutines as data provider. +""" +Payload implemenation for coroutines as data provider. As a simple case, you can upload data from file:: @@ -43,7 +44,7 @@ def __init__( self.kwargs = kwargs async def __call__(self, writer: AbstractStreamWriter) -> None: - await self.coro(writer, *self.args, **self.kwargs) # type: ignore + await self.coro(writer, *self.args, **self.kwargs) # type: ignore[operator] class streamer: diff --git a/aiohttp/pytest_plugin.py b/aiohttp/pytest_plugin.py index 5204293..dd9a9f6 100644 --- a/aiohttp/pytest_plugin.py +++ b/aiohttp/pytest_plugin.py @@ -2,6 +2,7 @@ import contextlib import warnings from collections.abc import Callable +from typing import Any, Awaitable, Callable, Dict, Generator, Optional, Union import pytest @@ -29,8 +30,10 @@ except ImportError: # pragma: no cover tokio = None +AiohttpClient = Callable[[Union[Application, BaseTestServer]], Awaitable[TestClient]] -def pytest_addoption(parser): # type: ignore + +def pytest_addoption(parser): # type: ignore[no-untyped-def] parser.addoption( "--aiohttp-fast", action="store_true", @@ -51,8 +54,9 @@ def pytest_addoption(parser): # type: ignore ) -def pytest_fixture_setup(fixturedef): # type: ignore - """ +def pytest_fixture_setup(fixturedef): # type: ignore[no-untyped-def] + """Set up pytest fixture. + Allow fixtures to be coroutines. Run coroutine fixtures in an event loop. """ func = fixturedef.func @@ -72,7 +76,7 @@ def pytest_fixture_setup(fixturedef): # type: ignore fixturedef.argnames += ("request",) strip_request = True - def wrapper(*args, **kwargs): # type: ignore + def wrapper(*args, **kwargs): # type: ignore[no-untyped-def] request = kwargs["request"] if strip_request: del kwargs["request"] @@ -93,7 +97,7 @@ def wrapper(*args, **kwargs): # type: ignore # then advance it again in a finalizer gen = func(*args, **kwargs) - def finalizer(): # type: ignore + def finalizer(): # type: ignore[no-untyped-def] try: return _loop.run_until_complete(gen.__anext__()) except StopAsyncIteration: @@ -108,21 +112,22 @@ def finalizer(): # type: ignore @pytest.fixture -def fast(request): # type: ignore +def fast(request): # type: ignore[no-untyped-def] """--fast config option""" return request.config.getoption("--aiohttp-fast") @pytest.fixture -def loop_debug(request): # type: ignore +def loop_debug(request): # type: ignore[no-untyped-def] """--enable-loop-debug config option""" return request.config.getoption("--aiohttp-enable-loop-debug") @contextlib.contextmanager -def _runtime_warning_context(): # type: ignore - """ - Context manager which checks for RuntimeWarnings, specifically to +def _runtime_warning_context(): # type: ignore[no-untyped-def] + """Context manager which checks for RuntimeWarnings. + + This exists specifically to avoid "coroutine 'X' was never awaited" warnings being missed. If RuntimeWarnings occur in the context a RuntimeError is raised. @@ -143,9 +148,10 @@ def _runtime_warning_context(): # type: ignore @contextlib.contextmanager -def _passthrough_loop_context(loop, fast=False): # type: ignore - """ - setups and tears down a loop unless one is passed in via the loop +def _passthrough_loop_context(loop, fast=False): # type: ignore[no-untyped-def] + """Passthrough loop context. + + Sets up and tears down a loop unless one is passed in via the loop argument when it's passed straight through. """ if loop: @@ -158,18 +164,14 @@ def _passthrough_loop_context(loop, fast=False): # type: ignore teardown_test_loop(loop, fast=fast) -def pytest_pycollect_makeitem(collector, name, obj): # type: ignore - """ - Fix pytest collecting for coroutines. - """ +def pytest_pycollect_makeitem(collector, name, obj): # type: ignore[no-untyped-def] + """Fix pytest collecting for coroutines.""" if collector.funcnamefilter(name) and asyncio.iscoroutinefunction(obj): return list(collector._genfunctions(name, obj)) -def pytest_pyfunc_call(pyfuncitem): # type: ignore - """ - Run coroutines in an event loop instead of a normal function call. - """ +def pytest_pyfunc_call(pyfuncitem): # type: ignore[no-untyped-def] + """Run coroutines in an event loop instead of a normal function call.""" fast = pyfuncitem.config.getoption("--aiohttp-fast") if asyncio.iscoroutinefunction(pyfuncitem.function): existing_loop = pyfuncitem.funcargs.get( @@ -186,7 +188,7 @@ def pytest_pyfunc_call(pyfuncitem): # type: ignore return True -def pytest_generate_tests(metafunc): # type: ignore +def pytest_generate_tests(metafunc): # type: ignore[no-untyped-def] if "loop_factory" not in metafunc.fixturenames: return @@ -202,7 +204,7 @@ def pytest_generate_tests(metafunc): # type: ignore if loops == "all": loops = "pyloop,uvloop?,tokio?" - factories = {} # type: ignore + factories = {} # type: ignore[var-annotated] for name in loops.split(","): required = not name.endswith("?") name = name.strip(" ?") @@ -221,7 +223,7 @@ def pytest_generate_tests(metafunc): # type: ignore @pytest.fixture -def loop(loop_factory, fast, loop_debug): # type: ignore +def loop(loop_factory, fast, loop_debug): # type: ignore[no-untyped-def] """Return an instance of the event loop.""" policy = loop_factory() asyncio.set_event_loop_policy(policy) @@ -233,12 +235,12 @@ def loop(loop_factory, fast, loop_debug): # type: ignore @pytest.fixture -def proactor_loop(): # type: ignore +def proactor_loop(): # type: ignore[no-untyped-def] if not PY_37: policy = asyncio.get_event_loop_policy() - policy._loop_factory = asyncio.ProactorEventLoop # type: ignore + policy._loop_factory = asyncio.ProactorEventLoop # type: ignore[attr-defined] else: - policy = asyncio.WindowsProactorEventLoopPolicy() # type: ignore + policy = asyncio.WindowsProactorEventLoopPolicy() # type: ignore[attr-defined] asyncio.set_event_loop_policy(policy) with loop_context(policy.new_event_loop) as _loop: @@ -247,7 +249,7 @@ def proactor_loop(): # type: ignore @pytest.fixture -def unused_port(aiohttp_unused_port): # type: ignore # pragma: no cover +def unused_port(aiohttp_unused_port): # type: ignore[no-untyped-def] # pragma: no cover warnings.warn( "Deprecated, use aiohttp_unused_port fixture instead", DeprecationWarning, @@ -257,20 +259,20 @@ def unused_port(aiohttp_unused_port): # type: ignore # pragma: no cover @pytest.fixture -def aiohttp_unused_port(): # type: ignore +def aiohttp_unused_port(): # type: ignore[no-untyped-def] """Return a port that is unused on the current host.""" return _unused_port @pytest.fixture -def aiohttp_server(loop): # type: ignore +def aiohttp_server(loop): # type: ignore[no-untyped-def] """Factory to create a TestServer instance, given an app. aiohttp_server(app, **kwargs) """ servers = [] - async def go(app, *, port=None, **kwargs): # type: ignore + async def go(app, *, port=None, **kwargs): # type: ignore[no-untyped-def] server = TestServer(app, port=port) await server.start_server(loop=loop, **kwargs) servers.append(server) @@ -278,7 +280,7 @@ async def go(app, *, port=None, **kwargs): # type: ignore yield go - async def finalize(): # type: ignore + async def finalize() -> None: while servers: await servers.pop().close() @@ -286,7 +288,7 @@ async def finalize(): # type: ignore @pytest.fixture -def test_server(aiohttp_server): # type: ignore # pragma: no cover +def test_server(aiohttp_server): # type: ignore[no-untyped-def] # pragma: no cover warnings.warn( "Deprecated, use aiohttp_server fixture instead", DeprecationWarning, @@ -296,14 +298,14 @@ def test_server(aiohttp_server): # type: ignore # pragma: no cover @pytest.fixture -def aiohttp_raw_server(loop): # type: ignore +def aiohttp_raw_server(loop): # type: ignore[no-untyped-def] """Factory to create a RawTestServer instance, given a web handler. aiohttp_raw_server(handler, **kwargs) """ servers = [] - async def go(handler, *, port=None, **kwargs): # type: ignore + async def go(handler, *, port=None, **kwargs): # type: ignore[no-untyped-def] server = RawTestServer(handler, port=port) await server.start_server(loop=loop, **kwargs) servers.append(server) @@ -311,7 +313,7 @@ async def go(handler, *, port=None, **kwargs): # type: ignore yield go - async def finalize(): # type: ignore + async def finalize() -> None: while servers: await servers.pop().close() @@ -319,7 +321,9 @@ async def finalize(): # type: ignore @pytest.fixture -def raw_test_server(aiohttp_raw_server): # type: ignore # pragma: no cover +def raw_test_server( # type: ignore[no-untyped-def] # pragma: no cover + aiohttp_raw_server, +): warnings.warn( "Deprecated, use aiohttp_raw_server fixture instead", DeprecationWarning, @@ -329,7 +333,9 @@ def raw_test_server(aiohttp_raw_server): # type: ignore # pragma: no cover @pytest.fixture -def aiohttp_client(loop): # type: ignore +def aiohttp_client( + loop: asyncio.AbstractEventLoop, +) -> Generator[AiohttpClient, None, None]: """Factory to create a TestClient instance. aiohttp_client(app, **kwargs) @@ -338,9 +344,14 @@ def aiohttp_client(loop): # type: ignore """ clients = [] - async def go(__param, *args, server_kwargs=None, **kwargs): # type: ignore + async def go( + __param: Union[Application, BaseTestServer], + *args: Any, + server_kwargs: Optional[Dict[str, Any]] = None, + **kwargs: Any + ) -> TestClient: - if isinstance(__param, Callable) and not isinstance( # type: ignore + if isinstance(__param, Callable) and not isinstance( # type: ignore[arg-type] __param, (Application, BaseTestServer) ): __param = __param(loop, *args, **kwargs) @@ -363,7 +374,7 @@ async def go(__param, *args, server_kwargs=None, **kwargs): # type: ignore yield go - async def finalize(): # type: ignore + async def finalize() -> None: while clients: await clients.pop().close() @@ -371,7 +382,7 @@ async def finalize(): # type: ignore @pytest.fixture -def test_client(aiohttp_client): # type: ignore # pragma: no cover +def test_client(aiohttp_client): # type: ignore[no-untyped-def] # pragma: no cover warnings.warn( "Deprecated, use aiohttp_client fixture instead", DeprecationWarning, diff --git a/aiohttp/resolver.py b/aiohttp/resolver.py index 2974bca..531ce93 100644 --- a/aiohttp/resolver.py +++ b/aiohttp/resolver.py @@ -1,6 +1,6 @@ import asyncio import socket -from typing import Any, Dict, List, Optional +from typing import Any, Dict, List, Optional, Type, Union from .abc import AbstractResolver from .helpers import get_running_loop @@ -18,8 +18,10 @@ class ThreadedResolver(AbstractResolver): - """Use Executor for synchronous getaddrinfo() calls, which defaults to - concurrent.futures.ThreadPoolExecutor. + """Threaded resolver. + + Uses an Executor for synchronous getaddrinfo() calls. + concurrent.futures.ThreadPoolExecutor is used by default. """ def __init__(self, loop: Optional[asyncio.AbstractEventLoop] = None) -> None: @@ -38,16 +40,24 @@ async def resolve( hosts = [] for family, _, proto, _, address in infos: - if family == socket.AF_INET6 and address[3]: # type: ignore - # This is essential for link-local IPv6 addresses. - # LL IPv6 is a VERY rare case. Strictly speaking, we should use - # getnameinfo() unconditionally, but performance makes sense. - host, _port = socket.getnameinfo( - address, socket.NI_NUMERICHOST | socket.NI_NUMERICSERV - ) - port = int(_port) - else: - host, port = address[:2] + if family == socket.AF_INET6: + if len(address) < 3: + # IPv6 is not supported by Python build, + # or IPv6 is not enabled in the host + continue + if address[3]: # type: ignore[misc] + # This is essential for link-local IPv6 addresses. + # LL IPv6 is a VERY rare case. Strictly speaking, we should use + # getnameinfo() unconditionally, but performance makes sense. + host, _port = socket.getnameinfo( + address, socket.NI_NUMERICHOST | socket.NI_NUMERICSERV + ) + port = int(_port) + else: + host, port = address[:2] + else: # IPv4 + assert family == socket.AF_INET + host, port = address # type: ignore[misc] hosts.append( { "hostname": hostname, @@ -143,7 +153,8 @@ async def _resolve_with_query( return hosts async def close(self) -> None: - return self._resolver.cancel() + self._resolver.cancel() -DefaultResolver = AsyncResolver if aiodns_default else ThreadedResolver +_DefaultType = Type[Union[AsyncResolver, ThreadedResolver]] +DefaultResolver: _DefaultType = AsyncResolver if aiodns_default else ThreadedResolver diff --git a/aiohttp/signals.py b/aiohttp/signals.py deleted file mode 100644 index d406c02..0000000 --- a/aiohttp/signals.py +++ /dev/null @@ -1,34 +0,0 @@ -from aiohttp.frozenlist import FrozenList - -__all__ = ("Signal",) - - -class Signal(FrozenList): - """Coroutine-based signal implementation. - - To connect a callback to a signal, use any list method. - - Signals are fired using the send() coroutine, which takes named - arguments. - """ - - __slots__ = ("_owner",) - - def __init__(self, owner): - super().__init__() - self._owner = owner - - def __repr__(self): - return "".format( - self._owner, self.frozen, list(self) - ) - - async def send(self, *args, **kwargs): - """ - Sends data to all registered receivers. - """ - if not self.frozen: - raise RuntimeError("Cannot send non-frozen signal.") - - for receiver in self: - await receiver(*args, **kwargs) # type: ignore diff --git a/aiohttp/signals.pyi b/aiohttp/signals.pyi deleted file mode 100644 index 455f8e2..0000000 --- a/aiohttp/signals.pyi +++ /dev/null @@ -1,12 +0,0 @@ -from typing import Any, Generic, TypeVar - -from aiohttp.frozenlist import FrozenList - -__all__ = ("Signal",) - -_T = TypeVar("_T") - -class Signal(FrozenList[_T], Generic[_T]): - def __init__(self, owner: Any) -> None: ... - def __repr__(self) -> str: ... - async def send(self, *args: Any, **kwargs: Any) -> None: ... diff --git a/aiohttp/streams.py b/aiohttp/streams.py index 42970b5..726b023 100644 --- a/aiohttp/streams.py +++ b/aiohttp/streams.py @@ -1,16 +1,12 @@ import asyncio import collections import warnings -from typing import Awaitable, Callable, Generic, List, Optional, Tuple, TypeVar +from typing import Awaitable, Callable, Deque, Generic, List, Optional, Tuple, TypeVar from .base_protocol import BaseProtocol from .helpers import BaseTimerContext, set_exception, set_result from .log import internal_logger - -try: # pragma: no cover - from typing import Deque -except ImportError: - from typing_extensions import Deque +from .typedefs import Final __all__ = ( "EMPTY_PAYLOAD", @@ -60,31 +56,33 @@ async def __anext__(self) -> Tuple[bytes, bool]: class AsyncStreamReaderMixin: def __aiter__(self) -> AsyncStreamIterator[bytes]: - return AsyncStreamIterator(self.readline) # type: ignore + return AsyncStreamIterator(self.readline) # type: ignore[attr-defined] def iter_chunked(self, n: int) -> AsyncStreamIterator[bytes]: """Returns an asynchronous iterator that yields chunks of size n. Python-3.5 available for Python 3.5+ only """ - return AsyncStreamIterator(lambda: self.read(n)) # type: ignore + return AsyncStreamIterator( + lambda: self.read(n) # type: ignore[attr-defined,no-any-return] + ) def iter_any(self) -> AsyncStreamIterator[bytes]: - """Returns an asynchronous iterator that yields all the available - data as soon as it is received + """Yield all available data as soon as it is received. Python-3.5 available for Python 3.5+ only """ - return AsyncStreamIterator(self.readany) # type: ignore + return AsyncStreamIterator(self.readany) # type: ignore[attr-defined] def iter_chunks(self) -> ChunkTupleAsyncStreamIterator: - """Returns an asynchronous iterator that yields chunks of data - as they are received by the server. The yielded objects are tuples + """Yield chunks of data as they are received by the server. + + The yielded objects are tuples of (bytes, bool) as returned by the StreamReader.readchunk method. Python-3.5 available for Python 3.5+ only """ - return ChunkTupleAsyncStreamIterator(self) # type: ignore + return ChunkTupleAsyncStreamIterator(self) # type: ignore[arg-type] class StreamReader(AsyncStreamReaderMixin): @@ -109,7 +107,7 @@ def __init__( limit: int, *, timer: Optional[BaseTimerContext] = None, - loop: Optional[asyncio.AbstractEventLoop] = None + loop: Optional[asyncio.AbstractEventLoop] = None, ) -> None: self._protocol = protocol self._low_water = limit @@ -119,15 +117,15 @@ def __init__( self._loop = loop self._size = 0 self._cursor = 0 - self._http_chunk_splits = None # type: Optional[List[int]] - self._buffer = collections.deque() # type: Deque[bytes] + self._http_chunk_splits: Optional[List[int]] = None + self._buffer: Deque[bytes] = collections.deque() self._buffer_offset = 0 self._eof = False - self._waiter = None # type: Optional[asyncio.Future[None]] - self._eof_waiter = None # type: Optional[asyncio.Future[None]] - self._exception = None # type: Optional[BaseException] + self._waiter: Optional[asyncio.Future[None]] = None + self._eof_waiter: Optional[asyncio.Future[None]] = None + self._exception: Optional[BaseException] = None self._timer = timer - self._eof_callbacks = [] # type: List[Callable[[], None]] + self._eof_callbacks: List[Callable[[], None]] = [] def __repr__(self) -> str: info = [self.__class__.__name__] @@ -135,7 +133,7 @@ def __repr__(self) -> str: info.append("%d bytes" % self._size) if self._eof: info.append("eof") - if self._low_water != 2 ** 16: # default limit + if self._low_water != 2**16: # default limit info.append("low=%d high=%d" % (self._low_water, self._high_water)) if self._waiter: info.append("w=%r" % self._waiter) @@ -310,34 +308,41 @@ async def _wait(self, func_name: str) -> None: self._waiter = None async def readline(self) -> bytes: + return await self.readuntil() + + async def readuntil(self, separator: bytes = b"\n") -> bytes: + seplen = len(separator) + if seplen == 0: + raise ValueError("Separator should be at least one-byte string") + if self._exception is not None: raise self._exception - line = [] - line_size = 0 + chunk = b"" + chunk_size = 0 not_enough = True while not_enough: while self._buffer and not_enough: offset = self._buffer_offset - ichar = self._buffer[0].find(b"\n", offset) + 1 - # Read from current offset to found b'\n' or to the end. + ichar = self._buffer[0].find(separator, offset) + 1 + # Read from current offset to found separator or to the end. data = self._read_nowait_chunk(ichar - offset if ichar else -1) - line.append(data) - line_size += len(data) + chunk += data + chunk_size += len(data) if ichar: not_enough = False - if line_size > self._high_water: - raise ValueError("Line is too long") + if chunk_size > self._high_water: + raise ValueError("Chunk too big") if self._eof: break if not_enough: - await self._wait("readline") + await self._wait("readuntil") - return b"".join(line) + return chunk async def read(self, n: int = -1) -> bytes: if self._exception is not None: @@ -394,7 +399,9 @@ async def readany(self) -> bytes: return self._read_nowait(-1) async def readchunk(self) -> Tuple[bytes, bool]: - """Returns a tuple of (data, end_of_http_chunk). When chunked transfer + """Returns a tuple of (data, end_of_http_chunk). + + When chunked transfer encoding is used, end_of_http_chunk is a boolean indicating if the end of the data corresponds to the end of a HTTP chunk , otherwise it is always False. @@ -429,7 +436,7 @@ async def readexactly(self, n: int) -> bytes: if self._exception is not None: raise self._exception - blocks = [] # type: List[bytes] + blocks: List[bytes] = [] while n > 0: block = await self.read(n) if not block: @@ -483,7 +490,7 @@ def _read_nowait_chunk(self, n: int) -> bytes: return data def _read_nowait(self, n: int) -> bytes: - """ Read not more than n bytes, or whole buffer if n == -1 """ + """Read not more than n bytes, or whole buffer if n == -1""" chunks = [] while self._buffer: @@ -497,7 +504,10 @@ def _read_nowait(self, n: int) -> bytes: return b"".join(chunks) if chunks else b"" -class EmptyStreamReader(AsyncStreamReaderMixin): +class EmptyStreamReader(StreamReader): # lgtm [py/missing-call-to-init] + def __init__(self) -> None: + pass + def exception(self) -> Optional[BaseException]: return None @@ -531,6 +541,8 @@ async def readline(self) -> bytes: async def read(self, n: int = -1) -> bytes: return b"" + # TODO add async def readuntil + async def readany(self) -> bytes: return b"" @@ -540,11 +552,11 @@ async def readchunk(self) -> Tuple[bytes, bool]: async def readexactly(self, n: int) -> bytes: raise asyncio.IncompleteReadError(b"", n) - def read_nowait(self) -> bytes: + def read_nowait(self, n: int = -1) -> bytes: return b"" -EMPTY_PAYLOAD = EmptyStreamReader() +EMPTY_PAYLOAD: Final[StreamReader] = EmptyStreamReader() class DataQueue(Generic[_T]): @@ -553,10 +565,10 @@ class DataQueue(Generic[_T]): def __init__(self, loop: asyncio.AbstractEventLoop) -> None: self._loop = loop self._eof = False - self._waiter = None # type: Optional[asyncio.Future[None]] - self._exception = None # type: Optional[BaseException] + self._waiter: Optional[asyncio.Future[None]] = None + self._exception: Optional[BaseException] = None self._size = 0 - self._buffer = collections.deque() # type: Deque[Tuple[_T, int]] + self._buffer: Deque[Tuple[_T, int]] = collections.deque() def __len__(self) -> int: return len(self._buffer) @@ -623,7 +635,8 @@ def __aiter__(self) -> AsyncStreamIterator[_T]: class FlowControlDataQueue(DataQueue[_T]): """FlowControlDataQueue resumes and pauses an underlying stream. - It is a destination for parsed data.""" + It is a destination for parsed data. + """ def __init__( self, protocol: BaseProtocol, limit: int, *, loop: asyncio.AbstractEventLoop diff --git a/aiohttp/tcp_helpers.py b/aiohttp/tcp_helpers.py index 0e1dbf1..88b2442 100644 --- a/aiohttp/tcp_helpers.py +++ b/aiohttp/tcp_helpers.py @@ -15,7 +15,6 @@ def tcp_keepalive(transport: asyncio.Transport) -> None: if sock is not None: sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) - else: def tcp_keepalive(transport: asyncio.Transport) -> None: # pragma: no cover diff --git a/aiohttp/test_utils.py b/aiohttp/test_utils.py index 7a9ca7d..fcda2f3 100644 --- a/aiohttp/test_utils.py +++ b/aiohttp/test_utils.py @@ -2,35 +2,41 @@ import asyncio import contextlib -import functools import gc import inspect +import ipaddress import os import socket import sys -import unittest +import warnings from abc import ABC, abstractmethod from types import TracebackType -from typing import TYPE_CHECKING, Any, Callable, Iterator, List, Optional, Type, Union +from typing import ( + TYPE_CHECKING, + Any, + Callable, + Iterator, + List, + Optional, + Type, + Union, + cast, +) from unittest import mock +from aiosignal import Signal from multidict import CIMultiDict, CIMultiDictProxy from yarl import URL import aiohttp -from aiohttp.client import ( - ClientResponse, - _RequestContextManager, - _WSRequestContextManager, -) +from aiohttp.client import _RequestContextManager, _WSRequestContextManager from . import ClientSession, hdrs from .abc import AbstractCookieJar from .client_reqrep import ClientResponse from .client_ws import ClientWebSocketResponse -from .helpers import sentinel +from .helpers import PY_38, sentinel from .http import HttpVersion, RawRequestMessage -from .signals import Signal from .web import ( Application, AppRunner, @@ -48,16 +54,24 @@ else: SSLContext = None +if PY_38: + from unittest import IsolatedAsyncioTestCase as TestCase +else: + from asynctest import TestCase # type: ignore[no-redef] REUSE_ADDRESS = os.name == "posix" and sys.platform != "cygwin" -def get_unused_port_socket(host: str) -> socket.socket: - return get_port_socket(host, 0) +def get_unused_port_socket( + host: str, family: socket.AddressFamily = socket.AF_INET +) -> socket.socket: + return get_port_socket(host, 0, family) -def get_port_socket(host: str, port: int) -> socket.socket: - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +def get_port_socket( + host: str, port: int, family: socket.AddressFamily +) -> socket.socket: + s = socket.socket(family, socket.SOCK_STREAM) if REUSE_ADDRESS: # Windows has different semantics for SO_REUSEADDR, # so don't set it. Ref: @@ -71,7 +85,7 @@ def unused_port() -> int: """Return a port that is unused on the current host.""" with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind(("127.0.0.1", 0)) - return s.getsockname()[1] + return cast(int, s.getsockname()[1]) class BaseTestServer(ABC): @@ -85,16 +99,20 @@ def __init__( host: str = "127.0.0.1", port: Optional[int] = None, skip_url_asserts: bool = False, + socket_factory: Callable[ + [str, int, socket.AddressFamily], socket.socket + ] = get_port_socket, **kwargs: Any, ) -> None: self._loop = loop - self.runner = None # type: Optional[BaseRunner] - self._root = None # type: Optional[URL] + self.runner: Optional[BaseRunner] = None + self._root: Optional[URL] = None self.host = host self.port = port self._closed = False self.scheme = scheme self.skip_url_asserts = skip_url_asserts + self.socket_factory = socket_factory async def start_server( self, loop: Optional[asyncio.AbstractEventLoop] = None, **kwargs: Any @@ -107,7 +125,12 @@ async def start_server( await self.runner.setup() if not self.port: self.port = 0 - _sock = get_port_socket(self.host, self.port) + try: + version = ipaddress.ip_address(self.host).version + except ValueError: + version = 4 + family = socket.AF_INET6 if version == 6 else socket.AF_INET + _sock = self.socket_factory(self.host, self.port, family) self.host, self.port = _sock.getsockname()[:2] site = SockSite(self.runner, sock=_sock, ssl_context=self._ssl) await site.start() @@ -261,8 +284,8 @@ def __init__( cookie_jar = aiohttp.CookieJar(unsafe=True, loop=loop) self._session = ClientSession(loop=loop, cookie_jar=cookie_jar, **kwargs) self._closed = False - self._responses = [] # type: List[ClientResponse] - self._websockets = [] # type: List[ClientWebSocketResponse] + self._responses: List[ClientResponse] = [] + self._websockets: List[ClientWebSocketResponse] = [] async def start_server(self) -> None: await self._server.start_server(loop=self._loop) @@ -280,8 +303,8 @@ def server(self) -> BaseTestServer: return self._server @property - def app(self) -> Application: - return getattr(self._server, "app", None) + def app(self) -> Optional[Application]: + return cast(Optional[Application], getattr(self._server, "app", None)) @property def session(self) -> ClientSession: @@ -400,9 +423,8 @@ async def __aexit__( await self.close() -class AioHTTPTestCase(unittest.TestCase): - """A base class to allow for unittest web applications using - aiohttp. +class AioHTTPTestCase(TestCase): + """A base class to allow for unittest web applications using aiohttp. Provides the following: @@ -417,43 +439,49 @@ class AioHTTPTestCase(unittest.TestCase): """ async def get_application(self) -> Application: - """ + """Get application. + This method should be overridden to return the aiohttp.web.Application object to test. - """ return self.get_app() def get_app(self) -> Application: """Obsolete method used to constructing web application. - Use .get_application() coroutine instead - + Use .get_application() coroutine instead. """ raise RuntimeError("Did you forget to define get_application()?") def setUp(self) -> None: - self.loop = setup_test_loop() - - self.app = self.loop.run_until_complete(self.get_application()) - self.server = self.loop.run_until_complete(self.get_server(self.app)) - self.client = self.loop.run_until_complete(self.get_client(self.server)) + if not PY_38: + asyncio.get_event_loop().run_until_complete(self.asyncSetUp()) - self.loop.run_until_complete(self.client.start_server()) + async def asyncSetUp(self) -> None: + try: + self.loop = asyncio.get_running_loop() + except (AttributeError, RuntimeError): # AttributeError->py36 + self.loop = asyncio.get_event_loop_policy().get_event_loop() - self.loop.run_until_complete(self.setUpAsync()) + return await self.setUpAsync() async def setUpAsync(self) -> None: - pass + self.app = await self.get_application() + self.server = await self.get_server(self.app) + self.client = await self.get_client(self.server) + + await self.client.start_server() def tearDown(self) -> None: - self.loop.run_until_complete(self.tearDownAsync()) - self.loop.run_until_complete(self.client.close()) - teardown_test_loop(self.loop) + if not PY_38: + self.loop.run_until_complete(self.asyncTearDown()) + + async def asyncTearDown(self) -> None: + return await self.tearDownAsync() async def tearDownAsync(self) -> None: - pass + await self.client.close() async def get_server(self, app: Application) -> TestServer: """Return a TestServer instance.""" @@ -465,18 +493,17 @@ async def get_client(self, server: TestServer) -> TestClient: def unittest_run_loop(func: Any, *args: Any, **kwargs: Any) -> Any: - """A decorator dedicated to use with asynchronous methods of an - AioHTTPTestCase. - - Handles executing an asynchronous function, using - the self.loop of the AioHTTPTestCase. """ + A decorator dedicated to use with asynchronous AioHTTPTestCase test methods. - @functools.wraps(func, *args, **kwargs) - def new_func(self: Any, *inner_args: Any, **inner_kwargs: Any) -> Any: - return self.loop.run_until_complete(func(self, *inner_args, **inner_kwargs)) - - return new_func + In 3.8+, this does nothing. + """ + warnings.warn( + "Decorator `@unittest_run_loop` is no longer needed in aiohttp 3.8+", + DeprecationWarning, + stacklevel=2, + ) + return func _LOOP_FACTORY = Callable[[], asyncio.AbstractEventLoop] @@ -498,8 +525,7 @@ def loop_context( def setup_test_loop( loop_factory: _LOOP_FACTORY = asyncio.new_event_loop, ) -> asyncio.AbstractEventLoop: - """Create and return an asyncio.BaseEventLoop - instance. + """Create and return an asyncio.BaseEventLoop instance. The caller should also call teardown_test_loop, once they are done with the loop. @@ -514,7 +540,16 @@ def setup_test_loop( asyncio.set_event_loop(loop) if sys.platform != "win32" and not skip_watcher: policy = asyncio.get_event_loop_policy() - watcher = asyncio.SafeChildWatcher() + watcher: asyncio.AbstractChildWatcher + try: # Python >= 3.8 + # Refs: + # * https://github.com/pytest-dev/pytest-xdist/issues/620 + # * https://stackoverflow.com/a/58614689/595220 + # * https://bugs.python.org/issue35621 + # * https://github.com/python/cpython/pull/14344 + watcher = asyncio.ThreadedChildWatcher() + except AttributeError: # Python < 3.8 + watcher = asyncio.SafeChildWatcher() watcher.attach_loop(loop) with contextlib.suppress(NotImplementedError): policy.set_child_watcher(watcher) @@ -522,10 +557,7 @@ def setup_test_loop( def teardown_test_loop(loop: asyncio.AbstractEventLoop, fast: bool = False) -> None: - """Teardown and cleanup an event_loop created - by setup_test_loop. - - """ + """Teardown and cleanup an event_loop created by setup_test_loop.""" closed = loop.is_closed() if not closed: loop.call_soon(loop.stop) @@ -545,7 +577,7 @@ def get_dict(app: Any, key: str) -> Any: def set_dict(app: Any, key: str, value: Any) -> None: app.__app_dict[key] = value - app = mock.MagicMock() + app = mock.MagicMock(spec=Application) app.__app_dict = {} app.__getitem__ = get_dict app.__setitem__ = set_dict @@ -583,16 +615,14 @@ def make_mocked_request( transport: Any = sentinel, payload: Any = sentinel, sslcontext: Optional[SSLContext] = None, - client_max_size: int = 1024 ** 2, + client_max_size: int = 1024**2, loop: Any = ..., ) -> Request: """Creates mocked web.Request testing purposes. Useful in unit tests, when spinning full web server is overkill or specific conditions and errors are hard to trigger. - """ - task = mock.Mock() if loop is ...: loop = mock.Mock() @@ -619,7 +649,7 @@ def make_mocked_request( headers, raw_hdrs, closing, - False, + None, False, chunked, URL(path), diff --git a/aiohttp/tracing.py b/aiohttp/tracing.py index 7ae7948..d5596a4 100644 --- a/aiohttp/tracing.py +++ b/aiohttp/tracing.py @@ -2,16 +2,15 @@ from typing import TYPE_CHECKING, Awaitable, Optional, Type, TypeVar import attr +from aiosignal import Signal from multidict import CIMultiDict from yarl import URL from .client_reqrep import ClientResponse -from .signals import Signal if TYPE_CHECKING: # pragma: no cover - from typing_extensions import Protocol - from .client import ClientSession + from .typedefs import Protocol _ParamT_contra = TypeVar("_ParamT_contra", contravariant=True) @@ -42,68 +41,71 @@ def __call__( "TraceRequestRedirectParams", "TraceRequestChunkSentParams", "TraceResponseChunkReceivedParams", + "TraceRequestHeadersSentParams", ) class TraceConfig: - """First-class used to trace requests launched via ClientSession - objects.""" + """First-class used to trace requests launched via ClientSession objects.""" def __init__( self, trace_config_ctx_factory: Type[SimpleNamespace] = SimpleNamespace ) -> None: - self._on_request_start = Signal( - self - ) # type: Signal[_SignalCallback[TraceRequestStartParams]] - self._on_request_chunk_sent = Signal( - self - ) # type: Signal[_SignalCallback[TraceRequestChunkSentParams]] - self._on_response_chunk_received = Signal( - self - ) # type: Signal[_SignalCallback[TraceResponseChunkReceivedParams]] - self._on_request_end = Signal( - self - ) # type: Signal[_SignalCallback[TraceRequestEndParams]] - self._on_request_exception = Signal( - self - ) # type: Signal[_SignalCallback[TraceRequestExceptionParams]] - self._on_request_redirect = Signal( - self - ) # type: Signal[_SignalCallback[TraceRequestRedirectParams]] - self._on_connection_queued_start = Signal( - self - ) # type: Signal[_SignalCallback[TraceConnectionQueuedStartParams]] - self._on_connection_queued_end = Signal( - self - ) # type: Signal[_SignalCallback[TraceConnectionQueuedEndParams]] - self._on_connection_create_start = Signal( + self._on_request_start: Signal[ + _SignalCallback[TraceRequestStartParams] + ] = Signal(self) + self._on_request_chunk_sent: Signal[ + _SignalCallback[TraceRequestChunkSentParams] + ] = Signal(self) + self._on_response_chunk_received: Signal[ + _SignalCallback[TraceResponseChunkReceivedParams] + ] = Signal(self) + self._on_request_end: Signal[_SignalCallback[TraceRequestEndParams]] = Signal( self - ) # type: Signal[_SignalCallback[TraceConnectionCreateStartParams]] - self._on_connection_create_end = Signal( - self - ) # type: Signal[_SignalCallback[TraceConnectionCreateEndParams]] - self._on_connection_reuseconn = Signal( - self - ) # type: Signal[_SignalCallback[TraceConnectionReuseconnParams]] - self._on_dns_resolvehost_start = Signal( - self - ) # type: Signal[_SignalCallback[TraceDnsResolveHostStartParams]] - self._on_dns_resolvehost_end = Signal( - self - ) # type: Signal[_SignalCallback[TraceDnsResolveHostEndParams]] - self._on_dns_cache_hit = Signal( - self - ) # type: Signal[_SignalCallback[TraceDnsCacheHitParams]] - self._on_dns_cache_miss = Signal( - self - ) # type: Signal[_SignalCallback[TraceDnsCacheMissParams]] + ) + self._on_request_exception: Signal[ + _SignalCallback[TraceRequestExceptionParams] + ] = Signal(self) + self._on_request_redirect: Signal[ + _SignalCallback[TraceRequestRedirectParams] + ] = Signal(self) + self._on_connection_queued_start: Signal[ + _SignalCallback[TraceConnectionQueuedStartParams] + ] = Signal(self) + self._on_connection_queued_end: Signal[ + _SignalCallback[TraceConnectionQueuedEndParams] + ] = Signal(self) + self._on_connection_create_start: Signal[ + _SignalCallback[TraceConnectionCreateStartParams] + ] = Signal(self) + self._on_connection_create_end: Signal[ + _SignalCallback[TraceConnectionCreateEndParams] + ] = Signal(self) + self._on_connection_reuseconn: Signal[ + _SignalCallback[TraceConnectionReuseconnParams] + ] = Signal(self) + self._on_dns_resolvehost_start: Signal[ + _SignalCallback[TraceDnsResolveHostStartParams] + ] = Signal(self) + self._on_dns_resolvehost_end: Signal[ + _SignalCallback[TraceDnsResolveHostEndParams] + ] = Signal(self) + self._on_dns_cache_hit: Signal[ + _SignalCallback[TraceDnsCacheHitParams] + ] = Signal(self) + self._on_dns_cache_miss: Signal[ + _SignalCallback[TraceDnsCacheMissParams] + ] = Signal(self) + self._on_request_headers_sent: Signal[ + _SignalCallback[TraceRequestHeadersSentParams] + ] = Signal(self) self._trace_config_ctx_factory = trace_config_ctx_factory def trace_config_ctx( self, trace_request_ctx: Optional[SimpleNamespace] = None ) -> SimpleNamespace: - """ Return a new trace_config_ctx instance """ + """Return a new trace_config_ctx instance""" return self._trace_config_ctx_factory(trace_request_ctx=trace_request_ctx) def freeze(self) -> None: @@ -122,6 +124,7 @@ def freeze(self) -> None: self._on_dns_resolvehost_end.freeze() self._on_dns_cache_hit.freeze() self._on_dns_cache_miss.freeze() + self._on_request_headers_sent.freeze() @property def on_request_start(self) -> "Signal[_SignalCallback[TraceRequestStartParams]]": @@ -205,10 +208,16 @@ def on_dns_cache_hit(self) -> "Signal[_SignalCallback[TraceDnsCacheHitParams]]": def on_dns_cache_miss(self) -> "Signal[_SignalCallback[TraceDnsCacheMissParams]]": return self._on_dns_cache_miss + @property + def on_request_headers_sent( + self, + ) -> "Signal[_SignalCallback[TraceRequestHeadersSentParams]]": + return self._on_request_headers_sent + @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceRequestStartParams: - """ Parameters sent by the `on_request_start` signal""" + """Parameters sent by the `on_request_start` signal""" method: str url: URL @@ -217,7 +226,7 @@ class TraceRequestStartParams: @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceRequestChunkSentParams: - """ Parameters sent by the `on_request_chunk_sent` signal""" + """Parameters sent by the `on_request_chunk_sent` signal""" method: str url: URL @@ -226,7 +235,7 @@ class TraceRequestChunkSentParams: @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceResponseChunkReceivedParams: - """ Parameters sent by the `on_response_chunk_received` signal""" + """Parameters sent by the `on_response_chunk_received` signal""" method: str url: URL @@ -235,7 +244,7 @@ class TraceResponseChunkReceivedParams: @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceRequestEndParams: - """ Parameters sent by the `on_request_end` signal""" + """Parameters sent by the `on_request_end` signal""" method: str url: URL @@ -245,7 +254,7 @@ class TraceRequestEndParams: @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceRequestExceptionParams: - """ Parameters sent by the `on_request_exception` signal""" + """Parameters sent by the `on_request_exception` signal""" method: str url: URL @@ -255,7 +264,7 @@ class TraceRequestExceptionParams: @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceRequestRedirectParams: - """ Parameters sent by the `on_request_redirect` signal""" + """Parameters sent by the `on_request_redirect` signal""" method: str url: URL @@ -265,60 +274,72 @@ class TraceRequestRedirectParams: @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceConnectionQueuedStartParams: - """ Parameters sent by the `on_connection_queued_start` signal""" + """Parameters sent by the `on_connection_queued_start` signal""" @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceConnectionQueuedEndParams: - """ Parameters sent by the `on_connection_queued_end` signal""" + """Parameters sent by the `on_connection_queued_end` signal""" @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceConnectionCreateStartParams: - """ Parameters sent by the `on_connection_create_start` signal""" + """Parameters sent by the `on_connection_create_start` signal""" @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceConnectionCreateEndParams: - """ Parameters sent by the `on_connection_create_end` signal""" + """Parameters sent by the `on_connection_create_end` signal""" @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceConnectionReuseconnParams: - """ Parameters sent by the `on_connection_reuseconn` signal""" + """Parameters sent by the `on_connection_reuseconn` signal""" @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceDnsResolveHostStartParams: - """ Parameters sent by the `on_dns_resolvehost_start` signal""" + """Parameters sent by the `on_dns_resolvehost_start` signal""" host: str @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceDnsResolveHostEndParams: - """ Parameters sent by the `on_dns_resolvehost_end` signal""" + """Parameters sent by the `on_dns_resolvehost_end` signal""" host: str @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceDnsCacheHitParams: - """ Parameters sent by the `on_dns_cache_hit` signal""" + """Parameters sent by the `on_dns_cache_hit` signal""" host: str @attr.s(auto_attribs=True, frozen=True, slots=True) class TraceDnsCacheMissParams: - """ Parameters sent by the `on_dns_cache_miss` signal""" + """Parameters sent by the `on_dns_cache_miss` signal""" host: str +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceRequestHeadersSentParams: + """Parameters sent by the `on_request_headers_sent` signal""" + + method: str + url: URL + headers: "CIMultiDict[str]" + + class Trace: - """Internal class used to keep together the main dependencies used - at the moment of send a signal.""" + """Internal dependency holder class. + + Used to keep together the main dependencies used + at the moment of send a signal. + """ def __init__( self, @@ -440,3 +461,12 @@ async def send_dns_cache_miss(self, host: str) -> None: return await self._trace_config.on_dns_cache_miss.send( self._session, self._trace_config_ctx, TraceDnsCacheMissParams(host) ) + + async def send_request_headers( + self, method: str, url: URL, headers: "CIMultiDict[str]" + ) -> None: + return await self._trace_config._on_request_headers_sent.send( + self._session, + self._trace_config_ctx, + TraceRequestHeadersSentParams(method, url, headers), + ) diff --git a/aiohttp/typedefs.py b/aiohttp/typedefs.py index 1b68a24..84283d9 100644 --- a/aiohttp/typedefs.py +++ b/aiohttp/typedefs.py @@ -1,12 +1,30 @@ import json import os -import pathlib import sys -from typing import TYPE_CHECKING, Any, Callable, Iterable, Mapping, Tuple, Union +from typing import ( + TYPE_CHECKING, + Any, + Awaitable, + Callable, + Iterable, + Mapping, + Tuple, + Union, +) from multidict import CIMultiDict, CIMultiDictProxy, MultiDict, MultiDictProxy, istr from yarl import URL +# These are for other modules to use (to avoid repeating the conditional import). +if sys.version_info >= (3, 8): + from typing import Final as Final, Protocol as Protocol, TypedDict as TypedDict +else: + from typing_extensions import ( # noqa: F401 + Final, + Protocol as Protocol, + TypedDict as TypedDict, + ) + DEFAULT_JSON_ENCODER = json.dumps DEFAULT_JSON_DECODER = json.loads @@ -16,6 +34,8 @@ _MultiDict = MultiDict[str] _MultiDictProxy = MultiDictProxy[str] from http.cookies import BaseCookie, Morsel + + from .web import Request, StreamResponse else: _CIMultiDict = CIMultiDict _CIMultiDictProxy = CIMultiDictProxy @@ -39,8 +59,6 @@ "BaseCookie[str]", ] +Handler = Callable[["Request"], Awaitable["StreamResponse"]] -if sys.version_info >= (3, 6): - PathLike = Union[str, "os.PathLike[str]"] -else: - PathLike = Union[str, pathlib.PurePath] +PathLike = Union[str, "os.PathLike[str]"] diff --git a/aiohttp/web.py b/aiohttp/web.py index 557e3c3..cefae2b 100644 --- a/aiohttp/web.py +++ b/aiohttp/web.py @@ -6,16 +6,16 @@ from collections.abc import Iterable from importlib import import_module from typing import ( - Any as Any, - Awaitable as Awaitable, - Callable as Callable, + Any, + Awaitable, + Callable, Iterable as TypingIterable, - List as List, - Optional as Optional, - Set as Set, - Type as Type, - Union as Union, - cast as cast, + List, + Optional, + Set, + Type, + Union, + cast, ) from .abc import AbstractAccessLogger @@ -136,6 +136,7 @@ AbstractRoute as AbstractRoute, DynamicResource as DynamicResource, PlainResource as PlainResource, + PrefixedSubAppResource as PrefixedSubAppResource, Resource as Resource, ResourceRoute as ResourceRoute, StaticResource as StaticResource, @@ -261,6 +262,7 @@ "AbstractRoute", "DynamicResource", "PlainResource", + "PrefixedSubAppResource", "Resource", "ResourceRoute", "StaticResource", @@ -279,7 +281,7 @@ try: from ssl import SSLContext except ImportError: # pragma: no cover - SSLContext = Any # type: ignore + SSLContext = Any # type: ignore[misc,assignment] HostSequence = TypingIterable[str] @@ -290,8 +292,9 @@ async def _run_app( host: Optional[Union[str, HostSequence]] = None, port: Optional[int] = None, path: Optional[str] = None, - sock: Optional[socket.socket] = None, + sock: Optional[Union[socket.socket, TypingIterable[socket.socket]]] = None, shutdown_timeout: float = 60.0, + keepalive_timeout: float = 75.0, ssl_context: Optional[SSLContext] = None, print: Callable[..., None] = print, backlog: int = 128, @@ -304,7 +307,7 @@ async def _run_app( ) -> None: # A internal functio to actually do all dirty job for application running if asyncio.iscoroutine(app): - app = await app # type: ignore + app = await app # type: ignore[misc] app = cast(Application, app) @@ -314,11 +317,12 @@ async def _run_app( access_log_class=access_log_class, access_log_format=access_log_format, access_log=access_log, + keepalive_timeout=keepalive_timeout, ) await runner.setup() - sites = [] # type: List[BaseSite] + sites: List[BaseSite] = [] try: if host is not None: @@ -440,9 +444,7 @@ def _cancel_tasks( for task in to_cancel: task.cancel() - loop.run_until_complete( - asyncio.gather(*to_cancel, loop=loop, return_exceptions=True) - ) + loop.run_until_complete(asyncio.gather(*to_cancel, return_exceptions=True)) for task in to_cancel: if task.cancelled(): @@ -463,8 +465,9 @@ def run_app( host: Optional[Union[str, HostSequence]] = None, port: Optional[int] = None, path: Optional[str] = None, - sock: Optional[socket.socket] = None, + sock: Optional[Union[socket.socket, TypingIterable[socket.socket]]] = None, shutdown_timeout: float = 60.0, + keepalive_timeout: float = 75.0, ssl_context: Optional[SSLContext] = None, print: Callable[..., None] = print, backlog: int = 128, @@ -474,9 +477,11 @@ def run_app( handle_signals: bool = True, reuse_address: Optional[bool] = None, reuse_port: Optional[bool] = None, + loop: Optional[asyncio.AbstractEventLoop] = None, ) -> None: """Run an app locally""" - loop = asyncio.get_event_loop() + if loop is None: + loop = asyncio.new_event_loop() # Configure if and only if in debugging mode and using the default logger if loop.get_debug() and access_log and access_log.name == "aiohttp.access": @@ -485,34 +490,36 @@ def run_app( if not access_log.hasHandlers(): access_log.addHandler(logging.StreamHandler()) - try: - main_task = loop.create_task( - _run_app( - app, - host=host, - port=port, - path=path, - sock=sock, - shutdown_timeout=shutdown_timeout, - ssl_context=ssl_context, - print=print, - backlog=backlog, - access_log_class=access_log_class, - access_log_format=access_log_format, - access_log=access_log, - handle_signals=handle_signals, - reuse_address=reuse_address, - reuse_port=reuse_port, - ) + main_task = loop.create_task( + _run_app( + app, + host=host, + port=port, + path=path, + sock=sock, + shutdown_timeout=shutdown_timeout, + keepalive_timeout=keepalive_timeout, + ssl_context=ssl_context, + print=print, + backlog=backlog, + access_log_class=access_log_class, + access_log_format=access_log_format, + access_log=access_log, + handle_signals=handle_signals, + reuse_address=reuse_address, + reuse_port=reuse_port, ) + ) + + try: + asyncio.set_event_loop(loop) loop.run_until_complete(main_task) except (GracefulExit, KeyboardInterrupt): # pragma: no cover pass finally: _cancel_tasks({main_task}, loop) _cancel_tasks(all_tasks(loop), loop) - if sys.version_info >= (3, 6): # don't use PY_36 to pass mypy - loop.run_until_complete(loop.shutdown_asyncgens()) + loop.run_until_complete(loop.shutdown_asyncgens()) loop.close() diff --git a/aiohttp/web_app.py b/aiohttp/web_app.py index 14f2937..8fd4471 100644 --- a/aiohttp/web_app.py +++ b/aiohttp/web_app.py @@ -22,6 +22,9 @@ cast, ) +from aiosignal import Signal +from frozenlist import FrozenList + from . import hdrs from .abc import ( AbstractAccessLogger, @@ -29,11 +32,9 @@ AbstractRouter, AbstractStreamWriter, ) -from .frozenlist import FrozenList from .helpers import DEBUG from .http_parser import RawRequestMessage from .log import web_logger -from .signals import Signal from .streams import StreamReader from .web_log import AccessLogger from .web_middlewares import _fix_request_current_app @@ -56,12 +57,13 @@ if TYPE_CHECKING: # pragma: no cover + from .typedefs import Handler + _AppSignal = Signal[Callable[["Application"], Awaitable[None]]] _RespPrepareSignal = Signal[Callable[[Request, StreamResponse], Awaitable[None]]] - _Handler = Callable[[Request], Awaitable[StreamResponse]] _Middleware = Union[ - Callable[[Request, _Handler], Awaitable[StreamResponse]], - Callable[["Application", _Handler], Awaitable[_Handler]], # old-style + Callable[[Request, Handler], Awaitable[StreamResponse]], + Callable[["Application", Handler], Awaitable[Handler]], # old-style ] _Middlewares = FrozenList[_Middleware] _MiddlewaresHandlers = Optional[Sequence[Tuple[_Middleware, bool]]] @@ -70,7 +72,6 @@ # No type checker mode, skip types _AppSignal = Signal _RespPrepareSignal = Signal - _Handler = Callable _Middleware = Callable _Middlewares = FrozenList _MiddlewaresHandlers = Optional[Sequence] @@ -108,7 +109,7 @@ def __init__( router: Optional[UrlDispatcher] = None, middlewares: Iterable[_Middleware] = (), handler_args: Optional[Mapping[str, Any]] = None, - client_max_size: int = 1024 ** 2, + client_max_size: int = 1024**2, loop: Optional[asyncio.AbstractEventLoop] = None, debug: Any = ..., # mypy doesn't support ellipsis ) -> None: @@ -130,27 +131,27 @@ def __init__( "debug argument is deprecated", DeprecationWarning, stacklevel=2 ) self._debug = debug - self._router = router # type: UrlDispatcher + self._router: UrlDispatcher = router self._loop = loop self._handler_args = handler_args self.logger = logger - self._middlewares = FrozenList(middlewares) # type: _Middlewares + self._middlewares: _Middlewares = FrozenList(middlewares) # initialized on freezing - self._middlewares_handlers = None # type: _MiddlewaresHandlers + self._middlewares_handlers: _MiddlewaresHandlers = None # initialized on freezing - self._run_middlewares = None # type: Optional[bool] + self._run_middlewares: Optional[bool] = None - self._state = {} # type: Dict[str, Any] + self._state: Dict[str, Any] = {} self._frozen = False self._pre_frozen = False - self._subapps = [] # type: _Subapps + self._subapps: _Subapps = [] - self._on_response_prepare = Signal(self) # type: _RespPrepareSignal - self._on_startup = Signal(self) # type: _AppSignal - self._on_shutdown = Signal(self) # type: _AppSignal - self._on_cleanup = Signal(self) # type: _AppSignal + self._on_response_prepare: _RespPrepareSignal = Signal(self) + self._on_startup: _AppSignal = Signal(self) + self._on_shutdown: _AppSignal = Signal(self) + self._on_cleanup: _AppSignal = Signal(self) self._cleanup_ctx = CleanupContext() self._on_startup.append(self._cleanup_ctx._on_startup) self._on_cleanup.append(self._cleanup_ctx._on_cleanup) @@ -278,7 +279,7 @@ def freeze(self) -> None: @property def debug(self) -> bool: warnings.warn("debug property is deprecated", DeprecationWarning, stacklevel=2) - return self._debug + return self._debug # type: ignore[no-any-return] def _reg_subapp_signals(self, subapp: "Application") -> None: def reg_handler(signame: str) -> None: @@ -323,7 +324,7 @@ def add_domain(self, domain: str, subapp: "Application") -> AbstractResource: if not isinstance(domain, str): raise TypeError("Domain must be str") elif "*" in domain: - rule = MaskDomain(domain) # type: Domain + rule: Domain = MaskDomain(domain) else: rule = Domain(domain) factory = partial(MatchedSubAppResource, rule, subapp) @@ -384,7 +385,7 @@ def _make_handler( kwargs[k] = v return Server( - self._handle, # type: ignore + self._handle, # type: ignore[arg-type] request_factory=self._make_request, loop=self._loop, **kwargs, @@ -427,7 +428,11 @@ async def cleanup(self) -> None: Should be called after shutdown() """ - await self.on_cleanup.send(self) + if self.on_cleanup.frozen: + await self.on_cleanup.send(self) + else: + # If an exception occurs in startup, ensure cleanup contexts are completed. + await self._cleanup_ctx._on_cleanup(self) def _make_request( self, @@ -477,7 +482,7 @@ async def _handle(self, request: Request) -> StreamResponse: match_info.freeze() resp = None - request._match_info = match_info # type: ignore + request._match_info = match_info expect = request.headers.get(hdrs.EXPECT) if expect: resp = await match_info.expect_handler(request) @@ -488,13 +493,13 @@ async def _handle(self, request: Request) -> StreamResponse: if self._run_middlewares: for app in match_info.apps[::-1]: - for m, new_style in app._middlewares_handlers: # type: ignore + for m, new_style in app._middlewares_handlers: # type: ignore[union-attr] # noqa if new_style: handler = update_wrapper( partial(m, handler=handler), handler ) else: - handler = await m(app, handler) # type: ignore + handler = await m(app, handler) # type: ignore[arg-type] resp = await handler(request) @@ -505,7 +510,7 @@ def __call__(self) -> "Application": return self def __repr__(self) -> str: - return "".format(id(self)) + return f"" def __bool__(self) -> bool: return True @@ -514,7 +519,7 @@ def __bool__(self) -> bool: class CleanupError(RuntimeError): @property def exceptions(self) -> List[BaseException]: - return self.args[1] + return cast(List[BaseException], self.args[1]) if TYPE_CHECKING: # pragma: no cover @@ -526,7 +531,7 @@ def exceptions(self) -> List[BaseException]: class CleanupContext(_CleanupContextBase): def __init__(self) -> None: super().__init__() - self._exits = [] # type: List[AsyncIterator[None]] + self._exits: List[AsyncIterator[None]] = [] async def _on_startup(self, app: Application) -> None: for cb in self: diff --git a/aiohttp/web_exceptions.py b/aiohttp/web_exceptions.py index 2eadca0..ae706a1 100644 --- a/aiohttp/web_exceptions.py +++ b/aiohttp/web_exceptions.py @@ -273,7 +273,7 @@ def __init__( content_type=content_type, ) self.headers["Allow"] = allow - self.allowed_methods = set(allowed_methods) # type: Set[str] + self.allowed_methods: Set[str] = set(allowed_methods) self.method = method.upper() diff --git a/aiohttp/web_fileresponse.py b/aiohttp/web_fileresponse.py index 0737c4f..f41ed3f 100644 --- a/aiohttp/web_fileresponse.py +++ b/aiohttp/web_fileresponse.py @@ -9,15 +9,18 @@ Any, Awaitable, Callable, + Iterator, List, Optional, + Tuple, Union, cast, ) from . import hdrs from .abc import AbstractStreamWriter -from .typedefs import LooseHeaders +from .helpers import ETAG_ANY, ETag +from .typedefs import Final, LooseHeaders from .web_exceptions import ( HTTPNotModified, HTTPPartialContent, @@ -35,7 +38,7 @@ _T_OnChunkSent = Optional[Callable[[bytes], Awaitable[None]]] -NOSENDFILE = bool(os.environ.get("AIOHTTP_NOSENDFILE")) +NOSENDFILE: Final[bool] = bool(os.environ.get("AIOHTTP_NOSENDFILE")) class FileResponse(StreamResponse): @@ -100,6 +103,30 @@ async def _sendfile( await super().write_eof() return writer + @staticmethod + def _strong_etag_match(etag_value: str, etags: Tuple[ETag, ...]) -> bool: + if len(etags) == 1 and etags[0].value == ETAG_ANY: + return True + return any(etag.value == etag_value for etag in etags if not etag.is_weak) + + async def _not_modified( + self, request: "BaseRequest", etag_value: str, last_modified: float + ) -> Optional[AbstractStreamWriter]: + self.set_status(HTTPNotModified.status_code) + self._length_check = False + self.etag = etag_value # type: ignore[assignment] + self.last_modified = last_modified # type: ignore[assignment] + # Delete any Content-Length headers provided by user. HTTP 304 + # should always have empty response body + return await super().prepare(request) + + async def _precondition_failed( + self, request: "BaseRequest" + ) -> Optional[AbstractStreamWriter]: + self.set_status(HTTPPreconditionFailed.status_code) + self.content_length = 0 + return await super().prepare(request) + async def prepare(self, request: "BaseRequest") -> Optional[AbstractStreamWriter]: filepath = self._path @@ -112,20 +139,35 @@ async def prepare(self, request: "BaseRequest") -> Optional[AbstractStreamWriter gzip = True loop = asyncio.get_event_loop() - st = await loop.run_in_executor(None, filepath.stat) + st: os.stat_result = await loop.run_in_executor(None, filepath.stat) - modsince = request.if_modified_since - if modsince is not None and st.st_mtime <= modsince.timestamp(): - self.set_status(HTTPNotModified.status_code) - self._length_check = False - # Delete any Content-Length headers provided by user. HTTP 304 - # should always have empty response body - return await super().prepare(request) + etag_value = f"{st.st_mtime_ns:x}-{st.st_size:x}" + last_modified = st.st_mtime + + # https://tools.ietf.org/html/rfc7232#section-6 + ifmatch = request.if_match + if ifmatch is not None and not self._strong_etag_match(etag_value, ifmatch): + return await self._precondition_failed(request) unmodsince = request.if_unmodified_since - if unmodsince is not None and st.st_mtime > unmodsince.timestamp(): - self.set_status(HTTPPreconditionFailed.status_code) - return await super().prepare(request) + if ( + unmodsince is not None + and ifmatch is None + and st.st_mtime > unmodsince.timestamp() + ): + return await self._precondition_failed(request) + + ifnonematch = request.if_none_match + if ifnonematch is not None and self._strong_etag_match(etag_value, ifnonematch): + return await self._not_modified(request, etag_value, last_modified) + + modsince = request.if_modified_since + if ( + modsince is not None + and ifnonematch is None + and st.st_mtime <= modsince.timestamp() + ): + return await self._not_modified(request, etag_value, last_modified) if hdrs.CONTENT_TYPE not in self.headers: ct, encoding = mimetypes.guess_type(str(filepath)) @@ -211,12 +253,14 @@ async def prepare(self, request: "BaseRequest") -> Optional[AbstractStreamWriter self.set_status(status) if should_set_ct: - self.content_type = ct # type: ignore + self.content_type = ct # type: ignore[assignment] if encoding: self.headers[hdrs.CONTENT_ENCODING] = encoding if gzip: self.headers[hdrs.VARY] = hdrs.ACCEPT_ENCODING - self.last_modified = st.st_mtime # type: ignore + + self.etag = etag_value # type: ignore[assignment] + self.last_modified = st.st_mtime # type: ignore[assignment] self.content_length = count self.headers[hdrs.ACCEPT_RANGES] = "bytes" @@ -228,7 +272,8 @@ async def prepare(self, request: "BaseRequest") -> Optional[AbstractStreamWriter real_start, real_start + count - 1, file_size ) - if request.method == hdrs.METH_HEAD or self.status in [204, 304]: + # If we are sending 0 bytes calling sendfile() will throw a ValueError + if count == 0 or request.method == hdrs.METH_HEAD or self.status in [204, 304]: return await super().prepare(request) fobj = await loop.run_in_executor(None, filepath.open, "rb") diff --git a/aiohttp/web_log.py b/aiohttp/web_log.py index 4cfa579..bc6e3b5 100644 --- a/aiohttp/web_log.py +++ b/aiohttp/web_log.py @@ -57,7 +57,7 @@ class AccessLogger(AbstractAccessLogger): LOG_FORMAT = '%a %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"' FORMAT_RE = re.compile(r"%(\{([A-Za-z0-9\-_]+)\}([ioe])|[atPrsbOD]|Tf?)") CLEANUP_RE = re.compile(r"(%[^s])") - _FORMAT_CACHE = {} # type: Dict[str, Tuple[str, List[KeyMethod]]] + _FORMAT_CACHE: Dict[str, Tuple[str, List[KeyMethod]]] = {} def __init__(self, logger: logging.Logger, log_format: str = LOG_FORMAT) -> None: """Initialise the logger. @@ -198,10 +198,10 @@ def log(self, request: BaseRequest, response: StreamResponse, time: float) -> No if key.__class__ is str: extra[key] = value else: - k1, k2 = key # type: ignore - dct = extra.get(k1, {}) # type: ignore - dct[k2] = value # type: ignore - extra[k1] = dct # type: ignore + k1, k2 = key # type: ignore[misc] + dct = extra.get(k1, {}) # type: ignore[var-annotated,has-type] + dct[k2] = value # type: ignore[index,has-type] + extra[k1] = dct # type: ignore[has-type,assignment] self.logger.info(self._log_format % tuple(values), extra=extra) except Exception: diff --git a/aiohttp/web_middlewares.py b/aiohttp/web_middlewares.py index 8a8967e..fabcc44 100644 --- a/aiohttp/web_middlewares.py +++ b/aiohttp/web_middlewares.py @@ -1,6 +1,7 @@ import re from typing import TYPE_CHECKING, Awaitable, Callable, Tuple, Type, TypeVar +from .typedefs import Handler from .web_exceptions import HTTPPermanentRedirect, _HTTPMove from .web_request import Request from .web_response import StreamResponse @@ -21,7 +22,7 @@ async def _check_request_resolves(request: Request, path: str) -> Tuple[bool, Re alt_request = request.clone(rel_url=path) match_info = await request.app.router.resolve(alt_request) - alt_request._match_info = match_info # type: ignore + alt_request._match_info = match_info if match_info.http_exception is None: return True, alt_request @@ -30,12 +31,11 @@ async def _check_request_resolves(request: Request, path: str) -> Tuple[bool, Re def middleware(f: _Func) -> _Func: - f.__middleware_version__ = 1 # type: ignore + f.__middleware_version__ = 1 # type: ignore[attr-defined] return f -_Handler = Callable[[Request], Awaitable[StreamResponse]] -_Middleware = Callable[[Request, _Handler], Awaitable[StreamResponse]] +_Middleware = Callable[[Request, Handler], Awaitable[StreamResponse]] def normalize_path_middleware( @@ -43,12 +43,11 @@ def normalize_path_middleware( append_slash: bool = True, remove_slash: bool = False, merge_slashes: bool = True, - redirect_class: Type[_HTTPMove] = HTTPPermanentRedirect + redirect_class: Type[_HTTPMove] = HTTPPermanentRedirect, ) -> _Middleware: - """ - Middleware factory which produces a middleware that normalizes - the path of a request. By normalizing it means: + """Factory for producing a middleware that normalizes the path of a request. + Normalizing means: - Add or remove a trailing slash to the path. - Double slashes are replaced by one. @@ -74,12 +73,11 @@ def normalize_path_middleware( If merge_slashes is True, merge multiple consecutive slashes in the path into one. """ - correct_configuration = not (append_slash and remove_slash) assert correct_configuration, "Cannot both remove and append slash" @middleware - async def impl(request: Request, handler: _Handler) -> StreamResponse: + async def impl(request: Request, handler: Handler) -> StreamResponse: if isinstance(request.match_info.route, SystemRoute): paths_to_check = [] if "?" in request.raw_path: @@ -114,7 +112,7 @@ async def impl(request: Request, handler: _Handler) -> StreamResponse: def _fix_request_current_app(app: "Application") -> _Middleware: @middleware - async def impl(request: Request, handler: _Handler) -> StreamResponse: + async def impl(request: Request, handler: Handler) -> StreamResponse: with request.match_info.set_current_app(app): return await handler(request) diff --git a/aiohttp/web_protocol.py b/aiohttp/web_protocol.py index 8e02bc4..10a9608 100644 --- a/aiohttp/web_protocol.py +++ b/aiohttp/web_protocol.py @@ -7,13 +7,26 @@ from html import escape as html_escape from http import HTTPStatus from logging import Logger -from typing import TYPE_CHECKING, Any, Awaitable, Callable, Optional, Tuple, Type, cast +from typing import ( + TYPE_CHECKING, + Any, + Awaitable, + Callable, + Deque, + Optional, + Sequence, + Tuple, + Type, + Union, + cast, +) +import attr import yarl from .abc import AbstractAccessLogger, AbstractStreamWriter from .base_protocol import BaseProtocol -from .helpers import CeilTimeout, current_task +from .helpers import ceil_timeout from .http import ( HttpProcessingError, HttpRequestParser, @@ -48,9 +61,17 @@ _RequestHandler = Callable[[BaseRequest], Awaitable[StreamResponse]] - ERROR = RawRequestMessage( - "UNKNOWN", "/", HttpVersion10, {}, {}, True, False, False, False, yarl.URL("/") + "UNKNOWN", + "/", + HttpVersion10, + {}, # type: ignore[arg-type] + {}, # type: ignore[arg-type] + True, + None, + False, + False, + yarl.URL("/"), ) @@ -62,6 +83,16 @@ class PayloadAccessError(Exception): """Payload was accessed after response was sent.""" +@attr.s(auto_attribs=True, frozen=True, slots=True) +class _ErrInfo: + status: int + exc: BaseException + message: str + + +_MsgType = Tuple[Union[RawRequestMessage, _ErrInfo], StreamReader] + + class RequestHandler(BaseProtocol): """HTTP protocol implementation. @@ -73,32 +104,28 @@ class RequestHandler(BaseProtocol): status line, bad headers or incomplete payload. If any error occurs, connection gets closed. - :param keepalive_timeout: number of seconds before closing - keep-alive connection - :type keepalive_timeout: int or None + keepalive_timeout -- number of seconds before closing + keep-alive connection - :param bool tcp_keepalive: TCP keep-alive is on, default is on + tcp_keepalive -- TCP keep-alive is on, default is on - :param bool debug: enable debug mode + debug -- enable debug mode - :param logger: custom logger object - :type logger: aiohttp.log.server_logger + logger -- custom logger object - :param access_log_class: custom class for access_logger - :type access_log_class: aiohttp.abc.AbstractAccessLogger + access_log_class -- custom class for access_logger - :param access_log: custom logging object - :type access_log: aiohttp.log.server_logger + access_log -- custom logging object - :param str access_log_format: access log format string + access_log_format -- access log format string - :param loop: Optional event loop + loop -- Optional event loop - :param int max_line_size: Optional maximum header line size + max_line_size -- Optional maximum header line size - :param int max_field_size: Optional maximum header field size + max_field_size -- Optional maximum header field size - :param int max_headers: Optional maximum header size + max_headers -- Optional maximum header size """ @@ -118,7 +145,6 @@ class RequestHandler(BaseProtocol): "_messages", "_message_tail", "_waiter", - "_error_handler", "_task_handler", "_upgrade", "_payload_parser", @@ -149,39 +175,34 @@ def __init__( max_headers: int = 32768, max_field_size: int = 8190, lingering_time: float = 10.0, - read_bufsize: int = 2 ** 16, + read_bufsize: int = 2**16, + auto_decompress: bool = True, ): - super().__init__(loop) self._request_count = 0 self._keepalive = False - self._current_request = None # type: Optional[BaseRequest] - self._manager = manager # type: Optional[Server] - self._request_handler = ( - manager.request_handler - ) # type: Optional[_RequestHandler] - self._request_factory = ( - manager.request_factory - ) # type: Optional[_RequestFactory] + self._current_request: Optional[BaseRequest] = None + self._manager: Optional[Server] = manager + self._request_handler: Optional[_RequestHandler] = manager.request_handler + self._request_factory: Optional[_RequestFactory] = manager.request_factory self._tcp_keepalive = tcp_keepalive # placeholder to be replaced on keepalive timeout setup self._keepalive_time = 0.0 - self._keepalive_handle = None # type: Optional[asyncio.Handle] + self._keepalive_handle: Optional[asyncio.Handle] = None self._keepalive_timeout = keepalive_timeout self._lingering_time = float(lingering_time) - self._messages = deque() # type: Any # Python 3.5 has no typing.Deque + self._messages: Deque[_MsgType] = deque() self._message_tail = b"" - self._waiter = None # type: Optional[asyncio.Future[None]] - self._error_handler = None # type: Optional[asyncio.Task[None]] - self._task_handler = None # type: Optional[asyncio.Task[None]] + self._waiter: Optional[asyncio.Future[None]] = None + self._task_handler: Optional[asyncio.Task[None]] = None self._upgrade = False - self._payload_parser = None # type: Any - self._request_parser = HttpRequestParser( + self._payload_parser: Any = None + self._request_parser: Optional[HttpRequestParser] = HttpRequestParser( self, loop, read_bufsize, @@ -189,15 +210,16 @@ def __init__( max_field_size=max_field_size, max_headers=max_headers, payload_exception=RequestPayloadError, - ) # type: Optional[HttpRequestParser] + auto_decompress=auto_decompress, + ) self.logger = logger self.debug = debug self.access_log = access_log if access_log: - self.access_logger = access_log_class( + self.access_logger: Optional[AbstractAccessLogger] = access_log_class( access_log, access_log_format - ) # type: Optional[AbstractAccessLogger] + ) else: self.access_logger = None @@ -215,9 +237,11 @@ def keepalive_timeout(self) -> float: return self._keepalive_timeout async def shutdown(self, timeout: Optional[float] = 15.0) -> None: - """Worker process is about to exit, we need cleanup everything and - stop accepting requests. It is especially important for keep-alive - connections.""" + """Do worker process exit preparations. + + We need to clean up everything and stop accepting requests. + It is especially important for keep-alive connections. + """ self._force_close = True if self._keepalive_handle is not None: @@ -228,10 +252,7 @@ async def shutdown(self, timeout: Optional[float] = 15.0) -> None: # wait for handlers with suppress(asyncio.CancelledError, asyncio.TimeoutError): - with CeilTimeout(timeout, loop=self._loop): - if self._error_handler is not None and not self._error_handler.done(): - await self._error_handler - + async with ceil_timeout(timeout): if self._current_request is not None: self._current_request._cancel(asyncio.CancelledError()) @@ -278,10 +299,6 @@ def connection_lost(self, exc: Optional[BaseException]) -> None: exc = ConnectionResetError("Connection lost") self._current_request._cancel(exc) - if self._error_handler is not None: - self._error_handler.cancel() - if self._task_handler is not None: - self._task_handler.cancel() if self._waiter is not None: self._waiter.cancel() @@ -308,40 +325,30 @@ def data_received(self, data: bytes) -> None: if self._force_close or self._close: return # parse http messages + messages: Sequence[_MsgType] if self._payload_parser is None and not self._upgrade: assert self._request_parser is not None try: messages, upgraded, tail = self._request_parser.feed_data(data) except HttpProcessingError as exc: - # something happened during parsing - self._error_handler = self._loop.create_task( - self.handle_parse_error( - StreamWriter(self, self._loop), 400, exc, exc.message - ) - ) - self.close() - except Exception as exc: - # 500: internal error - self._error_handler = self._loop.create_task( - self.handle_parse_error(StreamWriter(self, self._loop), 500, exc) - ) - self.close() - else: - if messages: - # sometimes the parser returns no messages - for (msg, payload) in messages: - self._request_count += 1 - self._messages.append((msg, payload)) - - waiter = self._waiter - if waiter is not None: - if not waiter.done(): - # don't set result twice - waiter.set_result(None) - - self._upgrade = upgraded - if upgraded and tail: - self._message_tail = tail + messages = [ + (_ErrInfo(status=400, exc=exc, message=exc.message), EMPTY_PAYLOAD) + ] + upgraded = False + tail = b"" + + for msg, payload in messages or (): + self._request_count += 1 + self._messages.append((msg, payload)) + + waiter = self._waiter + if messages and waiter is not None and not waiter.done(): + # don't set result twice + waiter.set_result(None) + + self._upgrade = upgraded + if upgraded and tail: + self._message_tail = tail # no parser, just store elif self._payload_parser is None and self._upgrade and data: @@ -364,14 +371,17 @@ def keep_alive(self, val: bool) -> None: self._keepalive_handle = None def close(self) -> None: - """Stop accepting new pipelinig messages and close - connection when handlers done processing messages""" + """Close connection. + + Stop accepting new pipelining messages and close + connection when handlers done processing messages. + """ self._close = True if self._waiter: self._waiter.cancel() def force_close(self) -> None: - """Force close connection""" + """Forcefully close connection.""" self._force_close = True if self._waiter: self._waiter.cancel() @@ -414,18 +424,17 @@ async def _handle_request( self, request: BaseRequest, start_time: float, + request_handler: Callable[[BaseRequest], Awaitable[StreamResponse]], ) -> Tuple[StreamResponse, bool]: assert self._request_handler is not None try: try: self._current_request = request - resp = await self._request_handler(request) + resp = await request_handler(request) finally: self._current_request = None except HTTPException as exc: - resp = Response( - status=exc.status, reason=exc.reason, text=exc.text, headers=exc.headers - ) + resp = exc reset = await self.finish_response(request, resp, start_time) except asyncio.CancelledError: raise @@ -437,6 +446,15 @@ async def _handle_request( resp = self.handle_error(request, 500, exc) reset = await self.finish_response(request, resp, start_time) else: + # Deprecation warning (See #2415) + if getattr(resp, "__http_exception__", False): + warnings.warn( + "returning HTTPException object is deprecated " + "(#2415) and will be removed, " + "please raise the exception instead", + DeprecationWarning, + ) + reset = await self.finish_response(request, resp, start_time) return resp, reset @@ -477,23 +495,24 @@ async def start(self) -> None: manager.requests_count += 1 writer = StreamWriter(self, loop) + if isinstance(message, _ErrInfo): + # make request_factory work + request_handler = self._make_error_handler(message) + message = ERROR + else: + request_handler = self._request_handler + request = self._request_factory(message, payload, self, writer, handler) try: # a new task is used for copy context vars (#3406) - task = self._loop.create_task(self._handle_request(request, start)) + task = self._loop.create_task( + self._handle_request(request, start, request_handler) + ) try: resp, reset = await task except (asyncio.CancelledError, ConnectionError): self.log_debug("Ignored premature client disconnection") break - # Deprecation warning (See #2415) - if getattr(resp, "__http_exception__", False): - warnings.warn( - "returning HTTPException object is deprecated " - "(#2415) and will be removed, " - "please raise the exception instead", - DeprecationWarning, - ) # Drop the processed task from asyncio.Task.all_tasks() early del task @@ -517,7 +536,7 @@ async def start(self) -> None: with suppress(asyncio.TimeoutError, asyncio.CancelledError): while not payload.is_eof() and now < end_t: - with CeilTimeout(end_t - now, loop=loop): + async with ceil_timeout(end_t - now): # read and ignore await payload.readany() now = loop.time() @@ -558,14 +577,15 @@ async def start(self) -> None: # remove handler, close transport if no handlers left if not self._force_close: self._task_handler = None - if self.transport is not None and self._error_handler is None: + if self.transport is not None: self.transport.close() async def finish_response( self, request: BaseRequest, resp: StreamResponse, start_time: float ) -> bool: - """ - Prepare the response and write_eof, then log access. This has to + """Prepare the response and write_eof, then log access. + + This has to be called within the context of any exception so the access logger can get exception information. Returns True if the client disconnects prematurely. @@ -607,9 +627,17 @@ def handle_error( """Handle errors. Returns HTTP response with specific status code. Logs additional - information. It always closes current connection.""" + information. It always closes current connection. + """ self.log_exception("Error handling request", exc_info=exc) + # some data already got sent, connection is broken + if request.writer.output_size > 0: + raise ConnectionError( + "Response is sent already, cannot send another response " + "with the error message" + ) + ct = "text/plain" if status == HTTPStatus.INTERNAL_SERVER_ERROR: title = "{0.value} {0.phrase}".format(HTTPStatus.INTERNAL_SERVER_ERROR) @@ -638,30 +666,14 @@ def handle_error( resp = Response(status=status, text=message, content_type=ct) resp.force_close() - # some data already got sent, connection is broken - if request.writer.output_size > 0 or self.transport is None: - self.force_close() - return resp - async def handle_parse_error( - self, - writer: AbstractStreamWriter, - status: int, - exc: Optional[BaseException] = None, - message: Optional[str] = None, - ) -> None: - task = current_task() - assert task is not None - request = BaseRequest( - ERROR, EMPTY_PAYLOAD, self, writer, task, self._loop # type: ignore - ) - - resp = self.handle_error(request, status, exc, message) - await resp.prepare(request) - await resp.write_eof() - - if self.transport is not None: - self.transport.close() + def _make_error_handler( + self, err_info: _ErrInfo + ) -> Callable[[BaseRequest], Awaitable[StreamResponse]]: + async def handler(request: BaseRequest) -> StreamResponse: + return self.handle_error( + request, err_info.status, err_info.exc, err_info.message + ) - self._error_handler = None + return handler diff --git a/aiohttp/web_request.py b/aiohttp/web_request.py index f11e7be..c02ebfc 100644 --- a/aiohttp/web_request.py +++ b/aiohttp/web_request.py @@ -7,7 +7,6 @@ import tempfile import types import warnings -from email.utils import parsedate from http.cookies import SimpleCookie from types import MappingProxyType from typing import ( @@ -18,6 +17,7 @@ Mapping, MutableMapping, Optional, + Pattern, Tuple, Union, cast, @@ -30,13 +30,24 @@ from . import hdrs from .abc import AbstractStreamWriter -from .helpers import DEBUG, ChainMapProxy, HeadersMixin, reify, sentinel +from .helpers import ( + DEBUG, + ETAG_ANY, + LIST_QUOTED_ETAG_RE, + ChainMapProxy, + ETag, + HeadersMixin, + parse_http_date, + reify, + sentinel, +) from .http_parser import RawRequestMessage from .http_writer import HttpVersion from .multipart import BodyPartReader, MultipartReader from .streams import EmptyStreamReader, StreamReader from .typedefs import ( DEFAULT_JSON_DECODER, + Final, JSONDecoder, LooseHeaders, RawHeaders, @@ -63,31 +74,33 @@ class FileField: headers: "CIMultiDictProxy[str]" -_TCHAR = string.digits + string.ascii_letters + r"!#$%&'*+.^_`|~-" +_TCHAR: Final[str] = string.digits + string.ascii_letters + r"!#$%&'*+.^_`|~-" # '-' at the end to prevent interpretation as range in a char class -_TOKEN = fr"[{_TCHAR}]+" +_TOKEN: Final[str] = rf"[{_TCHAR}]+" -_QDTEXT = r"[{}]".format( +_QDTEXT: Final[str] = r"[{}]".format( r"".join(chr(c) for c in (0x09, 0x20, 0x21) + tuple(range(0x23, 0x7F))) ) # qdtext includes 0x5C to escape 0x5D ('\]') # qdtext excludes obs-text (because obsoleted, and encoding not specified) -_QUOTED_PAIR = r"\\[\t !-~]" +_QUOTED_PAIR: Final[str] = r"\\[\t !-~]" -_QUOTED_STRING = r'"(?:{quoted_pair}|{qdtext})*"'.format( +_QUOTED_STRING: Final[str] = r'"(?:{quoted_pair}|{qdtext})*"'.format( qdtext=_QDTEXT, quoted_pair=_QUOTED_PAIR ) -_FORWARDED_PAIR = r"({token})=({token}|{quoted_string})(:\d{{1,4}})?".format( +_FORWARDED_PAIR: Final[ + str +] = r"({token})=({token}|{quoted_string})(:\d{{1,4}})?".format( token=_TOKEN, quoted_string=_QUOTED_STRING ) -_QUOTED_PAIR_REPLACE_RE = re.compile(r"\\([\t !-~])") +_QUOTED_PAIR_REPLACE_RE: Final[Pattern[str]] = re.compile(r"\\([\t !-~])") # same pattern as _QUOTED_PAIR but contains a capture group -_FORWARDED_PAIR_RE = re.compile(_FORWARDED_PAIR) +_FORWARDED_PAIR_RE: Final[Pattern[str]] = re.compile(_FORWARDED_PAIR) ############################################################ # HTTP Request @@ -135,7 +148,7 @@ def __init__( task: "asyncio.Task[None]", loop: asyncio.AbstractEventLoop, *, - client_max_size: int = 1024 ** 2, + client_max_size: int = 1024**2, state: Optional[Dict[str, Any]] = None, scheme: Optional[str] = None, host: Optional[str] = None, @@ -151,14 +164,22 @@ def __init__( self._headers = message.headers self._method = message.method self._version = message.version - self._rel_url = message.url - self._post = ( - None - ) # type: Optional[MultiDictProxy[Union[str, bytes, FileField]]] - self._read_bytes = None # type: Optional[bytes] + self._cache: Dict[str, Any] = {} + url = message.url + if url.is_absolute(): + # absolute URL is given, + # override auto-calculating url, host, and scheme + # all other properties should be good + self._cache["url"] = url + self._cache["host"] = url.host + self._cache["scheme"] = url.scheme + self._rel_url = url.relative() + else: + self._rel_url = message.url + self._post: Optional[MultiDictProxy[Union[str, bytes, FileField]]] = None + self._read_bytes: Optional[bytes] = None self._state = state - self._cache = {} # type: Dict[str, Any] self._task = task self._client_max_size = client_max_size self._loop = loop @@ -190,13 +211,11 @@ def clone( Creates and returns a new instance of Request object. If no parameters are given, an exact copy is returned. If a parameter is not passed, it will reuse the one from the current request object. - """ - if self._read_bytes: raise RuntimeError("Cannot clone request " "after reading its content") - dct = {} # type: Dict[str, Any] + dct: Dict[str, Any] = {} if method is not sentinel: dct["method"] = method if rel_url is not sentinel: @@ -315,7 +334,7 @@ def forwarded(self) -> Tuple[Mapping[str, str], ...]: length = len(field_value) pos = 0 need_separator = False - elem = {} # type: Dict[str, str] + elem: Dict[str, str] = {} elems.append(types.MappingProxyType(elem)) while 0 <= pos < length: match = _FORWARDED_PAIR_RE.match(field_value, pos) @@ -396,8 +415,7 @@ def host(self) -> str: host = self._message.headers.get(hdrs.HOST) if host is not None: return host - else: - return socket.getfqdn() + return socket.getfqdn() @reify def remote(self) -> Optional[str]: @@ -408,10 +426,11 @@ def remote(self) -> Optional[str]: - overridden value by .clone(remote=new_remote) call. - peername of opened socket """ + if self._transport_peername is None: + return None if isinstance(self._transport_peername, (list, tuple)): - return self._transport_peername[0] - else: - return self._transport_peername + return str(self._transport_peername[0]) + return str(self._transport_peername) @reify def url(self) -> URL: @@ -437,6 +456,7 @@ def path_qs(self) -> str: @reify def raw_path(self) -> str: """The URL including raw *PATH INFO* without the host or scheme. + Warning, the path is unquoted and may contains non valid URL characters E.g., ``/my%2Fpath%7Cwith%21some%25strange%24characters`` @@ -446,7 +466,7 @@ def raw_path(self) -> str: @reify def query(self) -> "MultiDictProxy[str]": """A multidict with all the variables in the query string.""" - return self._rel_url.query + return MultiDictProxy(self._rel_url.query) @reify def query_string(self) -> str: @@ -466,22 +486,13 @@ def raw_headers(self) -> RawHeaders: """A sequence of pairs for all headers.""" return self._message.raw_headers - @staticmethod - def _http_date(_date_str: Optional[str]) -> Optional[datetime.datetime]: - """Process a date string, return a datetime object""" - if _date_str is not None: - timetuple = parsedate(_date_str) - if timetuple is not None: - return datetime.datetime(*timetuple[:6], tzinfo=datetime.timezone.utc) - return None - @reify def if_modified_since(self) -> Optional[datetime.datetime]: """The value of If-Modified-Since HTTP header, or None. This header is represented as a `datetime` object. """ - return self._http_date(self.headers.get(hdrs.IF_MODIFIED_SINCE)) + return parse_http_date(self.headers.get(hdrs.IF_MODIFIED_SINCE)) @reify def if_unmodified_since(self) -> Optional[datetime.datetime]: @@ -489,7 +500,53 @@ def if_unmodified_since(self) -> Optional[datetime.datetime]: This header is represented as a `datetime` object. """ - return self._http_date(self.headers.get(hdrs.IF_UNMODIFIED_SINCE)) + return parse_http_date(self.headers.get(hdrs.IF_UNMODIFIED_SINCE)) + + @staticmethod + def _etag_values(etag_header: str) -> Iterator[ETag]: + """Extract `ETag` objects from raw header.""" + if etag_header == ETAG_ANY: + yield ETag( + is_weak=False, + value=ETAG_ANY, + ) + else: + for match in LIST_QUOTED_ETAG_RE.finditer(etag_header): + is_weak, value, garbage = match.group(2, 3, 4) + # Any symbol captured by 4th group means + # that the following sequence is invalid. + if garbage: + break + + yield ETag( + is_weak=bool(is_weak), + value=value, + ) + + @classmethod + def _if_match_or_none_impl( + cls, header_value: Optional[str] + ) -> Optional[Tuple[ETag, ...]]: + if not header_value: + return None + + return tuple(cls._etag_values(header_value)) + + @reify + def if_match(self) -> Optional[Tuple[ETag, ...]]: + """The value of If-Match HTTP header, or None. + + This header is represented as a `tuple` of `ETag` objects. + """ + return self._if_match_or_none_impl(self.headers.get(hdrs.IF_MATCH)) + + @reify + def if_none_match(self) -> Optional[Tuple[ETag, ...]]: + """The value of If-None-Match HTTP header, or None. + + This header is represented as a `tuple` of `ETag` objects. + """ + return self._if_match_or_none_impl(self.headers.get(hdrs.IF_NONE_MATCH)) @reify def if_range(self) -> Optional[datetime.datetime]: @@ -497,7 +554,7 @@ def if_range(self) -> Optional[datetime.datetime]: This header is represented as a `datetime` object. """ - return self._http_date(self.headers.get(hdrs.IF_RANGE)) + return parse_http_date(self.headers.get(hdrs.IF_RANGE)) @reify def keep_alive(self) -> bool: @@ -511,7 +568,7 @@ def cookies(self) -> Mapping[str, str]: A read-only dictionary-like object. """ raw = self.headers.get(hdrs.COOKIE, "") - parsed = SimpleCookie(raw) # type: SimpleCookie[str] + parsed: SimpleCookie[str] = SimpleCookie(raw) return MappingProxyType({key: val.value for key, val in parsed.items()}) @reify @@ -634,7 +691,7 @@ async def post(self) -> "MultiDictProxy[Union[str, bytes, FileField]]": self._post = MultiDictProxy(MultiDict()) return self._post - out = MultiDict() # type: MultiDict[Union[str, bytes, FileField]] + out: MultiDict[Union[str, bytes, FileField]] = MultiDict() if content_type == "multipart/form-data": multipart = await self.multipart() @@ -655,16 +712,17 @@ async def post(self) -> "MultiDictProxy[Union[str, bytes, FileField]]": if field.filename: # store file in temp file tmp = tempfile.TemporaryFile() - chunk = await field.read_chunk(size=2 ** 16) + chunk = await field.read_chunk(size=2**16) while chunk: chunk = field.decode(chunk) tmp.write(chunk) size += len(chunk) if 0 < max_size < size: + tmp.close() raise HTTPRequestEntityTooLarge( max_size=max_size, actual_size=size ) - chunk = await field.read_chunk(size=2 ** 16) + chunk = await field.read_chunk(size=2**16) tmp.seek(0) if field_ct is None: @@ -756,7 +814,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: # or information about traversal lookup # initialized after route resolving - self._match_info = None # type: Optional[UrlMappingMatchInfo] + self._match_info: Optional[UrlMappingMatchInfo] = None if DEBUG: diff --git a/aiohttp/web_response.py b/aiohttp/web_response.py index f34b00e..ce07f81 100644 --- a/aiohttp/web_response.py +++ b/aiohttp/web_response.py @@ -8,7 +8,6 @@ import warnings import zlib from concurrent.futures import Executor -from email.utils import parsedate from http.cookies import Morsel, SimpleCookie from typing import ( TYPE_CHECKING, @@ -27,7 +26,17 @@ from . import hdrs, payload from .abc import AbstractStreamWriter -from .helpers import PY_38, HeadersMixin, rfc822_formatted_time, sentinel +from .helpers import ( + ETAG_ANY, + PY_38, + QUOTED_ETAG_RE, + ETag, + HeadersMixin, + parse_http_date, + rfc822_formatted_time, + sentinel, + validate_etag_value, +) from .http import RESPONSES, SERVER_SOFTWARE, HttpVersion10, HttpVersion11 from .payload import Payload from .typedefs import JSONEncoder, LooseHeaders @@ -46,7 +55,7 @@ if not PY_38: # allow samesite to be used in python < 3.8 # already permitted in python 3.8, see https://bugs.python.org/issue29613 - Morsel._reserved["samesite"] = "SameSite" # type: ignore + Morsel._reserved["samesite"] = "SameSite" # type: ignore[attr-defined] class ContentCoding(enum.Enum): @@ -76,20 +85,20 @@ def __init__( headers: Optional[LooseHeaders] = None, ) -> None: self._body = None - self._keep_alive = None # type: Optional[bool] + self._keep_alive: Optional[bool] = None self._chunked = False self._compression = False - self._compression_force = None # type: Optional[ContentCoding] - self._cookies = SimpleCookie() # type: SimpleCookie[str] + self._compression_force: Optional[ContentCoding] = None + self._cookies: SimpleCookie[str] = SimpleCookie() - self._req = None # type: Optional[BaseRequest] - self._payload_writer = None # type: Optional[AbstractStreamWriter] + self._req: Optional[BaseRequest] = None + self._payload_writer: Optional[AbstractStreamWriter] = None self._eof_sent = False self._body_length = 0 - self._state = {} # type: Dict[str, Any] + self._state: Dict[str, Any] = {} if headers is not None: - self._headers = CIMultiDict(headers) # type: CIMultiDict[str] + self._headers: CIMultiDict[str] = CIMultiDict(headers) else: self._headers = CIMultiDict() @@ -100,8 +109,11 @@ def prepared(self) -> bool: return self._payload_writer is not None @property - def task(self) -> "asyncio.Task[None]": - return getattr(self._req, "task", None) + def task(self) -> "Optional[asyncio.Task[None]]": + if self._req: + return self._req.task + else: + return None @property def status(self) -> int: @@ -209,7 +221,6 @@ def set_cookie( Sets new cookie or updates existent with new value. Also updates only those params which are not None. """ - old = self._cookies.get(name) if old is not None and old.coded_value == "": # deleted cookie @@ -314,12 +325,7 @@ def last_modified(self) -> Optional[datetime.datetime]: This header is represented as a `datetime` object. """ - httpdate = self._headers.get(hdrs.LAST_MODIFIED) - if httpdate is not None: - timetuple = parsedate(httpdate) - if timetuple is not None: - return datetime.datetime(*timetuple[:6], tzinfo=datetime.timezone.utc) - return None + return parse_http_date(self._headers.get(hdrs.LAST_MODIFIED)) @last_modified.setter def last_modified( @@ -338,6 +344,43 @@ def last_modified( elif isinstance(value, str): self._headers[hdrs.LAST_MODIFIED] = value + @property + def etag(self) -> Optional[ETag]: + quoted_value = self._headers.get(hdrs.ETAG) + if not quoted_value: + return None + elif quoted_value == ETAG_ANY: + return ETag(value=ETAG_ANY) + match = QUOTED_ETAG_RE.fullmatch(quoted_value) + if not match: + return None + is_weak, value = match.group(1, 2) + return ETag( + is_weak=bool(is_weak), + value=value, + ) + + @etag.setter + def etag(self, value: Optional[Union[ETag, str]]) -> None: + if value is None: + self._headers.pop(hdrs.ETAG, None) + elif (isinstance(value, str) and value == ETAG_ANY) or ( + isinstance(value, ETag) and value.value == ETAG_ANY + ): + self._headers[hdrs.ETAG] = ETAG_ANY + elif isinstance(value, str): + validate_etag_value(value) + self._headers[hdrs.ETAG] = f'"{value}"' + elif isinstance(value, ETag) and isinstance(value.value, str): + validate_etag_value(value.value) + hdr_value = f'W/"{value.value}"' if value.is_weak else f'"{value.value}"' + self._headers[hdrs.ETAG] = hdr_value + else: + raise ValueError( + f"Unsupported etag type: {type(value)}. " + f"etag must be str, ETag or None" + ) + def _generate_content_type_header( self, CONTENT_TYPE: istr = hdrs.CONTENT_TYPE ) -> None: @@ -420,7 +463,7 @@ async def _prepare_headers(self) -> None: elif self._length_check: writer.length = self.content_length if writer.length is None: - if version >= HttpVersion11: + if version >= HttpVersion11 and self.status != 204: writer.enable_chunking() headers[hdrs.TRANSFER_ENCODING] = "chunked" if hdrs.CONTENT_LENGTH in headers: @@ -432,7 +475,8 @@ async def _prepare_headers(self) -> None: elif version >= HttpVersion11 and self.status in (100, 101, 102, 103, 204): del headers[hdrs.CONTENT_LENGTH] - headers.setdefault(hdrs.CONTENT_TYPE, "application/octet-stream") + if self.status not in (204, 304): + headers.setdefault(hdrs.CONTENT_TYPE, "application/octet-stream") headers.setdefault(hdrs.DATE, rfc822_formatted_time()) headers.setdefault(hdrs.SERVER, SERVER_SOFTWARE) @@ -545,7 +589,7 @@ def __init__( raise ValueError("body and text are not allowed together") if headers is None: - real_headers = CIMultiDict() # type: CIMultiDict[str] + real_headers: CIMultiDict[str] = CIMultiDict() elif not isinstance(headers, CIMultiDict): real_headers = CIMultiDict(headers) else: @@ -594,7 +638,7 @@ def __init__( else: self.body = body - self._compressed_body = None # type: Optional[bytes] + self._compressed_body: Optional[bytes] = None self._zlib_executor_size = zlib_executor_size self._zlib_executor = zlib_executor @@ -610,8 +654,8 @@ def body( CONTENT_LENGTH: istr = hdrs.CONTENT_LENGTH, ) -> None: if body is None: - self._body = None # type: Optional[bytes] - self._body_payload = False # type: bool + self._body: Optional[bytes] = None + self._body_payload: bool = False elif isinstance(body, (bytes, bytearray)): self._body = body self._body_payload = False @@ -691,7 +735,7 @@ async def write_eof(self, data: bytes = b"") -> None: if self._eof_sent: return if self._compressed_body is None: - body = self._body # type: Optional[Union[bytes, Payload]] + body: Optional[Union[bytes, Payload]] = self._body else: body = self._compressed_body assert not data, f"data arg is not supported, got {data!r}" diff --git a/aiohttp/web_routedef.py b/aiohttp/web_routedef.py index 1885251..a1eb0a7 100644 --- a/aiohttp/web_routedef.py +++ b/aiohttp/web_routedef.py @@ -3,7 +3,6 @@ from typing import ( TYPE_CHECKING, Any, - Awaitable, Callable, Dict, Iterator, @@ -19,7 +18,7 @@ from . import hdrs from .abc import AbstractView -from .typedefs import PathLike +from .typedefs import Handler, PathLike if TYPE_CHECKING: # pragma: no cover from .web_request import Request @@ -53,8 +52,7 @@ def register(self, router: UrlDispatcher) -> List[AbstractRoute]: pass # pragma: no cover -_SimpleHandler = Callable[[Request], Awaitable[StreamResponse]] -_HandlerType = Union[Type[AbstractView], _SimpleHandler] +_HandlerType = Union[Type[AbstractView], Handler] @attr.s(auto_attribs=True, frozen=True, repr=False, slots=True) @@ -158,10 +156,10 @@ class RouteTableDef(Sequence[AbstractRouteDef]): """Route definition table""" def __init__(self) -> None: - self._items = [] # type: List[AbstractRouteDef] + self._items: List[AbstractRouteDef] = [] def __repr__(self) -> str: - return "".format(len(self._items)) + return f"" @overload def __getitem__(self, index: int) -> AbstractRouteDef: @@ -171,7 +169,7 @@ def __getitem__(self, index: int) -> AbstractRouteDef: def __getitem__(self, index: slice) -> List[AbstractRouteDef]: ... - def __getitem__(self, index): # type: ignore + def __getitem__(self, index): # type: ignore[no-untyped-def] return self._items[index] def __iter__(self) -> Iterator[AbstractRouteDef]: @@ -208,6 +206,9 @@ def patch(self, path: str, **kwargs: Any) -> _Deco: def delete(self, path: str, **kwargs: Any) -> _Deco: return self.route(hdrs.METH_DELETE, path, **kwargs) + def options(self, path: str, **kwargs: Any) -> _Deco: + return self.route(hdrs.METH_OPTIONS, path, **kwargs) + def view(self, path: str, **kwargs: Any) -> _Deco: return self.route(hdrs.METH_ANY, path, **kwargs) diff --git a/aiohttp/web_runner.py b/aiohttp/web_runner.py index 25ac28a..9282bb9 100644 --- a/aiohttp/web_runner.py +++ b/aiohttp/web_runner.py @@ -12,7 +12,7 @@ try: from ssl import SSLContext except ImportError: - SSLContext = object # type: ignore + SSLContext = object # type: ignore[misc,assignment] __all__ = ( @@ -53,7 +53,7 @@ def __init__( self._shutdown_timeout = shutdown_timeout self._ssl_context = ssl_context self._backlog = backlog - self._server = None # type: Optional[asyncio.AbstractServer] + self._server: Optional[asyncio.AbstractServer] = None @property @abstractmethod @@ -171,7 +171,9 @@ def __init__( self, runner: "BaseRunner", path: str, *, shutdown_timeout: float = 60.0 ) -> None: loop = asyncio.get_event_loop() - if not isinstance(loop, asyncio.ProactorEventLoop): # type: ignore + if not isinstance( + loop, asyncio.ProactorEventLoop # type: ignore[attr-defined] + ): raise RuntimeError( "Named Pipes only available in proactor" "loop under windows" ) @@ -187,7 +189,9 @@ async def start(self) -> None: loop = asyncio.get_event_loop() server = self._runner.server assert server is not None - _server = await loop.start_serving_pipe(server, self._path) # type: ignore + _server = await loop.start_serving_pipe( # type: ignore[attr-defined] + server, self._path + ) self._server = _server[0] @@ -238,8 +242,8 @@ class BaseRunner(ABC): def __init__(self, *, handle_signals: bool = False, **kwargs: Any) -> None: self._handle_signals = handle_signals self._kwargs = kwargs - self._server = None # type: Optional[Server] - self._sites = [] # type: List[BaseSite] + self._server: Optional[Server] = None + self._sites: List[BaseSite] = [] @property def server(self) -> Optional[Server]: @@ -247,7 +251,7 @@ def server(self) -> Optional[Server]: @property def addresses(self) -> List[Any]: - ret = [] # type: List[Any] + ret: List[Any] = [] for site in self._sites: server = site._server if server is not None: @@ -281,10 +285,6 @@ async def shutdown(self) -> None: async def cleanup(self) -> None: loop = asyncio.get_event_loop() - if self._server is None: - # no started yet, do nothing - return - # The loop over sites is intentional, an exception on gather() # leaves self._sites in unpredictable state. # The loop guaranties that a site is either deleted on success or diff --git a/aiohttp/web_server.py b/aiohttp/web_server.py index 5657ed9..fa46e90 100644 --- a/aiohttp/web_server.py +++ b/aiohttp/web_server.py @@ -22,7 +22,7 @@ def __init__( **kwargs: Any ) -> None: self._loop = get_running_loop(loop) - self._connections = {} # type: Dict[RequestHandler, asyncio.Transport] + self._connections: Dict[RequestHandler, asyncio.Transport] = {} self._kwargs = kwargs self.requests_count = 0 self.request_handler = handler diff --git a/aiohttp/web_urldispatcher.py b/aiohttp/web_urldispatcher.py index 2afd72f..5942e35 100644 --- a/aiohttp/web_urldispatcher.py +++ b/aiohttp/web_urldispatcher.py @@ -33,14 +33,13 @@ cast, ) -from typing_extensions import TypedDict -from yarl import URL, __version__ as yarl_version # type: ignore +from yarl import URL, __version__ as yarl_version # type: ignore[attr-defined] from . import hdrs from .abc import AbstractMatchInfo, AbstractRouter, AbstractView from .helpers import DEBUG from .http import HttpVersion11 -from .typedefs import PathLike +from .typedefs import Final, Handler, PathLike, TypedDict from .web_exceptions import ( HTTPException, HTTPExpectationFailed, @@ -74,16 +73,19 @@ else: BaseDict = dict -YARL_VERSION = tuple(map(int, yarl_version.split(".")[:2])) +YARL_VERSION: Final[Tuple[int, ...]] = tuple(map(int, yarl_version.split(".")[:2])) -HTTP_METHOD_RE = re.compile(r"^[0-9A-Za-z!#\$%&'\*\+\-\.\^_`\|~]+$") -ROUTE_RE = re.compile(r"(\{[_a-zA-Z][^{}]*(?:\{[^{}]*\}[^{}]*)*\})") -PATH_SEP = re.escape("/") +HTTP_METHOD_RE: Final[Pattern[str]] = re.compile( + r"^[0-9A-Za-z!#\$%&'\*\+\-\.\^_`\|~]+$" +) +ROUTE_RE: Final[Pattern[str]] = re.compile( + r"(\{[_a-zA-Z][^{}]*(?:\{[^{}]*\}[^{}]*)*\})" +) +PATH_SEP: Final[str] = re.escape("/") -_WebHandler = Callable[[Request], Awaitable[StreamResponse]] _ExpectHandler = Callable[[Request], Awaitable[None]] -_Resolve = Tuple[Optional[AbstractMatchInfo], Set[str]] +_Resolve = Tuple[Optional["UrlMappingMatchInfo"], Set[str]] class _InfoDict(TypedDict, total=False): @@ -128,16 +130,16 @@ def url_for(self, **kwargs: str) -> URL: @abc.abstractmethod # pragma: no branch async def resolve(self, request: Request) -> _Resolve: - """Resolve resource + """Resolve resource. - Return (UrlMappingMatchInfo, allowed_methods) pair.""" + Return (UrlMappingMatchInfo, allowed_methods) pair. + """ @abc.abstractmethod def add_prefix(self, prefix: str) -> None: """Add a prefix to processed URLs. Required for subapplications support. - """ @abc.abstractmethod @@ -156,7 +158,7 @@ class AbstractRoute(abc.ABC): def __init__( self, method: str, - handler: Union[_WebHandler, Type[AbstractView]], + handler: Union[Handler, Type[AbstractView]], *, expect_handler: Optional[_ExpectHandler] = None, resource: Optional[AbstractResource] = None, @@ -193,7 +195,7 @@ async def handler_wrapper(request: Request) -> StreamResponse: result = old_handler(request) if asyncio.iscoroutine(result): return await result - return result # type: ignore + return result # type: ignore[return-value] old_handler = handler handler = handler_wrapper @@ -208,7 +210,7 @@ def method(self) -> str: return self._method @property - def handler(self) -> _WebHandler: + def handler(self) -> Handler: return self._handler @property @@ -236,12 +238,12 @@ class UrlMappingMatchInfo(BaseDict, AbstractMatchInfo): def __init__(self, match_dict: Dict[str, str], route: AbstractRoute): super().__init__(match_dict) self._route = route - self._apps = [] # type: List[Application] - self._current_app = None # type: Optional[Application] + self._apps: List[Application] = [] + self._current_app: Optional[Application] = None self._frozen = False @property - def handler(self) -> _WebHandler: + def handler(self) -> Handler: return self._route.handler @property @@ -256,7 +258,7 @@ def expect_handler(self) -> _ExpectHandler: def http_exception(self) -> Optional[HTTPException]: return None - def get_info(self) -> _InfoDict: # type: ignore + def get_info(self) -> _InfoDict: # type: ignore[override] return self._route.get_info() @property @@ -331,12 +333,12 @@ async def _default_expect_handler(request: Request) -> None: class Resource(AbstractResource): def __init__(self, *, name: Optional[str] = None) -> None: super().__init__(name=name) - self._routes = [] # type: List[ResourceRoute] + self._routes: List[ResourceRoute] = [] def add_route( self, method: str, - handler: Union[Type[AbstractView], _WebHandler], + handler: Union[Type[AbstractView], Handler], *, expect_handler: Optional[_ExpectHandler] = None, ) -> "ResourceRoute": @@ -360,7 +362,7 @@ def register_route(self, route: "ResourceRoute") -> None: self._routes.append(route) async def resolve(self, request: Request) -> _Resolve: - allowed_methods = set() # type: Set[str] + allowed_methods: Set[str] = set() match_dict = self._match(request.rel_url.raw_path) if match_dict is None: @@ -421,7 +423,7 @@ def raw_match(self, path: str) -> bool: def get_info(self) -> _InfoDict: return {"path": self._path} - def url_for(self) -> URL: # type: ignore + def url_for(self) -> URL: # type: ignore[override] return URL.build(path=self._path, encoded=True) def __repr__(self) -> str: @@ -511,6 +513,7 @@ def __init__(self, prefix: str, *, name: Optional[str] = None) -> None: assert prefix in ("", "/") or not prefix.endswith("/"), prefix super().__init__(name=name) self._prefix = _requote_path(prefix) + self._prefix2 = self._prefix + "/" @property def canonical(self) -> str: @@ -521,6 +524,7 @@ def add_prefix(self, prefix: str) -> None: assert not prefix.endswith("/") assert len(prefix) > 1 self._prefix = prefix + self._prefix + self._prefix2 = self._prefix + "/" def raw_match(self, prefix: str) -> bool: return False @@ -569,7 +573,7 @@ def __init__( ), } - def url_for( # type: ignore + def url_for( # type: ignore[override] self, *, filename: Union[str, Path], @@ -621,7 +625,7 @@ def get_info(self) -> _InfoDict: "routes": self._routes, } - def set_options_route(self, handler: _WebHandler) -> None: + def set_options_route(self, handler: Handler) -> None: if "OPTIONS" in self._routes: raise RuntimeError("OPTIONS route was set already") self._routes["OPTIONS"] = ResourceRoute( @@ -632,7 +636,7 @@ async def resolve(self, request: Request) -> _Resolve: path = request.rel_url.raw_path method = request.method allowed_methods = set(self._routes) - if not path.startswith(self._prefix): + if not path.startswith(self._prefix2) and path != self._prefix: return None, set() if method not in allowed_methods: @@ -748,7 +752,7 @@ def get_info(self) -> _InfoDict: async def resolve(self, request: Request) -> _Resolve: if ( - not request.url.raw_path.startswith(self._prefix + "/") + not request.url.raw_path.startswith(self._prefix2) and request.url.raw_path != self._prefix ): return None, set() @@ -878,7 +882,7 @@ class ResourceRoute(AbstractRoute): def __init__( self, method: str, - handler: Union[_WebHandler, Type[AbstractView]], + handler: Union[Handler, Type[AbstractView]], resource: AbstractResource, *, expect_handler: Optional[_ExpectHandler] = None, @@ -942,7 +946,9 @@ class View(AbstractView): async def _iter(self) -> StreamResponse: if self.request.method not in hdrs.METH_ALL: self._raise_allowed_methods() - method = getattr(self, self.request.method.lower(), None) + method: Callable[[], Awaitable[StreamResponse]] = getattr( + self, self.request.method.lower(), None + ) if method is None: self._raise_allowed_methods() resp = await method() @@ -972,7 +978,7 @@ def __contains__(self, resource: object) -> bool: class RoutesView(Sized, Iterable[AbstractRoute], Container[AbstractRoute]): def __init__(self, resources: List[AbstractResource]): - self._routes = [] # type: List[AbstractRoute] + self._routes: List[AbstractRoute] = [] for resource in resources: for route in resource: self._routes.append(route) @@ -993,12 +999,12 @@ class UrlDispatcher(AbstractRouter, Mapping[str, AbstractResource]): def __init__(self) -> None: super().__init__() - self._resources = [] # type: List[AbstractResource] - self._named_resources = {} # type: Dict[str, AbstractResource] + self._resources: List[AbstractResource] = [] + self._named_resources: Dict[str, AbstractResource] = {} - async def resolve(self, request: Request) -> AbstractMatchInfo: + async def resolve(self, request: Request) -> UrlMappingMatchInfo: method = request.method - allowed_methods = set() # type: Set[str] + allowed_methods: Set[str] = set() for resource in self._resources: match_dict, allowed = await resource.resolve(request) @@ -1006,11 +1012,11 @@ async def resolve(self, request: Request) -> AbstractMatchInfo: return match_dict else: allowed_methods |= allowed + + if allowed_methods: + return MatchInfoError(HTTPMethodNotAllowed(method, allowed_methods)) else: - if allowed_methods: - return MatchInfoError(HTTPMethodNotAllowed(method, allowed_methods)) - else: - return MatchInfoError(HTTPNotFound()) + return MatchInfoError(HTTPNotFound()) def __iter__(self) -> Iterator[str]: return iter(self._named_resources) @@ -1086,7 +1092,7 @@ def add_route( self, method: str, path: str, - handler: Union[_WebHandler, Type[AbstractView]], + handler: Union[Handler, Type[AbstractView]], *, name: Optional[str] = None, expect_handler: Optional[_ExpectHandler] = None, @@ -1128,72 +1134,53 @@ def add_static( self.register_resource(resource) return resource - def add_head(self, path: str, handler: _WebHandler, **kwargs: Any) -> AbstractRoute: - """ - Shortcut for add_route with method HEAD - """ + def add_head(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method HEAD.""" return self.add_route(hdrs.METH_HEAD, path, handler, **kwargs) - def add_options( - self, path: str, handler: _WebHandler, **kwargs: Any - ) -> AbstractRoute: - """ - Shortcut for add_route with method OPTIONS - """ + def add_options(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method OPTIONS.""" return self.add_route(hdrs.METH_OPTIONS, path, handler, **kwargs) def add_get( self, path: str, - handler: _WebHandler, + handler: Handler, *, name: Optional[str] = None, allow_head: bool = True, **kwargs: Any, ) -> AbstractRoute: - """ - Shortcut for add_route with method GET, if allow_head is true another - route is added allowing head requests to the same endpoint + """Shortcut for add_route with method GET. + + If allow_head is true, another + route is added allowing head requests to the same endpoint. """ resource = self.add_resource(path, name=name) if allow_head: resource.add_route(hdrs.METH_HEAD, handler, **kwargs) return resource.add_route(hdrs.METH_GET, handler, **kwargs) - def add_post(self, path: str, handler: _WebHandler, **kwargs: Any) -> AbstractRoute: - """ - Shortcut for add_route with method POST - """ + def add_post(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method POST.""" return self.add_route(hdrs.METH_POST, path, handler, **kwargs) - def add_put(self, path: str, handler: _WebHandler, **kwargs: Any) -> AbstractRoute: - """ - Shortcut for add_route with method PUT - """ + def add_put(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method PUT.""" return self.add_route(hdrs.METH_PUT, path, handler, **kwargs) - def add_patch( - self, path: str, handler: _WebHandler, **kwargs: Any - ) -> AbstractRoute: - """ - Shortcut for add_route with method PATCH - """ + def add_patch(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method PATCH.""" return self.add_route(hdrs.METH_PATCH, path, handler, **kwargs) - def add_delete( - self, path: str, handler: _WebHandler, **kwargs: Any - ) -> AbstractRoute: - """ - Shortcut for add_route with method DELETE - """ + def add_delete(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method DELETE.""" return self.add_route(hdrs.METH_DELETE, path, handler, **kwargs) def add_view( self, path: str, handler: Type[AbstractView], **kwargs: Any ) -> AbstractRoute: - """ - Shortcut for add_route with ANY methods for a class-based view - """ + """Shortcut for add_route with ANY methods for a class-based view.""" return self.add_route(hdrs.METH_ANY, path, handler, **kwargs) def freeze(self) -> None: diff --git a/aiohttp/web_ws.py b/aiohttp/web_ws.py index da7ce6d..0d32a21 100644 --- a/aiohttp/web_ws.py +++ b/aiohttp/web_ws.py @@ -3,7 +3,7 @@ import binascii import hashlib import json -from typing import Any, Iterable, Optional, Tuple +from typing import Any, Iterable, Optional, Tuple, cast import async_timeout import attr @@ -19,6 +19,7 @@ WebSocketError, WebSocketReader, WebSocketWriter, + WSCloseCode, WSMessage, WSMsgType as WSMsgType, ws_ext_gen, @@ -26,7 +27,7 @@ ) from .log import ws_logger from .streams import EofStream, FlowControlDataQueue -from .typedefs import JSONDecoder, JSONEncoder +from .typedefs import Final, JSONDecoder, JSONEncoder from .web_exceptions import HTTPBadRequest, HTTPException from .web_request import BaseRequest from .web_response import StreamResponse @@ -37,7 +38,7 @@ "WSMsgType", ) -THRESHOLD_CONNLOST_ACCESS = 5 +THRESHOLD_CONNLOST_ACCESS: Final[int] = 5 @attr.s(auto_attribs=True, frozen=True, slots=True) @@ -67,25 +68,25 @@ def __init__( ) -> None: super().__init__(status=101) self._protocols = protocols - self._ws_protocol = None # type: Optional[str] - self._writer = None # type: Optional[WebSocketWriter] - self._reader = None # type: Optional[FlowControlDataQueue[WSMessage]] + self._ws_protocol: Optional[str] = None + self._writer: Optional[WebSocketWriter] = None + self._reader: Optional[FlowControlDataQueue[WSMessage]] = None self._closed = False self._closing = False self._conn_lost = 0 - self._close_code = None # type: Optional[int] - self._loop = None # type: Optional[asyncio.AbstractEventLoop] - self._waiting = None # type: Optional[asyncio.Future[bool]] - self._exception = None # type: Optional[BaseException] + self._close_code: Optional[int] = None + self._loop: Optional[asyncio.AbstractEventLoop] = None + self._waiting: Optional[asyncio.Future[bool]] = None + self._exception: Optional[BaseException] = None self._timeout = timeout self._receive_timeout = receive_timeout self._autoclose = autoclose self._autoping = autoping self._heartbeat = heartbeat - self._heartbeat_cb = None + self._heartbeat_cb: Optional[asyncio.TimerHandle] = None if heartbeat is not None: self._pong_heartbeat = heartbeat / 2.0 - self._pong_response_cb = None + self._pong_response_cb: Optional[asyncio.TimerHandle] = None self._compress = compress self._max_msg_size = max_msg_size @@ -102,16 +103,18 @@ def _reset_heartbeat(self) -> None: self._cancel_heartbeat() if self._heartbeat is not None: + assert self._loop is not None self._heartbeat_cb = call_later( self._send_heartbeat, self._heartbeat, self._loop ) def _send_heartbeat(self) -> None: if self._heartbeat is not None and not self._closed: + assert self._loop is not None # fire-and-forget a task is not perfect but maybe ok for # sending ping. Otherwise we need a long-living heartbeat # task in the class. - self._loop.create_task(self._writer.ping()) # type: ignore + self._loop.create_task(self._writer.ping()) # type: ignore[union-attr] if self._pong_response_cb is not None: self._pong_response_cb.cancel() @@ -122,7 +125,7 @@ def _send_heartbeat(self) -> None: def _pong_not_received(self) -> None: if self._req is not None and self._req.transport is not None: self._closed = True - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE self._exception = asyncio.TimeoutError() self._req.transport.close() @@ -193,9 +196,9 @@ def _handshake( accept_val = base64.b64encode( hashlib.sha1(key.encode() + WS_KEY).digest() ).decode() - response_headers = CIMultiDict( # type: ignore + response_headers = CIMultiDict( { - hdrs.UPGRADE: "websocket", # type: ignore + hdrs.UPGRADE: "websocket", hdrs.CONNECTION: "upgrade", hdrs.SEC_WEBSOCKET_ACCEPT: accept_val, } @@ -216,7 +219,12 @@ def _handshake( if protocol: response_headers[hdrs.SEC_WEBSOCKET_PROTOCOL] = protocol - return (response_headers, protocol, compress, notakeover) # type: ignore + return ( + response_headers, + protocol, + compress, + notakeover, + ) # type: ignore[return-value] def _pre_start(self, request: BaseRequest) -> Tuple[str, WebSocketWriter]: self._loop = request._loop @@ -245,7 +253,7 @@ def _post_start( loop = self._loop assert loop is not None - self._reader = FlowControlDataQueue(request._protocol, 2 ** 16, loop=loop) + self._reader = FlowControlDataQueue(request._protocol, 2**16, loop=loop) request.protocol.set_parser( WebSocketReader(self._reader, self._max_msg_size, compress=self._compress) ) @@ -315,7 +323,7 @@ async def send_json( ) -> None: await self.send_str(dumps(data), compress=compress) - async def write_eof(self) -> None: # type: ignore + async def write_eof(self) -> None: # type: ignore[override] if self._eof_sent: return if self._payload_writer is None: @@ -324,7 +332,7 @@ async def write_eof(self) -> None: # type: ignore await self.close() self._eof_sent = True - async def close(self, *, code: int = 1000, message: bytes = b"") -> bool: + async def close(self, *, code: int = WSCloseCode.OK, message: bytes = b"") -> bool: if self._writer is None: raise RuntimeError("Call .prepare() first") @@ -346,10 +354,10 @@ async def close(self, *, code: int = 1000, message: bytes = b"") -> bool: assert writer is not None await writer.drain() except (asyncio.CancelledError, asyncio.TimeoutError): - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE raise except Exception as exc: - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE self._exception = exc return True @@ -359,13 +367,13 @@ async def close(self, *, code: int = 1000, message: bytes = b"") -> bool: reader = self._reader assert reader is not None try: - with async_timeout.timeout(self._timeout, loop=self._loop): + async with async_timeout.timeout(self._timeout): msg = await reader.read() except asyncio.CancelledError: - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE raise except Exception as exc: - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE self._exception = exc return True @@ -373,7 +381,7 @@ async def close(self, *, code: int = 1000, message: bytes = b"") -> bool: self._close_code = msg.data return True - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE self._exception = asyncio.TimeoutError() return True else: @@ -400,9 +408,7 @@ async def receive(self, timeout: Optional[float] = None) -> WSMessage: try: self._waiting = loop.create_future() try: - with async_timeout.timeout( - timeout or self._receive_timeout, loop=self._loop - ): + async with async_timeout.timeout(timeout or self._receive_timeout): msg = await self._reader.read() self._reset_heartbeat() finally: @@ -410,10 +416,10 @@ async def receive(self, timeout: Optional[float] = None) -> WSMessage: set_result(waiter, True) self._waiting = None except (asyncio.CancelledError, asyncio.TimeoutError): - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE raise except EofStream: - self._close_code = 1000 + self._close_code = WSCloseCode.OK await self.close() return WSMessage(WSMsgType.CLOSED, None, None) except WebSocketError as exc: @@ -423,7 +429,7 @@ async def receive(self, timeout: Optional[float] = None) -> WSMessage: except Exception as exc: self._exception = exc self._closing = True - self._close_code = 1006 + self._close_code = WSCloseCode.ABNORMAL_CLOSURE await self.close() return WSMessage(WSMsgType.ERROR, exc, None) @@ -450,13 +456,13 @@ async def receive_str(self, *, timeout: Optional[float] = None) -> str: msg.type, msg.data ) ) - return msg.data + return cast(str, msg.data) async def receive_bytes(self, *, timeout: Optional[float] = None) -> bytes: msg = await self.receive(timeout) if msg.type != WSMsgType.BINARY: raise TypeError(f"Received message {msg.type}:{msg.data!r} is not bytes") - return msg.data + return cast(bytes, msg.data) async def receive_json( self, *, loads: JSONDecoder = json.loads, timeout: Optional[float] = None diff --git a/aiohttp/worker.py b/aiohttp/worker.py index 67b244b..ab6007a 100644 --- a/aiohttp/worker.py +++ b/aiohttp/worker.py @@ -22,14 +22,14 @@ SSLContext = ssl.SSLContext except ImportError: # pragma: no cover - ssl = None # type: ignore - SSLContext = object # type: ignore + ssl = None # type: ignore[assignment] + SSLContext = object # type: ignore[misc,assignment] __all__ = ("GunicornWebWorker", "GunicornUVLoopWebWorker", "GunicornTokioWebWorker") -class GunicornWebWorker(base.Worker): +class GunicornWebWorker(base.Worker): # type: ignore[misc,no-any-unimported] DEFAULT_AIOHTTP_LOG_FORMAT = AccessLogger.LOG_FORMAT DEFAULT_GUNICORN_LOG_FORMAT = GunicornAccessLogFormat.default @@ -37,9 +37,9 @@ class GunicornWebWorker(base.Worker): def __init__(self, *args: Any, **kw: Any) -> None: # pragma: no cover super().__init__(*args, **kw) - self._task = None # type: Optional[asyncio.Task[None]] + self._task: Optional[asyncio.Task[None]] = None self.exit_code = 0 - self._notify_waiter = None # type: Optional[asyncio.Future[bool]] + self._notify_waiter: Optional[asyncio.Future[bool]] = None def init_process(self) -> None: # create new event_loop after fork @@ -57,30 +57,39 @@ def run(self) -> None: self.loop.run_until_complete(self._task) except Exception: self.log.exception("Exception in gunicorn worker") - if sys.version_info >= (3, 6): - self.loop.run_until_complete(self.loop.shutdown_asyncgens()) + self.loop.run_until_complete(self.loop.shutdown_asyncgens()) self.loop.close() sys.exit(self.exit_code) async def _run(self) -> None: + runner = None if isinstance(self.wsgi, Application): app = self.wsgi elif asyncio.iscoroutinefunction(self.wsgi): - app = await self.wsgi() + wsgi = await self.wsgi() + if isinstance(wsgi, web.AppRunner): + runner = wsgi + app = runner.app + else: + app = wsgi else: raise RuntimeError( "wsgi app should be either Application or " "async function returning Application, got {}".format(self.wsgi) ) - access_log = self.log.access_log if self.cfg.accesslog else None - runner = web.AppRunner( - app, - logger=self.log, - keepalive_timeout=self.cfg.keepalive, - access_log=access_log, - access_log_format=self._get_valid_log_format(self.cfg.access_log_format), - ) + + if runner is None: + access_log = self.log.access_log if self.cfg.accesslog else None + runner = web.AppRunner( + app, + logger=self.log, + keepalive_timeout=self.cfg.keepalive, + access_log=access_log, + access_log_format=self._get_valid_log_format( + self.cfg.access_log_format + ), + ) await runner.setup() ctx = self._create_ssl_context(self.cfg) if self.cfg.is_ssl else None @@ -101,11 +110,11 @@ async def _run(self) -> None: # If our parent changed then we shut down. pid = os.getpid() try: - while self.alive: # type: ignore + while self.alive: # type: ignore[has-type] self.notify() cnt = server.requests_count - if self.cfg.max_requests and cnt > self.cfg.max_requests: + if self.max_requests and cnt > self.max_requests: self.alive = False self.log.info("Max requests, shutting down: %s", self) @@ -171,6 +180,14 @@ def init_signals(self) -> None: # by interrupting system calls signal.siginterrupt(signal.SIGTERM, False) signal.siginterrupt(signal.SIGUSR1, False) + # Reset signals so Gunicorn doesn't swallow subprocess return codes + # See: https://github.com/aio-libs/aiohttp/issues/6130 + if sys.version_info < (3, 8): + # Starting from Python 3.8, + # the default child watcher is ThreadedChildWatcher. + # The watcher doesn't depend on SIGCHLD signal, + # there is no need to reset it. + signal.signal(signal.SIGCHLD, signal.SIG_DFL) def handle_quit(self, sig: int, frame: FrameType) -> None: self.alive = False diff --git a/debian/changelog b/debian/changelog index 89dd1f3..cd78f81 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,64 @@ +python-aiohttp (3.8.6-1) unstable; urgency=medium + + * New upstream release + + -- Piotr Ożarowski Sat, 14 Oct 2023 13:12:38 +0200 + +python-aiohttp (3.8.5-1) unstable; urgency=medium + + * New upstream release + + -- Piotr Ożarowski Sun, 20 Aug 2023 14:19:30 +0200 + +python-aiohttp (3.8.4-1) unstable; urgency=medium + + [ Debian Janitor ] + * Update standards version to 4.6.2, no changes needed. + + [ Piotr Ożarowski ] + * New upstream release + + -- Piotr Ożarowski Thu, 16 Feb 2023 11:54:52 +0100 + +python-aiohttp (3.8.3-1) unstable; urgency=medium + + * New upstream release + + -- Piotr Ożarowski Mon, 31 Oct 2022 09:58:46 +0100 + +python-aiohttp (3.8.1-5) unstable; urgency=medium + + [ Debian Janitor ] + * Remove constraints unnecessary since buster (oldstable): + + Build-Depends: Drop versioned constraint on python3-all-dev and + python3-yarl. + + python3-aiohttp: Drop versioned constraint on python3-yarl in Depends. + + -- Jelmer Vernooij Fri, 14 Oct 2022 11:57:30 +0100 + +python-aiohttp (3.8.1-4) unstable; urgency=high + + * Team upload. + * debian/control: Add versioned dependency (Closes: #1001642): + + python3-async-timeout (>= 4.0.1) + * debian/py3dist-overrides: Add "idna_ssl python3-idna-ssl" line + to suppress build error raised by newer dh_python3. + + -- Boyuan Yang Sun, 19 Dec 2021 01:05:53 -0500 + +python-aiohttp (3.8.1-3) unstable; urgency=medium + + * Add python3-charset-normalizer to (Build-)Depends (closes: 1000848) + + -- Piotr Ożarowski Tue, 30 Nov 2021 13:58:24 +0100 + +python-aiohttp (3.8.1-2) unstable; urgency=medium + + * New upstream release (closes: 1000680) + * docs: temporarily remove news (sphinxcontrib.towncrier is not yet packaged) + + -- Piotr Ożarowski Sat, 27 Nov 2021 17:20:40 +0100 + python-aiohttp (3.7.4-2) unstable; urgency=medium * Team upload. diff --git a/debian/control b/debian/control index 0fb6343..d874e65 100644 --- a/debian/control +++ b/debian/control @@ -8,22 +8,27 @@ Uploaders: Tianon Gravi , William Grzybowski Build-Depends: debhelper-compat (= 13), dh-python, - python3-all-dev (>= 3.5.3~), + python3-all-dev, python3-setuptools, python3-sphinx, python3-multidict, python3-async-timeout, - python3-yarl (>= 1.0), + python3-yarl, cython3, + python3-aiosignal, + python3-aiodns, + python3-attr, + python3-frozenlist, # for tests: python3-pytest, python3-pytest-mock, python3-chardet, + python3-charset-normalizer, python3-gunicorn, # for documentation: python3-sphinxcontrib.blockdiag Rules-Requires-Root: no -Standards-Version: 4.5.1 +Standards-Version: 4.6.2 Homepage: https://aiohttp.readthedocs.org Vcs-Git: https://salsa.debian.org/python-team/packages/python-aiohttp.git Vcs-Browser: https://salsa.debian.org/python-team/packages/python-aiohttp @@ -31,8 +36,8 @@ Testsuite: autopkgtest-pkg-python Package: python3-aiohttp Architecture: any -Depends: python3-yarl (>= 1.0), ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ${sphinxdoc:Depends} -Recommends: libjs-jquery +Depends: python3-yarl, python3-async-timeout (>= 4.0.1), ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ${sphinxdoc:Depends} +Recommends: libjs-jquery, python3-aiodns Description: http client/server for asyncio HTTP Client for asyncio (PEP 3156 - Asynchronous I/O Support). . diff --git a/debian/gbp.conf b/debian/gbp.conf index cec628c..b4fd331 100644 --- a/debian/gbp.conf +++ b/debian/gbp.conf @@ -1,2 +1,3 @@ [DEFAULT] pristine-tar = True +filter = [ '*.egg-info' ] diff --git a/debian/patches/0003-remove-forkme-button-from-docs-to-prevent-privacy-br.patch b/debian/patches/0003-remove-forkme-button-from-docs-to-prevent-privacy-br.patch index 5b1bb8c..ea54f7b 100644 --- a/debian/patches/0003-remove-forkme-button-from-docs-to-prevent-privacy-br.patch +++ b/debian/patches/0003-remove-forkme-button-from-docs-to-prevent-privacy-br.patch @@ -7,13 +7,13 @@ Subject: remove forkme button from docs to prevent privacy breach 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py -index 6532648..120469c 100644 +index 029db20..e75f1fe 100644 --- a/docs/conf.py +++ b/docs/conf.py -@@ -151,9 +151,9 @@ html_theme_options = { +@@ -178,9 +178,9 @@ html_theme_options = { "canonical_url": "http://docs.aiohttp.org/en/stable/", - "github_user": "aio-libs", - "github_repo": "aiohttp", + "github_user": github_repo_org, + "github_repo": github_repo_name, - "github_button": True, + "github_button": False, "github_type": "star", @@ -21,4 +21,4 @@ index 6532648..120469c 100644 + "github_banner": False, "badges": [ { - "image": "https://github.com/aio-libs/aiohttp/workflows/CI/badge.svg", + "image": f"{github_repo_url}/workflows/CI/badge.svg", diff --git a/debian/patches/0004-remove-sphinxcontrib.towncrier-for-now.patch b/debian/patches/0004-remove-sphinxcontrib.towncrier-for-now.patch new file mode 100644 index 0000000..88756a0 --- /dev/null +++ b/debian/patches/0004-remove-sphinxcontrib.towncrier-for-now.patch @@ -0,0 +1,54 @@ +From: =?utf-8?q?Piotr_O=C5=BCarowski?= +Date: Sat, 27 Nov 2021 17:48:20 +0100 +Subject: remove sphinxcontrib.towncrier for now + +not packaged in Debian yet +--- + docs/changes.rst | 9 +-------- + docs/conf.py | 2 +- + docs/index.rst | 2 +- + 3 files changed, 3 insertions(+), 10 deletions(-) + +diff --git a/docs/changes.rst b/docs/changes.rst +index 6a61dfb..fe6ab50 100644 +--- a/docs/changes.rst ++++ b/docs/changes.rst +@@ -7,11 +7,4 @@ Changelog + To be included in v\ |release| (if present) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +-.. towncrier-draft-entries:: |release| [UNRELEASED DRAFT] +- +-Released versions +-^^^^^^^^^^^^^^^^^ +- +-.. include:: ../CHANGES.rst +- +-.. include:: ../HISTORY.rst ++Temporarily removed in Debian, sorry. +diff --git a/docs/conf.py b/docs/conf.py +index e75f1fe..5df8646 100644 +--- a/docs/conf.py ++++ b/docs/conf.py +@@ -54,7 +54,7 @@ extensions = [ + # Third-party extensions: + "sphinxcontrib.asyncio", + "sphinxcontrib.blockdiag", +- "sphinxcontrib.towncrier", # provides `towncrier-draft-entries` directive ++ # "sphinxcontrib.towncrier", # provides `towncrier-draft-entries` directive + ] + + +diff --git a/docs/index.rst b/docs/index.rst +index 94cebd0..2540d0c 100644 +--- a/docs/index.rst ++++ b/docs/index.rst +@@ -133,7 +133,7 @@ will: + What's new in aiohttp 3? + ======================== + +-Go to :ref:`aiohttp_whats_new_3_0` page for aiohttp 3.0 major release ++Go to aiohttp_whats_new_3_0 page for aiohttp 3.0 major release + changes. + + diff --git a/debian/patches/series b/debian/patches/series index 59848f3..6c11a3e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ 0002-Use-local-install-of-jquery.patch 0002-Add-shebang-to-examples.patch 0003-remove-forkme-button-from-docs-to-prevent-privacy-br.patch +0004-remove-sphinxcontrib.towncrier-for-now.patch diff --git a/debian/py3dist-overrides b/debian/py3dist-overrides new file mode 100644 index 0000000..64e5cfc --- /dev/null +++ b/debian/py3dist-overrides @@ -0,0 +1,2 @@ +# not needed for python3.7+ +idna_ssl python3-idna-ssl diff --git a/debian/rules b/debian/rules index 38e66df..cb11b50 100755 --- a/debian/rules +++ b/debian/rules @@ -11,7 +11,7 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all override_dh_auto_build: sed -i -e '/sphinxcontrib.asyncio/d' -e '/aiohttp_theme/d' docs/conf.py - ${MAKE} -C docs html + ${MAKE} -C docs html || true dh_auto_build override_dh_auto_clean: diff --git a/debian/source/options b/debian/source/options new file mode 100644 index 0000000..b2b7b88 --- /dev/null +++ b/debian/source/options @@ -0,0 +1 @@ +extend-diff-ignore="^[^/]+\.egg-info/" diff --git a/docs/Makefile b/docs/Makefile index 3837ff3..22eaead 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -2,7 +2,7 @@ # # You can set these variables from the command line. -SPHINXOPTS = +SPHINXOPTS = -W --keep-going -n SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build diff --git a/docs/_snippets/cchardet-unmaintained-admonition.rst b/docs/_snippets/cchardet-unmaintained-admonition.rst new file mode 100644 index 0000000..ec290e0 --- /dev/null +++ b/docs/_snippets/cchardet-unmaintained-admonition.rst @@ -0,0 +1,5 @@ +.. warning:: + + Note that the :term:`cchardet` project is known not to support + Python 3.10 or higher. See :issue:`6819` and + :gh:`PyYoshi/cChardet/issues/77` for more details. diff --git a/docs/_static/aiohttp-icon-128x128.png b/docs/_static/aiohttp-icon-128x128.png deleted file mode 100644 index e486a04e36e41cd122cd498f298fe8c1d1e6ea3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4519 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 aGtRAqcJj diff --git a/docs/_static/css/logo-adjustments.css b/docs/_static/css/logo-adjustments.css new file mode 100644 index 0000000..b93746f --- /dev/null +++ b/docs/_static/css/logo-adjustments.css @@ -0,0 +1,7 @@ +.sphinxsidebarwrapper>h1.logo { + display: none; +} + +.sphinxsidebarwrapper>p.logo>a>img.logo { + width: 65%; +} diff --git a/docs/abc.rst b/docs/abc.rst index 7930b28..f905d92 100644 --- a/docs/abc.rst +++ b/docs/abc.rst @@ -19,21 +19,21 @@ aiohttp.web is built on top of few concepts: *application*, *router*, *router* is a *plugable* part: a library user may build a *router* from scratch, all other parts should work with new router seamlessly. -:class:`AbstractRouter` has the only mandatory method: -:meth:`AbstractRouter.resolve` coroutine. It must return an -:class:`AbstractMatchInfo` instance. +:class:`aiohttp.abc.AbstractRouter` has the only mandatory method: +:meth:`aiohttp.abc.AbstractRouter.resolve` coroutine. It must return an +:class:`aiohttp.abc.AbstractMatchInfo` instance. If the requested URL handler is found -:meth:`AbstractMatchInfo.handler` is a :term:`web-handler` for -requested URL and :attr:`AbstractMatchInfo.http_exception` is ``None``. +:meth:`aiohttp.abc.AbstractMatchInfo.handler` is a :term:`web-handler` for +requested URL and :attr:`aiohttp.abc.AbstractMatchInfo.http_exception` is ``None``. -Otherwise :attr:`AbstractMatchInfo.http_exception` is an instance of +Otherwise :attr:`aiohttp.abc.AbstractMatchInfo.http_exception` is an instance of :exc:`~aiohttp.web.HTTPException` like *404: NotFound* or *405: Method -Not Allowed*. :meth:`AbstractMatchInfo.handler` raises -:attr:`~AbstractMatchInfo.http_exception` on call. +Not Allowed*. :meth:`aiohttp.abc.AbstractMatchInfo.handler` raises +:attr:`~aiohttp.abc.AbstractMatchInfo.http_exception` on call. -.. class:: aiohttp.abc.AbstractRouter +.. class:: AbstractRouter Abstract router, :class:`aiohttp.web.Application` accepts it as *router* parameter and returns as @@ -49,12 +49,12 @@ Not Allowed*. :meth:`AbstractMatchInfo.handler` raises :attr:`aiohttp.web.Request.match_info` equals to ``None`` at resolving stage. - :return: :class:`AbstractMatchInfo` instance. + :return: :class:`aiohttp.abc.AbstractMatchInfo` instance. -.. class:: aiohttp.abc.AbstractMatchInfo +.. class:: AbstractMatchInfo - Abstract *match info*, returned by :meth:`AbstractRouter.resolve` call. + Abstract *match info*, returned by :meth:`aiohttp.abc.AbstractRouter.resolve` call. .. attribute:: http_exception @@ -100,9 +100,9 @@ attribute. Abstract Cookie Jar ------------------- -.. class:: aiohttp.abc.AbstractCookieJar +.. class:: AbstractCookieJar - The cookie jar instance is available as :attr:`ClientSession.cookie_jar`. + The cookie jar instance is available as :attr:`aiohttp.ClientSession.cookie_jar`. The jar contains :class:`~http.cookies.Morsel` items for storing internal cookie data. @@ -145,12 +145,28 @@ Abstract Cookie Jar :return: :class:`http.cookies.SimpleCookie` with filtered cookies for given URL. -Abstract Abstract Access Logger + .. method:: clear(predicate=None) + + Removes all cookies from the jar if the predicate is ``None``. Otherwise remove only those :class:`~http.cookies.Morsel` that ``predicate(morsel)`` returns ``True``. + + :param predicate: callable that gets :class:`~http.cookies.Morsel` as a parameter and returns ``True`` if this :class:`~http.cookies.Morsel` must be deleted from the jar. + + .. versionadded:: 3.8 + + .. method:: clear_domain(domain) + + Remove all cookies from the jar that belongs to the specified domain or its subdomains. + + :param str domain: domain for which cookies must be deleted from the jar. + + .. versionadded:: 3.8 + +Abstract Access Logger ------------------------------- -.. class:: aiohttp.abc.AbstractAccessLogger +.. class:: AbstractAccessLogger - An abstract class, base for all :class:`RequestHandler` + An abstract class, base for all :class:`aiohttp.web.RequestHandler` ``access_logger`` implementations Method ``log`` should be overridden. diff --git a/docs/aiohttp-icon.svg b/docs/aiohttp-icon.svg index 9356d47..0b3ebac 100644 --- a/docs/aiohttp-icon.svg +++ b/docs/aiohttp-icon.svg @@ -1,62 +1 @@ - - - - - - image/svg+xml - - - - - - - - - - - + diff --git a/docs/aiohttp-plain.svg b/docs/aiohttp-plain.svg index f45ccd0..aec1b00 100644 --- a/docs/aiohttp-plain.svg +++ b/docs/aiohttp-plain.svg @@ -1,62 +1 @@ - - - - - - image/svg+xml - - - - - - - - - - - + diff --git a/docs/built_with.rst b/docs/built_with.rst index 12fa64c..e9007d2 100644 --- a/docs/built_with.rst +++ b/docs/built_with.rst @@ -18,6 +18,8 @@ You can also add a **Built with aiohttp** link somewhere in your project, pointing to ``_. +* `Pulp `_ Platform for managing repositories + of software packages and making them available to consumers. * `Molotov `_ Load testing tool. * `Arsenic `_ Async WebDriver. * `Home Assistant `_ Home Automation Platform. diff --git a/docs/changes.rst b/docs/changes.rst index 0ecf1d7..6a61dfb 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -1,5 +1,17 @@ .. _aiohttp_changes: +========= +Changelog +========= + +To be included in v\ |release| (if present) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. towncrier-draft-entries:: |release| [UNRELEASED DRAFT] + +Released versions +^^^^^^^^^^^^^^^^^ + .. include:: ../CHANGES.rst .. include:: ../HISTORY.rst diff --git a/docs/client_advanced.rst b/docs/client_advanced.rst index e4e0919..e8f016a 100644 --- a/docs/client_advanced.rst +++ b/docs/client_advanced.rst @@ -56,6 +56,10 @@ For *text/plain* :: await session.post(url, data='Привет, Мир!') +.. note:: + ``Authorization`` header will be removed if you get redirected + to a different host or protocol. + Custom Cookies -------------- @@ -295,7 +299,7 @@ nature are installed to perform their job in each signal handle:: All signals take as a parameters first, the :class:`ClientSession` instance used by the specific request related to that signals and -second, a :class:`SimpleNamespace` instance called +second, a :class:`~types.SimpleNamespace` instance called ``trace_config_ctx``. The ``trace_config_ctx`` object can be used to share the state through to the different signals that belong to the same request and to the same :class:`TraceConfig` class, perhaps:: @@ -310,7 +314,7 @@ same request and to the same :class:`TraceConfig` class, perhaps:: The ``trace_config_ctx`` param is by default a -:class:`SimpleNampespace` that is initialized at the beginning of the +:class:`~types.SimpleNamespace` that is initialized at the beginning of the request flow. However, the factory used to create this object can be overwritten using the ``trace_config_ctx_factory`` constructor param of the :class:`TraceConfig` class. @@ -522,9 +526,11 @@ DER with e.g:: Proxy support ------------- -aiohttp supports plain HTTP proxies and HTTP proxies that can be upgraded to HTTPS -via the HTTP CONNECT method. aiohttp does not support proxies that must be -connected to via ``https://``. To connect, use the *proxy* parameter:: +aiohttp supports plain HTTP proxies and HTTP proxies that can be +upgraded to HTTPS via the HTTP CONNECT method. aiohttp has a limited +support for proxies that must be connected to via ``https://`` — see +the info box below for more details. +To connect, use the *proxy* parameter:: async with aiohttp.ClientSession() as session: async with session.get("http://python.org", @@ -549,16 +555,47 @@ Contrary to the ``requests`` library, it won't read environment variables by default. But you can do so by passing ``trust_env=True`` into :class:`aiohttp.ClientSession` constructor for extracting proxy configuration from -*HTTP_PROXY* or *HTTPS_PROXY* *environment variables* (both are case -insensitive):: +*HTTP_PROXY*, *HTTPS_PROXY*, *WS_PROXY* or *WSS_PROXY* *environment +variables* (all are case insensitive):: async with aiohttp.ClientSession(trust_env=True) as session: async with session.get("http://python.org") as resp: print(resp.status) +.. versionadded:: 3.8 + + *WS_PROXY* and *WSS_PROXY* are supported since aiohttp v3.8. + Proxy credentials are given from ``~/.netrc`` file if present (see :class:`aiohttp.ClientSession` for more details). +.. attention:: + + CPython has introduced the support for TLS in TLS around Python 3.7. + But, as of now (Python 3.10), it's disabled for the transports that + :py:mod:`asyncio` uses. If the further release of Python (say v3.11) + toggles one attribute, it'll *just work™*. + + aiohttp v3.8 and higher is ready for this to happen and has code in + place supports TLS-in-TLS, hence sending HTTPS requests over HTTPS + proxy tunnels. + + ⚠️ For as long as your Python runtime doesn't declare the support for + TLS-in-TLS, please don't file bugs with aiohttp but rather try to + help the CPython upstream enable this feature. Meanwhile, if you + *really* need this to work, there's a patch that may help you make + it happen, include it into your app's code base: + https://github.com/aio-libs/aiohttp/discussions/6044#discussioncomment-1432443. + +.. important:: + + When supplying a custom :py:class:`ssl.SSLContext` instance, bear in + mind that it will be used not only to establish a TLS session with + the HTTPS endpoint you're hitting but also to establish a TLS tunnel + to the HTTPS proxy. To avoid surprises, make sure to set up the trust + chain that would recognize TLS certificates used by both the endpoint + and the proxy. + Graceful Shutdown ----------------- @@ -603,3 +640,33 @@ are changed so that aiohttp itself can wait on the underlying connection to close. Please follow issue `#1925 `_ for the progress on this. + + +Character Set Detection +----------------------- + +If you encounter an 'Automatic charset detection will be removed' warning +when using :meth:`ClientResponse.text()` this may be because the response +does not include the charset needed to decode the body. + +If you know the correct encoding for a request, you can simply specify +the encoding as a parameter (e.g. ``resp.text("windows-1252")``). + +Alternatively, :class:`ClientSession` accepts a ``fallback_charset_resolver`` parameter which +can be used to reintroduce charset guessing functionality. When a charset is not found +in the Content-Type header, this function will be called to get the charset encoding. For +example, this can be used with the ``chardetng_py`` library.:: + + from chardetng_py import detect + + def charset_resolver(resp: ClientResponse, body: bytes) -> str: + tld = resp.url.host.rsplit(".", maxsplit=1)[-1] + return detect(body, allow_utf8=True, tld=tld) + + ClientSession(fallback_charset_resolver=charset_resolver) + +Or, if ``chardetng_py`` doesn't work for you, then ``charset-normalizer`` is another option:: + + from charset_normalizer import detect + + ClientSession(fallback_charset_resolver=lamba r, b: detect(b)["encoding"] or "utf-8") diff --git a/docs/client_quickstart.rst b/docs/client_quickstart.rst index fe77024..e84209c 100644 --- a/docs/client_quickstart.rst +++ b/docs/client_quickstart.rst @@ -33,9 +33,7 @@ Now, let's try to get a web-page. For example let's query print(resp.status) print(await resp.text()) - - loop = asyncio.get_event_loop() - loop.run_until_complete(main()) + asyncio.run(main()) Now, we have a :class:`ClientSession` called ``session`` and a :class:`ClientResponse` object called ``resp``. We can get all the @@ -55,10 +53,22 @@ Other HTTP methods are available as well:: session.options('http://httpbin.org/get') session.patch('http://httpbin.org/patch', data=b'data') +To make several requests to the same site more simple, the parameter ``base_url`` +of :class:`ClientSession` constructor can be used. For example to request different +endpoints of ``http://httpbin.org`` can be used the following code:: + + async with aiohttp.ClientSession('http://httpbin.org') as session: + async with session.get('/get'): + pass + async with session.post('/post', data=b'data'): + pass + async with session.put('/put', data=b'data'): + pass + .. note:: Don't create a session per request. Most likely you need a session - per application which performs all requests altogether. + per application which performs all requests together. More complex cases may require a session per site, e.g. one for Github and other one for Facebook APIs. Anyway making a session for @@ -96,9 +106,9 @@ following code:: You can see that the URL has been correctly encoded by printing the URL. -For sending data with multiple values for the same key :class:`MultiDict` may be -used; the library support nested lists (``{'key': ['value1', 'value2']}``) -alternative as well. +For sending data with multiple values for the same key +:class:`~multidict.MultiDict` may be used; the library support nested lists +(``{'key': ['value1', 'value2']}``) alternative as well. It is also possible to pass a list of 2 item tuples as parameters, in that case you can specify multiple values for each key:: @@ -174,13 +184,13 @@ The ``gzip`` and ``deflate`` transfer-encodings are automatically decoded for you. You can enable ``brotli`` transfer-encodings support, -just install `brotlipy `_. +just install `brotli `_. JSON Request ============ Any of session's request methods like :func:`request`, -:meth:`ClientSession.get`, :meth:`ClientSesssion.post` etc. accept +:meth:`ClientSession.get`, :meth:`ClientSession.post` etc. accept `json` parameter:: async with aiohttp.ClientSession() as session: @@ -242,10 +252,7 @@ In general, however, you should use a pattern like this to save what is being streamed to a file:: with open(filename, 'wb') as fd: - while True: - chunk = await resp.content.read(chunk_size) - if not chunk: - break + async for chunk in resp.content.iter_chunked(chunk_size): fd.write(chunk) It is not possible to use :meth:`~ClientResponse.read`, @@ -315,7 +322,7 @@ You can set the ``filename`` and ``content_type`` explicitly:: await session.post(url, data=data) If you pass a file object as data parameter, aiohttp will stream it to -the server automatically. Check :class:`~aiohttp.streams.StreamReader` +the server automatically. Check :class:`~aiohttp.StreamReader` for supported format information. .. seealso:: :ref:`aiohttp-multipart` diff --git a/docs/client_reference.rst b/docs/client_reference.rst index 5a420e0..bb2f7e2 100644 --- a/docs/client_reference.rst +++ b/docs/client_reference.rst @@ -32,13 +32,13 @@ Usage example:: html = await fetch(client) print(html) - loop = asyncio.get_event_loop() - loop.run_until_complete(main()) + asyncio.run(main()) The client session supports the context manager protocol for self closing. -.. class:: ClientSession(*, connector=None, loop=None, cookies=None, \ +.. class:: ClientSession(base_url=None, *, \ + connector=None, cookies=None, \ headers=None, skip_auto_headers=None, \ auth=None, json_serialize=json.dumps, \ version=aiohttp.HttpVersion11, \ @@ -51,11 +51,17 @@ The client session supports the context manager protocol for self closing. read_bufsize=2**16, \ requote_redirect_url=False, \ trust_env=False, \ - trace_configs=None) + trace_configs=None, \ + fallback_charset_resolver=_chardet_resolver) The class for creating client sessions and making requests. + :param base_url: Base part of the URL (optional) + If set it allows to skip the base part in request calls. + + .. versionadded:: 3.8 + :param aiohttp.BaseConnector connector: BaseConnector sub-class instance to support connection pooling. @@ -88,14 +94,14 @@ The client session supports the context manager protocol for self closing. that generation. Note that ``Content-Length`` autogeneration can't be skipped. - Iterable of :class:`str` or :class:`~aiohttp.istr` (optional) + Iterable of :class:`str` or :class:`~multidict.istr` (optional) :param aiohttp.BasicAuth auth: an object that represents HTTP Basic Authorization (optional) :param version: supported HTTP version, ``HTTP 1.1`` by default. - :param cookie_jar: Cookie Jar, :class:`AbstractCookieJar` instance. + :param cookie_jar: Cookie Jar, :class:`~aiohttp.abc.AbstractCookieJar` instance. By default every session instance has own private cookie jar for automatic cookies processing but user may redefine this behavior @@ -108,7 +114,7 @@ The client session supports the context manager protocol for self closing. :class:`aiohttp.DummyCookieJar` instance can be provided. - :param callable json_serialize: Json *serializer* callable. + :param collections.abc.Callable json_serialize: Json *serializer* callable. By default :func:`json.dumps` function. @@ -195,6 +201,18 @@ The client session supports the context manager protocol for self closing. disabling. See :ref:`aiohttp-client-tracing-reference` for more information. + :param Callable[[ClientResponse,bytes],str] fallback_charset_resolver: + A :term:`callable` that accepts a :class:`ClientResponse` and the + :class:`bytes` contents, and returns a :class:`str` which will be used as + the encoding parameter to :meth:`bytes.decode()`. + + This function will be called when the charset is not known (e.g. not specified in the + Content-Type header). The default function in 3.8.6 calls ``chardetng`` + or ``charset-normaliser``. In 3.9+ this be replaced with a function that + simply defaults to ``utf-8``. + + .. versionadded:: 3.8.6 + .. attribute:: closed ``True`` if the session has been closed, ``False`` otherwise. @@ -210,7 +228,7 @@ The client session supports the context manager protocol for self closing. .. attribute:: cookie_jar - The session cookies, :class:`~aiohttp.AbstractCookieJar` instance. + The session cookies, :class:`~aiohttp.abc.AbstractCookieJar` instance. Gives access to cookie jar's content and modifiers. @@ -261,7 +279,7 @@ The client session supports the context manager protocol for self closing. Set of headers for which autogeneration skipped. - :class:`frozenset` of :class:`str` or :class:`~aiohttp.istr` (optional) + :class:`frozenset` of :class:`str` or :class:`~multidict.istr` (optional) .. versionadded:: 3.7 @@ -293,7 +311,7 @@ The client session supports the context manager protocol for self closing. Should :meth:`ClientResponse.raise_for_status()` be called for each response - Either :class:`bool` or :class:`callable` + Either :class:`bool` or :class:`collections.abc.Callable` .. versionadded:: 3.7 @@ -335,13 +353,15 @@ The client session supports the context manager protocol for self closing. ssl_context=None, proxy_headers=None) :async-with: :coroutine: - :noindex: + :noindexentry: Performs an asynchronous HTTP request. Returns a response object. :param str method: HTTP method - :param url: Request URL, :class:`str` or :class:`~yarl.URL`. + :param url: Request URL, :class:`~yarl.URL` or :class:`str` that will + be encoded with :class:`~yarl.URL` (see :class:`~yarl.URL` + to skip encoding). :param params: Mapping, iterable of tuple of *key*/*value* pairs or string to be sent as parameters in the query @@ -351,8 +371,8 @@ The client session supports the context manager protocol for self closing. Allowed values are: - :class:`collections.abc.Mapping` e.g. :class:`dict`, - :class:`aiohttp.MultiDict` or - :class:`aiohttp.MultiDictProxy` + :class:`multidict.MultiDict` or + :class:`multidict.MultiDictProxy` - :class:`collections.abc.Iterable` e.g. :class:`tuple` or :class:`list` - :class:`str` with preferably url-encoded content @@ -386,7 +406,7 @@ The client session supports the context manager protocol for self closing. passed. Using ``skip_auto_headers`` parameter allows to skip that generation. - Iterable of :class:`str` or :class:`~aiohttp.istr` + Iterable of :class:`str` or :class:`~multidict.istr` (optional) :param aiohttp.BasicAuth auth: an object that represents HTTP @@ -492,7 +512,7 @@ The client session supports the context manager protocol for self closing. Use ``ssl=ssl_context`` - :param abc.Mapping proxy_headers: HTTP headers to send to the proxy if the + :param collections.abc.Mapping proxy_headers: HTTP headers to send to the proxy if the parameter proxy has been provided. .. versionadded:: 2.3 @@ -644,6 +664,7 @@ The client session supports the context manager protocol for self closing. autoping=True,\ heartbeat=None,\ origin=None, \ + params=None, \ headers=None, \ proxy=None, proxy_auth=None, ssl=None, \ verify_ssl=None, fingerprint=None, \ @@ -655,7 +676,9 @@ The client session supports the context manager protocol for self closing. Create a websocket connection. Returns a :class:`ClientWebSocketResponse` object. - :param url: Websocket server url, :class:`str` or :class:`~yarl.URL` + :param url: Websocket server url, :class:`~yarl.URL` or :class:`str` that + will be encoded with :class:`~yarl.URL` (see :class:`~yarl.URL` + to skip encoding). :param tuple protocols: Websocket protocols @@ -685,6 +708,21 @@ The client session supports the context manager protocol for self closing. :param str origin: Origin header to send to server(optional) + :param params: Mapping, iterable of tuple of *key*/*value* pairs or + string to be sent as parameters in the query + string of the new request. Ignored for subsequent + redirected requests (optional) + + Allowed values are: + + - :class:`collections.abc.Mapping` e.g. :class:`dict`, + :class:`multidict.MultiDict` or + :class:`multidict.MultiDictProxy` + - :class:`collections.abc.Iterable` e.g. :class:`tuple` or + :class:`list` + - :class:`str` with preferably url-encoded content + (**Warning:** content will not be encoded by *aiohttp*) + :param dict headers: HTTP Headers to send with the request (optional) @@ -805,7 +843,9 @@ certification chaining. :param str method: HTTP method - :param url: Requested URL, :class:`str` or :class:`~yarl.URL` + :param url: Request URL, :class:`~yarl.URL` or :class:`str` that will + be encoded with :class:`~yarl.URL` (see :class:`~yarl.URL` + to skip encoding). :param dict params: Parameters to be sent in the query string of the new request (optional) @@ -1082,14 +1122,14 @@ TCPConnector very rare cases. :param int family: TCP socket family, both IPv4 and IPv6 by default. - For *IPv4* only use :const:`socket.AF_INET`, - for *IPv6* only -- :const:`socket.AF_INET6`. + For *IPv4* only use :data:`socket.AF_INET`, + for *IPv6* only -- :data:`socket.AF_INET6`. *family* is ``0`` by default, that means both IPv4 and IPv6 are accepted. To specify only concrete version please pass - :const:`socket.AF_INET` or - :const:`socket.AF_INET6` explicitly. + :data:`socket.AF_INET` or + :data:`socket.AF_INET6` explicitly. :param ssl.SSLContext ssl_context: SSL context used for processing *HTTPS* requests (optional). @@ -1110,8 +1150,8 @@ TCPConnector .. attribute:: family - *TCP* socket family e.g. :const:`socket.AF_INET` or - :const:`socket.AF_INET6` + *TCP* socket family e.g. :data:`socket.AF_INET` or + :data:`socket.AF_INET6` Read-only property. @@ -1213,7 +1253,7 @@ Response object .. class:: ClientResponse - Client response returned by :meth:`ClientSession.request` and family. + Client response returned by :meth:`aiohttp.ClientSession.request` and family. User never creates the instance of ClientResponse class but gets it from API calls. @@ -1229,7 +1269,7 @@ Response object .. attribute:: version - Response's version, :class:`HttpVersion` instance. + Response's version, :class:`~aiohttp.protocol.HttpVersion` instance. .. attribute:: status @@ -1373,12 +1413,8 @@ Response object Read response's body and return decoded :class:`str` using specified *encoding* parameter. - If *encoding* is ``None`` content encoding is autocalculated - using ``Content-Type`` HTTP header and *chardet* tool if the - header is not provided by server. - - :term:`cchardet` is used with fallback to :term:`chardet` if - *cchardet* is not available. + If *encoding* is ``None`` content encoding is determined from the + Content-Type header, or using the ``fallback_charset_resolver`` function. Close underlying connection if data reading gets an error, release connection otherwise. @@ -1387,34 +1423,28 @@ Response object ``None`` for encoding autodetection (default). - :return str: decoded *BODY* - :raise LookupError: if the encoding detected by chardet or cchardet is - unknown by Python (e.g. VISCII). .. note:: If response has no ``charset`` info in ``Content-Type`` HTTP - header :term:`cchardet` / :term:`chardet` is used for content - encoding autodetection. + header :term:`cchardet` / :term:`charset-normalizer` is used for + content encoding autodetection. It may hurt performance. If page encoding is known passing explicit *encoding* parameter might help:: await resp.text('ISO-8859-1') - .. comethod:: json(*, encoding=None, loads=json.loads, \ + .. method:: json(*, encoding=None, loads=json.loads, \ content_type='application/json') + :async: Read response's body as *JSON*, return :class:`dict` using specified *encoding* and *loader*. If data is not still available - a ``read`` call will be done, - - If *encoding* is ``None`` content encoding is autocalculated - using :term:`cchardet` or :term:`chardet` as fallback if - *cchardet* is not available. + a ``read`` call will be done. - if response's `content-type` does not match `content_type` parameter + If response's `content-type` does not match `content_type` parameter :exc:`aiohttp.ContentTypeError` get raised. To disable content type check pass ``None`` value. @@ -1428,7 +1458,7 @@ Response object responses. Autodetection works pretty fine anyway. - :param callable loads: :func:`callable` used for loading *JSON* + :param collections.abc.Callable loads: :term:`callable` used for loading *JSON* data, :func:`json.loads` by default. :param str content_type: specify response's content-type, if content type @@ -1441,22 +1471,14 @@ Response object .. attribute:: request_info - A namedtuple with request URL and headers from :class:`ClientRequest` + A namedtuple with request URL and headers from :class:`~aiohttp.ClientRequest` object, :class:`aiohttp.RequestInfo` instance. .. method:: get_encoding() - Automatically detect content encoding using ``charset`` info in - ``Content-Type`` HTTP header. If this info is not exists or there - are no appropriate codecs for encoding then :term:`cchardet` / - :term:`chardet` is used. - - Beware that it is not always safe to use the result of this function to - decode a response. Some encodings detected by cchardet are not known by - Python (e.g. VISCII). - - :raise RuntimeError: if called before the body has been read, - for :term:`cchardet` usage + Retrieve content encoding using ``charset`` info in ``Content-Type`` HTTP header. + If no charset is present or the charset is not understood by Python, the + ``fallback_charset_resolver`` function associated with the ``ClientSession`` is called. .. versionadded:: 3.0 @@ -1562,7 +1584,7 @@ manually. single message, ``None`` for not overriding per-socket setting. - :param callable dumps: any :term:`callable` that accepts an object and + :param collections.abc.Callable dumps: any :term:`callable` that accepts an object and returns a JSON string (:func:`json.dumps` by default). @@ -1578,14 +1600,14 @@ manually. The method is converted into :term:`coroutine`, *compress* parameter added. - .. comethod:: close(*, code=1000, message=b'') + .. comethod:: close(*, code=WSCloseCode.OK, message=b'') A :ref:`coroutine` that initiates closing handshake by sending :const:`~aiohttp.WSMsgType.CLOSE` message. It waits for close response from server. To add a timeout to `close()` call just wrap the call with `asyncio.wait()` or `asyncio.wait_for()`. - :param int code: closing code + :param int code: closing code. See also :class:`~aiohttp.WSCloseCode`. :param message: optional payload of *close* message, :class:`str` (converted to *UTF-8* encoded bytes) or :class:`bytes`. @@ -1630,7 +1652,7 @@ manually. A :ref:`coroutine` that calls :meth:`receive_str` and loads the JSON string to a Python dict. - :param callable loads: any :term:`callable` that accepts + :param collections.abc.Callable loads: any :term:`callable` that accepts :class:`str` and returns :class:`dict` with parsed JSON (:func:`json.loads` by default). @@ -1688,12 +1710,54 @@ ClientTimeout .. versionadded:: 3.3 + + .. note:: + + Timeouts of 5 seconds or more are rounded for scheduling on the next + second boundary (an absolute time where microseconds part is zero) for the + sake of performance. + + E.g., assume a timeout is ``10``, absolute time when timeout should expire + is ``loop.time() + 5``, and it points to ``12345.67 + 10`` which is equal + to ``12355.67``. + + The absolute time for the timeout cancellation is ``12356``. + + It leads to grouping all close scheduled timeout expirations to exactly + the same time to reduce amount of loop wakeups. + + .. versionchanged:: 3.7 + + Rounding to the next seconds boundary is disabled for timeouts smaller + than 5 seconds for the sake of easy debugging. + + In turn, tiny timeouts can lead to significant performance degradation + on production environment. + + +ETag +^^^^ + +.. class:: ETag(name, is_weak=False) + + Represents `ETag` identifier. + + .. attribute:: value + + Value of corresponding etag without quotes. + + .. attribute:: is_weak + + Flag indicates that etag is weak (has `W/` prefix). + + .. versionadded:: 3.8 + RequestInfo ^^^^^^^^^^^ .. class:: RequestInfo() - A data class with request URL and headers from :class:`ClientRequest` + A data class with request URL and headers from :class:`~aiohttp.ClientRequest` object, available as :attr:`ClientResponse.request_info` attribute. .. attribute:: url @@ -1728,7 +1792,7 @@ BasicAuth Should be used for specifying authorization data in client API, - e.g. *auth* parameter for :meth:`ClientSession.request`. + e.g. *auth* parameter for :meth:`ClientSession.request() `. .. classmethod:: decode(auth_header, encoding='latin1') @@ -1761,7 +1825,7 @@ BasicAuth CookieJar ^^^^^^^^^ -.. class:: CookieJar(*, unsafe=False, quote_cookie=True, loop=None) +.. class:: CookieJar(*, unsafe=False, quote_cookie=True, treat_as_secure_origin = []) The cookie jar instance is available as :attr:`ClientSession.cookie_jar`. @@ -1780,7 +1844,7 @@ CookieJar The class implements :class:`collections.abc.Iterable`, :class:`collections.abc.Sized` and - :class:`aiohttp.AbstractCookieJar` interfaces. + :class:`aiohttp.abc.AbstractCookieJar` interfaces. Implements cookie storage adhering to RFC 6265. @@ -1793,11 +1857,17 @@ CookieJar .. versionadded:: 3.7 - :param bool loop: an :ref:`event loop` instance. - See :class:`aiohttp.abc.AbstractCookieJar` + :param treat_as_secure_origin: (optional) Mark origins as secure + for cookies marked as Secured. Possible types are - .. deprecated:: 2.0 + Possible types are: + + - :class:`tuple` or :class:`list` of + :class:`str` or :class:`yarl.URL` + - :class:`str` + - :class:`yarl.URL` + .. versionadded:: 3.8 .. method:: update_cookies(cookies, response_url=None) @@ -1808,7 +1878,7 @@ CookieJar *iterable* of *pairs* with cookies returned by server's response. - :param str response_url: URL of response, ``None`` for *shared + :param ~yarl.URL response_url: URL of response, ``None`` for *shared cookies*. Regular cookies are coupled with server's URL and are sent only to this server, shared ones are sent in every client request. @@ -1818,7 +1888,7 @@ CookieJar Return jar's cookies acceptable for URL and available in ``Cookie`` header for sending client requests for given URL. - :param str response_url: request's URL for which cookies are asked. + :param ~yarl.URL response_url: request's URL for which cookies are asked. :return: :class:`http.cookies.SimpleCookie` with filtered cookies for given URL. @@ -1839,6 +1909,22 @@ CookieJar :param file_path: Path to file from where cookies will be imported, :class:`str` or :class:`pathlib.Path` instance. + .. method:: clear(predicate=None) + + Removes all cookies from the jar if the predicate is ``None``. Otherwise remove only those :class:`~http.cookies.Morsel` that ``predicate(morsel)`` returns ``True``. + + :param predicate: callable that gets :class:`~http.cookies.Morsel` as a parameter and returns ``True`` if this :class:`~http.cookies.Morsel` must be deleted from the jar. + + .. versionadded:: 4.0 + + .. method:: clear_domain(domain) + + Remove all cookies from the jar that belongs to the specified domain or its subdomains. + + :param str domain: domain for which cookies must be deleted from the jar. + + .. versionadded:: 4.0 + .. class:: DummyCookieJar(*, loop=None) @@ -1884,7 +1970,7 @@ added with at least one optional argument to :meth:`add_field[-no-extensions] + + For example, if you want to run tests for python3.7 + without extensions, you can run this command:: + + make test-3.7-no-extensions Tests coverage -------------- diff --git a/docs/deployment.rst b/docs/deployment.rst index e542a34..60f218e 100644 --- a/docs/deployment.rst +++ b/docs/deployment.rst @@ -37,7 +37,7 @@ Nginx+supervisord Running aiohttp servers behind :term:`nginx` makes several advantages. -At first, nginx is the perfect frontend server. It may prevent many +First, nginx is the perfect frontend server. It may prevent many attacks based on malformed http protocol etc. Second, running several aiohttp instances behind nginx allows to @@ -51,10 +51,10 @@ But this way requires more complex configuration. Nginx configuration -------------------- -Here is short extraction about writing Nginx configuration file. +Here is short example of an Nginx configuration file. It does not cover all available Nginx options. -For full reference read `Nginx tutorial +For full details, read `Nginx tutorial `_ and `official Nginx documentation `_. @@ -86,8 +86,8 @@ First configure HTTP server itself: } } -This config listens on port ``80`` for server named ``example.com`` -and redirects everything to ``aiohttp`` backend group. +This config listens on port ``80`` for a server named ``example.com`` +and redirects everything to the ``aiohttp`` backend group. Also it serves static files from ``/path/to/app/static`` path as ``example.com/static``. @@ -124,20 +124,20 @@ selection. .. note:: - Nginx is not the only existing *reverse proxy server* but the most + Nginx is not the only existing *reverse proxy server*, but it's the most popular one. Alternatives like HAProxy may be used as well. Supervisord ----------- -After configuring Nginx we need to start our aiohttp backends. Better -to use some tool for starting them automatically after system reboot +After configuring Nginx we need to start our aiohttp backends. It's best +to use some tool for starting them automatically after a system reboot or backend crash. -There are very many ways to do it: Supervisord, Upstart, Systemd, +There are many ways to do it: Supervisord, Upstart, Systemd, Gaffer, Circus, Runit etc. -Here we'll use `Supervisord `_ for example: +Here we'll use `Supervisord `_ as an example: .. code-block:: cfg @@ -159,7 +159,7 @@ Here we'll use `Supervisord `_ for example: aiohttp server -------------- -The last step is preparing aiohttp server for working with supervisord. +The last step is preparing the aiohttp server to work with supervisord. Assuming we have properly configured :class:`aiohttp.web.Application` and port is specified by command line, the task is trivial: @@ -196,17 +196,17 @@ aiohttp can be deployed using `Gunicorn pre-fork worker model. Gunicorn launches your app as worker processes for handling incoming requests. -In opposite to deployment with :ref:`bare Nginx -` the solution does not need to -manually run several aiohttp processes and use tool like supervisord -for monitoring it. But nothing is for free: running aiohttp +As opposed to deployment with :ref:`bare Nginx +`, this solution does not need to +manually run several aiohttp processes and use a tool like supervisord +to monitor them. But nothing is free: running aiohttp application under gunicorn is slightly slower. Prepare environment ------------------- -You firstly need to setup your deployment environment. This example is +You first need to setup your deployment environment. This example is based on `Ubuntu `_ 16.04. Create a directory for your application:: @@ -214,7 +214,7 @@ Create a directory for your application:: >> mkdir myapp >> cd myapp -Create Python virtual environment:: +Create a Python virtual environment:: >> python3 -m venv venv >> source venv/bin/activate diff --git a/docs/glossary.rst b/docs/glossary.rst index bc5e116..6512185 100644 --- a/docs/glossary.rst +++ b/docs/glossary.rst @@ -32,11 +32,12 @@ Any object that can be called. Use :func:`callable` to check that. - chardet + charset-normalizer - The Universal Character Encoding Detector + The Real First Universal Charset Detector. + Open, modern and actively maintained alternative to Chardet. - https://pypi.python.org/pypi/chardet/ + https://pypi.org/project/charset-normalizer/ cchardet @@ -45,6 +46,8 @@ https://pypi.python.org/pypi/cchardet/ + .. include:: _snippets/cchardet-unmaintained-admonition.rst + gunicorn Gunicorn 'Green Unicorn' is a Python WSGI HTTP Server for diff --git a/docs/http_request_lifecycle.rst b/docs/http_request_lifecycle.rst index e14fb03..22f6fbb 100644 --- a/docs/http_request_lifecycle.rst +++ b/docs/http_request_lifecycle.rst @@ -77,8 +77,7 @@ So you are expected to reuse a session object and make many requests from it. Fo html = await response.text() print(html) - loop = asyncio.get_event_loop() - loop.run_until_complete(main()) + asyncio.run(main()) Can become this: @@ -98,8 +97,7 @@ Can become this: html = await fetch(session, 'http://python.org') print(html) - loop = asyncio.get_event_loop() - loop.run_until_complete(main()) + asyncio.run(main()) On more complex code bases, you can even create a central registry to hold the session object from anywhere in the code, or a higher level ``Client`` class that holds a reference to it. diff --git a/docs/index.rst b/docs/index.rst index 13fe723..94cebd0 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -34,12 +34,14 @@ Library Installation $ pip install aiohttp You may want to install *optional* :term:`cchardet` library as faster -replacement for :term:`chardet`: +replacement for :term:`charset-normalizer`: .. code-block:: bash $ pip install cchardet +.. include:: _snippets/cchardet-unmaintained-admonition.rst + For speeding up DNS resolving by client API you may install :term:`aiodns` as well. This option is highly recommended: @@ -48,11 +50,11 @@ This option is highly recommended: $ pip install aiodns -Installing speedups altogether ------------------------------- +Installing all speedups in one command +-------------------------------------- -The following will get you ``aiohttp`` along with :term:`chardet`, -:term:`aiodns` and ``brotlipy`` in one bundle. No need to type +The following will get you ``aiohttp`` along with :term:`cchardet`, +:term:`aiodns` and ``Brotli`` in one bundle. No need to type separate commands anymore! .. code-block:: bash @@ -81,8 +83,7 @@ Client example html = await response.text() print("Body:", html[:15], "...") - loop = asyncio.get_event_loop() - loop.run_until_complete(main()) + asyncio.run(main()) This prints: @@ -117,6 +118,18 @@ Server example: For more information please visit :ref:`aiohttp-client` and :ref:`aiohttp-web` pages. +Development mode +================ + +When writing your code, we recommend enabling Python's +`development mode `_ +(``python -X dev``). In addition to the extra features enabled for asyncio, aiohttp +will: + +- Use a strict parser in the client code (which can help detect malformed responses + from a server). +- Enable some additional checks (resulting in warnings in certain situations). + What's new in aiohttp 3? ======================== @@ -139,9 +152,6 @@ Please feel free to file an issue on the `bug tracker `_ if you have found a bug or have some suggestion in order to improve the library. -The library uses `Azure Pipelines `_ for -Continuous Integration. - Dependencies ============ @@ -149,17 +159,9 @@ Dependencies - Python 3.6+ - *async_timeout* - *attrs* -- *chardet* +- *charset-normalizer* - *multidict* - *yarl* -- *Optional* :term:`cchardet` as faster replacement for - :term:`chardet`. - - Install it explicitly via: - - .. code-block:: bash - - $ pip install cchardet - *Optional* :term:`aiodns` for fast DNS resolving. The library is highly recommended. diff --git a/docs/multipart.rst b/docs/multipart.rst index b6ecc63..ef821ca 100644 --- a/docs/multipart.rst +++ b/docs/multipart.rst @@ -152,9 +152,9 @@ will include the file's basename:: part = root.append(open(__file__, 'rb')) If you want to send a file with a different name, just handle the -:class:`Payload` instance which :meth:`MultipartWriter.append` will +:class:`~aiohttp.payload.Payload` instance which :meth:`MultipartWriter.append` will always return and set `Content-Disposition` explicitly by using -the :meth:`Payload.set_content_disposition` helper:: +the :meth:`Payload.set_content_disposition() ` helper:: part.set_content_disposition('attachment', filename='secret.txt') diff --git a/docs/multipart_reference.rst b/docs/multipart_reference.rst index 032ecc8..90fda21 100644 --- a/docs/multipart_reference.rst +++ b/docs/multipart_reference.rst @@ -7,7 +7,7 @@ Multipart reference .. class:: MultipartResponseWrapper(resp, stream) - Wrapper around the :class:`MultipartBodyReader` to take care about + Wrapper around the :class:`MultipartReader` to take care about underlying connection and close it when it needs in. @@ -135,7 +135,7 @@ Multipart reference Constructs reader instance from HTTP response. - :param response: :class:`~aiohttp.client.ClientResponse` instance + :param response: :class:`~aiohttp.ClientResponse` instance .. method:: at_eof() diff --git a/docs/new_router.rst b/docs/new_router.rst index a88b208..dd09149 100644 --- a/docs/new_router.rst +++ b/docs/new_router.rst @@ -45,7 +45,7 @@ User still may use wildcard for accepting all HTTP methods (maybe we will add something like ``resource.add_wildcard(handler)`` later). Since **names** belongs to **resources** now ``app.router['name']`` -returns a **resource** instance instead of :class:`aiohttp.web.Route`. +returns a **resource** instance instead of :class:`aiohttp.web.AbstractRoute`. **resource** has ``.url()`` method, so ``app.router['name'].url(parts={'a': 'b'}, query={'arg': 'param'})`` @@ -65,8 +65,8 @@ The refactoring is 99% compatible with previous implementation. 99% means all example and the most of current code works without modifications but we have subtle API backward incompatibles. -``app.router['name']`` returns a :class:`aiohttp.web.BaseResource` -instance instead of :class:`aiohttp.web.Route` but resource has the +``app.router['name']`` returns a :class:`aiohttp.web.AbstractResource` +instance instead of :class:`aiohttp.web.AbstractRoute` but resource has the same ``resource.url(...)`` most useful method, so end user should feel no difference. @@ -81,4 +81,4 @@ shortcut for:: return route ``app.router.register_route(...)`` is still supported, it creates -:class:`aiohttp.web.ResourceAdapter` for every call (but it's deprecated now). +``aiohttp.web.ResourceAdapter`` for every call (but it's deprecated now). diff --git a/docs/powered_by.rst b/docs/powered_by.rst index c6e4971..58ce026 100644 --- a/docs/powered_by.rst +++ b/docs/powered_by.rst @@ -16,7 +16,6 @@ make a Pull Request! * `GNS3 `_ * `TutorCruncher socket `_ -* `Morpheus messaging microservice `_ * `Eyepea - Custom telephony solutions `_ * `ALLOcloud - Telephony in the cloud `_ * `helpmanual - comprehensive help and man page database diff --git a/docs/signals.rst b/docs/signals.rst deleted file mode 100644 index 1126c2f..0000000 --- a/docs/signals.rst +++ /dev/null @@ -1,45 +0,0 @@ -Signals -======= - -.. currentmodule:: aiohttp - -Signal is a list of registered asynchronous callbacks. - -The signal's life-cycle has two stages: after creation its content -could be filled by using standard list operations: ``sig.append()`` -etc. - -After ``sig.freeze()`` call the signal is *frozen*: adding, removing -and dropping callbacks are forbidden. - -The only available operation is calling previously registered -callbacks by ``await sig.send(data)``. - -For concrete usage examples see :ref:`signals in aiohttp.web -` chapter. - -.. versionchanged:: 3.0 - - ``sig.send()`` call is forbidden for non-frozen signal. - - Support for regular (non-async) callbacks is dropped. All callbacks - should be async functions. - - -.. class:: Signal - - The signal, implements :class:`collections.abc.MutableSequence` - interface. - - .. comethod:: send(*args, **kwargs) - - Call all registered callbacks one by one starting from the begin - of list. - - .. attribute:: frozen - - ``True`` if :meth:`freeze` was called, read-only property. - - .. method:: freeze() - - Freeze the list. After the call any content modification is forbidden. diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt index ebf58fd..1626b18 100644 --- a/docs/spelling_wordlist.txt +++ b/docs/spelling_wordlist.txt @@ -1,86 +1,5 @@ -# de-facto: -Arsenic -Backport -Backporting -BaseEventLoop -BasicAuth -BodyPartReader -Bugfixes -BytesIO -brotli -brotlipy -pydantic -CIMultiDict -CPython -Changelog -ClientSession -Codings -Config -CookieJar -Coroutine -Ctrl -Cython -Cythonize -DER -DNSResolver -Dev -Dict -Discord -Django -Dup -Facebook -HTTPException -HttpProcessingError -IP -IPv -Indices -Jinja -KiB -Locator -Mako -Mixcloud -Mongo -Mongo -MsgType -Multidicts -Multipart -Nagle -Nagle’s -Nginx -Nikolay -OAuth -Online -Overridable -PRs -Paolini -Postgres -Punycode -Pytest -Quickstart -Redis -RequestContextManager -Request’s -Runit -SSLContext -Satisfiable -Skyscanner -SocketSocketTransport -Supervisord -Svetlov -Systemd -TCP -TLS -Teardown -TestClient -Testsuite -Tf -UI -Unittest -WSMessage -WSMsgType -Websockets -Workflow abc +addons aiodns aioes aiohttp @@ -91,9 +10,10 @@ alives api api’s app -apps app’s +apps arg +Arsenic async asyncio auth @@ -107,57 +27,95 @@ awaitable backend backends backport +Backport +Backporting backports +BaseEventLoop basename +BasicAuth +BodyPartReader boolean botocore +brotli +brotlipy bugfix +bugfixes +Bugfixes builtin -cChardet +BytesIO +callables cancelled canonicalization canonicalize cchardet +cChardet ceil +Changelog +chardet +Chardet charset charsetdetect chunked chunking +CIMultiDict +ClientSession cls cmd codec +Codings committer committers config +Config configs conjunction contextmanager +CookieJar coroutine +Coroutine coroutines cpu +CPython css ctor +Ctrl cython +Cython +Cythonize cythonized de deduplicate +# de-facto: deprecations +DER dev +Dev dict +Dict +Discord django +Django dns +DNSResolver docstring +docstrings +Dup elasticsearch encodings env environ eof epoll +etag +ETag +expirations +Facebook facto fallback fallbacks filename finalizers +formatter formatters frontend getall @@ -170,36 +128,48 @@ gzipped hackish highlevel hostnames +HTTPException +HttpProcessingError httpretty https impl incapsulates +Indices infos initializer inline intaking io ip +IP ipdb +ipv +IPv ish +isort iterable iterables javascript +Jinja json keepalive keepalived keepalives keepaliving kib +KiB kwarg latin lifecycle linux localhost +Locator login lookup lookups lossless +lowercased +Mako manylinux metadata microservice @@ -208,23 +178,38 @@ middlewares miltidict misbehaviors misformed +Mixcloud +Mongo +Mongo msg +MsgType multi multidict -multidicts multidict’s +multidicts +Multidicts multipart +Multipart mypy +Nagle +Nagle’s namedtuple nameservers namespace netrc nginx +Nginx +Nikolay noop +normalizer nowait +OAuth +Online optimizations os outcoming +Overridable +Paolini param params parsers @@ -238,24 +223,32 @@ plugable plugin poller pong +Postgres pre preloaded proactor programmatically proxied +PRs pubsub +Punycode py +pydantic pyenv pyflakes pytest +Pytest +Quickstart quote’s readonly readpayload rebase redirections +Redis refactor refactored refactoring +referenceable regex regexps regexs @@ -265,23 +258,31 @@ renderers repo repr repr’s +RequestContextManager request’s +Request’s requote requoting resolvehost resolvers reusage reuseconn +Runit runtime +runtimes sa +Satisfiable schemas sendfile serializable serializer shourtcuts skipuntil +Skyscanner +SocketSocketTransport softwares ssl +SSLContext startup subapplication subclasses @@ -292,48 +293,65 @@ subprotocol subprotocols subtype supervisord +Supervisord +Svetlov symlink symlinks syscall syscalls +Systemd tarball +TCP teardown +Teardown +TestClient +Testsuite +Tf timestamps +TLS toolbar toplevel towncrier tp tuples -uWSGI +UI un unawaited unclosed unhandled unicode unittest +Unittest unix unsets unstripped +uppercased upstr url urldispatcher urlencoded -urls url’s +urls utf utils uvloop +uWSGI vcvarsall +vendored waituntil wakeup wakeups webapp websocket -websockets websocket’s +websockets +Websockets wildcard +Workflow ws wsgi +WSMessage +WSMsgType wss www xxx diff --git a/docs/streams.rst b/docs/streams.rst index 8356c39..25a83be 100644 --- a/docs/streams.rst +++ b/docs/streams.rst @@ -7,7 +7,7 @@ Streaming API ``aiohttp`` uses streams for retrieving *BODIES*: -:attr:`aiohttp.web.Request.content` and +:attr:`aiohttp.web.BaseRequest.content` and :attr:`aiohttp.ClientResponse.content` are properties with stream API. @@ -16,7 +16,7 @@ Streaming API The reader from incoming stream. User should never instantiate streams manually but use existing - :attr:`aiohttp.web.Request.content` and + :attr:`aiohttp.web.BaseRequest.content` and :attr:`aiohttp.ClientResponse.content` properties for accessing raw BODY data. @@ -70,6 +70,19 @@ Reading Methods :return bytes: the given line +.. comethod:: StreamReader.readuntil(separator="\n") + + Read until separator, where `separator` is a sequence of bytes. + + If EOF is received, and `separator` was not found, the method will + return the partial read bytes. + + If the EOF was received and the internal buffer is empty, return an + empty bytes object. + + .. versionadded:: 3.8 + + :return bytes: the given data .. comethod:: StreamReader.readchunk() diff --git a/docs/testing.rst b/docs/testing.rst index d722f3a..828c3d0 100644 --- a/docs/testing.rst +++ b/docs/testing.rst @@ -1,10 +1,10 @@ +.. module:: aiohttp.test_utils + .. _aiohttp-testing: Testing ======= -.. currentmodule:: aiohttp.test_utils - Testing aiohttp web servers --------------------------- @@ -57,7 +57,7 @@ requests to this server. :class:`~aiohttp.test_utils.TestServer` runs :class:`aiohttp.web.Application` based server, :class:`~aiohttp.test_utils.RawTestServer` starts -:class:`aiohttp.web.WebServer` low level server. +:class:`aiohttp.web.Server` low level server. For performing HTTP requests to these servers you have to create a test client: :class:`~aiohttp.test_utils.TestClient` instance. @@ -243,7 +243,7 @@ Unittest To test applications with the standard library's unittest or unittest-based functionality, the AioHTTPTestCase is provided:: - from aiohttp.test_utils import AioHTTPTestCase, unittest_run_loop + from aiohttp.test_utils import AioHTTPTestCase from aiohttp import web class MyAppTestCase(AioHTTPTestCase): @@ -259,26 +259,11 @@ functionality, the AioHTTPTestCase is provided:: app.router.add_get('/', hello) return app - # the unittest_run_loop decorator can be used in tandem with - # the AioHTTPTestCase to simplify running - # tests that are asynchronous - @unittest_run_loop async def test_example(self): - resp = await self.client.request("GET", "/") - assert resp.status == 200 - text = await resp.text() - assert "Hello, world" in text - - # a vanilla example - def test_example_vanilla(self): - async def test_get_route(): - url = "/" - resp = await self.client.request("GET", url) - assert resp.status == 200 + async with self.client.request("GET", "/") as resp: + self.assertEqual(resp.status, 200) text = await resp.text() - assert "Hello, world" in text - - self.loop.run_until_complete(test_get_route()) + self.assertIn("Hello, world", text) .. class:: AioHTTPTestCase @@ -306,7 +291,7 @@ functionality, the AioHTTPTestCase is provided:: .. attribute:: app - The application returned by :meth:`get_app` + The application returned by :meth:`~aiohttp.test_utils.AioHTTPTestCase.get_application` (:class:`aiohttp.web.Application` instance). .. comethod:: get_client() @@ -337,18 +322,34 @@ functionality, the AioHTTPTestCase is provided:: .. comethod:: setUpAsync() - This async method do nothing by default and can be overridden to execute - asynchronous code during the ``setUp`` stage of the ``TestCase``. + This async method can be overridden to execute asynchronous code during + the ``setUp`` stage of the ``TestCase``:: + + async def setUpAsync(self): + await super().setUpAsync() + await foo() .. versionadded:: 2.3 + .. versionchanged:: 3.8 + + ``await super().setUpAsync()`` call is required. + .. comethod:: tearDownAsync() - This async method do nothing by default and can be overridden to execute - asynchronous code during the ``tearDown`` stage of the ``TestCase``. + This async method can be overridden to execute asynchronous code during + the ``tearDown`` stage of the ``TestCase``:: + + async def tearDownAsync(self): + await super().tearDownAsync() + await foo() .. versionadded:: 2.3 + .. versionchanged:: 3.8 + + ``await super().tearDownAsync()`` call is required. + .. method:: setUp() Standard test initialization method. @@ -361,16 +362,13 @@ functionality, the AioHTTPTestCase is provided:: .. note:: The ``TestClient``'s methods are asynchronous: you have to - execute function on the test client using asynchronous methods. - - A basic test class wraps every test method by - :func:`unittest_run_loop` decorator:: + execute functions on the test client using asynchronous methods.:: class TestA(AioHTTPTestCase): - @unittest_run_loop async def test_f(self): - resp = await self.client.get('/') + async with self.client.get('/') as resp: + body = await resp.text() .. decorator:: unittest_run_loop: @@ -381,6 +379,10 @@ functionality, the AioHTTPTestCase is provided:: Handles executing an asynchronous function, using the :attr:`AioHTTPTestCase.loop` of the :class:`AioHTTPTestCase`. + .. deprecated:: 3.8 + In 3.8+ :class:`AioHTTPTestCase` inherits from :class:`unittest.IsolatedAsyncioTestCase` + making this decorator unneeded. It is now a no-op. + Faking request object --------------------- @@ -460,7 +462,7 @@ conditions that hard to reproduce on real server:: :type writer: aiohttp.StreamWriter :param transport: asyncio transport instance - :type transport: asyncio.transports.Transport + :type transport: asyncio.Transport :param payload: raw payload reader object :type payload: aiohttp.StreamReader @@ -527,7 +529,7 @@ basis, the TestClient object can be used directly:: A full list of the utilities provided can be found at the -:data:`api reference ` +:mod:`api reference ` Testing API Reference @@ -539,15 +541,15 @@ Test server Runs given :class:`aiohttp.web.Application` instance on random TCP port. After creation the server is not started yet, use -:meth:`~aiohttp.test_utils.TestServer.start_server` for actual server -starting and :meth:`~aiohttp.test_utils.TestServer.close` for +:meth:`~aiohttp.test_utils.BaseTestServer.start_server` for actual server +starting and :meth:`~aiohttp.test_utils.BaseTestServer.close` for stopping/cleanup. Test server usually works in conjunction with :class:`aiohttp.test_utils.TestClient` which provides handy client methods for accessing to the server. -.. class:: BaseTestServer(*, scheme='http', host='127.0.0.1', port=None) +.. class:: BaseTestServer(*, scheme='http', host='127.0.0.1', port=None, socket_factory=get_port_socket) Base class for test servers. @@ -561,6 +563,13 @@ for accessing to the server. .. versionadded:: 3.0 + :param collections.abc.Callable[[str,int,socket.AddressFamily],socket.socket] socket_factory: optional + Factory to create a socket for the server. + By default creates a TCP socket and binds it + to ``host`` and ``port``. + + .. versionadded:: 3.8 + .. attribute:: scheme A *scheme* for tested application, ``'http'`` for non-protected @@ -576,12 +585,18 @@ for accessing to the server. .. attribute:: handler - :class:`aiohttp.web.WebServer` used for HTTP requests serving. + :class:`aiohttp.web.Server` used for HTTP requests serving. .. attribute:: server :class:`asyncio.AbstractServer` used for managing accepted connections. + .. attribute:: socket_factory + + *socket_factory* used to create and bind a server socket. + + .. versionadded:: 3.8 + .. comethod:: start_server(loop=None, **kwargs) :param loop: the event_loop to use @@ -663,7 +678,8 @@ Test Client first with ``TestServer(app)``. :param cookie_jar: an optional :class:`aiohttp.CookieJar` instance, - may be useful with ``CookieJar(unsafe=True)`` + may be useful with + ``CookieJar(unsafe=True, treat_as_secure_origin="http://127.0.0.1")`` option. :param str scheme: HTTP scheme, non-protected ``"http"`` by default. @@ -693,7 +709,7 @@ Test Client .. attribute:: app - An alias for :attr:`self.server.app`. return ``None`` if + An alias for ``self.server.app``. return ``None`` if ``self.server`` is not :class:`TestServer` instance(e.g. :class:`RawTestServer` instance for test low-level server). diff --git a/docs/third_party.rst b/docs/third_party.rst index d5bcb3d..5ba6464 100644 --- a/docs/third_party.rst +++ b/docs/third_party.rst @@ -4,26 +4,26 @@ Third-Party libraries ===================== -aiohttp is not the library for making HTTP requests and creating WEB -server only. +aiohttp is not just a library for making HTTP requests and creating web +servers. -It is the grand basement for libraries built *on top* of aiohttp. +It is the foundation for libraries built *on top* of aiohttp. This page is a list of these tools. -Please feel free to add your open sourced library if it's not enlisted -yet by making Pull Request to https://github.com/aio-libs/aiohttp/ +Please feel free to add your open source library if it's not listed +yet by making a pull request to https://github.com/aio-libs/aiohttp/ -* Why do you might want to include your awesome library into the list? +* Why would you want to include your awesome library in this list? -* Just because the list increases your library visibility. People +* Because the list increases your library visibility. People will have an easy way to find it. Officially supported -------------------- -This list contains libraries which are supported by *aio-libs* team +This list contains libraries which are supported by the *aio-libs* team and located on https://github.com/aio-libs @@ -31,7 +31,7 @@ aiohttp extensions ^^^^^^^^^^^^^^^^^^ - `aiohttp-session `_ - provides sessions for :mod:`aiohttp.web`. + provides sessions for :mod:`aiohttp.web`. - `aiohttp-debugtoolbar `_ is a library for *debug toolbar* support for :mod:`aiohttp.web`. @@ -65,7 +65,7 @@ Database drivers - `aiopg `_ PostgreSQL async driver. -- `aiomysql `_ MySql async driver. +- `aiomysql `_ MySQL async driver. - `aioredis `_ Redis async driver. @@ -82,32 +82,66 @@ Other tools Approved third-party libraries ------------------------------ -The libraries are not part of ``aio-libs`` but they are proven to be very +These libraries are not part of ``aio-libs`` but they have proven to be very well written and highly recommended for usage. - `uvloop `_ Ultra fast implementation of asyncio event loop on top of ``libuv``. - We are highly recommending to use it instead of standard ``asyncio``. + We highly recommend to use this instead of standard ``asyncio``. Database drivers ^^^^^^^^^^^^^^^^ - `asyncpg `_ Another - PostgreSQL async driver. It's much faster than ``aiopg`` but it is - not drop-in replacement -- the API is different. Anyway please take - a look on it -- the driver is really incredible fast. + PostgreSQL async driver. It's much faster than ``aiopg`` but is + not a drop-in replacement -- the API is different. But, please take + a look at it -- the driver is incredibly fast. +OpenAPI / Swagger extensions +---------------------------- + +Extensions bringing `OpenAPI `_ +support to aiohttp web servers. + +- `aiohttp-apispec `_ + Build and document REST APIs with ``aiohttp`` and ``apispec``. + +- `aiohttp_apiset `_ + Package to build routes using swagger specification. + +- `aiohttp-pydantic `_ + An ``aiohttp.View`` to validate the HTTP request's body, query-string, and + headers regarding function annotations and generate OpenAPI doc. Python 3.8+ + required. + +- `aiohttp-swagger `_ + Swagger API Documentation builder for aiohttp server. + +- `aiohttp-swagger3 `_ + Library for Swagger documentation builder and validating aiohttp requests + using swagger specification 3.0. + +- `aiohttp-swaggerify `_ + Library to automatically generate swagger2.0 definition for aiohttp endpoints. + +- `aio-openapi `_ + Asynchronous web middleware for aiohttp and serving Rest APIs with OpenAPI v3 + specification and with optional PostgreSQL database bindings. + +- `rororo `_ + Implement ``aiohttp.web`` OpenAPI 3 server applications with schema first + approach. Python 3.6+ required. Others ------ -The list of libraries which are exists but not enlisted in former categories. +Here is a list of other known libraries that do not belong in the former categories. -They may be perfect or not -- we don't know. +We cannot vouch for the quality of these libraries, use them at your own risk. Please add your library reference here first and after some time -period ask to raise the status. +ask to raise the status. - `aiohttp-cache `_ A cache system for aiohttp server. @@ -118,18 +152,9 @@ period ask to raise the status. - `gain `_ Web crawling framework based on asyncio for everyone. -- `aiohttp-swagger `_ - Swagger API Documentation builder for aiohttp server. - -- `aiohttp-swaggerify `_ - Library to automatically generate swagger2.0 definition for aiohttp endpoints. - - `aiohttp-validate `_ Simple library that helps you validate your API endpoints requests/responses with json schema. -- `aiohttp-pydantic `_ - An ``aiohttp.View`` to validate the HTTP request's body, query-string, and headers regarding function annotations and generate Open API doc. Python 3.8+ required. - - `raven-aiohttp `_ An aiohttp transport for raven-python (Sentry client). @@ -152,9 +177,6 @@ period ask to raise the status. `_ A transmute implementation for aiohttp. -- `aiohttp_apiset `_ - Package to build routes using swagger specification. - - `aiohttp-login `_ Registration and authorization (including social) for aiohttp applications. @@ -206,9 +228,6 @@ period ask to raise the status. - `aiogram `_ A fully asynchronous library for Telegram Bot API written with asyncio and aiohttp. -- `vk.py `_ - Extremely-fast Python 3.6+ toolkit for create applications work`s with VKAPI. - - `aiohttp-graphql `_ GraphQL and GraphIQL interface for aiohttp. @@ -230,9 +249,6 @@ period ask to raise the status. - `GINO `_ An asyncio ORM on top of SQLAlchemy core, delivered with an aiohttp extension. -- `aiohttp-apispec `_ - Build and document REST APIs with ``aiohttp`` and ``apispec``. - - `eider-py `_ Python implementation of the `Eider RPC protocol `_. @@ -248,10 +264,6 @@ period ask to raise the status. - `DBGR `_ Terminal based tool to test and debug HTTP APIs with ``aiohttp``. -- `rororo `_ - Implement ``aiohtp.web`` OpenAPI 3 server applications with schema first - approach. Python 3.6+ required. - - `aiohttp-middlewares `_ Collection of useful middlewares for ``aiohttp.web`` applications. Python 3.6+ required. @@ -262,3 +274,12 @@ period ask to raise the status. - `aiohttp-sse-client `_ A Server-Sent Event python client base on aiohttp. Python 3.6+ required. + +- `aiohttp-retry `_ + Wrapper for aiohttp client for retrying requests. Python 3.6+ required. + +- `aiohttp-socks `_ + SOCKS proxy connector for aiohttp. + +- `aiohttp-catcher `_ + An aiohttp middleware library for centralized error handling in aiohttp servers. diff --git a/docs/tracing_reference.rst b/docs/tracing_reference.rst index 772b485..76fc365 100644 --- a/docs/tracing_reference.rst +++ b/docs/tracing_reference.rst @@ -35,7 +35,7 @@ Overview acquire_connection[description="Connection acquiring"]; headers_received; - headers_sent; + headers_sent[description="on_request_headers_sent"]; chunk_sent[description="on_request_chunk_sent"]; chunk_received[description="on_response_chunk_received"]; @@ -269,6 +269,14 @@ TraceConfig ``params`` is :class:`aiohttp.TraceDnsCacheMissParams` instance. + .. attribute:: on_request_headers_sent + + Property that gives access to the signals that will be executed + when request headers are sent. + + ``params`` is :class:`aiohttp.TraceRequestHeadersSentParams` instance. + + .. versionadded:: 3.8 TraceRequestStartParams ----------------------- @@ -492,3 +500,24 @@ TraceDnsCacheMissParams .. attribute:: host Host didn't find the cache. + +TraceRequestHeadersSentParams +----------------------------- + +.. class:: TraceRequestHeadersSentParams + + See :attr:`TraceConfig.on_request_headers_sent` for details. + + .. versionadded:: 3.8 + + .. attribute:: method + + Method that will be used to make the request. + + .. attribute:: url + + URL that will be used for the request. + + .. attribute:: headers + + Headers that will be used for the request. diff --git a/docs/utilities.rst b/docs/utilities.rst index c328244..76d685d 100644 --- a/docs/utilities.rst +++ b/docs/utilities.rst @@ -15,6 +15,5 @@ Miscellaneous API Shared between Client And Server. multipart multipart_reference streams - signals structures websocket_utilities diff --git a/docs/web_advanced.rst b/docs/web_advanced.rst index 01a3341..3a98b78 100644 --- a/docs/web_advanced.rst +++ b/docs/web_advanced.rst @@ -240,6 +240,13 @@ Data Sharing aka No Singletons Please :mod:`aiohttp.web` discourages the use of *global variables*, aka *singletons*. Every variable should have its own context that is *not global*. +Global variables are generally considered bad practice due to the complexity +they add in keeping track of state changes to variables. + +*aiohttp* does not use globals by design, which will reduce the number of bugs +and/or unexpected behaviors for its users. For example, an i18n translated string +being written for one request and then being served to another. + So, :class:`Application` and :class:`Request` support a :class:`collections.abc.MutableMapping` interface (i.e. they are dict-like objects), allowing them to be used as data stores. @@ -272,6 +279,10 @@ For this please use :attr:`Request.config_dict` read-only property:: async def handler(request): data = request.config_dict['my_private_key'] +The app object can be used in this way to reuse a database connection or anything +else needed throughout the application. + +See this reference section for more detail: :ref:`aiohttp-web-app-and-router`. Request's storage ^^^^^^^^^^^^^^^^^ @@ -431,7 +442,7 @@ the keyword-only ``middlewares`` parameter:: Internally, a single :ref:`request handler ` is constructed by applying the middleware chain to the original handler in reverse order, -and is called by the :class:`RequestHandler` as a regular *handler*. +and is called by the :class:`~aiohttp.web.RequestHandler` as a regular *handler*. Since *middlewares* are themselves coroutines, they may perform extra ``await`` calls when creating a new handler, e.g. call database etc. @@ -615,10 +626,6 @@ one ``yield``. *aiohttp* guarantees that *cleanup code* is called if and only if *startup code* was successfully finished. -Asynchronous generators are supported by Python 3.6+, on Python 3.5 -please use `async_generator `_ -library. - .. versionadded:: 3.1 .. _aiohttp-web-nested-applications: @@ -748,7 +755,7 @@ header:: Custom resource implementation ------------------------------ -To register custom resource use :meth:`UrlDispatcher.register_resource`. +To register custom resource use :meth:`~aiohttp.web.UrlDispatcher.register_resource`. Resource instance must implement `AbstractResource` interface. .. _aiohttp-web-app-runners: @@ -849,9 +856,9 @@ sources (e.g. ZeroMQ, Redis Pub/Sub, AMQP, etc.) to react to received messages within the application. For example the background task could listen to ZeroMQ on -:data:`zmq.SUB` socket, process and forward retrieved messages to +``zmq.SUB`` socket, process and forward retrieved messages to clients connected via WebSocket that are stored somewhere in the -application (e.g. in the :obj:`application['websockets']` list). +application (e.g. in the ``application['websockets']`` list). To run such short and long running background tasks aiohttp provides an ability to register :attr:`Application.on_startup` signal handler(s) that @@ -860,7 +867,8 @@ will run along with the application's request handler. For example there's a need to run one quick task and two long running tasks that will live till the application is alive. The appropriate background tasks could be registered as an :attr:`Application.on_startup` -signal handlers as shown in the example below:: +signal handler or :attr:`Application.cleanup_ctx` as shown in the example +below:: async def listen_to_redis(app): @@ -878,25 +886,70 @@ signal handlers as shown in the example below:: await sub.quit() - async def start_background_tasks(app): + async def background_tasks(app): app['redis_listener'] = asyncio.create_task(listen_to_redis(app)) + yield - async def cleanup_background_tasks(app): app['redis_listener'].cancel() await app['redis_listener'] app = web.Application() - app.on_startup.append(start_background_tasks) - app.on_cleanup.append(cleanup_background_tasks) + app.cleanup_ctx.append(background_tasks) web.run_app(app) -The task :func:`listen_to_redis` will run forever. +The task ``listen_to_redis`` will run forever. To shut it down correctly :attr:`Application.on_cleanup` signal handler may be used to send a cancellation to it. +.. _aiohttp-web-complex-applications: + +Complex Applications +^^^^^^^^^^^^^^^^^^^^ + +Sometimes aiohttp is not the sole part of an application and additional +tasks/processes may need to be run alongside the aiohttp :class:`Application`. + +Generally, the best way to achieve this is to use :func:`aiohttp.web.run_app` +as the entry point for the program. Other tasks can then be run via +:attr:`Application.startup` and :attr:`Application.on_cleanup`. By having the +:class:`Application` control the lifecycle of the entire program, the code +will be more robust and ensure that the tasks are started and stopped along +with the application. + +For example, running a long-lived task alongside the :class:`Application` +can be done with a :ref:`aiohttp-web-cleanup-ctx` function like:: + + + async def run_other_task(_app): + task = asyncio.create_task(other_long_task()) + + yield + + task.cancel() + with suppress(asyncio.CancelledError): + await task # Ensure any exceptions etc. are raised. + + app.cleanup_ctx.append(run_other_task) + + +Or a separate process can be run with something like:: + + + async def run_process(_app): + proc = await asyncio.create_subprocess_exec(path) + + yield + + if proc.returncode is None: + proc.terminate() + await proc.wait() + + app.cleanup_ctx.append(run_process) + + Handling error pages -------------------- @@ -995,8 +1048,7 @@ Install with ``pip``: $ pip install aiohttp-devtools * ``runserver`` provides a development server with auto-reload, - live-reload, static file serving and `aiohttp-debugtoolbar`_ - integration. + live-reload, static file serving. * ``start`` is a `cookiecutter command which does the donkey work of creating new :mod:`aiohttp.web` Applications. diff --git a/docs/web_lowlevel.rst b/docs/web_lowlevel.rst index 696c58d..06c3265 100644 --- a/docs/web_lowlevel.rst +++ b/docs/web_lowlevel.rst @@ -19,7 +19,7 @@ request and returns a response object. This is done by introducing :class:`aiohttp.web.Server` class which serves a *protocol factory* role for -:meth:`asyncio.AbstractEventLoop.create_server` and bridges data +:meth:`asyncio.loop.create_server` and bridges data stream to *web handler* and sends result back. @@ -69,13 +69,7 @@ The following code demonstrates very trivial usage example:: await asyncio.sleep(100*3600) - loop = asyncio.get_event_loop() - - try: - loop.run_until_complete(main()) - except KeyboardInterrupt: - pass - loop.close() + asyncio.run(main()) In the snippet we have ``handler`` which returns a regular diff --git a/docs/web_quickstart.rst b/docs/web_quickstart.rst index 1db1d68..c362327 100644 --- a/docs/web_quickstart.rst +++ b/docs/web_quickstart.rst @@ -132,7 +132,7 @@ requests on a *path* having **any** *HTTP method*:: app.add_routes([web.route('*', '/path', all_handler)]) The *HTTP method* can be queried later in the request handler using the -:attr:`Request.method` property. +:attr:`aiohttp.web.BaseRequest.method` property. By default endpoints added with ``GET`` method will accept ``HEAD`` requests and return the same response headers as they would @@ -346,7 +346,7 @@ Route tables look like Django way:: web.post('/post', handle_post), -The snippet calls :meth:`~aiohttp.web.UrlDispather.add_routes` to +The snippet calls :meth:`~aiohttp.web.UrlDispatcher.add_routes` to register a list of *route definitions* (:class:`aiohttp.web.RouteDef` instances) created by :func:`aiohttp.web.get` or :func:`aiohttp.web.post` functions. @@ -390,7 +390,7 @@ The container is a list-like object with additional decorators routes. After filling the container -:meth:`~aiohttp.web.UrlDispather.add_routes` is used for adding +:meth:`~aiohttp.web.UrlDispatcher.add_routes` is used for adding registered *route definitions* into application's router. .. seealso:: :ref:`aiohttp-web-route-table-def` reference. @@ -459,17 +459,17 @@ HTTP Forms HTTP Forms are supported out of the box. If form's method is ``"GET"`` (``
``) use -:attr:`Request.query` for getting form data. +:attr:`aiohttp.web.BaseRequest.query` for getting form data. To access form data with ``"POST"`` method use -:meth:`Request.post` or :meth:`Request.multipart`. +:meth:`aiohttp.web.BaseRequest.post` or :meth:`aiohttp.web.BaseRequest.multipart`. -:meth:`Request.post` accepts both +:meth:`aiohttp.web.BaseRequest.post` accepts both ``'application/x-www-form-urlencoded'`` and ``'multipart/form-data'`` form's data encoding (e.g. ````). It stores files data in temporary directory. If `client_max_size` is specified `post` raises `ValueError` exception. -For efficiency use :meth:`Request.multipart`, It is especially effective +For efficiency use :meth:`aiohttp.web.BaseRequest.multipart`, It is especially effective for uploading large files (:ref:`aiohttp-web-file-upload`). Values submitted by the following form: @@ -543,10 +543,10 @@ a container for the file as well as some of its metadata:: You might have noticed a big warning in the example above. The general issue is -that :meth:`Request.post` reads the whole payload in memory, +that :meth:`aiohttp.web.BaseRequest.post` reads the whole payload in memory, resulting in possible :abbr:`OOM (Out Of Memory)` errors. To avoid this, for multipart uploads, you -should use :meth:`Request.multipart` which returns a :ref:`multipart reader +should use :meth:`aiohttp.web.BaseRequest.multipart` which returns a :ref:`multipart reader `:: async def store_mp3_handler(request): diff --git a/docs/web_reference.rst b/docs/web_reference.rst index 4073eb2..a156f47 100644 --- a/docs/web_reference.rst +++ b/docs/web_reference.rst @@ -118,7 +118,7 @@ and :ref:`aiohttp-web-signals` handlers. - Overridden value by :meth:`~BaseRequest.clone` call. - *Host* HTTP header - - :func:`socket.gtfqdn` + - :func:`socket.getfqdn` Read-only :class:`str` property. @@ -227,9 +227,9 @@ and :ref:`aiohttp-web-signals` handlers. .. attribute:: cookies - A multidict of all request's cookies. + A read-only dictionary-like object containing the request's cookies. - Read-only :class:`~multidict.MultiDictProxy` lazy property. + Read-only :class:`~types.MappingProxyType` property. .. attribute:: content @@ -336,6 +336,26 @@ and :ref:`aiohttp-web-signals` handlers. .. versionadded:: 3.1 + .. attribute:: if_match + + Read-only property that returns :class:`~aiohttp.ETag` objects specified + in the *If-Match* header. + + Returns :class:`tuple` of :class:`~aiohttp.ETag` or ``None`` if + *If-Match* header is absent. + + .. versionadded:: 3.8 + + .. attribute:: if_none_match + + Read-only property that returns :class:`~aiohttp.ETag` objects specified + *If-None-Match* header. + + Returns :class:`tuple` of :class:`~aiohttp.ETag` or ``None`` if + *If-None-Match* header is absent. + + .. versionadded:: 3.8 + .. attribute:: if_range Read-only property that returns the date specified in the @@ -383,7 +403,7 @@ and :ref:`aiohttp-web-signals` handlers. .. note:: The method **does** store read data internally, subsequent - :meth:`~Request.read` call will return the same value. + :meth:`~aiohttp.web.BaseRequest.read` call will return the same value. .. comethod:: text() @@ -395,7 +415,7 @@ and :ref:`aiohttp-web-signals` handlers. .. note:: The method **does** store read data internally, subsequent - :meth:`~Request.text` call will return the same value. + :meth:`~aiohttp.web.BaseRequest.text` call will return the same value. .. comethod:: json(*, loads=json.loads) @@ -408,7 +428,7 @@ and :ref:`aiohttp-web-signals` handlers. body = await self.text() return loads(body) - :param callable loads: any :term:`callable` that accepts + :param collections.abc.Callable loads: any :term:`callable` that accepts :class:`str` and returns :class:`dict` with parsed JSON (:func:`json.loads` by default). @@ -416,12 +436,12 @@ and :ref:`aiohttp-web-signals` handlers. .. note:: The method **does** store read data internally, subsequent - :meth:`~Request.json` call will return the same value. + :meth:`~aiohttp.web.BaseRequest.json` call will return the same value. .. comethod:: multipart() - Returns :class:`aiohttp.multipart.MultipartReader` which processes + Returns :class:`aiohttp.MultipartReader` which processes incoming *multipart* request. The method is just a boilerplate :ref:`coroutine ` @@ -460,7 +480,7 @@ and :ref:`aiohttp-web-signals` handlers. .. note:: The method **does** store read data internally, subsequent - :meth:`~Request.post` call will return the same value. + :meth:`~aiohttp.web.BaseRequest.post` call will return the same value. .. comethod:: release() @@ -470,7 +490,7 @@ and :ref:`aiohttp-web-signals` handlers. .. note:: - User code may never call :meth:`~Request.release`, all + User code may never call :meth:`~aiohttp.web.BaseRequest.release`, all required work will be processed by :mod:`aiohttp.web` internal machinery. @@ -619,7 +639,7 @@ StreamResponse .. attribute:: keep_alive - Read-only property, copy of :attr:`Request.keep_alive` by default. + Read-only property, copy of :attr:`aiohttp.web.BaseRequest.keep_alive` by default. Can be switched to ``False`` by :meth:`force_close` call. @@ -733,7 +753,7 @@ StreamResponse :param int version: a decimal integer, identifies to which version of the state management specification the cookie - conforms. (Optional, *version=1* by default) + conforms. (optional) :param str samesite: Asserts that a cookie must not be sent with cross-origin requests, providing some protection @@ -782,6 +802,20 @@ StreamResponse as an :class:`int` or a :class:`float` object, and the value ``None`` to unset the header. + .. attribute:: etag + + *ETag* header for outgoing response. + + This property accepts raw :class:`str` values, :class:`~aiohttp.ETag` + objects and the value ``None`` to unset the header. + + In case of :class:`str` input, etag is considered as strong by default. + + **Do not** use double quotes ``"`` in the etag value, + they will be added automatically. + + .. versionadded:: 3.8 + .. comethod:: prepare(request) :param aiohttp.web.Request request: HTTP request object, that the @@ -885,7 +919,7 @@ Response Setting :attr:`text` also recalculates :attr:`~StreamResponse.content_length` value and - :attr:`~StreamResponse.body` value + :attr:`~aiohttp.StreamResponse.body` value Resetting :attr:`text` (assigning ``None``) sets :attr:`~StreamResponse.content_length` to ``None`` too, dropping @@ -1083,7 +1117,7 @@ WebSocketResponse single message, ``None`` for not overriding per-socket setting. - :param callable dumps: any :term:`callable` that accepts an object and + :param collections.abc.Callable dumps: any :term:`callable` that accepts an object and returns a JSON string (:func:`json.dumps` by default). @@ -1098,14 +1132,14 @@ WebSocketResponse The method is converted into :term:`coroutine`, *compress* parameter added. - .. comethod:: close(*, code=1000, message=b'') + .. comethod:: close(*, code=WSCloseCode.OK, message=b'') A :ref:`coroutine` that initiates closing handshake by sending :const:`~aiohttp.WSMsgType.CLOSE` message. It is safe to call `close()` from different task. - :param int code: closing code + :param int code: closing code. See also :class:`~aiohttp.WSCloseCode`. :param message: optional payload of *close* message, :class:`str` (converted to *UTF-8* encoded bytes) @@ -1182,7 +1216,7 @@ WebSocketResponse Can only be called by the request handling task. - :param callable loads: any :term:`callable` that accepts + :param collections.abc.Callable loads: any :term:`callable` that accepts :class:`str` and returns :class:`dict` with parsed JSON (:func:`json.loads` by default). @@ -1304,7 +1338,7 @@ properties for later access from a :ref:`handler` via the conn.execute("DELETE * FROM table") Although :class:`Application` is a :obj:`dict`-like object, it can't be -duplicated like one using :meth:`Application.copy`. +duplicated like one using :meth:`~aiohttp.web.Application.copy`. .. class:: Application(*, logger=, router=None,middlewares=(), \ handler_args=None, client_max_size=1024**2, \ @@ -1373,7 +1407,7 @@ duplicated like one using :meth:`Application.copy`. .. attribute:: on_response_prepare - A :class:`~aiohttp.Signal` that is fired near the end + A :class:`~aiosignal.Signal` that is fired near the end of :meth:`StreamResponse.prepare` with parameters *request* and *response*. It can be used, for example, to add custom headers to each response, or to modify the default headers computed by the application, @@ -1386,7 +1420,7 @@ duplicated like one using :meth:`Application.copy`. .. attribute:: on_startup - A :class:`~aiohttp.Signal` that is fired on application start-up. + A :class:`~aiosignal.Signal` that is fired on application start-up. Subscribers may use the signal to run background tasks in the event loop along with the application's request handler just after the @@ -1401,7 +1435,7 @@ duplicated like one using :meth:`Application.copy`. .. attribute:: on_shutdown - A :class:`~aiohttp.Signal` that is fired on application shutdown. + A :class:`~aiosignal.Signal` that is fired on application shutdown. Subscribers may use the signal for gracefully closing long running connections, e.g. websockets and data streaming. @@ -1421,7 +1455,7 @@ duplicated like one using :meth:`Application.copy`. .. attribute:: on_cleanup - A :class:`~aiohttp.Signal` that is fired on application cleanup. + A :class:`~aiosignal.Signal` that is fired on application cleanup. Subscribers may use the signal for gracefully closing connections to database server etc. @@ -1474,7 +1508,7 @@ duplicated like one using :meth:`Application.copy`. :param Application subapp: nested application. - :returns: a :class:`MatchedSubAppResource` instance. + :returns: a :class:`~aiohttp.web.MatchedSubAppResource` instance. .. method:: add_routes(routes_table) @@ -1581,8 +1615,8 @@ duplicated like one using :meth:`Application.copy`. based but traversal ones). For sake of that fact we have very trivial ABC for - :class:`AbstractRouter`: it should have only - :meth:`AbstractRouter.resolve` coroutine. + :class:`~aiohttp.abc.AbstractRouter`: it should have only + :meth:`aiohttp.abc.AbstractRouter.resolve` coroutine. No methods for adding routes or route reversing (getting URL by route name). All those are router implementation details (but, @@ -1594,7 +1628,7 @@ Server ^^^^^^ A protocol factory compatible with -:meth:`~asyncio.AbstreactEventLoop.create_server`. +:meth:`~asyncio.AbstractEventLoop.create_server`. .. class:: Server @@ -1621,11 +1655,11 @@ Router For dispatching URLs to :ref:`handlers` :mod:`aiohttp.web` uses *routers*. -Router is any object that implements :class:`AbstractRouter` interface. +Router is any object that implements :class:`~aiohttp.abc.AbstractRouter` interface. :mod:`aiohttp.web` provides an implementation called :class:`UrlDispatcher`. -:class:`Application` uses :class:`UrlDispatcher` as :meth:`router` by default. +:class:`Application` uses :class:`UrlDispatcher` as :meth:`~aiohttp.web.Application.router` by default. .. class:: UrlDispatcher() @@ -1684,13 +1718,13 @@ Router is any object that implements :class:`AbstractRouter` interface. :param str path: route path. Should be started with slash (``'/'``). - :param callable handler: route handler. + :param collections.abc.Callable handler: route handler. :param str name: optional route name. - :param coroutine expect_handler: optional *expect* header handler. + :param collections.abc.Coroutine expect_handler: optional *expect* header handler. - :returns: new :class:`PlainRoute` or :class:`DynamicRoute` instance. + :returns: new :class:`AbstractRoute` instance. .. method:: add_routes(routes_table) @@ -1789,7 +1823,7 @@ Router is any object that implements :class:`AbstractRouter` interface. :param str name: optional route name. - :param coroutine expect_handler: optional *expect* header handler. + :param collections.abc.Coroutine expect_handler: optional *expect* header handler. :param int chunk_size: size of single chunk for file downloading, 256Kb by default. @@ -1809,23 +1843,23 @@ Router is any object that implements :class:`AbstractRouter` interface. :param bool append_version: flag for adding file version (hash) to the url query string, this value will be used as default when you call to - :meth:`StaticRoute.url` and - :meth:`StaticRoute.url_for` methods. + :meth:`~aiohttp.web.AbstractRoute.url` and + :meth:`~aiohttp.web.AbstractRoute.url_for` methods. - :returns: new :class:`StaticRoute` instance. + :returns: new :class:`~aiohttp.web.AbstractRoute` instance. .. comethod:: resolve(request) A :ref:`coroutine` that returns - :class:`AbstractMatchInfo` for *request*. + :class:`~aiohttp.abc.AbstractMatchInfo` for *request*. The method never raises exception, but returns - :class:`AbstractMatchInfo` instance with: + :class:`~aiohttp.abc.AbstractMatchInfo` instance with: - 1. :attr:`~AbstractMatchInfo.http_exception` assigned to + 1. :attr:`~aiohttp.abc.AbstractMatchInfo.http_exception` assigned to :exc:`HTTPException` instance. - 2. :attr:`~AbstractMatchInfo.handler` which raises + 2. :meth:`~aiohttp.abc.AbstractMatchInfo.handler` which raises :exc:`HTTPNotFound` or :exc:`HTTPMethodNotAllowed` on handler's execution if there is no registered route for *request*. @@ -1834,7 +1868,7 @@ Router is any object that implements :class:`AbstractRouter` interface. Used by internal machinery, end user unlikely need to call the method. - .. note:: The method uses :attr:`Request.raw_path` for pattern + .. note:: The method uses :attr:`aiohttp.web.BaseRequest.raw_path` for pattern matching against registered routes. .. method:: resources() @@ -1866,7 +1900,7 @@ Router is any object that implements :class:`AbstractRouter` interface. *all* named **resources**. The view maps every named resource's **name** to the - :class:`BaseResource` instance. It supports the usual + :class:`AbstractResource` instance. It supports the usual :obj:`dict`-like operations, except for any mutable operations (i.e. it's **read-only**):: @@ -1900,11 +1934,11 @@ unique *name* and at least one :term:`route`. finished. 4. Otherwise router tries next resource from the *routing table*. 5. If the end of *routing table* is reached and no *resource* / - *route* pair found the *router* returns special :class:`AbstractMatchInfo` - instance with :attr:`AbstractMatchInfo.http_exception` is not ``None`` + *route* pair found the *router* returns special :class:`~aiohttp.abc.AbstractMatchInfo` + instance with :attr:`aiohttp.abc.AbstractMatchInfo.http_exception` is not ``None`` but :exc:`HTTPException` with either *HTTP 404 Not Found* or *HTTP 405 Method Not Allowed* status code. - Registered :attr:`AbstractMatchInfo.handler` raises this exception on call. + Registered :meth:`~aiohttp.abc.AbstractMatchInfo.handler` raises this exception on call. User should never instantiate resource classes but give it by :meth:`UrlDispatcher.add_resource` call. @@ -2000,9 +2034,9 @@ Resource classes hierarchy:: The method should be unique for resource. - :param callable handler: route handler. + :param collections.abc.Callable handler: route handler. - :param coroutine expect_handler: optional *expect* header handler. + :param collections.abc.Coroutine expect_handler: optional *expect* header handler. :returns: new :class:`ResourceRoute` instance. @@ -2387,7 +2421,7 @@ A routes table definition used for describing routes by decorators .. class:: RouteTableDef() A sequence of :class:`RouteDef` instances (implements - :class:`abc.collections.Sequence` protocol). + :class:`collections.abc.Sequence` protocol). In addition to all standard :class:`list` methods the class provides also methods like ``get()`` and ``post()`` for adding new @@ -2471,12 +2505,12 @@ Matching result can be accessible from handler as :attr:`Request.match_info` attribute. In general the result may be any object derived from -:class:`AbstractMatchInfo` (:class:`UrlMappingMatchInfo` for default +:class:`~aiohttp.abc.AbstractMatchInfo` (:class:`UrlMappingMatchInfo` for default :class:`UrlDispatcher` router). .. class:: UrlMappingMatchInfo - Inherited from :class:`dict` and :class:`AbstractMatchInfo`. Dict + Inherited from :class:`dict` and :class:`~aiohttp.abc.AbstractMatchInfo`. Dict items are filled by matching info and is :term:`resource`\-specific. .. attribute:: expect_handler @@ -2489,7 +2523,7 @@ In general the result may be any object derived from .. attribute:: route - :class:`Route` instance for url matching. + :class:`AbstractRoute` instance for url matching. View @@ -2497,7 +2531,7 @@ View .. class:: View(request) - Inherited from :class:`AbstractView`. + Inherited from :class:`~aiohttp.abc.AbstractView`. Base class for class based views. Implementations should derive from :class:`View` and override methods for handling HTTP verbs like @@ -2574,7 +2608,7 @@ application on specific TCP or Unix socket, e.g.:: A :class:`list` of served sockets addresses. - See :meth:`socket.getsockname` for items type. + See :meth:`socket.getsockname() ` for items type. .. versionadded:: 3.3 @@ -2638,6 +2672,10 @@ application on specific TCP or Unix socket, e.g.:: it means that the session global value is used. .. versionadded:: 3.7 + :param bool auto_decompress: Automatically decompress request body, + ``True`` by default. + + .. versionadded:: 3.8 .. attribute:: app @@ -2721,7 +2759,7 @@ application on specific TCP or Unix socket, e.g.:: :param int backlog: a number of unaccepted connections that the system will allow before refusing new - connections, see :meth:`socket.listen` for details. + connections, see :meth:`socket.socket.listen` for details. ``128`` by default. @@ -2756,7 +2794,7 @@ application on specific TCP or Unix socket, e.g.:: :param int backlog: a number of unaccepted connections that the system will allow before refusing new - connections, see :meth:`socket.listen` for details. + connections, see :meth:`socket.socket.listen` for details. ``128`` by default. @@ -2780,7 +2818,7 @@ application on specific TCP or Unix socket, e.g.:: :param runner: a runner to serve. - :param sock: :class:`socket.socket` to listen. + :param sock: A :ref:`socket instance ` to listen to. :param float shutdown_timeout: a timeout for closing opened connections on :meth:`BaseSite.stop` @@ -2792,7 +2830,7 @@ application on specific TCP or Unix socket, e.g.:: :param int backlog: a number of unaccepted connections that the system will allow before refusing new - connections, see :meth:`socket.listen` for details. + connections, see :meth:`socket.socket.listen` for details. ``128`` by default. @@ -2801,8 +2839,8 @@ Utilities .. class:: FileField - A :class:`~collections.namedtuple` instance that is returned as - multidict value by :meth:`Request.POST` if field is uploaded file. + A :mod:`dataclass ` instance that is returned as + multidict value by :meth:`aiohttp.web.BaseRequest.post` if field is uploaded file. .. attribute:: name @@ -2825,6 +2863,7 @@ Utilities .. function:: run_app(app, *, host=None, port=None, path=None, \ sock=None, shutdown_timeout=60.0, \ + keepalive_timeout=75.0, \ ssl_context=None, print=print, backlog=128, \ access_log_class=aiohttp.helpers.AccessLogger, \ access_log_format=aiohttp.helpers.AccessLogger.LOG_FORMAT, \ @@ -2833,13 +2872,15 @@ Utilities reuse_address=None, \ reuse_port=None) - A utility function for running an application, serving it until + A high-level function for running an application, serving it until keyboard interrupt and performing a :ref:`aiohttp-web-graceful-shutdown`. - Suitable as handy tool for scaffolding aiohttp based projects. - Perhaps production config will use more sophisticated runner but it - good enough at least at very beginning stage. + This is a high-level function very similar to :func:`asyncio.run` and + should be used as the main entry point for an application. The + :class:`Application` object essentially becomes our `main()` function. + If additional tasks need to be run in parallel, see + :ref:`aiohttp-web-complex-applications`. The server will listen on any host or Unix domain socket path you supply. If no hosts or paths are supplied, or only a port is supplied, a TCP server @@ -2866,7 +2907,7 @@ Utilities multiple domain sockets. Listening on Unix domain sockets is not supported by all operating systems. - :param socket sock: a preexisting socket object to accept connections on. + :param socket.socket sock: a preexisting socket object to accept connections on. A sequence of socket objects can be passed. :param int shutdown_timeout: a delay to wait for graceful server @@ -2879,6 +2920,12 @@ Utilities timeout but closes a server in a few milliseconds. + :param float keepalive_timeout: a delay before a TCP connection is + closed after a HTTP request. The delay + allows for reuse of a TCP connection. + + .. versionadded:: 3.8 + :param ssl_context: :class:`ssl.SSLContext` for HTTPS server, ``None`` for HTTP connection. diff --git a/docs/websocket_utilities.rst b/docs/websocket_utilities.rst index fca08e1..aa7de2c 100644 --- a/docs/websocket_utilities.rst +++ b/docs/websocket_utilities.rst @@ -42,8 +42,8 @@ WebSocket utilities received a message that violates its policy. This is a generic status code that can be returned when there is no other more suitable status code (e.g., - :attr:`~WSCloseCode.unsupported_data` or - :attr:`~WSCloseCode.message_too_big`) or if there is a need to + :attr:`~aiohttp.WSCloseCode.UNSUPPORTED_DATA` or + :attr:`~aiohttp.WSCloseCode.MESSAGE_TOO_BIG`) or if there is a need to hide specific details about the policy. .. attribute:: MESSAGE_TOO_BIG @@ -79,6 +79,18 @@ WebSocket utilities connect to a different IP (when there are multiple for the target) or reconnect to the same IP upon user action. + .. attribute:: ABNORMAL_CLOSURE + + Used to indicate that a connection was closed abnormally + (that is, with no close frame being sent) when a status code + is expected. + + .. attribute:: BAD_GATEWAY + + The server was acting as a gateway or proxy and received + an invalid response from the upstream server. + This is similar to 502 HTTP Status Code. + .. class:: WSMsgType diff --git a/docs/whats_new_1_1.rst b/docs/whats_new_1_1.rst index db71e10..7b5305e 100644 --- a/docs/whats_new_1_1.rst +++ b/docs/whats_new_1_1.rst @@ -20,8 +20,8 @@ e.g. ``session.get('http://example.com')`` works as well as Internal API has been switched to :class:`yarl.URL`. :class:`aiohttp.CookieJar` accepts :class:`~yarl.URL` instances only. -On server side has added :class:`web.Request.url` and -:class:`web.Request.rel_url` properties for representing relative and +On server side has added :attr:`aiohttp.web.BaseRequest.url` and +:attr:`aiohttp.web.BaseRequest.rel_url` properties for representing relative and absolute request's URL. URL using is the recommended way, already existed properties for @@ -32,7 +32,7 @@ parameter. :class:`str` is still supported and will be supported forever. Reverse URL processing for *router* has been changed. -The main API is :class:`aiohttp.web.Request.url_for(name, **kwargs)` +The main API is ``aiohttp.web.Request.url_for`` which returns a :class:`yarl.URL` instance for named resource. It does not support *query args* but adding *args* is trivial: ``request.url_for('named_resource', param='a').with_query(arg='val')``. diff --git a/examples/__init__.py b/examples/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/examples/background_tasks.py b/examples/background_tasks.py index 2a1ec12..8c2bb9e 100755 --- a/examples/background_tasks.py +++ b/examples/background_tasks.py @@ -43,8 +43,8 @@ async def listen_to_redis(app): print("Redis connection closed.") -async def start_background_tasks(app): - app["redis_listener"] = app.loop.create_task(listen_to_redis(app)) +async def start_background_tasks(app: web.Application) -> None: + app["redis_listener"] = asyncio.create_task(listen_to_redis(app)) async def cleanup_background_tasks(app): diff --git a/examples/client_json.py b/examples/client_json.py index e54edea..f571156 100755 --- a/examples/client_json.py +++ b/examples/client_json.py @@ -4,7 +4,7 @@ import aiohttp -async def fetch(session): +async def fetch(session: aiohttp.ClientSession) -> None: print("Query http://httpbin.org/get") async with session.get("http://httpbin.org/get") as resp: print(resp.status) diff --git a/examples/client_ws.py b/examples/client_ws.py index ec48ecc..38d8300 100755 --- a/examples/client_ws.py +++ b/examples/client_ws.py @@ -44,8 +44,9 @@ async def dispatch(): break # send request - async with aiohttp.ws_connect(url, autoclose=False, autoping=False) as ws: - await dispatch() + async with aiohttp.ClientSession() as session: + async with session.ws_connect(url, autoclose=False, autoping=False) as ws: + await dispatch() ARGS = argparse.ArgumentParser( diff --git a/examples/fake_server.py b/examples/fake_server.py index 007d96b..0006f5f 100755 --- a/examples/fake_server.py +++ b/examples/fake_server.py @@ -6,11 +6,12 @@ import aiohttp from aiohttp import web +from aiohttp.abc import AbstractResolver from aiohttp.resolver import DefaultResolver from aiohttp.test_utils import unused_port -class FakeResolver: +class FakeResolver(AbstractResolver): _LOCAL_HOST = {0: "127.0.0.1", socket.AF_INET: "127.0.0.1", socket.AF_INET6: "::1"} def __init__(self, fakes, *, loop): @@ -34,6 +35,9 @@ async def resolve(self, host, port=0, family=socket.AF_INET): else: return await self._resolver.resolve(host, port, family) + async def close(self) -> None: + self._resolver.close() + class FakeFacebook: def __init__(self, *, loop): @@ -45,7 +49,7 @@ def __init__(self, *, loop): web.get("/v2.7/me/friends", self.on_my_friends), ] ) - self.runner = None + self.runner = web.AppRunner(self.app) here = pathlib.Path(__file__) ssl_cert = here.parent / "server.crt" ssl_key = here.parent / "server.key" diff --git a/examples/legacy/crawl.py b/examples/legacy/crawl.py deleted file mode 100755 index c8029b4..0000000 --- a/examples/legacy/crawl.py +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/env python3 - -import asyncio -import logging -import re -import signal -import sys -import urllib.parse - -import aiohttp - - -class Crawler: - def __init__(self, rooturl, loop, maxtasks=100): - self.rooturl = rooturl - self.loop = loop - self.todo = set() - self.busy = set() - self.done = {} - self.tasks = set() - self.sem = asyncio.Semaphore(maxtasks, loop=loop) - - # connector stores cookies between requests and uses connection pool - self.session = aiohttp.ClientSession(loop=loop) - - async def run(self): - t = asyncio.ensure_future(self.addurls([(self.rooturl, "")]), loop=self.loop) - await asyncio.sleep(1, loop=self.loop) - while self.busy: - await asyncio.sleep(1, loop=self.loop) - - await t - await self.session.close() - self.loop.stop() - - async def addurls(self, urls): - for url, parenturl in urls: - url = urllib.parse.urljoin(parenturl, url) - url, frag = urllib.parse.urldefrag(url) - if ( - url.startswith(self.rooturl) - and url not in self.busy - and url not in self.done - and url not in self.todo - ): - self.todo.add(url) - await self.sem.acquire() - task = asyncio.ensure_future(self.process(url), loop=self.loop) - task.add_done_callback(lambda t: self.sem.release()) - task.add_done_callback(self.tasks.remove) - self.tasks.add(task) - - async def process(self, url): - print("processing:", url) - - self.todo.remove(url) - self.busy.add(url) - try: - resp = await self.session.get(url) - except Exception as exc: - print("...", url, "has error", repr(str(exc))) - self.done[url] = False - else: - if resp.status == 200 and ("text/html" in resp.headers.get("content-type")): - data = (await resp.read()).decode("utf-8", "replace") - urls = re.findall(r'(?i)href=["\']?([^\s"\'<>]+)', data) - asyncio.Task(self.addurls([(u, url) for u in urls])) - - resp.close() - self.done[url] = True - - self.busy.remove(url) - print( - len(self.done), - "completed tasks,", - len(self.tasks), - "still pending, todo", - len(self.todo), - ) - - -def main(): - loop = asyncio.get_event_loop() - - c = Crawler(sys.argv[1], loop) - asyncio.ensure_future(c.run(), loop=loop) - - try: - loop.add_signal_handler(signal.SIGINT, loop.stop) - except RuntimeError: - pass - loop.run_forever() - print("todo:", len(c.todo)) - print("busy:", len(c.busy)) - print("done:", len(c.done), "; ok:", sum(c.done.values())) - print("tasks:", len(c.tasks)) - - -if __name__ == "__main__": - if "--iocp" in sys.argv: - from asyncio import events, windows_events - - sys.argv.remove("--iocp") - logging.info("using iocp") - el = windows_events.ProactorEventLoop() - events.set_event_loop(el) - - main() diff --git a/examples/legacy/srv.py b/examples/legacy/srv.py deleted file mode 100755 index 628b6f3..0000000 --- a/examples/legacy/srv.py +++ /dev/null @@ -1,178 +0,0 @@ -#!/usr/bin/env python3 -"""Simple server written using an event loop.""" - -import argparse -import asyncio -import logging -import os -import sys - -import aiohttp -import aiohttp.server - -try: - import ssl -except ImportError: # pragma: no cover - ssl = None - - -class HttpRequestHandler(aiohttp.server.ServerHttpProtocol): - async def handle_request(self, message, payload): - print( - "method = {!r}; path = {!r}; version = {!r}".format( - message.method, message.path, message.version - ) - ) - - path = message.path - - if not (path.isprintable() and path.startswith("/")) or "/." in path: - print("bad path", repr(path)) - path = None - else: - path = "." + path - if not os.path.exists(path): - print("no file", repr(path)) - path = None - else: - isdir = os.path.isdir(path) - - if not path: - raise aiohttp.HttpProcessingError(code=404) - - for hdr, val in message.headers.items(): - print(hdr, val) - - if isdir and not path.endswith("/"): - path = path + "/" - raise aiohttp.HttpProcessingError( - code=302, headers=(("URI", path), ("Location", path)) - ) - - response = aiohttp.Response(self.writer, 200, http_version=message.version) - response.add_header("Transfer-Encoding", "chunked") - - # content encoding - accept_encoding = message.headers.get("accept-encoding", "").lower() - if "deflate" in accept_encoding: - response.add_header("Content-Encoding", "deflate") - response.add_compression_filter("deflate") - elif "gzip" in accept_encoding: - response.add_header("Content-Encoding", "gzip") - response.add_compression_filter("gzip") - - response.add_chunking_filter(1025) - - if isdir: - response.add_header("Content-type", "text/html") - response.send_headers() - - response.write(b"") - else: - response.add_header("Content-type", "text/plain") - response.send_headers() - - try: - with open(path, "rb") as fp: - chunk = fp.read(8192) - while chunk: - response.write(chunk) - chunk = fp.read(8192) - except OSError: - response.write(b"Cannot open") - - await response.write_eof() - if response.keep_alive(): - self.keep_alive(True) - - -ARGS = argparse.ArgumentParser(description="Run simple HTTP server.") -ARGS.add_argument( - "--host", action="store", dest="host", default="127.0.0.1", help="Host name" -) -ARGS.add_argument( - "--port", action="store", dest="port", default=8080, type=int, help="Port number" -) -# make iocp and ssl mutually exclusive because ProactorEventLoop is -# incompatible with SSL -group = ARGS.add_mutually_exclusive_group() -group.add_argument( - "--iocp", action="store_true", dest="iocp", help="Windows IOCP event loop" -) -group.add_argument("--ssl", action="store_true", dest="ssl", help="Run ssl mode.") -ARGS.add_argument("--sslcert", action="store", dest="certfile", help="SSL cert file.") -ARGS.add_argument("--sslkey", action="store", dest="keyfile", help="SSL key file.") - - -def main(): - args = ARGS.parse_args() - - if ":" in args.host: - args.host, port = args.host.split(":", 1) - args.port = int(port) - - if args.iocp: - from asyncio import windows_events - - sys.argv.remove("--iocp") - logging.info("using iocp") - el = windows_events.ProactorEventLoop() - asyncio.set_event_loop(el) - - if args.ssl: - here = os.path.join(os.path.dirname(__file__), "tests") - - if args.certfile: - certfile = args.certfile or os.path.join(here, "sample.crt") - keyfile = args.keyfile or os.path.join(here, "sample.key") - else: - certfile = os.path.join(here, "sample.crt") - keyfile = os.path.join(here, "sample.key") - - sslcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23) - sslcontext.load_cert_chain(certfile, keyfile) - else: - sslcontext = None - - loop = asyncio.get_event_loop() - f = loop.create_server( - lambda: HttpRequestHandler(debug=True, keep_alive=75), - args.host, - args.port, - ssl=sslcontext, - ) - svr = loop.run_until_complete(f) - socks = svr.sockets - print("serving on", socks[0].getsockname()) - try: - loop.run_forever() - except KeyboardInterrupt: - pass - - -if __name__ == "__main__": - main() diff --git a/examples/legacy/tcp_protocol_parser.py b/examples/legacy/tcp_protocol_parser.py deleted file mode 100755 index ca49db7..0000000 --- a/examples/legacy/tcp_protocol_parser.py +++ /dev/null @@ -1,172 +0,0 @@ -#!/usr/bin/env python3 -"""Protocol parser example.""" -import argparse -import asyncio -import collections - -import aiohttp - -try: - import signal -except ImportError: - signal = None - - -MSG_TEXT = b"text:" -MSG_PING = b"ping:" -MSG_PONG = b"pong:" -MSG_STOP = b"stop:" - -Message = collections.namedtuple("Message", ("tp", "data")) - - -def my_protocol_parser(out, buf): - """Parser is used with StreamParser for incremental protocol parsing. - Parser is a generator function, but it is not a coroutine. Usually - parsers are implemented as a state machine. - - more details in asyncio/parsers.py - existing parsers: - * HTTP protocol parsers asyncio/http/protocol.py - * websocket parser asyncio/http/websocket.py - """ - while True: - tp = yield from buf.read(5) - if tp in (MSG_PING, MSG_PONG): - # skip line - yield from buf.skipuntil(b"\r\n") - out.feed_data(Message(tp, None)) - elif tp == MSG_STOP: - out.feed_data(Message(tp, None)) - elif tp == MSG_TEXT: - # read text - text = yield from buf.readuntil(b"\r\n") - out.feed_data(Message(tp, text.strip().decode("utf-8"))) - else: - raise ValueError("Unknown protocol prefix.") - - -class MyProtocolWriter: - def __init__(self, transport): - self.transport = transport - - def ping(self): - self.transport.write(b"ping:\r\n") - - def pong(self): - self.transport.write(b"pong:\r\n") - - def stop(self): - self.transport.write(b"stop:\r\n") - - def send_text(self, text): - self.transport.write(f"text:{text.strip()}\r\n".encode("utf-8")) - - -class EchoServer(asyncio.Protocol): - def connection_made(self, transport): - print("Connection made") - self.transport = transport - self.stream = aiohttp.StreamParser() - asyncio.Task(self.dispatch()) - - def data_received(self, data): - self.stream.feed_data(data) - - def eof_received(self): - self.stream.feed_eof() - - def connection_lost(self, exc): - print("Connection lost") - - async def dispatch(self): - reader = self.stream.set_parser(my_protocol_parser) - writer = MyProtocolWriter(self.transport) - - while True: - try: - msg = await reader.read() - except aiohttp.ConnectionError: - # client has been disconnected - break - - print(f"Message received: {msg}") - - if msg.type == MSG_PING: - writer.pong() - elif msg.type == MSG_TEXT: - writer.send_text("Re: " + msg.data) - elif msg.type == MSG_STOP: - self.transport.close() - break - - -async def start_client(loop, host, port): - transport, stream = await loop.create_connection(aiohttp.StreamProtocol, host, port) - reader = stream.reader.set_parser(my_protocol_parser) - writer = MyProtocolWriter(transport) - writer.ping() - - message = "This is the message. It will be echoed." - - while True: - try: - msg = await reader.read() - except aiohttp.ConnectionError: - print("Server has been disconnected.") - break - - print(f"Message received: {msg}") - if msg.type == MSG_PONG: - writer.send_text(message) - print("data sent:", message) - elif msg.type == MSG_TEXT: - writer.stop() - print("stop sent") - break - - transport.close() - - -def start_server(loop, host, port): - f = loop.create_server(EchoServer, host, port) - srv = loop.run_until_complete(f) - x = srv.sockets[0] - print("serving on", x.getsockname()) - loop.run_forever() - - -ARGS = argparse.ArgumentParser(description="Protocol parser example.") -ARGS.add_argument( - "--server", action="store_true", dest="server", default=False, help="Run tcp server" -) -ARGS.add_argument( - "--client", action="store_true", dest="client", default=False, help="Run tcp client" -) -ARGS.add_argument( - "--host", action="store", dest="host", default="127.0.0.1", help="Host name" -) -ARGS.add_argument( - "--port", action="store", dest="port", default=9999, type=int, help="Port number" -) - - -if __name__ == "__main__": - args = ARGS.parse_args() - - if ":" in args.host: - args.host, port = args.host.split(":", 1) - args.port = int(port) - - if (not (args.server or args.client)) or (args.server and args.client): - print("Please specify --server or --client\n") - ARGS.print_help() - else: - loop = asyncio.get_event_loop() - if signal is not None: - loop.add_signal_handler(signal.SIGINT, loop.stop) - - if args.server: - start_server(loop, args.host, args.port) - else: - loop.run_until_complete(start_client(loop, args.host, args.port)) diff --git a/examples/web_classview.py b/examples/web_classview.py index 0f65f7d..1f1afda 100755 --- a/examples/web_classview.py +++ b/examples/web_classview.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -"""Example for aiohttp.web class based views -""" +"""Example for aiohttp.web class based views.""" import functools @@ -14,7 +13,7 @@ async def get(self): return web.json_response( { "method": "get", - "args": dict(self.request.GET), + "args": dict(self.request.query), "headers": dict(self.request.headers), }, dumps=functools.partial(json.dumps, indent=4), @@ -25,7 +24,7 @@ async def post(self): return web.json_response( { "method": "post", - "args": dict(self.request.GET), + "args": dict(self.request.query), "data": dict(data), "headers": dict(self.request.headers), }, diff --git a/examples/web_cookies.py b/examples/web_cookies.py index e7a4a59..c028d19 100755 --- a/examples/web_cookies.py +++ b/examples/web_cookies.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 -"""Example for aiohttp.web basic server with cookies. -""" +"""Example for aiohttp.web basic server with cookies.""" from pprint import pformat +from typing import NoReturn from aiohttp import web @@ -22,20 +22,20 @@ async def root(request): return resp -async def login(request): - resp = web.HTTPFound(location="/") - resp.set_cookie("AUTH", "secret") - return resp +async def login(request: web.Request) -> NoReturn: + exc = web.HTTPFound(location="/") + exc.set_cookie("AUTH", "secret") + raise exc -async def logout(request): - resp = web.HTTPFound(location="/") - resp.del_cookie("AUTH") - return resp +async def logout(request: web.Request) -> NoReturn: + exc = web.HTTPFound(location="/") + exc.del_cookie("AUTH") + raise exc -def init(loop): - app = web.Application(loop=loop) +def init(): + app = web.Application() app.router.add_get("/", root) app.router.add_get("/login", login) app.router.add_get("/logout", logout) diff --git a/examples/web_rewrite_headers_middleware.py b/examples/web_rewrite_headers_middleware.py index 20799a3..15e985e 100755 --- a/examples/web_rewrite_headers_middleware.py +++ b/examples/web_rewrite_headers_middleware.py @@ -1,9 +1,8 @@ #!/usr/bin/env python3 -""" -Example for rewriting response headers by middleware. -""" +"""Example for rewriting response headers by middleware.""" from aiohttp import web +from aiohttp.typedefs import Handler async def handler(request): @@ -11,7 +10,7 @@ async def handler(request): @web.middleware -async def middleware(request, handler): +async def middleware(request: web.Request, handler: Handler) -> web.StreamResponse: try: response = await handler(request) except web.HTTPException as exc: diff --git a/examples/web_srv.py b/examples/web_srv.py index b572326..4d0e7c4 100755 --- a/examples/web_srv.py +++ b/examples/web_srv.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -"""Example for aiohttp.web basic server -""" +"""Example for aiohttp.web basic server.""" import textwrap diff --git a/examples/web_srv_route_deco.py b/examples/web_srv_route_deco.py index 3329903..4e1769d 100644 --- a/examples/web_srv_route_deco.py +++ b/examples/web_srv_route_deco.py @@ -1,7 +1,5 @@ #!/usr/bin/env python3 -"""Example for aiohttp.web basic server -with decorator definition for routes -""" +"""Example for aiohttp.web basic server with decorator definition for routes.""" import textwrap diff --git a/examples/web_srv_route_table.py b/examples/web_srv_route_table.py index f53142a..24815b2 100644 --- a/examples/web_srv_route_table.py +++ b/examples/web_srv_route_table.py @@ -1,7 +1,5 @@ #!/usr/bin/env python3 -"""Example for aiohttp.web basic server -with table definition for routes -""" +"""Example for aiohttp.web basic server with table definition for routes.""" import textwrap diff --git a/examples/web_ws.py b/examples/web_ws.py index 970f150..f6c0593 100755 --- a/examples/web_ws.py +++ b/examples/web_ws.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -"""Example for aiohttp.web websocket server -""" +"""Example for aiohttp.web websocket server.""" import os diff --git a/pyproject.toml b/pyproject.toml index e666dfc..262623f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,9 @@ +[build-system] +requires = [ + "setuptools >= 46.4.0", +] +build-backend = "setuptools.build_meta" + [tool.towncrier] package = "aiohttp" filename = "CHANGES.rst" @@ -5,3 +11,9 @@ directory = "CHANGES/" title_format = "{version} ({project_date})" template = "CHANGES/.TEMPLATE.rst" issue_format = "`#{issue} `_" + + +[tool.cibuildwheel] +test-command = "" +# don't build PyPy wheels, install from source instead +skip = "pp*" diff --git a/setup.cfg b/setup.cfg index 2f528bc..6f6289b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,8 +1,81 @@ -[aliases] -test = pytest - [metadata] -license_file = LICENSE.txt +name = aiohttp +version = attr: aiohttp.__version__ +url = https://github.com/aio-libs/aiohttp +project_urls = + Chat: Matrix = https://matrix.to/#/#aio-libs:matrix.org + Chat: Matrix Space = https://matrix.to/#/#aio-libs-space:matrix.org + CI: GitHub Actions = https://github.com/aio-libs/aiohttp/actions?query=workflow%%3ACI + Coverage: codecov = https://codecov.io/github/aio-libs/aiohttp + Docs: Changelog = https://docs.aiohttp.org/en/stable/changes.html + Docs: RTD = https://docs.aiohttp.org + GitHub: issues = https://github.com/aio-libs/aiohttp/issues + GitHub: repo = https://github.com/aio-libs/aiohttp +description = Async http client/server framework (asyncio) +long_description = file: README.rst +long_description_content_type = text/x-rst +maintainer = aiohttp team +maintainer_email = team@aiohttp.org +license = Apache 2 +license_files = LICENSE.txt +classifiers = + Development Status :: 5 - Production/Stable + + Framework :: AsyncIO + + Intended Audience :: Developers + + License :: OSI Approved :: Apache Software License + + Operating System :: POSIX + Operating System :: MacOS :: MacOS X + Operating System :: Microsoft :: Windows + + Programming Language :: Python + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 + + Topic :: Internet :: WWW/HTTP + +[options] +python_requires = >=3.6 +packages = find: +zip_safe = False +include_package_data = True +install_requires = + attrs >= 17.3.0 + charset-normalizer >=2.0, < 4.0 + multidict >=4.5, < 7.0 + async_timeout >= 4.0.0a3, < 5.0 + asynctest == 0.13.0; python_version<"3.8" + yarl >= 1.0, < 2.0 + idna-ssl >= 1.0; python_version<"3.7" + typing_extensions >= 3.7.4; python_version<"3.8" + frozenlist >= 1.1.1 + aiosignal >= 1.1.2 + +[options.exclude_package_data] +* = + *.c + *.h + +[options.extras_require] +speedups = + aiodns + Brotli + cchardet; python_version < "3.10" + +[options.packages.find] +exclude = + examples + +[options.package_data] +* = + *.so [pep8] max-line-length = 79 @@ -11,7 +84,7 @@ max-line-length = 79 zip_ok = false [flake8] -ignore = N801,N802,N803,E203,E226,E305,W504,E252,E301,E302,E704,W503,W504,F811 +ignore = N801,N802,N803,E203,E226,E305,W504,E252,E301,E302,E704,W503,W504,F811,D1,D4 max-line-length = 88 [isort] @@ -34,58 +107,38 @@ source = aiohttp, tests omit = site-packages [tool:pytest] -addopts = --cov=aiohttp -v -rxXs --durations 10 +addopts = + --durations=10 + + -v + + -ra + + --showlocals + + --cov=aiohttp + --cov=tests/ + + -m "not dev_mode" filterwarnings = error ignore:module 'ssl' has no attribute 'OP_NO_COMPRESSION'. The Python interpreter is compiled against OpenSSL < 1.0.0. Ref. https.//docs.python.org/3/library/ssl.html#ssl.OP_NO_COMPRESSION:UserWarning + ignore:unclosed transport :ResourceWarning + ignore:Unclosed client session =17.3.0", - "chardet>=2.0,<4.0", - "multidict>=4.5,<7.0", - "async_timeout>=3.0,<4.0", - "yarl>=1.0,<2.0", - 'idna-ssl>=1.0; python_version<"3.7"', - "typing_extensions>=3.6.5", -] - - -def read(f): - return (here / f).read_text("utf-8").strip() - - -NEEDS_PYTEST = {"pytest", "test"}.intersection(sys.argv) -pytest_runner = ["pytest-runner"] if NEEDS_PYTEST else [] - -tests_require = [ - "pytest", - "gunicorn", - "pytest-timeout", - "async-generator", - "pytest-xdist", -] - - -args = dict( - name="aiohttp", - version=version, - description="Async http client/server framework (asyncio)", - long_description="\n\n".join((read("README.rst"), read("CHANGES.rst"))), - classifiers=[ - "License :: OSI Approved :: Apache Software License", - "Intended Audience :: Developers", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Development Status :: 5 - Production/Stable", - "Operating System :: POSIX", - "Operating System :: MacOS :: MacOS X", - "Operating System :: Microsoft :: Windows", - "Topic :: Internet :: WWW/HTTP", - "Framework :: AsyncIO", - ], - author="Nikolay Kim", - author_email="fafhrd91@gmail.com", - maintainer=", ".join( - ( - "Nikolay Kim ", - "Andrew Svetlov ", - ) - ), - maintainer_email="aio-libs@googlegroups.com", - url="https://github.com/aio-libs/aiohttp", - project_urls={ - "Chat: Gitter": "https://gitter.im/aio-libs/Lobby", - "CI: Azure Pipelines": "https://dev.azure.com/aio-libs/aiohttp/_build", - "Coverage: codecov": "https://codecov.io/github/aio-libs/aiohttp", - "Docs: RTD": "https://docs.aiohttp.org", - "GitHub: issues": "https://github.com/aio-libs/aiohttp/issues", - "GitHub: repo": "https://github.com/aio-libs/aiohttp", - }, - license="Apache 2", - packages=["aiohttp"], - python_requires=">=3.6", - install_requires=install_requires, - extras_require={ - "speedups": [ - "aiodns", - "brotlipy", - "cchardet", - ], - }, - tests_require=tests_require, - setup_requires=pytest_runner, - include_package_data=True, - ext_modules=extensions, - cmdclass=dict(build_ext=ve_build_ext), -) +build_type = "Pure" if NO_EXTENSIONS else "Accelerated" +setup_kwargs = {} if NO_EXTENSIONS else {"ext_modules": extensions} -try: - setup(**args) -except BuildFailed: - print("************************************************************") - print("Cannot compile C accelerator module, use pure python version") - print("************************************************************") - del args["ext_modules"] - del args["cmdclass"] - setup(**args) +print("*********************", file=sys.stderr) +print("* {build_type} build *".format_map(locals()), file=sys.stderr) +print("*********************", file=sys.stderr) +setup(**setup_kwargs) diff --git a/tests/autobahn/Dockerfile.aiohttp b/tests/autobahn/Dockerfile.aiohttp new file mode 100644 index 0000000..2d37683 --- /dev/null +++ b/tests/autobahn/Dockerfile.aiohttp @@ -0,0 +1,7 @@ +FROM python:3.9.5 + +COPY ./ /src + +WORKDIR /src + +RUN pip install . diff --git a/tests/autobahn/Dockerfile.autobahn b/tests/autobahn/Dockerfile.autobahn new file mode 100644 index 0000000..45f1818 --- /dev/null +++ b/tests/autobahn/Dockerfile.autobahn @@ -0,0 +1,6 @@ +FROM crossbario/autobahn-testsuite:0.8.2 + +RUN apt-get update && apt-get install python3 python3-pip -y +RUN pip3 install wait-for-it + +CMD ["wstest", "--mode", "fuzzingserver", "--spec", "/config/fuzzingserver.json"] diff --git a/tests/autobahn/client.py b/tests/autobahn/client.py deleted file mode 100644 index 513a4ee..0000000 --- a/tests/autobahn/client.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env python3 - -import asyncio - -import aiohttp - - -async def client(loop, url, name): - ws = await aiohttp.ws_connect(url + "/getCaseCount") - num_tests = int((await ws.receive()).data) - print("running %d cases" % num_tests) - await ws.close() - - for i in range(1, num_tests + 1): - print("running test case:", i) - text_url = url + "/runCase?case=%d&agent=%s" % (i, name) - ws = await aiohttp.ws_connect(text_url) - while True: - msg = await ws.receive() - - if msg.type == aiohttp.WSMsgType.text: - await ws.send_str(msg.data) - elif msg.type == aiohttp.WSMsgType.binary: - await ws.send_bytes(msg.data) - elif msg.type == aiohttp.WSMsgType.close: - await ws.close() - break - else: - break - - url = url + "/updateReports?agent=%s" % name - ws = await aiohttp.ws_connect(url) - await ws.close() - - -async def run(loop, url, name): - try: - await client(loop, url, name) - except Exception: - import traceback - - traceback.print_exc() - - -if __name__ == "__main__": - loop = asyncio.get_event_loop() - try: - loop.run_until_complete(run(loop, "http://localhost:9001", "aiohttp")) - except KeyboardInterrupt: - pass - finally: - loop.close() diff --git a/tests/autobahn/client/client.py b/tests/autobahn/client/client.py new file mode 100644 index 0000000..dfca77d --- /dev/null +++ b/tests/autobahn/client/client.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 + +import asyncio + +import aiohttp + + +async def client(url: str, name: str) -> None: + async with aiohttp.ClientSession() as session: + async with session.ws_connect(url + "/getCaseCount") as ws: + num_tests = int((await ws.receive()).data) + print("running %d cases" % num_tests) + + for i in range(1, num_tests + 1): + print("running test case:", i) + text_url = url + "/runCase?case=%d&agent=%s" % (i, name) + async with session.ws_connect(text_url) as ws: + async for msg in ws: + if msg.type == aiohttp.WSMsgType.TEXT: + await ws.send_str(msg.data) + elif msg.type == aiohttp.WSMsgType.BINARY: + await ws.send_bytes(msg.data) + else: + break + + url = url + "/updateReports?agent=%s" % name + async with session.ws_connect(url) as ws: + print("finally requesting %s" % url) + + +async def run(url: str, name: str) -> None: + try: + await client(url, name) + except Exception: + import traceback + + traceback.print_exc() + + +if __name__ == "__main__": + asyncio.run(run("http://localhost:9001", "aiohttp")) diff --git a/tests/autobahn/fuzzingserver.json b/tests/autobahn/client/fuzzingserver.json similarity index 100% rename from tests/autobahn/fuzzingserver.json rename to tests/autobahn/client/fuzzingserver.json diff --git a/tests/autobahn/fuzzingclient.json b/tests/autobahn/fuzzingclient.json deleted file mode 100644 index 31c39d2..0000000 --- a/tests/autobahn/fuzzingclient.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "options": {"failByDrop": false}, - "outdir": "./reports/servers", - - "servers": [{"agent": "AutobahnServer", "url": "ws://localhost:9001", "options": {"version": 18}}], - - "cases": ["*"], - "exclude-cases": ["12.*", "13.*"], - "exclude-agent-cases": {} -} diff --git a/tests/autobahn/server.py b/tests/autobahn/server.py deleted file mode 100644 index 3d39d6c..0000000 --- a/tests/autobahn/server.py +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env python3 - -import asyncio -import logging - -from aiohttp import web - - -async def wshandler(request): - ws = web.WebSocketResponse(autoclose=False) - is_ws = ws.can_prepare(request) - if not is_ws: - return web.HTTPBadRequest() - - await ws.prepare(request) - - while True: - msg = await ws.receive() - - if msg.type == web.WSMsgType.text: - await ws.send_str(msg.data) - elif msg.type == web.WSMsgType.binary: - await ws.send_bytes(msg.data) - elif msg.type == web.WSMsgType.close: - await ws.close() - break - else: - break - - return ws - - -async def main(loop): - app = web.Application() - app.router.add_route("GET", "/", wshandler) - - handler = app._make_handler() - srv = await loop.create_server(handler, "127.0.0.1", 9001) - print("Server started at http://127.0.0.1:9001") - return app, srv, handler - - -async def finish(app, srv, handler): - srv.close() - await handler.shutdown() - await srv.wait_closed() - - -if __name__ == "__main__": - loop = asyncio.get_event_loop() - logging.basicConfig( - level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s" - ) - app, srv, handler = loop.run_until_complete(main(loop)) - try: - loop.run_forever() - except KeyboardInterrupt: - loop.run_until_complete(finish(app, srv, handler)) diff --git a/tests/autobahn/server/fuzzingclient.json b/tests/autobahn/server/fuzzingclient.json new file mode 100644 index 0000000..0ed2f84 --- /dev/null +++ b/tests/autobahn/server/fuzzingclient.json @@ -0,0 +1,16 @@ +{ + "options": { "failByDrop": false }, + "outdir": "./reports/servers", + + "servers": [ + { + "agent": "AutobahnServer", + "url": "ws://localhost:9001", + "options": { "version": 18 } + } + ], + + "cases": ["*"], + "exclude-cases": ["12.*", "13.*"], + "exclude-agent-cases": {} +} diff --git a/tests/autobahn/server/server.py b/tests/autobahn/server/server.py new file mode 100644 index 0000000..c0e5025 --- /dev/null +++ b/tests/autobahn/server/server.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 + +import logging + +from aiohttp import WSCloseCode, web + + +async def wshandler(request: web.Request) -> web.WebSocketResponse: + ws = web.WebSocketResponse(autoclose=False) + is_ws = ws.can_prepare(request) + if not is_ws: + raise web.HTTPBadRequest() + + await ws.prepare(request) + + request.app["websockets"].append(ws) + + while True: + msg = await ws.receive() + + if msg.type == web.WSMsgType.TEXT: + await ws.send_str(msg.data) + elif msg.type == web.WSMsgType.BINARY: + await ws.send_bytes(msg.data) + elif msg.type == web.WSMsgType.CLOSE: + await ws.close() + break + else: + break + + return ws + + +async def on_shutdown(app: web.Application) -> None: + for ws in set(app["websockets"]): + await ws.close(code=WSCloseCode.GOING_AWAY, message="Server shutdown") + + +if __name__ == "__main__": + logging.basicConfig( + level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s" + ) + + app = web.Application() + app["websockets"] = [] + app.router.add_route("GET", "/", wshandler) + app.on_shutdown.append(on_shutdown) + try: + web.run_app(app, port=9001) + except KeyboardInterrupt: + print("Server stopped at http://127.0.0.1:9001") diff --git a/tests/autobahn/test_autobahn.py b/tests/autobahn/test_autobahn.py new file mode 100644 index 0000000..76cc54e --- /dev/null +++ b/tests/autobahn/test_autobahn.py @@ -0,0 +1,136 @@ +import json +import subprocess +import sys +from pathlib import Path +from typing import Any, Dict, Generator, List + +import pytest +from pytest import TempPathFactory + +python_on_whales = pytest.importorskip( + "python_on_whales", + reason="'python-on-whales' requires Python 3.7+", +) + + +@pytest.fixture(scope="session") +def report_dir(tmp_path_factory: TempPathFactory) -> Path: + return tmp_path_factory.mktemp("reports") + + +@pytest.fixture(scope="session", autouse=True) +def build_autobahn_testsuite() -> Generator[None, None, None]: + + try: + python_on_whales.docker.build( + file="tests/autobahn/Dockerfile.autobahn", + tags=["autobahn-testsuite"], + context_path=".", + ) + except python_on_whales.DockerException: + pytest.skip(msg="The docker daemon is not running.") + + try: + yield + finally: + python_on_whales.docker.image.remove(x="autobahn-testsuite") + + +def get_failed_tests(report_path: str, name: str) -> List[Dict[str, Any]]: + path = Path(report_path) + result_summary = json.loads((path / "index.json").read_text())[name] + failed_messages = [] + PASS = {"OK", "INFORMATIONAL"} + entry_fields = {"case", "description", "expectation", "expected", "received"} + for results in result_summary.values(): + if results["behavior"] in PASS and results["behaviorClose"] in PASS: + continue + report = json.loads((path / results["reportfile"]).read_text()) + failed_messages.append({field: report[field] for field in entry_fields}) + return failed_messages + + +@pytest.mark.skipif(sys.platform == "darwin", reason="Don't run on macOS") +@pytest.mark.xfail +def test_client(report_dir: Path, request: Any) -> None: + try: + print("Starting autobahn-testsuite server") + autobahn_container = python_on_whales.docker.run( + detach=True, + image="autobahn-testsuite", + name="autobahn", + publish=[(9001, 9001)], + remove=True, + volumes=[ + (f"{request.fspath.dirname}/client", "/config"), + (f"{report_dir}", "/reports"), + ], + ) + print("Running aiohttp test client") + client = subprocess.Popen( + ["wait-for-it", "-s", "localhost:9001", "--"] + + [sys.executable] + + ["tests/autobahn/client/client.py"] + ) + client.wait() + finally: + print("Stopping client and server") + client.terminate() + client.wait() + autobahn_container.stop() + + failed_messages = get_failed_tests(f"{report_dir}/clients", "aiohttp") + + assert not failed_messages, "\n".join( + "\n\t".join( + f"{field}: {msg[field]}" + for field in ("case", "description", "expectation", "expected", "received") + ) + for msg in failed_messages + ) + + +@pytest.mark.skipif(sys.platform == "darwin", reason="Don't run on macOS") +@pytest.mark.xfail +def test_server(report_dir: Path, request: Any) -> None: + try: + print("Starting aiohttp test server") + server = subprocess.Popen( + [sys.executable] + ["tests/autobahn/server/server.py"] + ) + print("Starting autobahn-testsuite client") + python_on_whales.docker.run( + image="autobahn-testsuite", + name="autobahn", + remove=True, + volumes=[ + (f"{request.fspath.dirname}/server", "/config"), + (f"{report_dir}", "/reports"), + ], + networks=["host"], + command=[ + "wait-for-it", + "-s", + "localhost:9001", + "--", + "wstest", + "--mode", + "fuzzingclient", + "--spec", + "/config/fuzzingclient.json", + ], + ) + finally: + print("Stopping client and server") + server.terminate() + server.wait() + + failed_messages = get_failed_tests(f"{report_dir}/servers", "AutobahnServer") + + assert not failed_messages, "\n".join( + "\n\t".join( + f"{field}: {msg[field]}" + for field in ("case", "description", "expectation", "expected", "received") + ) + for msg in failed_messages + ) diff --git a/tests/conftest.py b/tests/conftest.py index 09cbf6c..e33a99d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,11 +1,12 @@ import asyncio -import hashlib -import pathlib -import shutil +import os +import socket import ssl import sys -import tempfile -import uuid +from hashlib import md5, sha256 +from pathlib import Path +from tempfile import TemporaryDirectory +from uuid import uuid4 import pytest @@ -14,35 +15,36 @@ try: import trustme - TRUSTME = True + # Check if the CA is available in runtime, MacOS on Py3.10 fails somehow + trustme.CA() + + TRUSTME: bool = True except ImportError: TRUSTME = False pytest_plugins = ["aiohttp.pytest_plugin", "pytester"] -@pytest.fixture -def shorttmpdir(): - """Provides a temporary directory with a shorter file system path than the - tmpdir fixture. - """ - tmpdir = pathlib.Path(tempfile.mkdtemp()) - yield tmpdir - # str(tmpdir) is required, Python 3.5 doesn't have __fspath__ - # concept - shutil.rmtree(str(tmpdir), ignore_errors=True) +IS_HPUX = sys.platform.startswith("hp-ux") +"""Specifies whether the current runtime is HP-UX.""" +IS_LINUX = sys.platform.startswith("linux") +"""Specifies whether the current runtime is HP-UX.""" +IS_UNIX = hasattr(socket, "AF_UNIX") +"""Specifies whether the current runtime is *NIX.""" + +needs_unix = pytest.mark.skipif(not IS_UNIX, reason="requires UNIX sockets") @pytest.fixture def tls_certificate_authority(): if not TRUSTME: - pytest.xfail("trustme fails on 32bit Linux") + pytest.xfail("trustme is not supported") return trustme.CA() @pytest.fixture def tls_certificate(tls_certificate_authority): - return tls_certificate_authority.issue_server_cert( + return tls_certificate_authority.issue_cert( "localhost", "127.0.0.1", "::1", @@ -51,7 +53,7 @@ def tls_certificate(tls_certificate_authority): @pytest.fixture def ssl_ctx(tls_certificate): - ssl_ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + ssl_ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) tls_certificate.configure_cert(ssl_ctx) return ssl_ctx @@ -83,12 +85,91 @@ def tls_certificate_pem_bytes(tls_certificate): @pytest.fixture def tls_certificate_fingerprint_sha256(tls_certificate_pem_bytes): tls_cert_der = ssl.PEM_cert_to_DER_cert(tls_certificate_pem_bytes.decode()) - return hashlib.sha256(tls_cert_der).digest() + return sha256(tls_cert_der).digest() + + +@pytest.fixture +def unix_sockname(tmp_path, tmp_path_factory): + """Generate an fs path to the UNIX domain socket for testing. + + N.B. Different OS kernels have different fs path length limitations + for it. For Linux, it's 108, for HP-UX it's 92 (or higher) depending + on its version. For for most of the BSDs (Open, Free, macOS) it's + mostly 104 but sometimes it can be down to 100. + + Ref: https://github.com/aio-libs/aiohttp/issues/3572 + """ + if not IS_UNIX: + pytest.skip("requires UNIX sockets") + + max_sock_len = 92 if IS_HPUX else 108 if IS_LINUX else 100 + """Amount of bytes allocated for the UNIX socket path by OS kernel. + + Ref: https://unix.stackexchange.com/a/367012/27133 + """ + + sock_file_name = "unix.sock" + unique_prefix = f"{uuid4()!s}-" + unique_prefix_len = len(unique_prefix.encode()) + + root_tmp_dir = Path("/tmp").resolve() + os_tmp_dir = Path(os.getenv("TMPDIR", "/tmp")).resolve() + original_base_tmp_path = Path( + str(tmp_path_factory.getbasetemp()), + ).resolve() + + original_base_tmp_path_hash = md5( + str(original_base_tmp_path).encode(), + ).hexdigest() + + def make_tmp_dir(base_tmp_dir): + return TemporaryDirectory( + dir=str(base_tmp_dir), + prefix="pt-", + suffix=f"-{original_base_tmp_path_hash!s}", + ) + + def assert_sock_fits(sock_path): + sock_path_len = len(sock_path.encode()) + # exit-check to verify that it's correct and simplify debugging + # in the future + assert sock_path_len <= max_sock_len, ( + "Suggested UNIX socket ({sock_path}) is {sock_path_len} bytes " + "long but the current kernel only has {max_sock_len} bytes " + "allocated to hold it so it must be shorter. " + "See https://github.com/aio-libs/aiohttp/issues/3572 " + "for more info." + ).format_map(locals()) + + paths = original_base_tmp_path, os_tmp_dir, root_tmp_dir + unique_paths = [p for n, p in enumerate(paths) if p not in paths[:n]] + paths_num = len(unique_paths) + + for num, tmp_dir_path in enumerate(paths, 1): + with make_tmp_dir(tmp_dir_path) as tmpd: + tmpd = Path(tmpd).resolve() + sock_path = str(tmpd / sock_file_name) + sock_path_len = len(sock_path.encode()) + + if num >= paths_num: + # exit-check to verify that it's correct and simplify + # debugging in the future + assert_sock_fits(sock_path) + + if sock_path_len <= max_sock_len: + if max_sock_len - sock_path_len >= unique_prefix_len: + # If we're lucky to have extra space in the path, + # let's also make it more unique + sock_path = str(tmpd / "".join((unique_prefix, sock_file_name))) + # Double-checking it: + assert_sock_fits(sock_path) + yield sock_path + return @pytest.fixture def pipe_name(): - name = fr"\\.\pipe\{uuid.uuid4().hex}" + name = rf"\\.\pipe\{uuid4().hex}" return name diff --git a/tests/sample.txt b/tests/sample.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/tests/sample.txt @@ -0,0 +1,202 @@ + + 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/tests/test___all__.py b/tests/test___all__.py new file mode 100644 index 0000000..6c7d855 --- /dev/null +++ b/tests/test___all__.py @@ -0,0 +1,22 @@ +from typing import Any + + +def test___all__(pytester: Any) -> None: + """See https://github.com/aio-libs/aiohttp/issues/6197""" + pytester.makepyfile( + test_a=""" + from aiohttp import * + """ + ) + result = pytester.runpytest("-vv") + result.assert_outcomes(passed=0, errors=0) + + +def test_web___all__(pytester: Any) -> None: + pytester.makepyfile( + test_b=""" + from aiohttp.web import * + """ + ) + result = pytester.runpytest("-vv") + result.assert_outcomes(passed=0, errors=0) diff --git a/tests/test_base_protocol.py b/tests/test_base_protocol.py index 531e55e..a16b1f1 100644 --- a/tests/test_base_protocol.py +++ b/tests/test_base_protocol.py @@ -45,10 +45,10 @@ async def test_connection_lost_not_paused() -> None: pr = BaseProtocol(loop=loop) tr = mock.Mock() pr.connection_made(tr) - assert not pr._connection_lost + assert pr.connected pr.connection_lost(None) assert pr.transport is None - assert pr._connection_lost + assert not pr.connected async def test_connection_lost_paused_without_waiter() -> None: @@ -56,11 +56,11 @@ async def test_connection_lost_paused_without_waiter() -> None: pr = BaseProtocol(loop=loop) tr = mock.Mock() pr.connection_made(tr) - assert not pr._connection_lost + assert pr.connected pr.pause_writing() pr.connection_lost(None) assert pr.transport is None - assert pr._connection_lost + assert not pr.connected async def test_drain_lost() -> None: @@ -180,3 +180,21 @@ async def wait(): with suppress(asyncio.CancelledError): await t assert pr._drain_waiter is None + + +async def test_parallel_drain_race_condition() -> None: + loop = asyncio.get_event_loop() + pr = BaseProtocol(loop=loop) + tr = mock.Mock() + pr.connection_made(tr) + pr.pause_writing() + + ts = [loop.create_task(pr._drain_helper()) for _ in range(5)] + assert not (await asyncio.wait(ts, timeout=0.5))[ + 0 + ], "All draining tasks must be pending" + + assert pr._drain_waiter is not None + pr.resume_writing() + await asyncio.gather(*ts) + assert pr._drain_waiter is None diff --git a/tests/test_circular_imports.py b/tests/test_circular_imports.py new file mode 100644 index 0000000..22e5ea4 --- /dev/null +++ b/tests/test_circular_imports.py @@ -0,0 +1,120 @@ +"""Tests for circular imports in all local packages and modules. + +This ensures all internal packages can be imported right away without +any need to import some other module before doing so. + +This module is based on an idea that pytest uses for self-testing: +* https://github.com/sanitizers/octomachinery/blob/be18b54/tests/circular_imports_test.py +* https://github.com/pytest-dev/pytest/blob/d18c75b/testing/test_meta.py +* https://twitter.com/codewithanthony/status/1229445110510735361 +""" # noqa: E501 +import os +import pkgutil +import subprocess +import sys +from itertools import chain +from pathlib import Path +from types import ModuleType +from typing import TYPE_CHECKING, Generator, List, Union + +import pytest + +if TYPE_CHECKING: + from _pytest.mark.structures import ParameterSet + +from conftest import IS_UNIX # type: ignore[attr-defined] + +import aiohttp + + +def _mark_aiohttp_worker_for_skipping( + importables: List[str], +) -> List[Union[str, "ParameterSet"]]: + return [ + pytest.param( + importable, + marks=pytest.mark.skipif(not IS_UNIX, reason="It's a UNIX-only module"), + ) + if importable == "aiohttp.worker" + else importable + for importable in importables + ] + + +def _find_all_importables(pkg: ModuleType) -> List[str]: + """Find all importables in the project. + + Return them in order. + """ + return sorted( + set( + chain.from_iterable( + _discover_path_importables(Path(p), pkg.__name__) + # FIXME: Unignore after upgrading to `mypy > 0.910`. The fix + # FIXME: is in the `master` branch of upstream since Aug 4, + # FIXME: 2021 but has not yet been included in any releases. + # Refs: + # * https://github.com/python/mypy/issues/1422 + # * https://github.com/python/mypy/pull/9454 + for p in pkg.__path__ # type: ignore[attr-defined] + ), + ), + ) + + +def _discover_path_importables( + pkg_pth: Path, + pkg_name: str, +) -> Generator[str, None, None]: + """Yield all importables under a given path and package.""" + for dir_path, _d, file_names in os.walk(pkg_pth): + pkg_dir_path = Path(dir_path) + + if pkg_dir_path.parts[-1] == "__pycache__": + continue + + if all(Path(_).suffix != ".py" for _ in file_names): + continue + + rel_pt = pkg_dir_path.relative_to(pkg_pth) + pkg_pref = ".".join((pkg_name,) + rel_pt.parts) + yield from ( + pkg_path + for _, pkg_path, _ in pkgutil.walk_packages( + (str(pkg_dir_path),), + prefix=f"{pkg_pref}.", + ) + ) + + +@pytest.mark.parametrize( + "import_path", + _mark_aiohttp_worker_for_skipping(_find_all_importables(aiohttp)), +) +def test_no_warnings(import_path: str) -> None: + """Verify that exploding importables doesn't explode. + + This is seeking for any import errors including ones caused + by circular imports. + """ + imp_cmd = ( + # fmt: off + sys.executable, + "-W", "error", + # The following deprecation warning is triggered by importing + # `gunicorn.util`. Hopefully, it'll get fixed in the future. See + # https://github.com/benoitc/gunicorn/issues/2840 for detail. + "-W", "ignore:module 'sre_constants' is " + "deprecated:DeprecationWarning:pkg_resources._vendor.pyparsing", + # The following deprecation warning is coming from an old + # version of `setuptools` (the last one to support Python 3.6). + # It is stepping on it's own toes. But since it doesn't + # originate in aiohttp, we don't care much about it. + "-W", + "ignore:Creating a LegacyVersion has been deprecated and will " + "be removed in the next major release:DeprecationWarning:", + "-c", f"import {import_path!s}", + # fmt: on + ) + + subprocess.check_call(imp_cmd) diff --git a/tests/test_client_fingerprint.py b/tests/test_client_fingerprint.py index 753a9f3..b1ae3ca 100644 --- a/tests/test_client_fingerprint.py +++ b/tests/test_client_fingerprint.py @@ -41,21 +41,21 @@ def test__merge_ssl_params_verify_ssl() -> None: def test__merge_ssl_params_verify_ssl_conflict() -> None: - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) with pytest.warns(DeprecationWarning): with pytest.raises(ValueError): _merge_ssl_params(ctx, False, None, None) def test__merge_ssl_params_ssl_context() -> None: - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) with pytest.warns(DeprecationWarning): assert _merge_ssl_params(None, None, ctx, None) is ctx def test__merge_ssl_params_ssl_context_conflict() -> None: - ctx1 = ssl.SSLContext() - ctx2 = ssl.SSLContext() + ctx1 = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) + ctx2 = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) with pytest.warns(DeprecationWarning): with pytest.raises(ValueError): _merge_ssl_params(ctx1, None, ctx2, None) @@ -70,14 +70,14 @@ def test__merge_ssl_params_fingerprint() -> None: def test__merge_ssl_params_fingerprint_conflict() -> None: fingerprint = aiohttp.Fingerprint(hashlib.sha256(b"123").digest()) - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) with pytest.warns(DeprecationWarning): with pytest.raises(ValueError): _merge_ssl_params(ctx, None, None, fingerprint) def test__merge_ssl_params_ssl() -> None: - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) assert ctx is _merge_ssl_params(ctx, None, None, None) diff --git a/tests/test_client_functional.py b/tests/test_client_functional.py index 6bd8d44..4f62b47 100644 --- a/tests/test_client_functional.py +++ b/tests/test_client_functional.py @@ -7,11 +7,12 @@ import json import pathlib import socket +import ssl from unittest import mock import pytest -from async_generator import async_generator, yield_ from multidict import MultiDict +from yarl import URL import aiohttp from aiohttp import Fingerprint, ServerFingerprintMismatch, hdrs, web @@ -234,7 +235,8 @@ async def handler(request): app.router.add_route("POST", "/", handler) client = await aiohttp_client(app) - resp = await client.post("/", data=io.BytesIO(data)) + with io.BytesIO(data) as file_handle: + resp = await client.post("/", data=file_handle) assert 200 == resp.status @@ -245,13 +247,15 @@ async def handler(request): post_data = await request.post() assert ["file"] == list(post_data.keys()) assert data == post_data["file"].file.read() + post_data["file"].file.close() # aiohttp < 4 doesn't autoclose files return web.Response() app = web.Application() app.router.add_route("POST", "/", handler) client = await aiohttp_client(app) - resp = await client.post("/", data={"file": io.BytesIO(data)}) + with io.BytesIO(data) as file_handle: + resp = await client.post("/", data={"file": file_handle}) assert 200 == resp.status @@ -992,7 +996,7 @@ async def handler(request): async def redirect(request): count = int(request.match_info["count"]) if count: - raise web.HTTPFound(location="/redirect/{}".format(count - 1)) + raise web.HTTPFound(location=f"/redirect/{count - 1}") else: raise web.HTTPFound(location="/") @@ -1236,6 +1240,8 @@ async def handler(request): content2 = data["some"].file.read() assert content1 == content2 assert data["test"].file.read() == b"data" + data["some"].file.close() + data["test"].file.close() return web.Response() app = web.Application() @@ -1255,6 +1261,7 @@ async def handler(request): with fname.open("rb") as f: content1 = f.read() content2 = data["some"].file.read() + data["some"].file.close() assert content1 == content2 return web.Response() @@ -1288,7 +1295,7 @@ async def handler(request): async def test_POST_bytes_too_large(aiohttp_client) -> None: - body = b"0" * (2 ** 20 + 1) + body = b"0" * (2**20 + 1) async def handler(request): data = await request.content.read() @@ -1350,6 +1357,7 @@ async def handler(request): with fname.open("rb") as f: content = f.read() assert content == data["some"].file.read() + data["some"].file.close() return web.Response() app = web.Application() @@ -1370,6 +1378,7 @@ async def handler(request): with fname.open("rb") as f: content = f.read() assert content == data["some"].file.read() + data["some"].file.close() return web.Response() app = web.Application() @@ -1425,7 +1434,7 @@ async def handler(request): "text/x-python", ] assert request.headers["content-disposition"] == ( - "inline; filename=\"conftest.py\"; filename*=utf-8''conftest.py" + 'inline; filename="conftest.py"' ) return web.Response() @@ -1472,16 +1481,17 @@ async def handler(request): assert b"data" == data["unknown"].file.read() assert data["unknown"].content_type == "application/octet-stream" assert data["unknown"].filename == "unknown" + data["unknown"].file.close() return web.Response() app = web.Application() app.router.add_post("/", handler) client = await aiohttp_client(app) - data = io.BytesIO(b"data") - resp = await client.post("/", data=[data]) - assert 200 == resp.status - resp.close() + with io.BytesIO(b"data") as file_handle: + resp = await client.post("/", data=[file_handle]) + assert 200 == resp.status + resp.close() async def test_POST_FILES_IO_WITH_PARAMS(aiohttp_client) -> None: @@ -1491,6 +1501,7 @@ async def handler(request): assert data["unknown"].content_type == "application/octet-stream" assert data["unknown"].filename == "unknown" assert data["unknown"].file.read() == b"data" + data["unknown"].file.close() assert data.getall("q") == ["t1", "t2"] return web.Response() @@ -1499,12 +1510,13 @@ async def handler(request): app.router.add_post("/", handler) client = await aiohttp_client(app) - data = io.BytesIO(b"data") - resp = await client.post( - "/", data=(("test", "true"), MultiDict([("q", "t1"), ("q", "t2")]), data) - ) - assert 200 == resp.status - resp.close() + with io.BytesIO(b"data") as file_handle: + resp = await client.post( + "/", + data=(("test", "true"), MultiDict([("q", "t1"), ("q", "t2")]), file_handle), + ) + assert 200 == resp.status + resp.close() async def test_POST_FILES_WITH_DATA(aiohttp_client, fname) -> None: @@ -1519,6 +1531,7 @@ async def handler(request): assert data["some"].filename == fname.name with fname.open("rb") as f: assert data["some"].file.read() == f.read() + data["some"].file.close() return web.Response() @@ -2327,25 +2340,75 @@ async def test_creds_in_auth_and_url() -> None: await session.close() -async def test_drop_auth_on_redirect_to_other_host(aiohttp_server) -> None: - async def srv1(request): - assert request.host == "host1.com" +@pytest.fixture +def create_server_for_url_and_handler(aiohttp_server, tls_certificate_authority): + def create(url, srv): + app = web.Application() + app.router.add_route("GET", url.path, srv) + + kwargs = {} + if url.scheme == "https": + cert = tls_certificate_authority.issue_cert( + url.host, "localhost", "127.0.0.1" + ) + ssl_ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) + cert.configure_cert(ssl_ctx) + kwargs["ssl"] = ssl_ctx + return aiohttp_server(app, **kwargs) + + return create + + +@pytest.mark.parametrize( + ["url_from", "url_to"], + [ + ["http://host1.com/path1", "http://host2.com/path2"], + ["http://host1.com/path1", "https://host1.com/path1"], + ["https://host1.com/path1", "http://host1.com/path2"], + ], + ids=( + "entirely different hosts", + "http -> https", + "https -> http", + ), +) +async def test_drop_auth_on_redirect_to_other_host( + create_server_for_url_and_handler, + url_from, + url_to, +) -> None: + url_from, url_to = URL(url_from), URL(url_to) + + async def srv_from(request): + assert request.host == url_from.host assert request.headers["Authorization"] == "Basic dXNlcjpwYXNz" - raise web.HTTPFound("http://host2.com/path2") + raise web.HTTPFound(url_to) - async def srv2(request): - assert request.host == "host2.com" - assert "Authorization" not in request.headers + async def srv_to(request): + assert request.host == url_to.host + assert "Authorization" not in request.headers, "Header wasn't dropped" return web.Response() - app = web.Application() - app.router.add_route("GET", "/path1", srv1) - app.router.add_route("GET", "/path2", srv2) + server_from = await create_server_for_url_and_handler(url_from, srv_from) + server_to = await create_server_for_url_and_handler(url_to, srv_to) - server = await aiohttp_server(app) + assert ( + url_from.host != url_to.host or server_from.scheme != server_to.scheme + ), "Invalid test case, host or scheme must differ" + + protocol_port_map = { + "http": 80, + "https": 443, + } + etc_hosts = { + (url_from.host, protocol_port_map[server_from.scheme]): server_from, + (url_to.host, protocol_port_map[server_to.scheme]): server_to, + } class FakeResolver(AbstractResolver): async def resolve(self, host, port=0, family=socket.AF_INET): + server = etc_hosts[(host, port)] + return [ { "hostname": host, @@ -2360,45 +2423,35 @@ async def resolve(self, host, port=0, family=socket.AF_INET): async def close(self): pass - connector = aiohttp.TCPConnector(resolver=FakeResolver()) + connector = aiohttp.TCPConnector(resolver=FakeResolver(), ssl=False) + async with aiohttp.ClientSession(connector=connector) as client: resp = await client.get( - "http://host1.com/path1", auth=aiohttp.BasicAuth("user", "pass") + url_from, + auth=aiohttp.BasicAuth("user", "pass"), ) assert resp.status == 200 resp = await client.get( - "http://host1.com/path1", headers={"Authorization": "Basic dXNlcjpwYXNz"} + url_from, + headers={"Authorization": "Basic dXNlcjpwYXNz"}, ) assert resp.status == 200 async def test_async_with_session() -> None: - with pytest.warns(None) as cm: - async with aiohttp.ClientSession() as session: - pass - assert len(cm.list) == 0 + async with aiohttp.ClientSession() as session: + pass assert session.closed async def test_session_close_awaitable() -> None: session = aiohttp.ClientSession() - with pytest.warns(None) as cm: - await session.close() - assert len(cm.list) == 0 + await session.close() assert session.closed -async def test_close_run_until_complete_not_deprecated() -> None: - session = aiohttp.ClientSession() - - with pytest.warns(None) as cm: - await session.close() - - assert len(cm.list) == 0 - - async def test_close_resp_on_error_async_with_session(aiohttp_server) -> None: async def handler(request): resp = web.StreamResponse(headers={"content-length": "100"}) @@ -2515,18 +2568,6 @@ async def test_aiohttp_request_ctx_manager_not_found() -> None: assert False, "never executed" # pragma: no cover -async def test_aiohttp_request_coroutine(aiohttp_server) -> None: - async def handler(request): - return web.Response() - - app = web.Application() - app.router.add_get("/", handler) - server = await aiohttp_server(app) - - with pytest.raises(TypeError): - await aiohttp.request("GET", server.make_url("/")) - - async def test_yield_from_in_session_request(aiohttp_client) -> None: # a test for backward compatibility with yield from syntax async def handler(request): @@ -2715,7 +2756,7 @@ def connection_lost(self, exc): await r.read() assert 0 == len(connector._conns) await session.close() - connector.close() + await connector.close() server.close() await server.wait_closed() @@ -2757,7 +2798,7 @@ def connection_lost(self, exc): assert 0 == len(connector._conns) await session.close() - connector.close() + await connector.close() server.close() await server.wait_closed() @@ -2834,10 +2875,9 @@ async def handler(request): client = await aiohttp_client(app) - @async_generator async def gen(): for i in range(100): - await yield_(b"1234567890") + yield b"1234567890" resp = await client.post("/", data=gen()) assert resp.status == 200 @@ -2950,3 +2990,22 @@ async def handler(request): async with await client.get("/", read_bufsize=4) as resp: assert resp.content.get_read_buffer_limits() == (4, 8) + + +async def test_http_empty_data_text(aiohttp_client) -> None: + async def handler(request): + data = await request.read() + ret = "ok" if data == b"" else "fail" + resp = web.Response(text=ret) + resp.headers["Content-Type"] = request.headers["Content-Type"] + return resp + + app = web.Application() + app.add_routes([web.post("/", handler)]) + + client = await aiohttp_client(app) + + async with await client.post("/", data="") as resp: + assert resp.status == 200 + assert await resp.text() == "ok" + assert resp.headers["Content-Type"] == "text/plain; charset=utf-8" diff --git a/tests/test_client_proto.py b/tests/test_client_proto.py index 85225c7..eea2830 100644 --- a/tests/test_client_proto.py +++ b/tests/test_client_proto.py @@ -134,3 +134,17 @@ async def test_eof_received(loop) -> None: assert proto._read_timeout_handle is not None proto.eof_received() assert proto._read_timeout_handle is None + + +async def test_connection_lost_sets_transport_to_none(loop, mocker) -> None: + """Ensure that the transport is set to None when the connection is lost. + + This ensures the writer knows that the connection is closed. + """ + proto = ResponseHandler(loop=loop) + proto.connection_made(mocker.Mock()) + assert proto.transport is not None + + proto.connection_lost(OSError()) + + assert proto.transport is None diff --git a/tests/test_client_request.py b/tests/test_client_request.py index d650059..9eeb933 100644 --- a/tests/test_client_request.py +++ b/tests/test_client_request.py @@ -8,7 +8,6 @@ from unittest import mock import pytest -from async_generator import async_generator, yield_ from multidict import CIMultiDict, CIMultiDictProxy, istr from yarl import URL @@ -20,6 +19,7 @@ Fingerprint, _merge_ssl_params, ) +from aiohttp.helpers import PY_311 from aiohttp.test_utils import make_mocked_coro @@ -120,11 +120,6 @@ def test_version_err(make_request) -> None: make_request("get", "http://python.org/", version="1.c") -def test_https_proxy(make_request) -> None: - with pytest.raises(ValueError): - make_request("get", "http://python.org/", proxy=URL("https://proxy.org")) - - def test_keep_alive(make_request) -> None: req = make_request("get", "http://python.org/", version=(0, 9)) assert not req.keep_alive() @@ -280,10 +275,18 @@ def test_host_header_ipv6_with_port(make_request) -> None: assert req.headers["HOST"] == "[::2]:99" +@pytest.mark.xfail( + PY_311, + reason="No idea why ClientRequest() is constructed out of loop but " + "it calls `asyncio.get_event_loop()`", + raises=DeprecationWarning, + strict=False, +) def test_default_loop(loop) -> None: asyncio.set_event_loop(loop) req = ClientRequest("get", URL("http://python.org/")) assert req.loop is loop + loop.run_until_complete(req.close()) def test_default_headers_useragent(make_request) -> None: @@ -589,6 +592,8 @@ async def test_connection_header(loop, conn) -> None: await req.send(conn) assert req.headers.get("CONNECTION") == "close" + await req.close() + async def test_no_content_length(loop, conn) -> None: req = ClientRequest("get", URL("http://python.org"), loop=loop) @@ -611,6 +616,7 @@ async def test_content_type_auto_header_get(loop, conn) -> None: resp = await req.send(conn) assert "CONTENT-TYPE" not in req.headers resp.close() + await req.close() async def test_content_type_auto_header_form(loop, conn) -> None: @@ -620,6 +626,7 @@ async def test_content_type_auto_header_form(loop, conn) -> None: resp = await req.send(conn) assert "application/x-www-form-urlencoded" == req.headers.get("CONTENT-TYPE") resp.close() + await req.close() async def test_content_type_auto_header_bytes(loop, conn) -> None: @@ -627,6 +634,7 @@ async def test_content_type_auto_header_bytes(loop, conn) -> None: resp = await req.send(conn) assert "application/octet-stream" == req.headers.get("CONTENT-TYPE") resp.close() + await req.close() async def test_content_type_skip_auto_header_bytes(loop, conn) -> None: @@ -640,6 +648,7 @@ async def test_content_type_skip_auto_header_bytes(loop, conn) -> None: resp = await req.send(conn) assert "CONTENT-TYPE" not in req.headers resp.close() + await req.close() async def test_content_type_skip_auto_header_form(loop, conn) -> None: @@ -653,19 +662,22 @@ async def test_content_type_skip_auto_header_form(loop, conn) -> None: resp = await req.send(conn) assert "CONTENT-TYPE" not in req.headers resp.close() + await req.close() async def test_content_type_auto_header_content_length_no_skip(loop, conn) -> None: - req = ClientRequest( - "post", - URL("http://python.org"), - data=io.BytesIO(b"hey"), - skip_auto_headers={"Content-Length"}, - loop=loop, - ) - resp = await req.send(conn) - assert req.headers.get("CONTENT-LENGTH") == "3" - resp.close() + with io.BytesIO(b"hey") as file_handle: + req = ClientRequest( + "post", + URL("http://python.org"), + data=file_handle, + skip_auto_headers={"Content-Length"}, + loop=loop, + ) + resp = await req.send(conn) + assert req.headers.get("CONTENT-LENGTH") == "3" + resp.close() + await req.close() async def test_urlencoded_formdata_charset(loop, conn) -> None: @@ -679,6 +691,7 @@ async def test_urlencoded_formdata_charset(loop, conn) -> None: assert "application/x-www-form-urlencoded; charset=koi8-r" == req.headers.get( "CONTENT-TYPE" ) + await req.close() async def test_post_data(loop, conn) -> None: @@ -715,6 +728,7 @@ async def test_pass_falsy_data_file(loop, tmpdir) -> None: ) assert req.headers.get("CONTENT-LENGTH", None) is not None await req.close() + testfile.close() # Elasticsearch API requires to send request body with GET-requests @@ -913,6 +927,7 @@ async def test_expect100(loop, conn) -> None: assert req._continue is not None req.terminate() resp.close() + await req.close() async def test_expect_100_continue_header(loop, conn) -> None: @@ -924,13 +939,13 @@ async def test_expect_100_continue_header(loop, conn) -> None: assert req._continue is not None req.terminate() resp.close() + await req.close() async def test_data_stream(loop, buf, conn) -> None: - @async_generator async def gen(): - await yield_(b"binary data") - await yield_(b" result") + yield b"binary data" + yield b" result" req = ClientRequest("POST", URL("http://python.org/"), data=gen(), loop=loop) assert req.chunked @@ -969,30 +984,31 @@ async def gen(writer): async def test_data_file(loop, buf, conn) -> None: - req = ClientRequest( - "POST", - URL("http://python.org/"), - data=io.BufferedReader(io.BytesIO(b"*" * 2)), - loop=loop, - ) - assert req.chunked - assert isinstance(req.body, payload.BufferedReaderPayload) - assert req.headers["TRANSFER-ENCODING"] == "chunked" + with io.BufferedReader(io.BytesIO(b"*" * 2)) as file_handle: + req = ClientRequest( + "POST", + URL("http://python.org/"), + data=file_handle, + loop=loop, + ) + assert req.chunked + assert isinstance(req.body, payload.BufferedReaderPayload) + assert req.headers["TRANSFER-ENCODING"] == "chunked" - resp = await req.send(conn) - assert asyncio.isfuture(req._writer) - await resp.wait_for_close() - assert req._writer is None - assert buf.split(b"\r\n\r\n", 1)[1] == b"2\r\n" + b"*" * 2 + b"\r\n0\r\n\r\n" - await req.close() + resp = await req.send(conn) + assert asyncio.isfuture(req._writer) + await resp.wait_for_close() + + assert req._writer is None + assert buf.split(b"\r\n\r\n", 1)[1] == b"2\r\n" + b"*" * 2 + b"\r\n0\r\n\r\n" + await req.close() async def test_data_stream_exc(loop, conn) -> None: fut = loop.create_future() - @async_generator async def gen(): - await yield_(b"binary data") + yield b"binary data" await fut req = ClientRequest("POST", URL("http://python.org/"), data=gen(), loop=loop) @@ -1015,9 +1031,10 @@ async def throw_exc(): async def test_data_stream_exc_chain(loop, conn) -> None: fut = loop.create_future() - @async_generator async def gen(): await fut + return + yield req = ClientRequest("POST", URL("http://python.org/"), data=gen(), loop=loop) @@ -1041,10 +1058,9 @@ async def throw_exc(): async def test_data_stream_continue(loop, buf, conn) -> None: - @async_generator async def gen(): - await yield_(b"binary data") - await yield_(b" result") + yield b"binary data" + yield b" result" req = ClientRequest( "POST", URL("http://python.org/"), data=gen(), expect100=True, loop=loop @@ -1086,10 +1102,9 @@ async def coro(): async def test_close(loop, buf, conn) -> None: - @async_generator async def gen(): await asyncio.sleep(0.00001) - await yield_(b"result") + yield b"result" req = ClientRequest("POST", URL("http://python.org/"), data=gen(), loop=loop) resp = await req.send(conn) @@ -1125,6 +1140,8 @@ async def test_oserror_on_write_bytes(loop, conn) -> None: exc = conn.protocol.set_exception.call_args[0][0] assert isinstance(exc, aiohttp.ClientOSError) + await req.close() + async def test_terminate(loop, conn) -> None: req = ClientRequest("get", URL("http://python.org"), loop=loop) @@ -1137,6 +1154,8 @@ async def test_terminate(loop, conn) -> None: writer.cancel.assert_called_with() resp.close() + await req.close() + def test_terminate_with_closed_loop(loop, conn) -> None: req = resp = writer = None @@ -1152,6 +1171,7 @@ async def go(): loop.run_until_complete(go()) + loop.run_until_complete(req.close()) loop.close() req.terminate() assert req._writer is None @@ -1166,6 +1186,8 @@ def test_terminate_without_writer(loop) -> None: req.terminate() assert req._writer is None + loop.run_until_complete(req.close()) + async def test_custom_req_rep(loop) -> None: conn = None @@ -1264,3 +1286,5 @@ def test_loose_cookies_types(loop) -> None: for loose_cookies_type in accepted_types: req.update_cookies(cookies=loose_cookies_type) + + loop.run_until_complete(req.close()) diff --git a/tests/test_client_response.py b/tests/test_client_response.py index 55aae97..fa472e7 100644 --- a/tests/test_client_response.py +++ b/tests/test_client_response.py @@ -2,6 +2,7 @@ import gc import sys +from typing import Any from unittest import mock import pytest @@ -46,6 +47,7 @@ async def test_http_processing_error(session) -> None: await response.start(connection) assert info.value.request_info is request_info + response.close() def test_del(session) -> None: @@ -439,7 +441,11 @@ def side_effect(*args, **kwargs): assert not response.get_encoding.called -async def test_text_detect_encoding(loop, session) -> None: +@pytest.mark.parametrize("content_type", ("text/plain", "text/plain;charset=invalid")) +async def test_text_charset_resolver( + content_type: str, loop: Any, session: Any +) -> None: + session._resolve_charset = lambda r, b: "cp1251" response = ClientResponse( "get", URL("http://def-cl-resp.org"), @@ -457,7 +463,7 @@ def side_effect(*args, **kwargs): fut.set_result('{"тест": "пройден"}'.encode("cp1251")) return fut - response._headers = {"Content-Type": "text/plain"} + response._headers = {"Content-Type": content_type} content = response.content = mock.Mock() content.read.side_effect = side_effect @@ -465,35 +471,7 @@ def side_effect(*args, **kwargs): res = await response.text() assert res == '{"тест": "пройден"}' assert response._connection is None - - -async def test_text_detect_encoding_if_invalid_charset(loop, session) -> None: - response = ClientResponse( - "get", - URL("http://def-cl-resp.org"), - request_info=mock.Mock(), - writer=mock.Mock(), - continue100=None, - timer=TimerNoop(), - traces=[], - loop=loop, - session=session, - ) - - def side_effect(*args, **kwargs): - fut = loop.create_future() - fut.set_result('{"тест": "пройден"}'.encode("cp1251")) - return fut - - response._headers = {"Content-Type": "text/plain;charset=invalid"} - content = response.content = mock.Mock() - content.read.side_effect = side_effect - - await response.read() - res = await response.text() - assert res == '{"тест": "пройден"}' - assert response._connection is None - assert response.get_encoding().lower() in ("windows-1251", "maccyrillic") + assert response.get_encoding() == "cp1251" async def test_get_encoding_body_none(loop, session) -> None: @@ -520,7 +498,7 @@ def side_effect(*args, **kwargs): with pytest.raises( RuntimeError, - match="^Cannot guess the encoding of a not yet read body$", + match="^Cannot compute fallback encoding of a not yet read body$", ): response.get_encoding() assert response.closed @@ -741,9 +719,7 @@ def test_get_encoding_unknown(loop, session) -> None: ) response._headers = {"Content-Type": "application/json"} - with mock.patch("aiohttp.client_reqrep.chardet") as m_chardet: - m_chardet.detect.return_value = {"encoding": None} - assert response.get_encoding() == "utf-8" + assert response.get_encoding() == "utf-8" def test_raise_for_status_2xx() -> None: @@ -1256,3 +1232,24 @@ def test_response_links_empty(loop, session) -> None: ) response._headers = CIMultiDict() assert response.links == {} + + +def test_response_not_closed_after_get_ok(mocker) -> None: + response = ClientResponse( + "get", + URL("http://del-cl-resp.org"), + request_info=mock.Mock(), + writer=mock.Mock(), + continue100=None, + timer=TimerNoop(), + traces=[], + loop=mock.Mock(), + session=mock.Mock(), + ) + response.status = 400 + response.reason = "Bad Request" + response._closed = False + spy = mocker.spy(response, "raise_for_status") + assert not response.ok + assert not response.closed + assert spy.call_count == 0 diff --git a/tests/test_client_session.py b/tests/test_client_session.py index 298dac9..effa7b1 100644 --- a/tests/test_client_session.py +++ b/tests/test_client_session.py @@ -1,10 +1,11 @@ import asyncio import contextlib import gc +import io import json import sys from http.cookies import SimpleCookie -from io import BytesIO +from typing import Any, List from unittest import mock import pytest @@ -30,7 +31,7 @@ async def make_conn(): proto = mock.Mock() conn._conns["a"] = [(proto, 123)] yield conn - conn.close() + loop.run_until_complete(conn.close()) @pytest.fixture @@ -292,7 +293,7 @@ async def test_connector(create_session, loop, mocker) -> None: await session.close() assert connector.close.called - connector.close() + await connector.close() async def test_create_connector(create_session, loop, mocker) -> None: @@ -314,7 +315,6 @@ async def make_connector(): connector = another_loop.run_until_complete(make_connector()) - stack.enter_context(contextlib.closing(connector)) with pytest.raises(RuntimeError) as ctx: async def make_sess(): @@ -325,9 +325,13 @@ async def make_sess(): Matches("Session and connector has to use same event loop") == str(ctx.value).strip() ) + another_loop.run_until_complete(connector.close()) + # Cannot use `AsyncExitStack` as it's Python 3.7+: + another_loop.run_until_complete(connector.close()) -def test_detach(session) -> None: + +def test_detach(loop, session) -> None: conn = session.connector try: assert not conn.closed @@ -336,7 +340,7 @@ def test_detach(session) -> None: assert session.closed assert not conn.closed finally: - conn.close() + loop.run_until_complete(conn.close()) async def test_request_closed_session(session) -> None: @@ -345,10 +349,10 @@ async def test_request_closed_session(session) -> None: await session.request("get", "/") -def test_close_flag_for_closed_connector(session) -> None: +def test_close_flag_for_closed_connector(loop, session) -> None: conn = session.connector assert not session.closed - conn.close() + loop.run_until_complete(conn.close()) assert session.closed @@ -398,7 +402,7 @@ async def test_del_debug(connector, loop) -> None: assert logs[0] == expected -async def test_context_manager(connector, loop) -> None: +async def test_session_context_manager(connector, loop) -> None: with pytest.raises(TypeError): with ClientSession(loop=loop, connector=connector) as session: pass @@ -514,6 +518,7 @@ async def handler(request): async def test_session_default_version(loop) -> None: session = aiohttp.ClientSession(loop=loop) assert session.version == aiohttp.HttpVersion11 + await session.close() async def test_session_loop(loop) -> None: @@ -548,53 +553,174 @@ async def handler(request): trace_config_ctx = mock.Mock() trace_request_ctx = {} body = "This is request body" - gathered_req_body = BytesIO() - gathered_res_body = BytesIO() + gathered_req_headers = CIMultiDict() on_request_start = mock.Mock(side_effect=make_mocked_coro(mock.Mock())) on_request_redirect = mock.Mock(side_effect=make_mocked_coro(mock.Mock())) on_request_end = mock.Mock(side_effect=make_mocked_coro(mock.Mock())) - async def on_request_chunk_sent(session, context, params): - gathered_req_body.write(params.chunk) + with io.BytesIO() as gathered_req_body, io.BytesIO() as gathered_res_body: + + async def on_request_chunk_sent(session, context, params): + gathered_req_body.write(params.chunk) + + async def on_response_chunk_received(session, context, params): + gathered_res_body.write(params.chunk) - async def on_response_chunk_received(session, context, params): - gathered_res_body.write(params.chunk) + async def on_request_headers_sent(session, context, params): + gathered_req_headers.extend(**params.headers) + + trace_config = aiohttp.TraceConfig( + trace_config_ctx_factory=mock.Mock(return_value=trace_config_ctx) + ) + trace_config.on_request_start.append(on_request_start) + trace_config.on_request_end.append(on_request_end) + trace_config.on_request_chunk_sent.append(on_request_chunk_sent) + trace_config.on_response_chunk_received.append(on_response_chunk_received) + trace_config.on_request_redirect.append(on_request_redirect) + trace_config.on_request_headers_sent.append(on_request_headers_sent) + + headers = CIMultiDict({"Custom-Header": "Custom value"}) + session = await aiohttp_client( + app, trace_configs=[trace_config], headers=headers + ) + + async with session.post( + "/", data=body, trace_request_ctx=trace_request_ctx + ) as resp: + + await resp.json() + + on_request_start.assert_called_once_with( + session.session, + trace_config_ctx, + aiohttp.TraceRequestStartParams( + hdrs.METH_POST, session.make_url("/"), headers + ), + ) + + on_request_end.assert_called_once_with( + session.session, + trace_config_ctx, + aiohttp.TraceRequestEndParams( + hdrs.METH_POST, session.make_url("/"), headers, resp + ), + ) + assert not on_request_redirect.called + assert gathered_req_body.getvalue() == body.encode("utf8") + assert gathered_res_body.getvalue() == json.dumps({"ok": True}).encode( + "utf8" + ) + assert gathered_req_headers["Custom-Header"] == "Custom value" + + +async def test_request_tracing_url_params(loop: Any, aiohttp_client: Any) -> None: + async def root_handler(request): + return web.Response() + + async def redirect_handler(request): + raise web.HTTPFound("/") + + app = web.Application() + app.router.add_get("/", root_handler) + app.router.add_get("/redirect", redirect_handler) + + mocks = [mock.Mock(side_effect=make_mocked_coro(mock.Mock())) for _ in range(7)] + ( + on_request_start, + on_request_redirect, + on_request_end, + on_request_exception, + on_request_chunk_sent, + on_response_chunk_received, + on_request_headers_sent, + ) = mocks trace_config = aiohttp.TraceConfig( - trace_config_ctx_factory=mock.Mock(return_value=trace_config_ctx) + trace_config_ctx_factory=mock.Mock(return_value=mock.Mock()) ) trace_config.on_request_start.append(on_request_start) + trace_config.on_request_redirect.append(on_request_redirect) trace_config.on_request_end.append(on_request_end) + trace_config.on_request_exception.append(on_request_exception) trace_config.on_request_chunk_sent.append(on_request_chunk_sent) trace_config.on_response_chunk_received.append(on_response_chunk_received) - trace_config.on_request_redirect.append(on_request_redirect) + trace_config.on_request_headers_sent.append(on_request_headers_sent) session = await aiohttp_client(app, trace_configs=[trace_config]) - async with session.post( - "/", data=body, trace_request_ctx=trace_request_ctx - ) as resp: + def reset_mocks() -> None: + for m in mocks: + m.reset_mock() - await resp.json() + def to_trace_urls(mock_func: mock.Mock) -> List[URL]: + return [call_args[0][-1].url for call_args in mock_func.call_args_list] - on_request_start.assert_called_once_with( - session.session, - trace_config_ctx, - aiohttp.TraceRequestStartParams( - hdrs.METH_POST, session.make_url("/"), CIMultiDict() - ), - ) + def to_url(path: str) -> URL: + return session.make_url(path) - on_request_end.assert_called_once_with( - session.session, - trace_config_ctx, - aiohttp.TraceRequestEndParams( - hdrs.METH_POST, session.make_url("/"), CIMultiDict(), resp - ), - ) - assert not on_request_redirect.called - assert gathered_req_body.getvalue() == body.encode("utf8") - assert gathered_res_body.getvalue() == json.dumps({"ok": True}).encode("utf8") + # Standard + for req in [ + lambda: session.get("/?x=0"), + lambda: session.get("/", params=dict(x=0)), + ]: + reset_mocks() + async with req() as resp: + await resp.text() + assert to_trace_urls(on_request_start) == [to_url("/?x=0")] + assert to_trace_urls(on_request_redirect) == [] + assert to_trace_urls(on_request_end) == [to_url("/?x=0")] + assert to_trace_urls(on_request_exception) == [] + assert to_trace_urls(on_request_chunk_sent) == [to_url("/?x=0")] + assert to_trace_urls(on_response_chunk_received) == [to_url("/?x=0")] + assert to_trace_urls(on_request_headers_sent) == [to_url("/?x=0")] + + # Redirect + for req in [ + lambda: session.get("/redirect?x=0"), + lambda: session.get("/redirect", params=dict(x=0)), + ]: + reset_mocks() + async with req() as resp: + await resp.text() + assert to_trace_urls(on_request_start) == [to_url("/redirect?x=0")] + assert to_trace_urls(on_request_redirect) == [to_url("/redirect?x=0")] + assert to_trace_urls(on_request_end) == [to_url("/")] + assert to_trace_urls(on_request_exception) == [] + assert to_trace_urls(on_request_chunk_sent) == [ + to_url("/redirect?x=0"), + to_url("/"), + ] + assert to_trace_urls(on_response_chunk_received) == [to_url("/")] + assert to_trace_urls(on_request_headers_sent) == [ + to_url("/redirect?x=0"), + to_url("/"), + ] + + # Exception + with mock.patch("aiohttp.client.TCPConnector.connect") as connect_patched: + error = Exception() + if sys.version_info >= (3, 8, 1): + connect_patched.side_effect = error + else: + loop = asyncio.get_event_loop() + f = loop.create_future() + f.set_exception(error) + connect_patched.return_value = f + + for req in [ + lambda: session.get("/?x=0"), + lambda: session.get("/", params=dict(x=0)), + ]: + reset_mocks() + with contextlib.suppress(Exception): + await req() + assert to_trace_urls(on_request_start) == [to_url("/?x=0")] + assert to_trace_urls(on_request_redirect) == [] + assert to_trace_urls(on_request_end) == [] + assert to_trace_urls(on_request_exception) == [to_url("?x=0")] + assert to_trace_urls(on_request_chunk_sent) == [] + assert to_trace_urls(on_response_chunk_received) == [] + assert to_trace_urls(on_request_headers_sent) == [] async def test_request_tracing_exception() -> None: @@ -632,6 +758,8 @@ async def test_request_tracing_exception() -> None: ) assert not on_request_end.called + await session.close() + async def test_request_tracing_interpose_headers(loop, aiohttp_client) -> None: async def handler(request): @@ -674,6 +802,7 @@ async def test_client_session_custom_attr(loop) -> None: session = ClientSession(loop=loop) with pytest.warns(DeprecationWarning): session.custom = None + await session.close() async def test_client_session_timeout_args(loop) -> None: @@ -694,25 +823,41 @@ async def test_client_session_timeout_args(loop) -> None: loop=loop, timeout=client.ClientTimeout(total=10 * 60), conn_timeout=30 * 60 ) + await session1.close() + await session2.close() + async def test_client_session_timeout_default_args(loop) -> None: session1 = ClientSession() assert session1.timeout == client.DEFAULT_TIMEOUT + await session1.close() async def test_client_session_timeout_argument() -> None: session = ClientSession(timeout=500) assert session.timeout == 500 + await session.close() + + +async def test_client_session_timeout_zero() -> None: + timeout = client.ClientTimeout(total=10, connect=0, sock_connect=0, sock_read=0) + try: + async with ClientSession(timeout=timeout) as session: + await session.get("http://example.com") + except asyncio.TimeoutError: + pytest.fail("0 should disable timeout.") async def test_requote_redirect_url_default() -> None: session = ClientSession() assert session.requote_redirect_url + await session.close() async def test_requote_redirect_url_default_disable() -> None: session = ClientSession(requote_redirect_url=False) assert not session.requote_redirect_url + await session.close() async def test_requote_redirect_setter() -> None: @@ -721,3 +866,40 @@ async def test_requote_redirect_setter() -> None: with pytest.warns(DeprecationWarning): session.requote_redirect_url = False assert not session.requote_redirect_url + await session.close() + + +@pytest.mark.parametrize( + ("base_url", "url", "expected_url"), + [ + pytest.param( + None, + "http://example.com/test", + URL("http://example.com/test"), + id="base_url=None url='http://example.com/test'", + ), + pytest.param( + None, + URL("http://example.com/test"), + URL("http://example.com/test"), + id="base_url=None url=URL('http://example.com/test')", + ), + pytest.param( + "http://example.com", + "/test", + URL("http://example.com/test"), + id="base_url='http://example.com' url='/test'", + ), + pytest.param( + URL("http://example.com"), + "/test", + URL("http://example.com/test"), + id="base_url=URL('http://example.com') url='/test'", + ), + ], +) +async def test_build_url_returns_expected_url( + create_session, base_url, url, expected_url +) -> None: + session = await create_session(base_url) + assert session._build_url(url) == expected_url diff --git a/tests/test_client_ws.py b/tests/test_client_ws.py index baa4469..f0b7757 100644 --- a/tests/test_client_ws.py +++ b/tests/test_client_ws.py @@ -71,6 +71,30 @@ async def test_ws_connect_with_origin(key_data, loop) -> None: assert m_req.call_args[1]["headers"][hdrs.ORIGIN] == origin +async def test_ws_connect_with_params(ws_key, loop, key_data) -> None: + params = {"key1": "value1", "key2": "value2"} + + resp = mock.Mock() + resp.status = 101 + resp.headers = { + hdrs.UPGRADE: "websocket", + hdrs.CONNECTION: "upgrade", + hdrs.SEC_WEBSOCKET_ACCEPT: ws_key, + hdrs.SEC_WEBSOCKET_PROTOCOL: "chat", + } + with mock.patch("aiohttp.client.os") as m_os: + with mock.patch("aiohttp.client.ClientSession.request") as m_req: + m_os.urandom.return_value = key_data + m_req.return_value = loop.create_future() + m_req.return_value.set_result(resp) + + await aiohttp.ClientSession().ws_connect( + "http://test.org", protocols=("t1", "t2", "chat"), params=params + ) + + assert m_req.call_args[1]["params"] == params + + async def test_ws_connect_custom_response(loop, ws_key, key_data) -> None: class CustomResponse(client.ClientWebSocketResponse): def read(self, decode=False): diff --git a/tests/test_client_ws_functional.py b/tests/test_client_ws_functional.py index e423765..76ef052 100644 --- a/tests/test_client_ws_functional.py +++ b/tests/test_client_ws_functional.py @@ -461,7 +461,7 @@ async def handler(request): await resp.send_str("ask") with pytest.raises(asyncio.TimeoutError): - with async_timeout.timeout(0.01): + async with async_timeout.timeout(0.01): await resp.receive() await resp.close() diff --git a/tests/test_connector.py b/tests/test_connector.py index 0984192..0b992df 100644 --- a/tests/test_connector.py +++ b/tests/test_connector.py @@ -12,6 +12,7 @@ from unittest import mock import pytest +from conftest import needs_unix from yarl import URL import aiohttp @@ -43,12 +44,6 @@ def ssl_key(): return ConnectionKey("localhost", 80, True, None, None, None, None) -@pytest.fixture -def unix_sockname(shorttmpdir): - sock_path = shorttmpdir / "socket.sock" - return str(sock_path) - - @pytest.fixture def unix_server(loop, unix_sockname): runners = [] @@ -84,7 +79,11 @@ async def go(app): def create_mocked_conn(conn_closing_result=None, **kwargs): - loop = asyncio.get_event_loop() + try: + loop = asyncio.get_running_loop() + except (AttributeError, RuntimeError): # AttributeError->py36 + loop = asyncio.get_event_loop_policy().get_event_loop() + proto = mock.Mock(**kwargs) proto.closed = loop.create_future() proto.closed.set_result(conn_closing_result) @@ -244,7 +243,7 @@ async def test_create_conn(loop) -> None: await conn._create_connection(object(), [], object()) -async def test_context_manager(loop) -> None: +async def test_connector_context_manager(loop) -> None: conn = aiohttp.BaseConnector(loop=loop) with pytest.warns(DeprecationWarning): @@ -253,6 +252,8 @@ async def test_context_manager(loop) -> None: assert conn.closed + await conn.close() + async def test_async_context_manager(loop) -> None: conn = aiohttp.BaseConnector(loop=loop) @@ -269,7 +270,7 @@ async def test_close(loop) -> None: conn = aiohttp.BaseConnector(loop=loop) assert not conn.closed conn._conns[("host", 8080, False)] = [(proto, object())] - conn.close() + await conn.close() assert not conn._conns assert proto.close.called @@ -283,7 +284,7 @@ async def test_get(loop) -> None: proto = mock.Mock() conn._conns[1] = [(proto, loop.time())] assert conn._get(1) == proto - conn.close() + await conn.close() async def test_get_unconnected_proto(loop) -> None: @@ -327,7 +328,7 @@ async def test_get_expired(loop) -> None: conn._conns[key] = [(proto, loop.time() - 1000)] assert conn._get(key) is None assert not conn._conns - conn.close() + await conn.close() async def test_get_expired_ssl(loop) -> None: @@ -341,7 +342,7 @@ async def test_get_expired_ssl(loop) -> None: assert conn._get(key) is None assert not conn._conns assert conn._cleanup_closed_transports == [transport] - conn.close() + await conn.close() async def test_release_acquired(loop, key) -> None: @@ -360,7 +361,7 @@ async def test_release_acquired(loop, key) -> None: assert 0 == len(conn._acquired) assert 0 == len(conn._acquired_per_host) - conn.close() + await conn.close() async def test_release_acquired_closed(loop, key) -> None: @@ -375,7 +376,7 @@ async def test_release_acquired_closed(loop, key) -> None: assert 1 == len(conn._acquired) assert 1 == len(conn._acquired_per_host[key]) assert not conn._release_waiter.called - conn.close() + await conn.close() async def test_release(loop, key) -> None: @@ -393,7 +394,7 @@ async def test_release(loop, key) -> None: assert conn._conns[key][0][0] == proto assert conn._conns[key][0][1] == pytest.approx(loop.time(), abs=0.1) assert not conn._cleanup_closed_transports - conn.close() + await conn.close() async def test_release_ssl_transport(loop, ssl_key) -> None: @@ -407,7 +408,7 @@ async def test_release_ssl_transport(loop, ssl_key) -> None: conn._release(ssl_key, proto, should_close=True) assert conn._cleanup_closed_transports == [transport] - conn.close() + await conn.close() async def test_release_already_closed(loop) -> None: @@ -416,7 +417,7 @@ async def test_release_already_closed(loop) -> None: proto = mock.Mock() key = 1 conn._acquired.add(proto) - conn.close() + await conn.close() conn._release_waiters = mock.Mock() conn._release_acquired = mock.Mock() @@ -435,7 +436,7 @@ async def test_release_waiter_no_limit(loop, key, key2) -> None: conn._release_waiter() assert len(conn._waiters[key]) == 0 assert w.done.called - conn.close() + await conn.close() async def test_release_waiter_first_available(loop, key, key2) -> None: @@ -452,7 +453,7 @@ async def test_release_waiter_first_available(loop, key, key2) -> None: or not w1.set_result.called and w2.set_result.called ) - conn.close() + await conn.close() async def test_release_waiter_release_first(loop, key, key2) -> None: @@ -464,7 +465,7 @@ async def test_release_waiter_release_first(loop, key, key2) -> None: conn._release_waiter() assert w1.set_result.called assert not w2.set_result.called - conn.close() + await conn.close() async def test_release_waiter_skip_done_waiter(loop, key, key2) -> None: @@ -476,7 +477,7 @@ async def test_release_waiter_skip_done_waiter(loop, key, key2) -> None: conn._release_waiter() assert not w1.set_result.called assert w2.set_result.called - conn.close() + await conn.close() async def test_release_waiter_per_host(loop, key, key2) -> None: @@ -491,7 +492,7 @@ async def test_release_waiter_per_host(loop, key, key2) -> None: assert (w1.set_result.called and not w2.set_result.called) or ( not w1.set_result.called and w2.set_result.called ) - conn.close() + await conn.close() async def test_release_waiter_no_available(loop, key, key2) -> None: @@ -504,7 +505,7 @@ async def test_release_waiter_no_available(loop, key, key2) -> None: conn._release_waiter() assert len(conn._waiters) == 1 assert not w.done.called - conn.close() + await conn.close() async def test_release_close(loop, key) -> None: @@ -657,7 +658,7 @@ def get_extra_info(param): conn._loop.create_connection = create_connection - await conn.connect(req, [], ClientTimeout()) + established_connection = await conn.connect(req, [], ClientTimeout()) assert ips == ips_tried assert os_error @@ -666,6 +667,8 @@ def get_extra_info(param): assert fingerprint_error assert connected + established_connection.close() + async def test_tcp_connector_resolve_host(loop) -> None: conn = aiohttp.TCPConnector(loop=loop, use_dns_cache=True) @@ -761,7 +764,7 @@ async def test_tcp_connector_dns_throttle_requests_cancelled_when_close( f = loop.create_task(conn._resolve_host("localhost", 8080)) await asyncio.sleep(0) - conn.close() + await conn.close() with pytest.raises(asyncio.CancelledError): await f @@ -976,7 +979,7 @@ async def test_release_close_do_not_delete_existing_connections(key) -> None: conn._release(key, proto) assert conn._conns[key] == [(proto1, 1)] assert proto.close.called - conn.close() + await conn.close() async def test_release_not_started(loop) -> None: @@ -990,7 +993,7 @@ async def test_release_not_started(loop) -> None: assert rec[0][0] == proto assert rec[0][1] == pytest.approx(loop.time(), abs=0.05) assert not proto.close.called - conn.close() + await conn.close() async def test_release_not_opened(loop, key) -> None: @@ -1070,7 +1073,7 @@ async def test_close_during_connect(loop) -> None: task = loop.create_task(conn.connect(req, None, ClientTimeout())) await asyncio.sleep(0) - conn.close() + await conn.close() fut.set_result(proto) with pytest.raises(aiohttp.ClientConnectionError): @@ -1139,7 +1142,7 @@ async def test_cleanup2() -> None: assert conn._cleanup_handle is not None loop.call_at.assert_called_with(310, mock.ANY, mock.ANY) - conn.close() + await conn.close() async def test_cleanup3(key) -> None: @@ -1157,7 +1160,7 @@ async def test_cleanup3(key) -> None: assert conn._cleanup_handle is not None loop.call_at.assert_called_with(319, mock.ANY, mock.ANY) - conn.close() + await conn.close() async def test_cleanup_closed(loop, mocker) -> None: @@ -1262,7 +1265,7 @@ async def test___get_ssl_context1(loop) -> None: async def test___get_ssl_context2(loop) -> None: - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) conn = aiohttp.TCPConnector(loop=loop) req = mock.Mock() req.is_ssl.return_value = True @@ -1271,7 +1274,7 @@ async def test___get_ssl_context2(loop) -> None: async def test___get_ssl_context3(loop) -> None: - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) conn = aiohttp.TCPConnector(loop=loop, ssl=ctx) req = mock.Mock() req.is_ssl.return_value = True @@ -1280,7 +1283,7 @@ async def test___get_ssl_context3(loop) -> None: async def test___get_ssl_context4(loop) -> None: - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) conn = aiohttp.TCPConnector(loop=loop, ssl=ctx) req = mock.Mock() req.is_ssl.return_value = True @@ -1289,7 +1292,7 @@ async def test___get_ssl_context4(loop) -> None: async def test___get_ssl_context5(loop) -> None: - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) conn = aiohttp.TCPConnector(loop=loop, ssl=ctx) req = mock.Mock() req.is_ssl.return_value = True @@ -1310,14 +1313,14 @@ async def test_close_twice(loop) -> None: conn = aiohttp.BaseConnector(loop=loop) conn._conns[1] = [(proto, object())] - conn.close() + await conn.close() assert not conn._conns assert proto.close.called assert conn.closed conn._conns = "Invalid" # fill with garbage - conn.close() + await conn.close() assert conn.closed @@ -1325,7 +1328,7 @@ async def test_close_cancels_cleanup_handle(loop) -> None: conn = aiohttp.BaseConnector(loop=loop) conn._release(1, mock.Mock(should_close=False)) assert conn._cleanup_handle is not None - conn.close() + await conn.close() assert conn._cleanup_handle is None @@ -1334,7 +1337,7 @@ async def test_close_abort_closed_transports(loop) -> None: conn = aiohttp.BaseConnector(loop=loop) conn._cleanup_closed_transports.append(tr) - conn.close() + await conn.close() assert not conn._cleanup_closed_transports assert tr.abort.called @@ -1344,7 +1347,7 @@ async def test_close_abort_closed_transports(loop) -> None: async def test_close_cancels_cleanup_closed_handle(loop) -> None: conn = aiohttp.BaseConnector(loop=loop, enable_cleanup_closed=True) assert conn._cleanup_closed_handle is not None - conn.close() + await conn.close() assert conn._cleanup_closed_handle is None @@ -1393,7 +1396,7 @@ async def f(): await asyncio.sleep(0) assert acquired await task - conn.close() + await conn.close() async def test_connect_queued_operation_tracing(loop, key) -> None: @@ -1439,7 +1442,7 @@ async def f(): await asyncio.sleep(0.01) connection1.release() await task - conn.close() + await conn.close() async def test_connect_reuseconn_tracing(loop, key) -> None: @@ -1469,7 +1472,7 @@ async def test_connect_reuseconn_tracing(loop, key) -> None: on_connection_reuseconn.assert_called_with( session, trace_config_ctx, aiohttp.TraceConnectionReuseconnParams() ) - conn.close() + await conn.close() async def test_connect_with_limit_and_limit_per_host(loop, key) -> None: @@ -1503,7 +1506,7 @@ async def f(): await asyncio.sleep(0) assert acquired await task - conn.close() + await conn.close() async def test_connect_with_no_limit_and_limit_per_host(loop, key) -> None: @@ -1535,7 +1538,7 @@ async def f(): await asyncio.sleep(0) assert acquired await task - conn.close() + await conn.close() async def test_connect_with_no_limits(loop, key) -> None: @@ -1567,7 +1570,7 @@ async def f(): assert acquired connection1.release() await task - conn.close() + await conn.close() async def test_connect_with_limit_cancelled(loop) -> None: @@ -1595,6 +1598,8 @@ async def test_connect_with_limit_cancelled(loop) -> None: await asyncio.wait_for(conn.connect(req, None, ClientTimeout()), 0.01) connection.close() + await conn.close() + async def test_connect_with_capacity_release_waiters(loop) -> None: def check_with_exc(err): @@ -1668,7 +1673,7 @@ async def f(start=True): await asyncio.wait(tasks) await f() - conn.close() + await conn.close() assert max_connections == num_connections @@ -1731,7 +1736,7 @@ async def test_close_with_acquired_connection(loop) -> None: connection = await conn.connect(req, None, ClientTimeout()) assert 1 == len(conn._acquired) - conn.close() + await conn.close() assert 0 == len(conn._acquired) assert conn.closed proto.close.assert_called_with() @@ -1750,26 +1755,26 @@ async def test_limit_property(loop) -> None: conn = aiohttp.BaseConnector(loop=loop, limit=15) assert 15 == conn.limit - conn.close() + await conn.close() async def test_limit_per_host_property(loop) -> None: conn = aiohttp.BaseConnector(loop=loop, limit_per_host=15) assert 15 == conn.limit_per_host - conn.close() + await conn.close() async def test_limit_property_default(loop) -> None: conn = aiohttp.BaseConnector(loop=loop) assert conn.limit == 100 - conn.close() + await conn.close() async def test_limit_per_host_property_default(loop) -> None: conn = aiohttp.BaseConnector(loop=loop) assert conn.limit_per_host == 0 - conn.close() + await conn.close() async def test_force_close_and_explicit_keep_alive(loop) -> None: @@ -1910,7 +1915,7 @@ async def handler(request): assert r.status == 200 -@pytest.mark.skipif(not hasattr(socket, "AF_UNIX"), reason="requires unix socket") +@needs_unix async def test_unix_connector_not_found(loop) -> None: connector = aiohttp.UnixConnector("/" + uuid.uuid4().hex, loop=loop) @@ -1919,7 +1924,7 @@ async def test_unix_connector_not_found(loop) -> None: await connector.connect(req, None, ClientTimeout()) -@pytest.mark.skipif(not hasattr(socket, "AF_UNIX"), reason="requires unix socket") +@needs_unix async def test_unix_connector_permission(loop) -> None: loop.create_unix_connection = make_mocked_coro(raise_exception=PermissionError()) connector = aiohttp.UnixConnector("/" + uuid.uuid4().hex, loop=loop) @@ -2051,7 +2056,7 @@ async def handler(request): r.close() await session.close() - conn.close() + await conn.close() async def test_tcp_connector_uses_provided_local_addr(aiohttp_server) -> None: @@ -2075,10 +2080,9 @@ async def handler(request): assert first_conn.transport.get_extra_info("sockname") == ("127.0.0.1", port) r.close() await session.close() - conn.close() + await conn.close() -@pytest.mark.skipif(not hasattr(socket, "AF_UNIX"), reason="requires UNIX sockets") async def test_unix_connector(unix_server, unix_sockname) -> None: async def handler(request): return web.Response() @@ -2260,3 +2264,5 @@ async def allow_connection_and_add_dummy_waiter(): await_connection_and_check_waiters(), allow_connection_and_add_dummy_waiter(), ) + + await connector.close() diff --git a/tests/test_cookiejar.py b/tests/test_cookiejar.py index 12bcebc..73e1253 100644 --- a/tests/test_cookiejar.py +++ b/tests/test_cookiejar.py @@ -25,7 +25,7 @@ def cookies_to_send(): "different-domain-cookie=sixth; Domain=different.org; " "secure-cookie=seventh; Domain=secure.com; Secure; " "no-path-cookie=eighth; Domain=pathtest.com; " - "path1-cookie=nineth; Domain=pathtest.com; Path=/; " + "path1-cookie=ninth; Domain=pathtest.com; Path=/; " "path2-cookie=tenth; Domain=pathtest.com; Path=/one; " "path3-cookie=eleventh; Domain=pathtest.com; Path=/one/two; " "path4-cookie=twelfth; Domain=pathtest.com; Path=/one/two/; " @@ -51,7 +51,7 @@ def cookies_to_send_with_expired(): "different-domain-cookie=sixth; Domain=different.org; " "secure-cookie=seventh; Domain=secure.com; Secure; " "no-path-cookie=eighth; Domain=pathtest.com; " - "path1-cookie=nineth; Domain=pathtest.com; Path=/; " + "path1-cookie=ninth; Domain=pathtest.com; Path=/; " "path2-cookie=tenth; Domain=pathtest.com; Path=/one; " "path3-cookie=eleventh; Domain=pathtest.com; Path=/one/two; " "path4-cookie=twelfth; Domain=pathtest.com; Path=/one/two/; " @@ -77,7 +77,7 @@ def cookies_to_receive(): "different-domain-cookie=sixth; Domain=different.org; Path=/; " "no-path-cookie=seventh; Domain=pathtest.com; " "path-cookie=eighth; Domain=pathtest.com; Path=/somepath; " - "wrong-path-cookie=nineth; Domain=pathtest.com; Path=somepath;" + "wrong-path-cookie=ninth; Domain=pathtest.com; Path=somepath;" ) @@ -244,7 +244,7 @@ async def test_domain_filter_ip_cookie_send(loop) -> None: "different-domain-cookie=sixth; Domain=different.org; " "secure-cookie=seventh; Domain=secure.com; Secure; " "no-path-cookie=eighth; Domain=pathtest.com; " - "path1-cookie=nineth; Domain=pathtest.com; Path=/; " + "path1-cookie=ninth; Domain=pathtest.com; Path=/; " "path2-cookie=tenth; Domain=pathtest.com; Path=/one; " "path3-cookie=eleventh; Domain=pathtest.com; Path=/one/two; " "path4-cookie=twelfth; Domain=pathtest.com; Path=/one/two/; " @@ -354,7 +354,7 @@ def setUp(self): "different-domain-cookie=sixth; Domain=different.org; " "secure-cookie=seventh; Domain=secure.com; Secure; " "no-path-cookie=eighth; Domain=pathtest.com; " - "path1-cookie=nineth; Domain=pathtest.com; Path=/; " + "path1-cookie=ninth; Domain=pathtest.com; Path=/; " "path2-cookie=tenth; Domain=pathtest.com; Path=/one; " "path3-cookie=eleventh; Domain=pathtest.com; Path=/one/two; " "path4-cookie=twelfth; Domain=pathtest.com; Path=/one/two/; " @@ -377,7 +377,7 @@ def setUp(self): "different-domain-cookie=sixth; Domain=different.org; Path=/; " "no-path-cookie=seventh; Domain=pathtest.com; " "path-cookie=eighth; Domain=pathtest.com; Path=/somepath; " - "wrong-path-cookie=nineth; Domain=pathtest.com; Path=somepath;" + "wrong-path-cookie=ninth; Domain=pathtest.com; Path=somepath;" ) async def make_jar(): @@ -664,6 +664,56 @@ async def make_jar(): # Assert that there is a cookie. assert len(jar) == 1 + def test_path_filter_diff_folder_same_name(self) -> None: + async def make_jar(): + return CookieJar(unsafe=True) + + jar = self.loop.run_until_complete(make_jar()) + + jar.update_cookies( + SimpleCookie("path-cookie=zero; Domain=pathtest.com; Path=/; ") + ) + jar.update_cookies( + SimpleCookie("path-cookie=one; Domain=pathtest.com; Path=/one; ") + ) + self.assertEqual(len(jar), 2) + + jar_filtered = jar.filter_cookies(URL("http://pathtest.com/")) + self.assertEqual(len(jar_filtered), 1) + self.assertEqual(jar_filtered["path-cookie"].value, "zero") + + jar_filtered = jar.filter_cookies(URL("http://pathtest.com/one")) + self.assertEqual(len(jar_filtered), 1) + self.assertEqual(jar_filtered["path-cookie"].value, "one") + + def test_filter_cookies_order_by_path(self) -> None: + async def make_jar(): + return CookieJar(unsafe=True) + + jar = self.loop.run_until_complete(make_jar()) + jar.update_cookies( + SimpleCookie("path-cookie=one; Domain=pathtest.com; Path=/one; ") + ) + jar.update_cookies( + SimpleCookie("path-cookie=zero; Domain=pathtest.com; Path=/; ") + ) + jar.update_cookies( + SimpleCookie("path-cookie=two; Domain=pathtest.com; Path=/second; ") + ) + self.assertEqual(len(jar), 3) + + jar_filtered = jar.filter_cookies(URL("http://pathtest.com/")) + self.assertEqual(len(jar_filtered), 1) + self.assertEqual(jar_filtered["path-cookie"].value, "zero") + + jar_filtered = jar.filter_cookies(URL("http://pathtest.com/second")) + self.assertEqual(len(jar_filtered), 1) + self.assertEqual(jar_filtered["path-cookie"].value, "two") + + jar_filtered = jar.filter_cookies(URL("http://pathtest.com/one")) + self.assertEqual(len(jar_filtered), 1) + self.assertEqual(jar_filtered["path-cookie"].value, "one") + async def test_dummy_cookie_jar() -> None: cookie = SimpleCookie("foo=bar; Domain=example.com;") @@ -694,3 +744,80 @@ async def test_loose_cookies_types() -> None: for loose_cookies_type in accepted_types: jar.update_cookies(cookies=loose_cookies_type) + + +async def test_cookie_jar_clear_all(): + sut = CookieJar() + cookie = SimpleCookie() + cookie["foo"] = "bar" + sut.update_cookies(cookie) + + sut.clear() + assert len(sut) == 0 + + +async def test_cookie_jar_clear_expired(): + sut = CookieJar() + + cookie = SimpleCookie() + + cookie["foo"] = "bar" + cookie["foo"]["expires"] = "Tue, 1 Jan 1990 12:00:00 GMT" + + with freeze_time("1980-01-01"): + sut.update_cookies(cookie) + + sut.clear(lambda x: False) + with freeze_time("1980-01-01"): + assert len(sut) == 0 + + +async def test_cookie_jar_clear_domain(): + sut = CookieJar() + cookie = SimpleCookie() + cookie["foo"] = "bar" + cookie["domain_cookie"] = "value" + cookie["domain_cookie"]["domain"] = "example.com" + cookie["subdomain_cookie"] = "value" + cookie["subdomain_cookie"]["domain"] = "test.example.com" + sut.update_cookies(cookie) + + sut.clear_domain("example.com") + iterator = iter(sut) + morsel = next(iterator) + assert morsel.key == "foo" + assert morsel.value == "bar" + with pytest.raises(StopIteration): + next(iterator) + + +@pytest.mark.parametrize( + "url", + [ + "http://127.0.0.1/index.html", + URL("http://127.0.0.1/index.html"), + ["http://127.0.0.1/index.html"], + [URL("http://127.0.0.1/index.html")], + ], +) +async def test_treat_as_secure_origin_init(url) -> None: + jar = CookieJar(unsafe=True, treat_as_secure_origin=url) + assert jar._treat_as_secure_origin == [URL("http://127.0.0.1")] + + +async def test_treat_as_secure_origin() -> None: + endpoint = URL("http://127.0.0.1/") + + jar = CookieJar(unsafe=True, treat_as_secure_origin=[endpoint]) + secure_cookie = SimpleCookie( + "cookie-key=cookie-value; HttpOnly; Path=/; Secure", + ) + + jar.update_cookies( + secure_cookie, + endpoint, + ) + + assert len(jar) == 1 + filtered_cookies = jar.filter_cookies(request_url=endpoint) + assert len(filtered_cookies) == 1 diff --git a/tests/test_formdata.py b/tests/test_formdata.py index 987a262..4bb8aa0 100644 --- a/tests/test_formdata.py +++ b/tests/test_formdata.py @@ -2,7 +2,7 @@ import pytest -from aiohttp import ClientSession, FormData +from aiohttp import FormData, web @pytest.fixture @@ -72,28 +72,36 @@ def test_invalid_formdata_content_transfer_encoding() -> None: async def test_formdata_field_name_is_quoted(buf, writer) -> None: form = FormData(charset="ascii") - form.add_field("emails[]", "xxx@x.co", content_type="multipart/form-data") + form.add_field("email 1", "xxx@x.co", content_type="multipart/form-data") payload = form() await payload.write(writer) - assert b'name="emails%5B%5D"' in buf + assert b'name="email\\ 1"' in buf async def test_formdata_field_name_is_not_quoted(buf, writer) -> None: form = FormData(quote_fields=False, charset="ascii") - form.add_field("emails[]", "xxx@x.co", content_type="multipart/form-data") + form.add_field("email 1", "xxx@x.co", content_type="multipart/form-data") payload = form() await payload.write(writer) - assert b'name="emails[]"' in buf + assert b'name="email 1"' in buf -async def test_mark_formdata_as_processed() -> None: - async with ClientSession() as session: - url = "http://httpbin.org/anything" - data = FormData() - data.add_field("test", "test_value", content_type="application/json") +async def test_mark_formdata_as_processed(aiohttp_client) -> None: + async def handler(request): + return web.Response() - await session.post(url, data=data) - assert len(data._writer._parts) == 1 + app = web.Application() + app.add_routes([web.post("/", handler)]) - with pytest.raises(RuntimeError): - await session.post(url, data=data) + client = await aiohttp_client(app) + + data = FormData() + data.add_field("test", "test_value", content_type="application/json") + + resp = await client.post("/", data=data) + assert len(data._writer._parts) == 1 + + with pytest.raises(RuntimeError): + await client.post("/", data=data) + + resp.release() diff --git a/tests/test_frozenlist.py b/tests/test_frozenlist.py deleted file mode 100644 index 68241a2..0000000 --- a/tests/test_frozenlist.py +++ /dev/null @@ -1,230 +0,0 @@ -from collections.abc import MutableSequence - -import pytest - -from aiohttp.frozenlist import FrozenList, PyFrozenList - - -class FrozenListMixin: - FrozenList = NotImplemented - - SKIP_METHODS = {"__abstractmethods__", "__slots__"} - - def test_subclass(self) -> None: - assert issubclass(self.FrozenList, MutableSequence) - - def test_iface(self) -> None: - for name in set(dir(MutableSequence)) - self.SKIP_METHODS: - if ( - name.startswith("_") and not name.endswith("_") - ) or name == "__class_getitem__": - continue - assert hasattr(self.FrozenList, name) - - def test_ctor_default(self) -> None: - _list = self.FrozenList([]) - assert not _list.frozen - - def test_ctor(self) -> None: - _list = self.FrozenList([1]) - assert not _list.frozen - - def test_ctor_copy_list(self) -> None: - orig = [1] - _list = self.FrozenList(orig) - del _list[0] - assert _list != orig - - def test_freeze(self) -> None: - _list = self.FrozenList() - _list.freeze() - assert _list.frozen - - def test_repr(self) -> None: - _list = self.FrozenList([1]) - assert repr(_list) == "" - _list.freeze() - assert repr(_list) == "" - - def test_getitem(self) -> None: - _list = self.FrozenList([1, 2]) - assert _list[1] == 2 - - def test_setitem(self) -> None: - _list = self.FrozenList([1, 2]) - _list[1] = 3 - assert _list[1] == 3 - - def test_delitem(self) -> None: - _list = self.FrozenList([1, 2]) - del _list[0] - assert len(_list) == 1 - assert _list[0] == 2 - - def test_len(self) -> None: - _list = self.FrozenList([1]) - assert len(_list) == 1 - - def test_iter(self) -> None: - _list = self.FrozenList([1, 2]) - assert list(iter(_list)) == [1, 2] - - def test_reversed(self) -> None: - _list = self.FrozenList([1, 2]) - assert list(reversed(_list)) == [2, 1] - - def test_eq(self) -> None: - _list = self.FrozenList([1]) - assert _list == [1] - - def test_ne(self) -> None: - _list = self.FrozenList([1]) - assert _list != [2] - - def test_le(self) -> None: - _list = self.FrozenList([1]) - assert _list <= [1] - - def test_lt(self) -> None: - _list = self.FrozenList([1]) - assert _list <= [3] - - def test_ge(self) -> None: - _list = self.FrozenList([1]) - assert _list >= [1] - - def test_gt(self) -> None: - _list = self.FrozenList([2]) - assert _list > [1] - - def test_insert(self) -> None: - _list = self.FrozenList([2]) - _list.insert(0, 1) - assert _list == [1, 2] - - def test_frozen_setitem(self) -> None: - _list = self.FrozenList([1]) - _list.freeze() - with pytest.raises(RuntimeError): - _list[0] = 2 - - def test_frozen_delitem(self) -> None: - _list = self.FrozenList([1]) - _list.freeze() - with pytest.raises(RuntimeError): - del _list[0] - - def test_frozen_insert(self) -> None: - _list = self.FrozenList([1]) - _list.freeze() - with pytest.raises(RuntimeError): - _list.insert(0, 2) - - def test_contains(self) -> None: - _list = self.FrozenList([2]) - assert 2 in _list - - def test_iadd(self) -> None: - _list = self.FrozenList([1]) - _list += [2] - assert _list == [1, 2] - - def test_iadd_frozen(self) -> None: - _list = self.FrozenList([1]) - _list.freeze() - with pytest.raises(RuntimeError): - _list += [2] - assert _list == [1] - - def test_index(self) -> None: - _list = self.FrozenList([1]) - assert _list.index(1) == 0 - - def test_remove(self) -> None: - _list = self.FrozenList([1]) - _list.remove(1) - assert len(_list) == 0 - - def test_remove_frozen(self) -> None: - _list = self.FrozenList([1]) - _list.freeze() - with pytest.raises(RuntimeError): - _list.remove(1) - assert _list == [1] - - def test_clear(self) -> None: - _list = self.FrozenList([1]) - _list.clear() - assert len(_list) == 0 - - def test_clear_frozen(self) -> None: - _list = self.FrozenList([1]) - _list.freeze() - with pytest.raises(RuntimeError): - _list.clear() - assert _list == [1] - - def test_extend(self) -> None: - _list = self.FrozenList([1]) - _list.extend([2]) - assert _list == [1, 2] - - def test_extend_frozen(self) -> None: - _list = self.FrozenList([1]) - _list.freeze() - with pytest.raises(RuntimeError): - _list.extend([2]) - assert _list == [1] - - def test_reverse(self) -> None: - _list = self.FrozenList([1, 2]) - _list.reverse() - assert _list == [2, 1] - - def test_reverse_frozen(self) -> None: - _list = self.FrozenList([1, 2]) - _list.freeze() - with pytest.raises(RuntimeError): - _list.reverse() - assert _list == [1, 2] - - def test_pop(self) -> None: - _list = self.FrozenList([1, 2]) - assert _list.pop(0) == 1 - assert _list == [2] - - def test_pop_default(self) -> None: - _list = self.FrozenList([1, 2]) - assert _list.pop() == 2 - assert _list == [1] - - def test_pop_frozen(self) -> None: - _list = self.FrozenList([1, 2]) - _list.freeze() - with pytest.raises(RuntimeError): - _list.pop() - assert _list == [1, 2] - - def test_append(self) -> None: - _list = self.FrozenList([1, 2]) - _list.append(3) - assert _list == [1, 2, 3] - - def test_append_frozen(self) -> None: - _list = self.FrozenList([1, 2]) - _list.freeze() - with pytest.raises(RuntimeError): - _list.append(3) - assert _list == [1, 2] - - def test_count(self) -> None: - _list = self.FrozenList([1, 2]) - assert _list.count(1) == 1 - - -class TestFrozenList(FrozenListMixin): - FrozenList = FrozenList - - -class TestFrozenListPy(FrozenListMixin): - FrozenList = PyFrozenList diff --git a/tests/test_helpers.py b/tests/test_helpers.py index 3367c24..6099afa 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -1,18 +1,20 @@ import asyncio import base64 +import datetime import gc -import os import platform -import sys import tempfile from math import isclose, modf +from pathlib import Path from unittest import mock +from urllib.request import getproxies_environment import pytest from multidict import MultiDict from yarl import URL from aiohttp import helpers +from aiohttp.helpers import parse_http_date IS_PYPY = platform.python_implementation() == "PyPy" @@ -160,7 +162,7 @@ def test_basic_auth_decode_invalid_credentials() -> None: ), ) def test_basic_auth_decode_blank_username(credentials, expected_auth) -> None: - header = "Basic {}".format(base64.b64encode(credentials.encode()).decode()) + header = f"Basic {base64.b64encode(credentials.encode()).decode()}" assert helpers.BasicAuth.decode(header) == expected_auth @@ -177,7 +179,6 @@ def test_basic_auth_from_not_url() -> None: class ReifyMixin: - reify = NotImplemented def test_reify(self) -> None: @@ -350,7 +351,7 @@ def test_timeout_handle_cb_exc(loop) -> None: assert not handle._callbacks -def test_timer_context_cancelled() -> None: +def test_timer_context_not_cancelled() -> None: with mock.patch("aiohttp.helpers.asyncio") as m_asyncio: m_asyncio.TimeoutError = asyncio.TimeoutError loop = mock.Mock() @@ -362,9 +363,9 @@ def test_timer_context_cancelled() -> None: pass if helpers.PY_37: - assert m_asyncio.current_task.return_value.cancel.called + assert not m_asyncio.current_task.return_value.cancel.called else: - assert m_asyncio.Task.current_task.return_value.cancel.called + assert not m_asyncio.Task.current_task.return_value.cancel.called def test_timer_context_no_task(loop) -> None: @@ -391,48 +392,22 @@ async def test_weakref_handle_weak(loop) -> None: await asyncio.sleep(0.1) -def test_ceil_call_later() -> None: - cb = mock.Mock() - loop = mock.Mock() - loop.time.return_value = 10.1 - helpers.call_later(cb, 10.1, loop) - loop.call_at.assert_called_with(21.0, cb) - - -def test_ceil_call_later_no_timeout() -> None: - cb = mock.Mock() - loop = mock.Mock() - helpers.call_later(cb, 0, loop) - assert not loop.call_at.called - - -async def test_ceil_timeout(loop) -> None: - with helpers.CeilTimeout(None, loop=loop) as timeout: - assert timeout._timeout is None - assert timeout._cancel_handler is None - - -def test_ceil_timeout_no_task(loop) -> None: - with pytest.raises(RuntimeError): - with helpers.CeilTimeout(10, loop=loop): - pass +async def test_ceil_timeout() -> None: + async with helpers.ceil_timeout(None) as timeout: + assert timeout.deadline is None -@pytest.mark.skipif( - sys.version_info < (3, 7), reason="TimerHandle.when() doesn't exist" -) -async def test_ceil_timeout_round(loop) -> None: - with helpers.CeilTimeout(7.5, loop=loop) as cm: - frac, integer = modf(cm._cancel_handler.when()) +async def test_ceil_timeout_round() -> None: + async with helpers.ceil_timeout(7.5) as cm: + assert cm.deadline is not None + frac, integer = modf(cm.deadline) assert frac == 0 -@pytest.mark.skipif( - sys.version_info < (3, 7), reason="TimerHandle.when() doesn't exist" -) -async def test_ceil_timeout_small(loop) -> None: - with helpers.CeilTimeout(1.1, loop=loop) as cm: - frac, integer = modf(cm._cancel_handler.when()) +async def test_ceil_timeout_small() -> None: + async with helpers.ceil_timeout(1.1) as cm: + assert cm.deadline is not None + frac, integer = modf(cm.deadline) # a chance for exact integer with zero fraction is negligible assert frac != 0 @@ -440,11 +415,25 @@ async def test_ceil_timeout_small(loop) -> None: # -------------------------------- ContentDisposition ------------------- -def test_content_disposition() -> None: - assert ( - helpers.content_disposition_header("attachment", foo="bar") - == 'attachment; foo="bar"' - ) +@pytest.mark.parametrize( + "kwargs, result", + [ + (dict(foo="bar"), 'attachment; foo="bar"'), + (dict(foo="bar[]"), 'attachment; foo="bar[]"'), + (dict(foo=' a""b\\'), 'attachment; foo="\\ a\\"\\"b\\\\"'), + (dict(foo="bär"), "attachment; foo*=utf-8''b%C3%A4r"), + (dict(foo='bär "\\', quote_fields=False), 'attachment; foo="bär \\"\\\\"'), + (dict(foo="bär", _charset="latin-1"), "attachment; foo*=latin-1''b%E4r"), + (dict(filename="bär"), 'attachment; filename="b%C3%A4r"'), + (dict(filename="bär", _charset="latin-1"), 'attachment; filename="b%E4r"'), + ( + dict(filename='bär "\\', quote_fields=False), + 'attachment; filename="bär \\"\\\\"', + ), + ], +) +def test_content_disposition(kwargs, result) -> None: + assert helpers.content_disposition_header("attachment", **kwargs) == result def test_content_disposition_bad_type() -> None: @@ -472,41 +461,69 @@ def test_set_content_disposition_bad_param() -> None: # --------------------- proxies_from_env ------------------------------ -def test_proxies_from_env_http(mocker) -> None: - url = URL("http://aiohttp.io/path") - mocker.patch.dict(os.environ, {"http_proxy": str(url)}) - ret = helpers.proxies_from_env() - assert ret.keys() == {"http"} - assert ret["http"].proxy == url - assert ret["http"].proxy_auth is None - - -def test_proxies_from_env_http_proxy_for_https_proto(mocker) -> None: - url = URL("http://aiohttp.io/path") - mocker.patch.dict(os.environ, {"https_proxy": str(url)}) +@pytest.mark.parametrize( + ("proxy_env_vars", "url_input", "expected_scheme"), + ( + ({"http_proxy": "http://aiohttp.io/path"}, "http://aiohttp.io/path", "http"), + ({"https_proxy": "http://aiohttp.io/path"}, "http://aiohttp.io/path", "https"), + ({"ws_proxy": "http://aiohttp.io/path"}, "http://aiohttp.io/path", "ws"), + ({"wss_proxy": "http://aiohttp.io/path"}, "http://aiohttp.io/path", "wss"), + ), + indirect=["proxy_env_vars"], + ids=("http", "https", "ws", "wss"), +) +@pytest.mark.usefixtures("proxy_env_vars") +def test_proxies_from_env(url_input, expected_scheme) -> None: + url = URL(url_input) ret = helpers.proxies_from_env() - assert ret.keys() == {"https"} - assert ret["https"].proxy == url - assert ret["https"].proxy_auth is None + assert ret.keys() == {expected_scheme} + assert ret[expected_scheme].proxy == url + assert ret[expected_scheme].proxy_auth is None -def test_proxies_from_env_https_proxy_skipped(mocker) -> None: - url = URL("https://aiohttp.io/path") - mocker.patch.dict(os.environ, {"https_proxy": str(url)}) - log = mocker.patch("aiohttp.log.client_logger.warning") +@pytest.mark.parametrize( + ("proxy_env_vars", "url_input", "expected_scheme"), + ( + ( + {"https_proxy": "https://aiohttp.io/path"}, + "https://aiohttp.io/path", + "https", + ), + ({"wss_proxy": "wss://aiohttp.io/path"}, "wss://aiohttp.io/path", "wss"), + ), + indirect=["proxy_env_vars"], + ids=("https", "wss"), +) +@pytest.mark.usefixtures("proxy_env_vars") +def test_proxies_from_env_skipped(caplog, url_input, expected_scheme) -> None: + url = URL(url_input) assert helpers.proxies_from_env() == {} - log.assert_called_with( - "HTTPS proxies %s are not supported, ignoring", URL("https://aiohttp.io/path") + assert len(caplog.records) == 1 + log_message = "{proto!s} proxies {url!s} are not supported, ignoring".format( + proto=expected_scheme.upper(), url=url ) + assert caplog.record_tuples == [("aiohttp.client", 30, log_message)] -def test_proxies_from_env_http_with_auth(mocker) -> None: +@pytest.mark.parametrize( + ("proxy_env_vars", "url_input", "expected_scheme"), + ( + ( + {"http_proxy": "http://user:pass@aiohttp.io/path"}, + "http://user:pass@aiohttp.io/path", + "http", + ), + ), + indirect=["proxy_env_vars"], + ids=("http",), +) +@pytest.mark.usefixtures("proxy_env_vars") +def test_proxies_from_env_http_with_auth(url_input, expected_scheme) -> None: url = URL("http://user:pass@aiohttp.io/path") - mocker.patch.dict(os.environ, {"http_proxy": str(url)}) ret = helpers.proxies_from_env() - assert ret.keys() == {"http"} - assert ret["http"].proxy == url.with_user(None) - proxy_auth = ret["http"].proxy_auth + assert ret.keys() == {expected_scheme} + assert ret[expected_scheme].proxy == url.with_user(None) + proxy_auth = ret[expected_scheme].proxy_auth assert proxy_auth.login == "user" assert proxy_auth.password == "pass" assert proxy_auth.encoding == "latin1" @@ -524,6 +541,96 @@ async def test_get_running_loop_ok(loop) -> None: assert helpers.get_running_loop() is loop +# --------------------- get_env_proxy_for_url ------------------------------ + + +@pytest.fixture +def proxy_env_vars(monkeypatch, request): + for schema in getproxies_environment().keys(): + monkeypatch.delenv(f"{schema}_proxy", False) + + for proxy_type, proxy_list in request.param.items(): + monkeypatch.setenv(proxy_type, proxy_list) + + return request.param + + +@pytest.mark.parametrize( + ("proxy_env_vars", "url_input", "expected_err_msg"), + ( + ( + {"no_proxy": "aiohttp.io"}, + "http://aiohttp.io/path", + r"Proxying is disallowed for `'aiohttp.io'`", + ), + ( + {"no_proxy": "aiohttp.io,proxy.com"}, + "http://aiohttp.io/path", + r"Proxying is disallowed for `'aiohttp.io'`", + ), + ( + {"http_proxy": "http://example.com"}, + "https://aiohttp.io/path", + r"No proxies found for `https://aiohttp.io/path` in the env", + ), + ( + {"https_proxy": "https://example.com"}, + "http://aiohttp.io/path", + r"No proxies found for `http://aiohttp.io/path` in the env", + ), + ( + {}, + "https://aiohttp.io/path", + r"No proxies found for `https://aiohttp.io/path` in the env", + ), + ( + {"https_proxy": "https://example.com"}, + "", + r"No proxies found for `` in the env", + ), + ), + indirect=["proxy_env_vars"], + ids=( + "url_matches_the_no_proxy_list", + "url_matches_the_no_proxy_list_multiple", + "url_scheme_does_not_match_http_proxy_list", + "url_scheme_does_not_match_https_proxy_list", + "no_proxies_are_set", + "url_is_empty", + ), +) +@pytest.mark.usefixtures("proxy_env_vars") +def test_get_env_proxy_for_url_negative(url_input, expected_err_msg) -> None: + url = URL(url_input) + with pytest.raises(LookupError, match=expected_err_msg): + helpers.get_env_proxy_for_url(url) + + +@pytest.mark.parametrize( + ("proxy_env_vars", "url_input"), + ( + ({"http_proxy": "http://example.com"}, "http://aiohttp.io/path"), + ({"https_proxy": "http://example.com"}, "https://aiohttp.io/path"), + ( + {"http_proxy": "http://example.com,http://proxy.org"}, + "http://aiohttp.io/path", + ), + ), + indirect=["proxy_env_vars"], + ids=( + "url_scheme_match_http_proxy_list", + "url_scheme_match_https_proxy_list", + "url_scheme_match_http_proxy_list_multiple", + ), +) +def test_get_env_proxy_for_url(proxy_env_vars, url_input) -> None: + url = URL(url_input) + proxy, proxy_auth = helpers.get_env_proxy_for_url(url) + proxy_list = proxy_env_vars[url.scheme + "_proxy"] + assert proxy == URL(proxy_list) + assert proxy_auth is None + + # ------------- set_result / set_exception ---------------------- @@ -631,3 +738,48 @@ def test_repr(self) -> None: cp = helpers.ChainMapProxy([d1, d2]) expected = f"ChainMapProxy({d1!r}, {d2!r})" assert expected == repr(cp) + + +@pytest.mark.parametrize( + ["value", "expected"], + [ + # email.utils.parsedate returns None + pytest.param("xxyyzz", None), + # datetime.datetime fails with ValueError("year 4446413 is out of range") + pytest.param("Tue, 08 Oct 4446413 00:56:40 GMT", None), + # datetime.datetime fails with ValueError("second must be in 0..59") + pytest.param("Tue, 08 Oct 2000 00:56:80 GMT", None), + # OK + pytest.param( + "Tue, 08 Oct 2000 00:56:40 GMT", + datetime.datetime(2000, 10, 8, 0, 56, 40, tzinfo=datetime.timezone.utc), + ), + # OK (ignore timezone and overwrite to UTC) + pytest.param( + "Tue, 08 Oct 2000 00:56:40 +0900", + datetime.datetime(2000, 10, 8, 0, 56, 40, tzinfo=datetime.timezone.utc), + ), + ], +) +def test_parse_http_date(value, expected): + assert parse_http_date(value) == expected + + +@pytest.fixture +def protected_dir(tmp_path: Path): + protected_dir = tmp_path / "protected" + protected_dir.mkdir() + try: + protected_dir.chmod(0o600) + yield protected_dir + finally: + protected_dir.rmdir() + + +def test_netrc_from_home_does_not_raise_if_access_denied( + protected_dir: Path, monkeypatch: pytest.MonkeyPatch +): + monkeypatch.setattr(Path, "home", lambda: protected_dir) + monkeypatch.delenv("NETRC", raising=False) + + helpers.netrc_from_env() diff --git a/tests/test_http_exceptions.py b/tests/test_http_exceptions.py index 26a5adb..29d5b91 100644 --- a/tests/test_http_exceptions.py +++ b/tests/test_http_exceptions.py @@ -31,13 +31,13 @@ def test_str(self) -> None: err = http_exceptions.HttpProcessingError( code=500, message="Internal error", headers={} ) - assert str(err) == "500, message='Internal error'" + assert str(err) == "500, message:\n Internal error" def test_repr(self) -> None: err = http_exceptions.HttpProcessingError( code=500, message="Internal error", headers={} ) - assert repr(err) == ("") + assert repr(err) == ("") class TestBadHttpMessage: @@ -60,7 +60,7 @@ def test_pickle(self) -> None: def test_str(self) -> None: err = http_exceptions.BadHttpMessage(message="Bad HTTP message", headers={}) - assert str(err) == "400, message='Bad HTTP message'" + assert str(err) == "400, message:\n Bad HTTP message" def test_repr(self) -> None: err = http_exceptions.BadHttpMessage(message="Bad HTTP message", headers={}) @@ -87,9 +87,8 @@ def test_pickle(self) -> None: def test_str(self) -> None: err = http_exceptions.LineTooLong(line="spam", limit="10", actual_size="12") - assert str(err) == ( - "400, message='Got more than 10 bytes (12) " "when reading spam.'" - ) + expected = "400, message:\n Got more than 10 bytes (12) when reading spam." + assert str(err) == expected def test_repr(self) -> None: err = http_exceptions.LineTooLong(line="spam", limit="10", actual_size="12") @@ -119,25 +118,24 @@ def test_pickle(self) -> None: def test_str(self) -> None: err = http_exceptions.InvalidHeader(hdr="X-Spam") - assert str(err) == "400, message='Invalid HTTP Header: X-Spam'" + assert str(err) == "400, message:\n Invalid HTTP Header: X-Spam" def test_repr(self) -> None: err = http_exceptions.InvalidHeader(hdr="X-Spam") - assert repr(err) == ( - "" - ) + expected = "" + assert repr(err) == expected class TestBadStatusLine: def test_ctor(self) -> None: err = http_exceptions.BadStatusLine("Test") assert err.line == "Test" - assert str(err) == "400, message=\"Bad status line 'Test'\"" + assert str(err) == "400, message:\n Bad status line 'Test'" def test_ctor2(self) -> None: err = http_exceptions.BadStatusLine(b"") assert err.line == "b''" - assert str(err) == "400, message='Bad status line \"b\\'\\'\"'" + assert str(err) == "400, message:\n Bad status line \"b''\"" def test_pickle(self) -> None: err = http_exceptions.BadStatusLine("Test") diff --git a/tests/test_http_parser.py b/tests/test_http_parser.py index 87e98ea..4b185c9 100644 --- a/tests/test_http_parser.py +++ b/tests/test_http_parser.py @@ -1,6 +1,8 @@ # Tests for aiohttp/protocol.py import asyncio +import re +from typing import Any, List from unittest import mock from urllib.parse import quote @@ -11,6 +13,7 @@ import aiohttp from aiohttp import http_exceptions, streams from aiohttp.http_parser import ( + NO_EXTENSIONS, DeflateBuffer, HttpPayloadParser, HttpRequestParserPy, @@ -40,40 +43,47 @@ def protocol(): return mock.Mock() -@pytest.fixture(params=REQUEST_PARSERS) -def parser(loop, protocol, request): +def _gen_ids(parsers: List[Any]) -> List[str]: + return [ + "py-parser" if parser.__module__ == "aiohttp.http_parser" else "c-parser" + for parser in parsers + ] + + +@pytest.fixture(params=REQUEST_PARSERS, ids=_gen_ids(REQUEST_PARSERS)) +def parser(loop: Any, protocol: Any, request: Any): # Parser implementations return request.param( protocol, loop, - 2 ** 16, + 2**16, max_line_size=8190, max_headers=32768, max_field_size=8190, ) -@pytest.fixture(params=REQUEST_PARSERS) -def request_cls(request): +@pytest.fixture(params=REQUEST_PARSERS, ids=_gen_ids(REQUEST_PARSERS)) +def request_cls(request: Any): # Request Parser class return request.param -@pytest.fixture(params=RESPONSE_PARSERS) -def response(loop, protocol, request): +@pytest.fixture(params=RESPONSE_PARSERS, ids=_gen_ids(RESPONSE_PARSERS)) +def response(loop: Any, protocol: Any, request: Any): # Parser implementations return request.param( protocol, loop, - 2 ** 16, + 2**16, max_line_size=8190, max_headers=32768, max_field_size=8190, ) -@pytest.fixture(params=RESPONSE_PARSERS) -def response_cls(request): +@pytest.fixture(params=RESPONSE_PARSERS, ids=_gen_ids(RESPONSE_PARSERS)) +def response_cls(request: Any): # Parser implementations return request.param @@ -83,7 +93,15 @@ def stream(): return mock.Mock() -def test_parse_headers(parser) -> None: +@pytest.mark.skipif(NO_EXTENSIONS, reason="Extentions available but not imported") +def test_c_parser_loaded(): + assert "HttpRequestParserC" in dir(aiohttp.http_parser) + assert "HttpResponseParserC" in dir(aiohttp.http_parser) + assert "RawRequestMessageC" in dir(aiohttp.http_parser) + assert "RawResponseMessageC" in dir(aiohttp.http_parser) + + +def test_parse_headers(parser: Any) -> None: text = b"""GET /test HTTP/1.1\r test: line\r continue\r @@ -101,6 +119,127 @@ def test_parse_headers(parser) -> None: assert not msg.upgrade +@pytest.mark.skipif(NO_EXTENSIONS, reason="Only tests C parser.") +def test_invalid_character(loop: Any, protocol: Any, request: Any) -> None: + parser = HttpRequestParserC( + protocol, + loop, + 2**16, + max_line_size=8190, + max_field_size=8190, + ) + text = b"POST / HTTP/1.1\r\nHost: localhost:8080\r\nSet-Cookie: abc\x01def\r\n\r\n" + error_detail = re.escape( + r""": + + b'Set-Cookie: abc\x01def' + ^""" + ) + with pytest.raises(http_exceptions.BadHttpMessage, match=error_detail): + parser.feed_data(text) + + +@pytest.mark.skipif(NO_EXTENSIONS, reason="Only tests C parser.") +def test_invalid_linebreak(loop: Any, protocol: Any, request: Any) -> None: + parser = HttpRequestParserC( + protocol, + loop, + 2**16, + max_line_size=8190, + max_field_size=8190, + ) + text = b"GET /world HTTP/1.1\r\nHost: 127.0.0.1\n\r\n" + error_detail = re.escape( + r""": + + b'Host: 127.0.0.1\n' + ^""" + ) + with pytest.raises(http_exceptions.BadHttpMessage, match=error_detail): + parser.feed_data(text) + + +def test_cve_2023_37276(parser) -> None: + text = ( + b"POST / HTTP/1.1\r\nHost: localhost:8080\r\n" + b"X-Abc: \rxTransfer-Encoding: chunked\r\n\r\n" + ) + with pytest.raises(http_exceptions.BadHttpMessage): + parser.feed_data(text) + + +@pytest.mark.parametrize( + "hdr", + ( + # https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length + "Content-Length: -5", + "Content-Length: +256", + "Foo: abc\rdef", # https://www.rfc-editor.org/rfc/rfc9110.html#section-5.5-5 + "Bar: abc\ndef", + "Baz: abc\x00def", + "Foo : bar", # https://www.rfc-editor.org/rfc/rfc9112.html#section-5.1-2 + "Foo\t: bar", + ), +) +def test_bad_headers(parser, hdr: str) -> None: + text = f"POST / HTTP/1.1\r\n{hdr}\r\n\r\n".encode() + with pytest.raises(http_exceptions.BadHttpMessage): + parser.feed_data(text) + + +def test_content_length_transfer_encoding(parser) -> None: + text = ( + b"GET / HTTP/1.1\r\nHost: a\r\nContent-Length: 5\r\n" + + b"Transfer-Encoding: a\r\n\r\napple\r\n" + ) + with pytest.raises(http_exceptions.BadHttpMessage): + parser.feed_data(text) + + +def test_bad_chunked_py(loop, protocol) -> None: + """Test that invalid chunked encoding doesn't allow content-length to be used.""" + parser = HttpRequestParserPy( + protocol, + loop, + 2**16, + max_line_size=8190, + max_field_size=8190, + ) + text = ( + b"GET / HTTP/1.1\r\nHost: a\r\nTransfer-Encoding: chunked\r\n\r\n0_2e\r\n\r\n" + + b"GET / HTTP/1.1\r\nHost: a\r\nContent-Length: 5\r\n\r\n0\r\n\r\n" + ) + messages, upgrade, tail = parser.feed_data(text) + assert isinstance(messages[0][1].exception(), http_exceptions.TransferEncodingError) + + +@pytest.mark.skipif( + "HttpRequestParserC" not in dir(aiohttp.http_parser), + reason="C based HTTP parser not available", +) +def test_bad_chunked_c(loop, protocol) -> None: + """C parser behaves differently. Maybe we should align them later.""" + parser = HttpRequestParserC( + protocol, + loop, + 2**16, + max_line_size=8190, + max_field_size=8190, + ) + text = ( + b"GET / HTTP/1.1\r\nHost: a\r\nTransfer-Encoding: chunked\r\n\r\n0_2e\r\n\r\n" + + b"GET / HTTP/1.1\r\nHost: a\r\nContent-Length: 5\r\n\r\n0\r\n\r\n" + ) + with pytest.raises(http_exceptions.BadHttpMessage): + parser.feed_data(text) + + +def test_whitespace_before_header(parser) -> None: + text = b"GET / HTTP/1.1\r\n\tContent-Length: 1\r\n\r\nX" + with pytest.raises(http_exceptions.BadHttpMessage): + parser.feed_data(text) + + def test_parse(parser) -> None: text = b"GET /test HTTP/1.1\r\n\r\n" messages, upgrade, tail = parser.feed_data(text) @@ -274,7 +413,29 @@ def test_request_chunked(parser) -> None: assert isinstance(payload, streams.StreamReader) -def test_conn_upgrade(parser) -> None: +def test_request_te_chunked_with_content_length(parser: Any) -> None: + text = ( + b"GET /test HTTP/1.1\r\n" + b"content-length: 1234\r\n" + b"transfer-encoding: chunked\r\n\r\n" + ) + with pytest.raises( + http_exceptions.BadHttpMessage, + match="Transfer-Encoding can't be present with Content-Length", + ): + parser.feed_data(text) + + +def test_request_te_chunked123(parser: Any) -> None: + text = b"GET /test HTTP/1.1\r\n" b"transfer-encoding: chunked123\r\n\r\n" + with pytest.raises( + http_exceptions.BadHttpMessage, + match="Request has invalid `Transfer-Encoding`", + ): + parser.feed_data(text) + + +def test_conn_upgrade(parser: Any) -> None: text = ( b"GET /test HTTP/1.1\r\n" b"connection: upgrade\r\n" @@ -323,7 +484,15 @@ def test_compression_unknown(parser) -> None: assert msg.compression is None -def test_headers_connect(parser) -> None: +def test_url_connect(parser: Any) -> None: + text = b"CONNECT www.google.com HTTP/1.1\r\n" b"content-length: 0\r\n\r\n" + messages, upgrade, tail = parser.feed_data(text) + msg, payload = messages[0] + assert upgrade + assert msg.url == URL.build(authority="www.google.com") + + +def test_headers_connect(parser: Any) -> None: text = b"CONNECT www.google.com HTTP/1.1\r\n" b"content-length: 0\r\n\r\n" messages, upgrade, tail = parser.feed_data(text) msg, payload = messages[0] @@ -331,7 +500,19 @@ def test_headers_connect(parser) -> None: assert isinstance(payload, streams.StreamReader) -def test_headers_old_websocket_key1(parser) -> None: +def test_url_absolute(parser: Any) -> None: + text = ( + b"GET https://www.google.com/path/to.html HTTP/1.1\r\n" + b"content-length: 0\r\n\r\n" + ) + messages, upgrade, tail = parser.feed_data(text) + msg, payload = messages[0] + assert not upgrade + assert msg.method == "GET" + assert msg.url == URL("https://www.google.com/path/to.html") + + +def test_headers_old_websocket_key1(parser: Any) -> None: text = b"GET /test HTTP/1.1\r\n" b"SEC-WEBSOCKET-KEY1: line\r\n\r\n" with pytest.raises(http_exceptions.BadHttpMessage): @@ -370,7 +551,7 @@ def test_max_header_field_size(parser, size) -> None: name = b"t" * size text = b"GET /test HTTP/1.1\r\n" + name + b":data\r\n\r\n" - match = f"400, message='Got more than 8190 bytes \\({size}\\) when reading" + match = f"400, message:\n Got more than 8190 bytes \\({size}\\) when reading" with pytest.raises(http_exceptions.LineTooLong, match=match): parser.feed_data(text) @@ -398,7 +579,7 @@ def test_max_header_value_size(parser, size) -> None: name = b"t" * size text = b"GET /test HTTP/1.1\r\n" b"data:" + name + b"\r\n\r\n" - match = f"400, message='Got more than 8190 bytes \\({size}\\) when reading" + match = f"400, message:\n Got more than 8190 bytes \\({size}\\) when reading" with pytest.raises(http_exceptions.LineTooLong, match=match): parser.feed_data(text) @@ -426,7 +607,7 @@ def test_max_header_value_size_continuation(parser, size) -> None: name = b"T" * (size - 5) text = b"GET /test HTTP/1.1\r\n" b"data: test\r\n " + name + b"\r\n\r\n" - match = f"400, message='Got more than 8190 bytes \\({size}\\) when reading" + match = f"400, message:\n Got more than 8190 bytes \\({size}\\) when reading" with pytest.raises(http_exceptions.LineTooLong, match=match): parser.feed_data(text) @@ -468,8 +649,10 @@ def test_http_request_parser(parser) -> None: def test_http_request_bad_status_line(parser) -> None: text = b"getpath \r\n\r\n" - with pytest.raises(http_exceptions.BadStatusLine): + with pytest.raises(http_exceptions.BadStatusLine) as exc_info: parser.feed_data(text) + # Check for accidentally escaped message. + assert r"\n" not in exc_info.value.message def test_http_request_upgrade(parser) -> None: @@ -546,10 +729,15 @@ def test_http_request_parser_bad_version(parser) -> None: parser.feed_data(b"GET //get HT/11\r\n\r\n") +def test_http_request_parser_bad_version_number(parser: Any) -> None: + with pytest.raises(http_exceptions.BadHttpMessage): + parser.feed_data(b"GET /test HTTP/12.3\r\n\r\n") + + @pytest.mark.parametrize("size", [40965, 8191]) def test_http_request_max_status_line(parser, size) -> None: path = b"t" * (size - 5) - match = f"400, message='Got more than 8190 bytes \\({size}\\) when reading" + match = f"400, message:\n Got more than 8190 bytes \\({size}\\) when reading" with pytest.raises(http_exceptions.LineTooLong, match=match): parser.feed_data(b"GET /path" + path + b" HTTP/1.1\r\n\r\n") @@ -592,7 +780,7 @@ def test_http_response_parser_utf8(response) -> None: @pytest.mark.parametrize("size", [40962, 8191]) def test_http_response_parser_bad_status_line_too_long(response, size) -> None: reason = b"t" * (size - 2) - match = f"400, message='Got more than 8190 bytes \\({size}\\) when reading" + match = f"400, message:\n Got more than 8190 bytes \\({size}\\) when reading" with pytest.raises(http_exceptions.LineTooLong, match=match): response.feed_data(b"HTTP/1.1 200 Ok" + reason + b"\r\n\r\n") @@ -613,6 +801,11 @@ def test_http_response_parser_bad_version(response) -> None: response.feed_data(b"HT/11 200 Ok\r\n\r\n") +def test_http_response_parser_bad_version_number(response) -> None: + with pytest.raises(http_exceptions.BadHttpMessage): + response.feed_data(b"HTTP/12.3 200 Ok\r\n\r\n") + + def test_http_response_parser_no_reason(response) -> None: msg = response.feed_data(b"HTTP/1.1 200\r\n\r\n")[0][0][0] @@ -621,23 +814,96 @@ def test_http_response_parser_no_reason(response) -> None: assert msg.reason == "" +def test_http_response_parser_lenient_headers(response) -> None: + messages, upgrade, tail = response.feed_data( + b"HTTP/1.1 200 test\r\nFoo: abc\x01def\r\n\r\n" + ) + msg = messages[0][0] + + assert msg.headers["Foo"] == "abc\x01def" + + +@pytest.mark.dev_mode +def test_http_response_parser_strict_headers(response) -> None: + if isinstance(response, HttpResponseParserPy): + pytest.xfail("Py parser is lenient. May update py-parser later.") + with pytest.raises(http_exceptions.BadHttpMessage): + response.feed_data(b"HTTP/1.1 200 test\r\nFoo: abc\x01def\r\n\r\n") + + +def test_http_response_parser_bad_crlf(response) -> None: + """Still a lot of dodgy servers sending bad requests like this.""" + messages, upgrade, tail = response.feed_data( + b"HTTP/1.0 200 OK\nFoo: abc\nBar: def\n\nBODY\n" + ) + msg = messages[0][0] + + assert msg.headers["Foo"] == "abc" + assert msg.headers["Bar"] == "def" + + +async def test_http_response_parser_bad_chunked_lax(response) -> None: + text = ( + b"HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\n\r\n5 \r\nabcde\r\n0\r\n\r\n" + ) + messages, upgrade, tail = response.feed_data(text) + + assert await messages[0][1].read(5) == b"abcde" + + +@pytest.mark.dev_mode +async def test_http_response_parser_bad_chunked_strict_py(loop, protocol) -> None: + response = HttpResponseParserPy( + protocol, + loop, + 2**16, + max_line_size=8190, + max_field_size=8190, + ) + text = ( + b"HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\n\r\n5 \r\nabcde\r\n0\r\n\r\n" + ) + messages, upgrade, tail = response.feed_data(text) + assert isinstance(messages[0][1].exception(), http_exceptions.TransferEncodingError) + + +@pytest.mark.dev_mode +@pytest.mark.skipif( + "HttpRequestParserC" not in dir(aiohttp.http_parser), + reason="C based HTTP parser not available", +) +async def test_http_response_parser_bad_chunked_strict_c(loop, protocol) -> None: + response = HttpResponseParserC( + protocol, + loop, + 2**16, + max_line_size=8190, + max_field_size=8190, + ) + text = ( + b"HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\n\r\n5 \r\nabcde\r\n0\r\n\r\n" + ) + with pytest.raises(http_exceptions.BadHttpMessage): + response.feed_data(text) + + def test_http_response_parser_bad(response) -> None: with pytest.raises(http_exceptions.BadHttpMessage): response.feed_data(b"HTT/1\r\n\r\n") def test_http_response_parser_code_under_100(response) -> None: - msg = response.feed_data(b"HTTP/1.1 99 test\r\n\r\n")[0][0][0] - assert msg.code == 99 + with pytest.raises(http_exceptions.BadStatusLine): + response.feed_data(b"HTTP/1.1 99 test\r\n\r\n") def test_http_response_parser_code_above_999(response) -> None: - with pytest.raises(http_exceptions.BadHttpMessage): + with pytest.raises(http_exceptions.BadStatusLine): response.feed_data(b"HTTP/1.1 9999 test\r\n\r\n") def test_http_response_parser_code_not_int(response) -> None: - with pytest.raises(http_exceptions.BadHttpMessage): + with pytest.raises(http_exceptions.BadStatusLine): response.feed_data(b"HTTP/1.1 ttt test\r\n\r\n") @@ -720,7 +986,7 @@ def _test_parse_no_length_or_te_on_post(loop, protocol, request_cls): def test_parse_payload_response_without_body(loop, protocol, response_cls) -> None: - parser = response_cls(protocol, loop, 2 ** 16, response_with_body=False) + parser = response_cls(protocol, loop, 2**16, response_with_body=False) text = b"HTTP/1.1 200 Ok\r\n" b"content-length: 10\r\n\r\n" msg, payload = parser.feed_data(text)[0][0] @@ -760,19 +1026,6 @@ def test_partial_url(parser) -> None: assert payload.is_eof() -def test_url_parse_non_strict_mode(parser) -> None: - payload = "GET /test/тест HTTP/1.1\r\n\r\n".encode() - messages, upgrade, tail = parser.feed_data(payload) - assert len(messages) == 1 - - msg, payload = messages[0] - - assert msg.method == "GET" - assert msg.path == "/test/тест" - assert msg.version == (1, 1) - assert payload.is_eof() - - @pytest.mark.parametrize( ("uri", "path", "query", "fragment"), [ @@ -797,6 +1050,8 @@ def test_parse_uri_percent_encoded(parser, uri, path, query, fragment) -> None: def test_parse_uri_utf8(parser) -> None: + if not isinstance(parser, HttpRequestParserPy): + pytest.xfail("Not valid HTTP. Maybe update py-parser to reject later.") text = ("GET /путь?ключ=знач#фраг HTTP/1.1\r\n\r\n").encode() messages, upgrade, tail = parser.feed_data(text) msg = messages[0][0] @@ -830,7 +1085,7 @@ def test_parse_bad_method_for_c_parser_raises(loop, protocol): parser = HttpRequestParserC( protocol, loop, - 2 ** 16, + 2**16, max_line_size=8190, max_headers=32768, max_field_size=8190, @@ -843,7 +1098,7 @@ def test_parse_bad_method_for_c_parser_raises(loop, protocol): class TestParsePayload: async def test_parse_eof_payload(self, stream) -> None: out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, readall=True) p.feed_data(b"data") @@ -854,7 +1109,7 @@ async def test_parse_eof_payload(self, stream) -> None: async def test_parse_no_body(self, stream) -> None: out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, method="PUT") @@ -863,7 +1118,7 @@ async def test_parse_no_body(self, stream) -> None: async def test_parse_length_payload_eof(self, stream) -> None: out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, length=4) @@ -874,7 +1129,7 @@ async def test_parse_length_payload_eof(self, stream) -> None: async def test_parse_chunked_payload_size_error(self, stream) -> None: out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, chunked=True) with pytest.raises(http_exceptions.TransferEncodingError): @@ -882,7 +1137,7 @@ async def test_parse_chunked_payload_size_error(self, stream) -> None: assert isinstance(out.exception(), http_exceptions.TransferEncodingError) async def test_parse_chunked_payload_split_end(self, protocol) -> None: - out = aiohttp.StreamReader(protocol, 2 ** 16, loop=None) + out = aiohttp.StreamReader(protocol, 2**16, loop=None) p = HttpPayloadParser(out, chunked=True) p.feed_data(b"4\r\nasdf\r\n0\r\n") p.feed_data(b"\r\n") @@ -891,7 +1146,7 @@ async def test_parse_chunked_payload_split_end(self, protocol) -> None: assert b"asdf" == b"".join(out._buffer) async def test_parse_chunked_payload_split_end2(self, protocol) -> None: - out = aiohttp.StreamReader(protocol, 2 ** 16, loop=None) + out = aiohttp.StreamReader(protocol, 2**16, loop=None) p = HttpPayloadParser(out, chunked=True) p.feed_data(b"4\r\nasdf\r\n0\r\n\r") p.feed_data(b"\n") @@ -900,7 +1155,7 @@ async def test_parse_chunked_payload_split_end2(self, protocol) -> None: assert b"asdf" == b"".join(out._buffer) async def test_parse_chunked_payload_split_end_trailers(self, protocol) -> None: - out = aiohttp.StreamReader(protocol, 2 ** 16, loop=None) + out = aiohttp.StreamReader(protocol, 2**16, loop=None) p = HttpPayloadParser(out, chunked=True) p.feed_data(b"4\r\nasdf\r\n0\r\n") p.feed_data(b"Content-MD5: 912ec803b2ce49e4a541068d495ab570\r\n") @@ -910,7 +1165,7 @@ async def test_parse_chunked_payload_split_end_trailers(self, protocol) -> None: assert b"asdf" == b"".join(out._buffer) async def test_parse_chunked_payload_split_end_trailers2(self, protocol) -> None: - out = aiohttp.StreamReader(protocol, 2 ** 16, loop=None) + out = aiohttp.StreamReader(protocol, 2**16, loop=None) p = HttpPayloadParser(out, chunked=True) p.feed_data(b"4\r\nasdf\r\n0\r\n") p.feed_data(b"Content-MD5: 912ec803b2ce49e4a541068d495ab570\r\n\r") @@ -920,7 +1175,7 @@ async def test_parse_chunked_payload_split_end_trailers2(self, protocol) -> None assert b"asdf" == b"".join(out._buffer) async def test_parse_chunked_payload_split_end_trailers3(self, protocol) -> None: - out = aiohttp.StreamReader(protocol, 2 ** 16, loop=None) + out = aiohttp.StreamReader(protocol, 2**16, loop=None) p = HttpPayloadParser(out, chunked=True) p.feed_data(b"4\r\nasdf\r\n0\r\nContent-MD5: ") p.feed_data(b"912ec803b2ce49e4a541068d495ab570\r\n\r\n") @@ -929,7 +1184,7 @@ async def test_parse_chunked_payload_split_end_trailers3(self, protocol) -> None assert b"asdf" == b"".join(out._buffer) async def test_parse_chunked_payload_split_end_trailers4(self, protocol) -> None: - out = aiohttp.StreamReader(protocol, 2 ** 16, loop=None) + out = aiohttp.StreamReader(protocol, 2**16, loop=None) p = HttpPayloadParser(out, chunked=True) p.feed_data(b"4\r\nasdf\r\n0\r\n" b"C") p.feed_data(b"ontent-MD5: 912ec803b2ce49e4a541068d495ab570\r\n\r\n") @@ -939,7 +1194,7 @@ async def test_parse_chunked_payload_split_end_trailers4(self, protocol) -> None async def test_http_payload_parser_length(self, stream) -> None: out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, length=2) eof, tail = p.feed_data(b"1245") @@ -954,22 +1209,21 @@ async def test_http_payload_parser_deflate(self, stream) -> None: length = len(COMPRESSED) out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, length=length, compression="deflate") p.feed_data(COMPRESSED) assert b"data" == b"".join(d for d, _ in out._buffer) assert out.is_eof() - async def test_http_payload_parser_deflate_no_hdrs(self, stream) -> None: - """Tests incorrectly formed data (no zlib headers) """ - + async def test_http_payload_parser_deflate_no_hdrs(self, stream: Any) -> None: + """Tests incorrectly formed data (no zlib headers).""" # c=compressobj(wbits=-15); b''.join([c.compress(b'data'), c.flush()]) COMPRESSED = b"KI,I\x04\x00" length = len(COMPRESSED) out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, length=length, compression="deflate") p.feed_data(COMPRESSED) @@ -982,7 +1236,7 @@ async def test_http_payload_parser_deflate_light(self, stream) -> None: length = len(COMPRESSED) out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, length=length, compression="deflate") p.feed_data(COMPRESSED) @@ -991,7 +1245,7 @@ async def test_http_payload_parser_deflate_light(self, stream) -> None: async def test_http_payload_parser_deflate_split(self, stream) -> None: out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, compression="deflate", readall=True) # Feeding one correct byte should be enough to choose exact @@ -1003,7 +1257,7 @@ async def test_http_payload_parser_deflate_split(self, stream) -> None: async def test_http_payload_parser_deflate_split_err(self, stream) -> None: out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, compression="deflate", readall=True) # Feeding one wrong byte should be enough to choose exact @@ -1015,7 +1269,7 @@ async def test_http_payload_parser_deflate_split_err(self, stream) -> None: async def test_http_payload_parser_length_zero(self, stream) -> None: out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, length=0) assert p.done @@ -1025,7 +1279,7 @@ async def test_http_payload_parser_length_zero(self, stream) -> None: async def test_http_payload_brotli(self, stream) -> None: compressed = brotli.compress(b"brotli data") out = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) p = HttpPayloadParser(out, length=len(compressed), compression="br") p.feed_data(compressed) @@ -1036,7 +1290,7 @@ async def test_http_payload_brotli(self, stream) -> None: class TestDeflateBuffer: async def test_feed_data(self, stream) -> None: buf = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) dbuf = DeflateBuffer(buf, "deflate") @@ -1049,7 +1303,7 @@ async def test_feed_data(self, stream) -> None: async def test_feed_data_err(self, stream) -> None: buf = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) dbuf = DeflateBuffer(buf, "deflate") @@ -1064,7 +1318,7 @@ async def test_feed_data_err(self, stream) -> None: async def test_feed_eof(self, stream) -> None: buf = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) dbuf = DeflateBuffer(buf, "deflate") @@ -1077,7 +1331,7 @@ async def test_feed_eof(self, stream) -> None: async def test_feed_eof_err_deflate(self, stream) -> None: buf = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) dbuf = DeflateBuffer(buf, "deflate") @@ -1090,7 +1344,7 @@ async def test_feed_eof_err_deflate(self, stream) -> None: async def test_feed_eof_no_err_gzip(self, stream) -> None: buf = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) dbuf = DeflateBuffer(buf, "gzip") @@ -1103,7 +1357,7 @@ async def test_feed_eof_no_err_gzip(self, stream) -> None: async def test_feed_eof_no_err_brotli(self, stream) -> None: buf = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) dbuf = DeflateBuffer(buf, "br") @@ -1116,7 +1370,7 @@ async def test_feed_eof_no_err_brotli(self, stream) -> None: async def test_empty_body(self, stream) -> None: buf = aiohttp.FlowControlDataQueue( - stream, 2 ** 16, loop=asyncio.get_event_loop() + stream, 2**16, loop=asyncio.get_event_loop() ) dbuf = DeflateBuffer(buf, "deflate") dbuf.feed_eof() diff --git a/tests/test_http_writer.py b/tests/test_http_writer.py index 6aca2ea..5649f32 100644 --- a/tests/test_http_writer.py +++ b/tests/test_http_writer.py @@ -3,6 +3,7 @@ from unittest import mock import pytest +from multidict import CIMultiDict from aiohttp import http from aiohttp.test_utils import make_mocked_coro @@ -235,6 +236,21 @@ async def test_write_to_closing_transport(protocol, transport, loop) -> None: await msg.write(b"After closing") +async def test_write_to_closed_transport(protocol, transport, loop) -> None: + """Test that writing to a closed transport raises ConnectionResetError. + + The StreamWriter checks to see if protocol.transport is None before + writing to the transport. If it is None, it raises ConnectionResetError. + """ + msg = http.StreamWriter(protocol, loop) + + await msg.write(b"Before transport close") + protocol.transport = None + + with pytest.raises(ConnectionResetError, match="Cannot write to closing transport"): + await msg.write(b"After transport closed") + + async def test_drain(protocol, transport, loop) -> None: msg = http.StreamWriter(protocol, loop) await msg.drain() @@ -246,3 +262,14 @@ async def test_drain_no_transport(protocol, transport, loop) -> None: msg._protocol.transport = None await msg.drain() assert not protocol._drain_helper.called + + +async def test_write_headers_prevents_injection(protocol, transport, loop) -> None: + msg = http.StreamWriter(protocol, loop) + status_line = "HTTP/1.1 200 OK" + wrong_headers = CIMultiDict({"Set-Cookie: abc=123\r\nContent-Length": "256"}) + with pytest.raises(ValueError): + await msg.write_headers(status_line, wrong_headers) + wrong_headers = CIMultiDict({"Content-Length": "256\r\nSet-Cookie: abc=123"}) + with pytest.raises(ValueError): + await msg.write_headers(status_line, wrong_headers) diff --git a/tests/test_locks.py b/tests/test_locks.py index 55fd233..5f434ea 100644 --- a/tests/test_locks.py +++ b/tests/test_locks.py @@ -18,7 +18,7 @@ async def c(): return 1 t = loop.create_task(c()) - await asyncio.sleep(0, loop=loop) + await asyncio.sleep(0) e = Exception() ev.set(exc=e) assert (await t) == e @@ -31,7 +31,7 @@ async def c(): return 1 t = loop.create_task(c()) - await asyncio.sleep(0, loop=loop) + await asyncio.sleep(0) ev.set() assert (await t) == 1 @@ -43,7 +43,7 @@ async def c(): t1 = loop.create_task(c()) t2 = loop.create_task(c()) - await asyncio.sleep(0, loop=loop) + await asyncio.sleep(0) ev.cancel() ev.set() diff --git a/tests/test_loop.py b/tests/test_loop.py index 24c979e..1423c1f 100644 --- a/tests/test_loop.py +++ b/tests/test_loop.py @@ -5,14 +5,15 @@ import pytest from aiohttp import web -from aiohttp.test_utils import AioHTTPTestCase, unittest_run_loop +from aiohttp.helpers import PY_38 +from aiohttp.test_utils import AioHTTPTestCase, loop_context @pytest.mark.skipif( platform.system() == "Windows", reason="the test is not valid for Windows" ) async def test_subprocess_co(loop) -> None: - assert isinstance(threading.current_thread(), threading._MainThread) + assert PY_38 or isinstance(threading.current_thread(), threading._MainThread) proc = await asyncio.create_subprocess_shell( "exit 0", stdin=asyncio.subprocess.DEVNULL, @@ -31,13 +32,33 @@ async def get_application(self): async def on_startup_hook(self, app): self.on_startup_called = True - @unittest_run_loop async def test_on_startup_hook(self) -> None: self.assertTrue(self.on_startup_called) def test_default_loop(self) -> None: - self.assertIs(self.loop, asyncio.get_event_loop()) + self.assertIs(self.loop, asyncio.get_event_loop_policy().get_event_loop()) def test_default_loop(loop) -> None: - assert asyncio.get_event_loop() is loop + assert asyncio.get_event_loop_policy().get_event_loop() is loop + + +@pytest.mark.xfail(not PY_38, reason="ThreadedChildWatcher is only available in 3.8+") +def test_setup_loop_non_main_thread() -> None: + child_exc = None + + def target() -> None: + try: + with loop_context() as loop: + assert asyncio.get_event_loop_policy().get_event_loop() is loop + loop.run_until_complete(test_subprocess_co(loop)) + except Exception as exc: + nonlocal child_exc + child_exc = exc + + # Ensures setup_test_loop can be called by pytest-xdist in non-main thread. + t = threading.Thread(target=target) + t.start() + t.join() + + assert child_exc is None diff --git a/tests/test_multipart.py b/tests/test_multipart.py index 6c3f121..cc3f5ff 100644 --- a/tests/test_multipart.py +++ b/tests/test_multipart.py @@ -23,6 +23,9 @@ BOUNDARY = b"--:" +newline = b"\r\n" + + @pytest.fixture def buf(): return bytearray() @@ -66,6 +69,12 @@ async def readline(self): def unread_data(self, data): self.content = io.BytesIO(data + self.content.read()) + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + self.content.close() + class StreamWithShortenRead(Stream): def __init__(self, content): @@ -110,243 +119,270 @@ async def test_release_when_stream_at_eof(self) -> None: class TestPartReader: async def test_next(self) -> None: - obj = aiohttp.BodyPartReader(BOUNDARY, {}, Stream(b"Hello, world!\r\n--:")) - result = await obj.next() - assert b"Hello, world!" == result - assert obj.at_eof() + data = b"Hello, world!%s--:" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + result = await obj.next() + assert b"Hello, world!" == result + assert obj.at_eof() async def test_next_next(self) -> None: - obj = aiohttp.BodyPartReader(BOUNDARY, {}, Stream(b"Hello, world!\r\n--:")) - result = await obj.next() - assert b"Hello, world!" == result - assert obj.at_eof() - result = await obj.next() - assert result is None + data = b"Hello, world!%s--:" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + result = await obj.next() + assert b"Hello, world!" == result + assert obj.at_eof() + result = await obj.next() + assert result is None async def test_read(self) -> None: - obj = aiohttp.BodyPartReader(BOUNDARY, {}, Stream(b"Hello, world!\r\n--:")) - result = await obj.read() - assert b"Hello, world!" == result - assert obj.at_eof() + data = b"Hello, world!%s--:" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + result = await obj.read() + assert b"Hello, world!" == result + assert obj.at_eof() async def test_read_chunk_at_eof(self) -> None: - obj = aiohttp.BodyPartReader(BOUNDARY, {}, Stream(b"--:")) - obj._at_eof = True - result = await obj.read_chunk() + with Stream(b"--:") as stream: + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + obj._at_eof = True + result = await obj.read_chunk() assert b"" == result async def test_read_chunk_without_content_length(self) -> None: - obj = aiohttp.BodyPartReader(BOUNDARY, {}, Stream(b"Hello, world!\r\n--:")) - c1 = await obj.read_chunk(8) - c2 = await obj.read_chunk(8) - c3 = await obj.read_chunk(8) - assert c1 + c2 == b"Hello, world!" - assert c3 == b"" - - async def test_read_incomplete_chunk(self) -> None: - stream = Stream(b"") - - if sys.version_info >= (3, 8, 1): - # Workaround for a weird behavior of patch.object - def prepare(data): - return data - - else: - - async def prepare(data): - return data - - with mock.patch.object( - stream, - "read", - side_effect=[ - prepare(b"Hello, "), - prepare(b"World"), - prepare(b"!\r\n--:"), - prepare(b""), - ], - ): + data = b"Hello, world!%s--:" % newline + with Stream(data) as stream: obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) c1 = await obj.read_chunk(8) - assert c1 == b"Hello, " c2 = await obj.read_chunk(8) - assert c2 == b"World" c3 = await obj.read_chunk(8) - assert c3 == b"!" + assert c1 + c2 == b"Hello, world!" + assert c3 == b"" + + async def test_read_incomplete_chunk(self) -> None: + with Stream(b"") as stream: + if sys.version_info >= (3, 8, 1): + # Workaround for a weird behavior of patch.object + def prepare(data): + return data + + else: + + async def prepare(data): + return data + + with mock.patch.object( + stream, + "read", + side_effect=[ + prepare(b"Hello, "), + prepare(b"World"), + prepare(b"!%s--:" % newline), + prepare(b""), + ], + ): + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + c1 = await obj.read_chunk(8) + assert c1 == b"Hello, " + c2 = await obj.read_chunk(8) + assert c2 == b"World" + c3 = await obj.read_chunk(8) + assert c3 == b"!" async def test_read_all_at_once(self) -> None: - stream = Stream(b"Hello, World!\r\n--:--\r\n") - obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) - result = await obj.read_chunk() - assert b"Hello, World!" == result - result = await obj.read_chunk() - assert b"" == result - assert obj.at_eof() + data = b"Hello, World!%s--:--%s" % (newline, newline) + with Stream(data) as stream: + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + result = await obj.read_chunk() + assert b"Hello, World!" == result + result = await obj.read_chunk() + assert b"" == result + assert obj.at_eof() async def test_read_incomplete_body_chunked(self) -> None: - stream = Stream(b"Hello, World!\r\n-") - obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) - result = b"" - with pytest.raises(AssertionError): - for _ in range(4): - result += await obj.read_chunk(7) - assert b"Hello, World!\r\n-" == result + data = b"Hello, World!%s--" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + result = b"" + with pytest.raises(AssertionError): + for _ in range(4): + result += await obj.read_chunk(7) + assert data == result async def test_read_boundary_with_incomplete_chunk(self) -> None: - stream = Stream(b"") - - if sys.version_info >= (3, 8, 1): - # Workaround for weird 3.8.1 patch.object() behavior - def prepare(data): - return data - - else: - - async def prepare(data): - return data - - with mock.patch.object( - stream, - "read", - side_effect=[ - prepare(b"Hello, World"), - prepare(b"!\r\n"), - prepare(b"--:"), - prepare(b""), - ], - ): - obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) - c1 = await obj.read_chunk(12) - assert c1 == b"Hello, World" - c2 = await obj.read_chunk(8) - assert c2 == b"!" - c3 = await obj.read_chunk(8) - assert c3 == b"" + with Stream(b"") as stream: + if sys.version_info >= (3, 8, 1): + # Workaround for weird 3.8.1 patch.object() behavior + def prepare(data): + return data + + else: + + async def prepare(data): + return data + + with mock.patch.object( + stream, + "read", + side_effect=[ + prepare(b"Hello, World"), + prepare(b"!%s" % newline), + prepare(b"--:"), + prepare(b""), + ], + ): + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + c1 = await obj.read_chunk(12) + assert c1 == b"Hello, World" + c2 = await obj.read_chunk(8) + assert c2 == b"!" + c3 = await obj.read_chunk(8) + assert c3 == b"" async def test_multi_read_chunk(self) -> None: - stream = Stream(b"Hello,\r\n--:\r\n\r\nworld!\r\n--:--") - obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) - result = await obj.read_chunk(8) - assert b"Hello," == result - result = await obj.read_chunk(8) - assert b"" == result - assert obj.at_eof() + data = b"Hello,%s--:%s%sworld!%s--:--" % ((newline,) * 4) + with Stream(data) as stream: + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + result = await obj.read_chunk(8) + assert b"Hello," == result + result = await obj.read_chunk(8) + assert b"" == result + assert obj.at_eof() async def test_read_chunk_properly_counts_read_bytes(self) -> None: expected = b"." * 10 + tail = b"%s--:--" % newline size = len(expected) - obj = aiohttp.BodyPartReader( - BOUNDARY, - {"CONTENT-LENGTH": size}, - StreamWithShortenRead(expected + b"\r\n--:--"), - ) - result = bytearray() - while True: - chunk = await obj.read_chunk() - if not chunk: - break - result.extend(chunk) + with StreamWithShortenRead(expected + tail) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {"CONTENT-LENGTH": size}, + stream, + ) + result = bytearray() + while True: + chunk = await obj.read_chunk() + if not chunk: + break + result.extend(chunk) assert size == len(result) assert b"." * size == result assert obj.at_eof() async def test_read_does_not_read_boundary(self) -> None: - stream = Stream(b"Hello, world!\r\n--:") - obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) - result = await obj.read() - assert b"Hello, world!" == result - assert b"--:" == (await stream.read()) + data = b"Hello, world!%s--:" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + result = await obj.read() + assert b"Hello, world!" == result + assert b"--:" == (await stream.read()) async def test_multiread(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, {}, Stream(b"Hello,\r\n--:\r\n\r\nworld!\r\n--:--") - ) - result = await obj.read() - assert b"Hello," == result - result = await obj.read() - assert b"" == result - assert obj.at_eof() + data = b"Hello,%s--:%s%sworld!%s--:--" % ((newline,) * 4) + with Stream(data) as stream: + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + result = await obj.read() + assert b"Hello," == result + result = await obj.read() + assert b"" == result + assert obj.at_eof() async def test_read_multiline(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, {}, Stream(b"Hello\n,\r\nworld!\r\n--:--") - ) - result = await obj.read() - assert b"Hello\n,\r\nworld!" == result - result = await obj.read() - assert b"" == result - assert obj.at_eof() + data = b"Hello\n,\r\nworld!%s--:--" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) + result = await obj.read() + assert b"Hello\n,\r\nworld!" == result + result = await obj.read() + assert b"" == result + assert obj.at_eof() async def test_read_respects_content_length(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, {"CONTENT-LENGTH": 100500}, Stream(b"." * 100500 + b"\r\n--:--") - ) - result = await obj.read() - assert b"." * 100500 == result - assert obj.at_eof() + data = b"." * 100500 + tail = b"%s--:--" % newline + with Stream(data + tail) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {"CONTENT-LENGTH": 100500}, + stream, + ) + result = await obj.read() + assert data == result + assert obj.at_eof() async def test_read_with_content_encoding_gzip(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_ENCODING: "gzip"}, - Stream( - b"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\x0b\xc9\xccMU" - b"(\xc9W\x08J\xcdI\xacP\x04\x00$\xfb\x9eV\x0e\x00\x00\x00" - b"\r\n--:--" - ), - ) - result = await obj.read(decode=True) + with Stream( + b"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\x0b\xc9\xccMU" + b"(\xc9W\x08J\xcdI\xacP\x04\x00$\xfb\x9eV\x0e\x00\x00\x00" + b"%s--:--" % newline + ) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_ENCODING: "gzip"}, + stream, + ) + result = await obj.read(decode=True) assert b"Time to Relax!" == result async def test_read_with_content_encoding_deflate(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_ENCODING: "deflate"}, - Stream(b"\x0b\xc9\xccMU(\xc9W\x08J\xcdI\xacP\x04\x00\r\n--:--"), - ) - result = await obj.read(decode=True) + data = b"\x0b\xc9\xccMU(\xc9W\x08J\xcdI\xacP\x04\x00" + tail = b"%s--:--" % newline + with Stream(data + tail) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_ENCODING: "deflate"}, + stream, + ) + result = await obj.read(decode=True) assert b"Time to Relax!" == result async def test_read_with_content_encoding_identity(self) -> None: thing = ( b"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\x0b\xc9\xccMU" b"(\xc9W\x08J\xcdI\xacP\x04\x00$\xfb\x9eV\x0e\x00\x00\x00" - b"\r\n" ) - obj = aiohttp.BodyPartReader( - BOUNDARY, {CONTENT_ENCODING: "identity"}, Stream(thing + b"--:--") - ) - result = await obj.read(decode=True) - assert thing[:-2] == result + with Stream(thing + b"%s--:--" % newline) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_ENCODING: "identity"}, + stream, + ) + result = await obj.read(decode=True) + assert thing == result async def test_read_with_content_encoding_unknown(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_ENCODING: "snappy"}, - Stream(b"\x0e4Time to Relax!\r\n--:--"), - ) - with pytest.raises(RuntimeError): - await obj.read(decode=True) + with Stream(b"\x0e4Time to Relax!%s--:--" % newline) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_ENCODING: "snappy"}, + stream, + ) + with pytest.raises(RuntimeError): + await obj.read(decode=True) async def test_read_with_content_transfer_encoding_base64(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_TRANSFER_ENCODING: "base64"}, - Stream(b"VGltZSB0byBSZWxheCE=\r\n--:--"), - ) - result = await obj.read(decode=True) + with Stream(b"VGltZSB0byBSZWxheCE=%s--:--" % newline) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TRANSFER_ENCODING: "base64"}, + stream, + ) + result = await obj.read(decode=True) assert b"Time to Relax!" == result async def test_read_with_content_transfer_encoding_quoted_printable(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_TRANSFER_ENCODING: "quoted-printable"}, - Stream( - b"=D0=9F=D1=80=D0=B8=D0=B2=D0=B5=D1=82," - b" =D0=BC=D0=B8=D1=80!\r\n--:--" - ), - ) - result = await obj.read(decode=True) + with Stream( + b"=D0=9F=D1=80=D0=B8=D0=B2=D0=B5=D1=82," + b" =D0=BC=D0=B8=D1=80!%s--:--" % newline + ) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TRANSFER_ENCODING: "quoted-printable"}, + stream, + ) + result = await obj.read(decode=True) expected = ( b"\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82," b" \xd0\xbc\xd0\xb8\xd1\x80!" @@ -354,187 +390,249 @@ async def test_read_with_content_transfer_encoding_quoted_printable(self) -> Non assert result == expected @pytest.mark.parametrize("encoding", ("binary", "8bit", "7bit")) - async def test_read_with_content_transfer_encoding_binary(self, encoding) -> None: + async def test_read_with_content_transfer_encoding_binary( + self, encoding: str + ) -> None: data = ( b"\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82," b" \xd0\xbc\xd0\xb8\xd1\x80!" ) - obj = aiohttp.BodyPartReader( - BOUNDARY, {CONTENT_TRANSFER_ENCODING: encoding}, Stream(data + b"\r\n--:--") - ) - result = await obj.read(decode=True) + with Stream(data + b"%s--:--" % newline) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TRANSFER_ENCODING: encoding}, + stream, + ) + result = await obj.read(decode=True) assert data == result async def test_read_with_content_transfer_encoding_unknown(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_TRANSFER_ENCODING: "unknown"}, - Stream(b"\x0e4Time to Relax!\r\n--:--"), - ) - with pytest.raises(RuntimeError): - await obj.read(decode=True) + with Stream(b"\x0e4Time to Relax!%s--:--" % newline) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TRANSFER_ENCODING: "unknown"}, + stream, + ) + with pytest.raises(RuntimeError): + await obj.read(decode=True) async def test_read_text(self) -> None: - obj = aiohttp.BodyPartReader(BOUNDARY, {}, Stream(b"Hello, world!\r\n--:--")) - result = await obj.text() + with Stream(b"Hello, world!%s--:--" % newline) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {}, + stream, + ) + result = await obj.text() assert "Hello, world!" == result async def test_read_text_default_encoding(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, {}, Stream("Привет, Мир!\r\n--:--".encode()) - ) - result = await obj.text() - assert "Привет, Мир!" == result + data = "Привет, Мир!" + tail = b"%s--:--" % newline + with Stream(data.encode("utf-8") + tail) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {}, + stream, + ) + result = await obj.text() + assert data == result async def test_read_text_encoding(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, {}, Stream("Привет, Мир!\r\n--:--".encode("cp1251")) - ) - result = await obj.text(encoding="cp1251") - assert "Привет, Мир!" == result + data = "Привет, Мир!" + tail = b"%s--:--" % newline + with Stream(data.encode("cp1251") + tail) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {}, + stream, + ) + result = await obj.text(encoding="cp1251") + assert data == result async def test_read_text_guess_encoding(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_TYPE: "text/plain;charset=cp1251"}, - Stream("Привет, Мир!\r\n--:--".encode("cp1251")), - ) - result = await obj.text() - assert "Привет, Мир!" == result + data = "Привет, Мир!" + tail = b"%s--:--" % newline + with Stream(data.encode("cp1251") + tail) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TYPE: "text/plain;charset=cp1251"}, + stream, + ) + result = await obj.text() + assert data == result async def test_read_text_compressed(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_ENCODING: "deflate", CONTENT_TYPE: "text/plain"}, - Stream(b"\x0b\xc9\xccMU(\xc9W\x08J\xcdI\xacP\x04\x00\r\n--:--"), - ) - result = await obj.text() + data = b"\x0b\xc9\xccMU(\xc9W\x08J\xcdI\xacP\x04\x00" b"%s--:--" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_ENCODING: "deflate", CONTENT_TYPE: "text/plain"}, + stream, + ) + result = await obj.text() assert "Time to Relax!" == result async def test_read_text_while_closed(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, {CONTENT_TYPE: "text/plain"}, Stream(b"") - ) - obj._at_eof = True - result = await obj.text() + with Stream(b"") as stream: + obj = aiohttp.BodyPartReader(BOUNDARY, {CONTENT_TYPE: "text/plain"}, stream) + obj._at_eof = True + result = await obj.text() assert "" == result async def test_read_json(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_TYPE: "application/json"}, - Stream(b'{"test": "passed"}\r\n--:--'), - ) - result = await obj.json() + with Stream(b'{"test": "passed"}%s--:--' % newline) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TYPE: "application/json"}, + stream, + ) + result = await obj.json() assert {"test": "passed"} == result async def test_read_json_encoding(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_TYPE: "application/json"}, - Stream('{"тест": "пассед"}\r\n--:--'.encode("cp1251")), - ) - result = await obj.json(encoding="cp1251") + data = '{"тест": "пассед"}'.encode("cp1251") + tail = b"%s--:--" % newline + with Stream(data + tail) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TYPE: "application/json"}, + stream, + ) + result = await obj.json(encoding="cp1251") assert {"тест": "пассед"} == result async def test_read_json_guess_encoding(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_TYPE: "application/json; charset=cp1251"}, - Stream('{"тест": "пассед"}\r\n--:--'.encode("cp1251")), - ) - result = await obj.json() + data = '{"тест": "пассед"}'.encode("cp1251") + tail = b"%s--:--" % newline + with Stream(data + tail) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TYPE: "application/json; charset=cp1251"}, + stream, + ) + result = await obj.json() assert {"тест": "пассед"} == result async def test_read_json_compressed(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_ENCODING: "deflate", CONTENT_TYPE: "application/json"}, - Stream(b"\xabV*I-.Q\xb2RP*H,.NMQ\xaa\x05\x00\r\n--:--"), - ) - result = await obj.json() + with Stream( + b"\xabV*I-.Q\xb2RP*H,.NMQ\xaa\x05\x00" b"%s--:--" % newline + ) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_ENCODING: "deflate", CONTENT_TYPE: "application/json"}, + stream, + ) + result = await obj.json() assert {"test": "passed"} == result async def test_read_json_while_closed(self) -> None: - stream = Stream(b"") - obj = aiohttp.BodyPartReader( - BOUNDARY, {CONTENT_TYPE: "application/json"}, stream - ) - obj._at_eof = True - result = await obj.json() + with Stream(b"") as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, {CONTENT_TYPE: "application/json"}, stream + ) + obj._at_eof = True + result = await obj.json() assert result is None async def test_read_form(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_TYPE: "application/x-www-form-urlencoded"}, - Stream(b"foo=bar&foo=baz&boo=\r\n--:--"), - ) - result = await obj.form() + data = b"foo=bar&foo=baz&boo=%s--:--" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TYPE: "application/x-www-form-urlencoded"}, + stream, + ) + result = await obj.form() assert [("foo", "bar"), ("foo", "baz"), ("boo", "")] == result async def test_read_form_encoding(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_TYPE: "application/x-www-form-urlencoded"}, - Stream("foo=bar&foo=baz&boo=\r\n--:--".encode("cp1251")), - ) - result = await obj.form(encoding="cp1251") + data = b"foo=bar&foo=baz&boo=%s--:--" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TYPE: "application/x-www-form-urlencoded"}, + stream, + ) + result = await obj.form(encoding="cp1251") assert [("foo", "bar"), ("foo", "baz"), ("boo", "")] == result async def test_read_form_guess_encoding(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, - {CONTENT_TYPE: "application/x-www-form-urlencoded; charset=utf-8"}, - Stream(b"foo=bar&foo=baz&boo=\r\n--:--"), - ) - result = await obj.form() + data = b"foo=bar&foo=baz&boo=%s--:--" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TYPE: "application/x-www-form-urlencoded; charset=utf-8"}, + stream, + ) + result = await obj.form() assert [("foo", "bar"), ("foo", "baz"), ("boo", "")] == result async def test_read_form_while_closed(self) -> None: - stream = Stream(b"") - obj = aiohttp.BodyPartReader( - BOUNDARY, {CONTENT_TYPE: "application/x-www-form-urlencoded"}, stream - ) - obj._at_eof = True - result = await obj.form() + with Stream(b"") as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {CONTENT_TYPE: "application/x-www-form-urlencoded"}, + stream, + ) + obj._at_eof = True + result = await obj.form() assert not result async def test_readline(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, {}, Stream(b"Hello\n,\r\nworld!\r\n--:--") - ) - result = await obj.readline() - assert b"Hello\n" == result - result = await obj.readline() - assert b",\r\n" == result - result = await obj.readline() - assert b"world!" == result - result = await obj.readline() - assert b"" == result - assert obj.at_eof() + data = b"Hello\n,\r\nworld!%s--:--" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {}, + stream, + ) + result = await obj.readline() + assert b"Hello\n" == result + result = await obj.readline() + assert b",\r\n" == result + result = await obj.readline() + assert b"world!" == result + result = await obj.readline() + assert b"" == result + assert obj.at_eof() async def test_release(self) -> None: - stream = Stream(b"Hello,\r\n--:\r\n\r\nworld!\r\n--:--") - obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) - await obj.release() - assert obj.at_eof() - assert b"--:\r\n\r\nworld!\r\n--:--" == stream.content.read() + data = b"Hello,%s--:\r\n\r\nworld!%s--:--" % (newline, newline) + with Stream(data) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {}, + stream, + ) + remained = b"--:\r\n\r\nworld!%s--:--" % newline + await obj.release() + assert obj.at_eof() + assert remained == stream.content.read() async def test_release_respects_content_length(self) -> None: - obj = aiohttp.BodyPartReader( - BOUNDARY, {"CONTENT-LENGTH": 100500}, Stream(b"." * 100500 + b"\r\n--:--") - ) - result = await obj.release() - assert result is None - assert obj.at_eof() + with Stream(b"." * 100500 + b"%s--:--" % newline) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {"CONTENT-LENGTH": 100500}, + stream, + ) + result = await obj.release() + assert result is None + assert obj.at_eof() async def test_release_release(self) -> None: - stream = Stream(b"Hello,\r\n--:\r\n\r\nworld!\r\n--:--") - obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) - await obj.release() - await obj.release() - assert b"--:\r\n\r\nworld!\r\n--:--" == stream.content.read() + data = b"Hello,%s--:\r\n\r\nworld!%s--:--" % (newline, newline) + remained = b"--:\r\n\r\nworld!%s--:--" % newline + with Stream(data) as stream: + obj = aiohttp.BodyPartReader( + BOUNDARY, + {}, + stream, + ) + await obj.release() + await obj.release() + assert remained == stream.content.read() async def test_filename(self) -> None: part = aiohttp.BodyPartReader( @@ -543,9 +641,9 @@ async def test_filename(self) -> None: assert "foo.html" == part.filename async def test_reading_long_part(self) -> None: - size = 2 * 2 ** 16 + size = 2 * 2**16 protocol = mock.Mock(_reading_paused=False) - stream = StreamReader(protocol, 2 ** 16, loop=asyncio.get_event_loop()) + stream = StreamReader(protocol, 2**16, loop=asyncio.get_event_loop()) stream.feed_data(b"0" * size + b"\r\n--:--") stream.feed_eof() obj = aiohttp.BodyPartReader(BOUNDARY, {}, stream) @@ -555,54 +653,62 @@ async def test_reading_long_part(self) -> None: class TestMultipartReader: def test_from_response(self) -> None: - resp = Response( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream(b"--:\r\n\r\nhello\r\n--:--"), - ) - res = aiohttp.MultipartReader.from_response(resp) + with Stream(b"--:%s\r\nhello%s--:--" % (newline, newline)) as stream: + resp = Response( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + res = aiohttp.MultipartReader.from_response(resp) assert isinstance(res, MultipartResponseWrapper) assert isinstance(res.stream, aiohttp.MultipartReader) def test_bad_boundary(self) -> None: - resp = Response( - {CONTENT_TYPE: "multipart/related;boundary=" + "a" * 80}, Stream(b"") - ) - with pytest.raises(ValueError): - aiohttp.MultipartReader.from_response(resp) + with Stream(b"") as stream: + resp = Response( + {CONTENT_TYPE: "multipart/related;boundary=" + "a" * 80}, stream + ) + with pytest.raises(ValueError): + aiohttp.MultipartReader.from_response(resp) def test_dispatch(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream(b"--:\r\n\r\necho\r\n--:--"), - ) - res = reader._get_part_reader({CONTENT_TYPE: "text/plain"}) + with Stream(b"--:%s\r\necho%s--:--" % (newline, newline)) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + res = reader._get_part_reader({CONTENT_TYPE: "text/plain"}) assert isinstance(res, reader.part_reader_cls) def test_dispatch_bodypart(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream(b"--:\r\n\r\necho\r\n--:--"), - ) - res = reader._get_part_reader({CONTENT_TYPE: "text/plain"}) + with Stream(b"--:%s\r\necho%s--:--" % (newline, newline)) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + res = reader._get_part_reader({CONTENT_TYPE: "text/plain"}) assert isinstance(res, reader.part_reader_cls) def test_dispatch_multipart(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream( - b"----:--\r\n" - b"\r\n" - b"test\r\n" - b"----:--\r\n" - b"\r\n" - b"passed\r\n" - b"----:----\r\n" - b"--:--" - ), - ) - res = reader._get_part_reader( - {CONTENT_TYPE: "multipart/related;boundary=--:--"} - ) + with Stream( + newline.join( + [ + b"----:--", + b"", + b"test", + b"----:--", + b"", + b"passed", + b"----:----" b"--:--", + ] + ) + ) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + res = reader._get_part_reader( + {CONTENT_TYPE: "multipart/related;boundary=--:--"} + ) assert isinstance(res, reader.__class__) def test_dispatch_custom_multipart_reader(self) -> None: @@ -629,160 +735,212 @@ class CustomReader(aiohttp.MultipartReader): assert isinstance(res, CustomReader) async def test_emit_next(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream(b"--:\r\n\r\necho\r\n--:--"), - ) - res = await reader.next() + with Stream(b"--:%s\r\necho%s--:--" % (newline, newline)) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + res = await reader.next() assert isinstance(res, reader.part_reader_cls) async def test_invalid_boundary(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream(b"---:\r\n\r\necho\r\n---:--"), - ) - with pytest.raises(ValueError): - await reader.next() + with Stream(b"---:%s\r\necho%s---:--" % (newline, newline)) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + with pytest.raises(ValueError): + await reader.next() async def test_release(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/mixed;boundary=":"'}, - Stream( - b"--:\r\n" - b"Content-Type: multipart/related;boundary=--:--\r\n" - b"\r\n" - b"----:--\r\n" - b"\r\n" - b"test\r\n" - b"----:--\r\n" - b"\r\n" - b"passed\r\n" - b"----:----\r\n" - b"\r\n" - b"--:--" - ), - ) - await reader.release() - assert reader.at_eof() + with Stream( + newline.join( + [ + b"--:", + b"Content-Type: multipart/related;boundary=--:--", + b"", + b"----:--", + b"", + b"test", + b"----:--", + b"", + b"passed", + b"----:----", + b"", + b"--:--", + ] + ) + ) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/mixed;boundary=":"'}, + stream, + ) + await reader.release() + assert reader.at_eof() async def test_release_release(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream(b"--:\r\n\r\necho\r\n--:--"), - ) - await reader.release() - assert reader.at_eof() - await reader.release() - assert reader.at_eof() + with Stream(b"--:%s\r\necho%s--:--" % (newline, newline)) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + await reader.release() + assert reader.at_eof() + await reader.release() + assert reader.at_eof() async def test_release_next(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream(b"--:\r\n\r\necho\r\n--:--"), - ) - await reader.release() - assert reader.at_eof() - res = await reader.next() - assert res is None + with Stream(b"--:%s\r\necho%s--:--" % (newline, newline)) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + await reader.release() + assert reader.at_eof() + res = await reader.next() + assert res is None async def test_second_next_releases_previous_object(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream( - b"--:\r\n" b"\r\n" b"test\r\n" b"--:\r\n" b"\r\n" b"passed\r\n" b"--:--" - ), - ) - first = await reader.next() - assert isinstance(first, aiohttp.BodyPartReader) - second = await reader.next() - assert first.at_eof() - assert not second.at_eof() + with Stream( + newline.join( + [ + b"--:", + b"", + b"test", + b"--:", + b"", + b"passed", + b"--:--", + ] + ) + ) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + first = await reader.next() + assert isinstance(first, aiohttp.BodyPartReader) + second = await reader.next() + assert first.at_eof() + assert not second.at_eof() async def test_release_without_read_the_last_object(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream( - b"--:\r\n" b"\r\n" b"test\r\n" b"--:\r\n" b"\r\n" b"passed\r\n" b"--:--" - ), - ) - first = await reader.next() - second = await reader.next() - third = await reader.next() - assert first.at_eof() - assert second.at_eof() - assert second.at_eof() - assert third is None + with Stream( + newline.join( + [ + b"--:", + b"", + b"test", + b"--:", + b"", + b"passed", + b"--:--", + ] + ) + ) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + first = await reader.next() + second = await reader.next() + third = await reader.next() + + assert first.at_eof() + assert second.at_eof() + assert second.at_eof() + assert third is None async def test_read_chunk_by_length_doesnt_breaks_reader(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream( - b"--:\r\n" - b"Content-Length: 4\r\n\r\n" - b"test" - b"\r\n--:\r\n" - b"Content-Length: 6\r\n\r\n" - b"passed" - b"\r\n--:--" - ), - ) - body_parts = [] - while True: - read_part = b"" - part = await reader.next() - if part is None: - break - while not part.at_eof(): - read_part += await part.read_chunk(3) - body_parts.append(read_part) + with Stream( + newline.join( + [ + b"--:", + b"Content-Length: 4", + b"", + b"test", + b"--:", + b"Content-Length: 6", + b"", + b"passed", + b"--:--", + ] + ) + ) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + body_parts = [] + while True: + read_part = b"" + part = await reader.next() + if part is None: + break + while not part.at_eof(): + read_part += await part.read_chunk(3) + body_parts.append(read_part) + assert body_parts == [b"test", b"passed"] async def test_read_chunk_from_stream_doesnt_breaks_reader(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream( - b"--:\r\n" - b"\r\n" - b"chunk" - b"\r\n--:\r\n" - b"\r\n" - b"two_chunks" - b"\r\n--:--" - ), - ) - body_parts = [] - while True: - read_part = b"" - part = await reader.next() - if part is None: - break - while not part.at_eof(): - chunk = await part.read_chunk(5) - assert chunk - read_part += chunk - body_parts.append(read_part) + with Stream( + newline.join( + [ + b"--:", + b"", + b"chunk", + b"--:", + b"", + b"two_chunks", + b"--:--", + ] + ) + ) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + body_parts = [] + while True: + read_part = b"" + part = await reader.next() + if part is None: + break + while not part.at_eof(): + chunk = await part.read_chunk(5) + assert chunk + read_part += chunk + body_parts.append(read_part) + assert body_parts == [b"chunk", b"two_chunks"] async def test_reading_skips_prelude(self) -> None: - reader = aiohttp.MultipartReader( - {CONTENT_TYPE: 'multipart/related;boundary=":"'}, - Stream( - b"Multi-part data is not supported.\r\n" - b"\r\n" - b"--:\r\n" - b"\r\n" - b"test\r\n" - b"--:\r\n" - b"\r\n" - b"passed\r\n" - b"--:--" - ), - ) - first = await reader.next() - assert isinstance(first, aiohttp.BodyPartReader) - second = await reader.next() - assert first.at_eof() - assert not second.at_eof() + with Stream( + newline.join( + [ + b"Multi-part data is not supported.", + b"", + b"--:", + b"", + b"test", + b"--:", + b"", + b"passed", + b"--:--", + ] + ) + ) as stream: + reader = aiohttp.MultipartReader( + {CONTENT_TYPE: 'multipart/related;boundary=":"'}, + stream, + ) + first = await reader.next() + assert isinstance(first, aiohttp.BodyPartReader) + second = await reader.next() + + assert first.at_eof() + assert not second.at_eof() async def test_writer(writer) -> None: @@ -791,9 +949,9 @@ async def test_writer(writer) -> None: async def test_writer_serialize_io_chunk(buf, stream, writer) -> None: - flo = io.BytesIO(b"foobarbaz") - writer.append(flo) - await writer.write(stream) + with io.BytesIO(b"foobarbaz") as file_handle: + writer.append(file_handle) + await writer.write(stream) assert ( buf == b"--:\r\nContent-Type: application/octet-stream" b"\r\nContent-Length: 9\r\n\r\nfoobarbaz\r\n--:--\r\n" @@ -1105,7 +1263,7 @@ async def test_write_preserves_content_disposition(self, buf, stream) -> None: b"Content-Type: test/passed\r\n" b"Content-Length: 3\r\n" b"Content-Disposition:" - b" form-data; filename=\"bug\"; filename*=utf-8''bug" + b' form-data; filename="bug"' ) assert message == b"foo\r\n--:--\r\n" @@ -1186,7 +1344,7 @@ async def test_reset_content_disposition_header(self, buf, stream): b"--:\r\n" b"Content-Type: text/plain\r\n" b"Content-Disposition:" - b" attachments; filename=\"bug.py\"; filename*=utf-8''bug.py\r\n" + b' attachments; filename="bug.py"\r\n' b"Content-Length: %s" b"" % (str(content_length).encode(),) ) @@ -1194,68 +1352,68 @@ async def test_reset_content_disposition_header(self, buf, stream): async def test_async_for_reader() -> None: data = [{"test": "passed"}, 42, b"plain text", b"aiohttp\n", b"no epilogue"] - reader = aiohttp.MultipartReader( - headers={CONTENT_TYPE: 'multipart/mixed; boundary=":"'}, - content=Stream( - b"\r\n".join( - [ - b"--:", - b"Content-Type: application/json", - b"", - json.dumps(data[0]).encode(), - b"--:", - b"Content-Type: application/json", - b"", - json.dumps(data[1]).encode(), - b"--:", - b'Content-Type: multipart/related; boundary="::"', - b"", - b"--::", - b"Content-Type: text/plain", - b"", - data[2], - b"--::", - b'Content-Disposition: attachment; filename="aiohttp"', - b"Content-Type: text/plain", - b"Content-Length: 28", - b"Content-Encoding: gzip", - b"", - b"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03K\xcc\xcc\xcf())" - b"\xe0\x02\x00\xd6\x90\xe2O\x08\x00\x00\x00", - b"--::", - b'Content-Type: multipart/related; boundary=":::"', - b"", - b"--:::", - b"Content-Type: text/plain", - b"", - data[4], - b"--:::--", - b"--::--", - b"", - b"--:--", - b"", - ] - ) - ), - ) - idata = iter(data) - - async def check(reader): - async for part in reader: - if isinstance(part, aiohttp.BodyPartReader): - if part.headers[CONTENT_TYPE] == "application/json": - assert next(idata) == (await part.json()) + with Stream( + b"\r\n".join( + [ + b"--:", + b"Content-Type: application/json", + b"", + json.dumps(data[0]).encode(), + b"--:", + b"Content-Type: application/json", + b"", + json.dumps(data[1]).encode(), + b"--:", + b'Content-Type: multipart/related; boundary="::"', + b"", + b"--::", + b"Content-Type: text/plain", + b"", + data[2], + b"--::", + b'Content-Disposition: attachment; filename="aiohttp"', + b"Content-Type: text/plain", + b"Content-Length: 28", + b"Content-Encoding: gzip", + b"", + b"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03K\xcc\xcc\xcf())" + b"\xe0\x02\x00\xd6\x90\xe2O\x08\x00\x00\x00", + b"--::", + b'Content-Type: multipart/related; boundary=":::"', + b"", + b"--:::", + b"Content-Type: text/plain", + b"", + data[4], + b"--:::--", + b"--::--", + b"", + b"--:--", + b"", + ] + ) + ) as stream: + reader = aiohttp.MultipartReader( + headers={CONTENT_TYPE: 'multipart/mixed; boundary=":"'}, + content=stream, + ) + idata = iter(data) + + async def check(reader): + async for part in reader: + if isinstance(part, aiohttp.BodyPartReader): + if part.headers[CONTENT_TYPE] == "application/json": + assert next(idata) == (await part.json()) + else: + assert next(idata) == await part.read(decode=True) else: - assert next(idata) == await part.read(decode=True) - else: - await check(part) + await check(part) - await check(reader) + await check(reader) async def test_async_for_bodypart() -> None: - part = aiohttp.BodyPartReader( - boundary=b"--:", headers={}, content=Stream(b"foobarbaz\r\n--:--") - ) - async for data in part: - assert data == b"foobarbaz" + with Stream(b"foobarbaz\r\n--:--") as stream: + part = aiohttp.BodyPartReader(boundary=b"--:", headers={}, content=stream) + async for data in part: + assert data == b"foobarbaz" diff --git a/tests/test_payload.py b/tests/test_payload.py index c075dba..c8681cb 100644 --- a/tests/test_payload.py +++ b/tests/test_payload.py @@ -4,7 +4,6 @@ from unittest import mock import pytest -from async_generator import async_generator from aiohttp import payload, streams @@ -36,7 +35,9 @@ class TestProvider: pass with pytest.raises(ValueError): - payload.register_payload(Payload, TestProvider, order=object()) + payload.register_payload( + Payload, TestProvider, order=object() # type: ignore[arg-type] + ) def test_payload_ctor() -> None: @@ -65,7 +66,7 @@ def test_bytes_payload_explicit_content_type() -> None: def test_bytes_payload_bad_type() -> None: with pytest.raises(TypeError): - payload.BytesPayload(object()) + payload.BytesPayload(object()) # type: ignore[arg-type] def test_bytes_payload_memoryview_correct_size() -> None: @@ -97,18 +98,18 @@ def test_string_io_payload() -> None: def test_async_iterable_payload_default_content_type() -> None: - @async_generator async def gen(): - pass + return + yield p = payload.AsyncIterablePayload(gen()) assert p.content_type == "application/octet-stream" def test_async_iterable_payload_explicit_content_type() -> None: - @async_generator async def gen(): - pass + return + yield p = payload.AsyncIterablePayload(gen(), content_type="application/custom") assert p.content_type == "application/custom" @@ -122,9 +123,9 @@ def test_async_iterable_payload_not_async_iterable() -> None: async def test_stream_reader_long_lines() -> None: loop = asyncio.get_event_loop() - DATA = b"0" * 1024 ** 3 + DATA = b"0" * 1024**3 - stream = streams.StreamReader(mock.Mock(), 2 ** 16, loop=loop) + stream = streams.StreamReader(mock.Mock(), 2**16, loop=loop) stream.feed_data(DATA) stream.feed_eof() body = payload.get_payload(stream) diff --git a/tests/test_proxy.py b/tests/test_proxy.py index 3b1bf0c..25bcb64 100644 --- a/tests/test_proxy.py +++ b/tests/test_proxy.py @@ -5,11 +5,12 @@ import unittest from unittest import mock +import pytest from yarl import URL import aiohttp from aiohttp.client_reqrep import ClientRequest, ClientResponse -from aiohttp.helpers import TimerNoop +from aiohttp.helpers import PY_37, TimerNoop from aiohttp.test_utils import make_mocked_coro @@ -72,6 +73,8 @@ async def make_conn(): ssl=None, ) + conn.close() + @mock.patch("aiohttp.connector.ClientRequest") def test_proxy_headers(self, ClientRequestMock) -> None: req = ClientRequest( @@ -112,6 +115,8 @@ async def make_conn(): ssl=None, ) + conn.close() + def test_proxy_auth(self) -> None: with self.assertRaises(ValueError) as ctx: ClientRequest( @@ -221,6 +226,7 @@ async def make_conn(): tr, proto = mock.Mock(), mock.Mock() self.loop.create_connection = make_mocked_coro((tr, proto)) + self.loop.start_tls = make_mocked_coro(mock.Mock()) req = ClientRequest( "GET", @@ -235,8 +241,6 @@ async def make_conn(): self.assertEqual(req.url.path, "/") self.assertEqual(proxy_req.method, "CONNECT") self.assertEqual(proxy_req.url, URL("https://www.python.org")) - tr.close.assert_called_once_with() - tr.get_extra_info.assert_called_with("socket", default=None) self.loop.run_until_complete(proxy_req.close()) proxy_resp.close() @@ -280,22 +284,10 @@ async def make_conn(): ] ) - seq = 0 - - async def create_connection(*args, **kwargs): - nonlocal seq - seq += 1 - - # connection to http://proxy.example.com - if seq == 1: - return mock.Mock(), mock.Mock() - # connection to https://www.python.org - elif seq == 2: - raise ssl.CertificateError - else: - assert False - - self.loop.create_connection = create_connection + # Called on connection to http://proxy.example.com + self.loop.create_connection = make_mocked_coro((mock.Mock(), mock.Mock())) + # Called on connection to https://www.python.org + self.loop.start_tls = make_mocked_coro(raise_exception=ssl.CertificateError) req = ClientRequest( "GET", @@ -346,22 +338,12 @@ async def make_conn(): ] ) - seq = 0 - - async def create_connection(*args, **kwargs): - nonlocal seq - seq += 1 - - # connection to http://proxy.example.com - if seq == 1: - return mock.Mock(), mock.Mock() - # connection to https://www.python.org - elif seq == 2: - raise ssl.SSLError - else: - assert False - - self.loop.create_connection = create_connection + # Called on connection to http://proxy.example.com + self.loop.create_connection = make_mocked_coro( + (mock.Mock(), mock.Mock()), + ) + # Called on connection to https://www.python.org + self.loop.start_tls = make_mocked_coro(raise_exception=ssl.SSLError) req = ClientRequest( "GET", @@ -374,6 +356,11 @@ async def create_connection(*args, **kwargs): connector._create_connection(req, None, aiohttp.ClientTimeout()) ) + @pytest.mark.skipif( + PY_37, + reason="The tested code path is only reachable below Python 3.7 because those " + "versions don't yet have `asyncio.loop.start_tls()` implemeneted", + ) @mock.patch("aiohttp.connector.ClientRequest") def test_https_connect_runtime_error(self, ClientRequestMock) -> None: proxy_req = ClientRequest( @@ -643,6 +630,7 @@ async def make_conn(): tr, proto = mock.Mock(), mock.Mock() self.loop.create_connection = make_mocked_coro((tr, proto)) + self.loop.start_tls = make_mocked_coro(mock.Mock()) req = ClientRequest( "GET", @@ -654,18 +642,17 @@ async def make_conn(): connector._create_connection(req, None, aiohttp.ClientTimeout()) ) - self.loop.create_connection.assert_called_with( + self.loop.start_tls.assert_called_with( + mock.ANY, mock.ANY, - ssl=connector._make_ssl_context(True), - sock=mock.ANY, + connector._make_ssl_context(True), server_hostname="www.python.org", + ssl_handshake_timeout=mock.ANY, ) self.assertEqual(req.url.path, "/") self.assertEqual(proxy_req.method, "CONNECT") self.assertEqual(proxy_req.url, URL("https://www.python.org")) - tr.close.assert_called_once_with() - tr.get_extra_info.assert_called_with("socket", default=None) self.loop.run_until_complete(proxy_req.close()) proxy_resp.close() @@ -714,6 +701,7 @@ async def make_conn(): tr, proto = mock.Mock(), mock.Mock() self.loop.create_connection = make_mocked_coro((tr, proto)) + self.loop.start_tls = make_mocked_coro(mock.Mock()) self.assertIn("AUTHORIZATION", proxy_req.headers) self.assertNotIn("PROXY-AUTHORIZATION", proxy_req.headers) diff --git a/tests/test_proxy_functional.py b/tests/test_proxy_functional.py index 68763cd..e865ccd 100644 --- a/tests/test_proxy_functional.py +++ b/tests/test_proxy_functional.py @@ -1,13 +1,285 @@ import asyncio +import functools import os import pathlib +import platform +from re import match as match_regex from unittest import mock +from uuid import uuid4 +import proxy import pytest from yarl import URL import aiohttp from aiohttp import web +from aiohttp.client_exceptions import ClientConnectionError, ClientProxyConnectionError +from aiohttp.helpers import IS_MACOS, IS_WINDOWS, PY_37, PY_310 + +pytestmark = [ + pytest.mark.filterwarnings( + "ignore:unclosed None: + """Ensure HTTP(S) sites are accessible through a secure proxy.""" + conn = aiohttp.TCPConnector() + sess = aiohttp.ClientSession(connector=conn) + + response = await sess.get( + web_server_endpoint_url, + proxy=secure_proxy_url, + ssl=client_ssl_ctx, # used for both proxy and endpoint connections + ) + + assert response.status == 200 + assert await response.text() == web_server_endpoint_payload + + response.close() + await sess.close() + await conn.close() + + # https://docs.aiohttp.org/en/v3.8.0/client_advanced.html#graceful-shutdown + await asyncio.sleep(0.1) + + +@secure_proxy_xfail_under_py310_linux(raises=AssertionError) +@pytest.mark.xfail( + not PY_37, + raises=RuntimeError, + reason="`asyncio.loop.start_tls()` is only implemeneted in Python 3.7", +) +@pytest.mark.parametrize("web_server_endpoint_type", ("https",)) +@pytest.mark.usefixtures("loop") +async def test_https_proxy_unsupported_tls_in_tls( + client_ssl_ctx, + secure_proxy_url, + web_server_endpoint_type, +) -> None: + """Ensure connecting to TLS endpoints w/ HTTPS proxy needs patching. + + This also checks that a helpful warning on how to patch the env + is displayed. + """ + url = URL.build(scheme=web_server_endpoint_type, host="python.org") + + escaped_host_port = ":".join((url.host.replace(".", r"\."), str(url.port))) + escaped_proxy_url = str(secure_proxy_url).replace(".", r"\.") + + conn = aiohttp.TCPConnector() + sess = aiohttp.ClientSession(connector=conn) + + expected_warning_text = ( + r"^" + r"An HTTPS request is being sent through an HTTPS proxy\. " + "This support for TLS in TLS is known to be disabled " + r"in the stdlib asyncio\. This is why you'll probably see " + r"an error in the log below\.\n\n" + "It is possible to enable it via monkeypatching under " + r"Python 3\.7 or higher\. For more details, see:\n" + r"\* https://bugs\.python\.org/issue37179\n" + r"\* https://github\.com/python/cpython/pull/28073\n\n" + r"You can temporarily patch this as follows:\n" + r"\* https://docs\.aiohttp\.org/en/stable/client_advanced\.html#proxy-support\n" + r"\* https://github\.com/aio-libs/aiohttp/discussions/6044\n$" + ) + type_err = ( + r"transport is not supported by start_tls\(\)" + ) + expected_exception_reason = ( + r"^" + "Cannot initialize a TLS-in-TLS connection to host " + f"{escaped_host_port!s} through an underlying connection " + f"to an HTTPS proxy {escaped_proxy_url!s} ssl:{client_ssl_ctx!s} " + f"[{type_err!s}]" + r"$" + ) + + with pytest.warns(RuntimeWarning, match=expected_warning_text,), pytest.raises( + ClientConnectionError, + match=expected_exception_reason, + ) as conn_err: + await sess.get(url, proxy=secure_proxy_url, ssl=client_ssl_ctx) + + assert type(conn_err.value.__cause__) == TypeError + assert match_regex(f"^{type_err!s}$", str(conn_err.value.__cause__)) + + await sess.close() + await conn.close() + + +@pytest.mark.skipif( + PY_37, + reason="This test checks an error we emit below Python 3.7", +) +@pytest.mark.usefixtures("loop") +async def test_https_proxy_missing_start_tls() -> None: + """Ensure error is raised for TLS-in-TLS w/ no ``start_tls()``.""" + conn = aiohttp.TCPConnector() + sess = aiohttp.ClientSession(connector=conn) + + expected_exception_reason = ( + r"^" + r"An HTTPS request is being sent through an HTTPS proxy\. " + "This needs support for TLS in TLS but it is not implemented " + r"in your runtime for the stdlib asyncio\.\n\n" + r"Please upgrade to Python 3\.7 or higher\. For more details, " + r"please see:\n" + r"\* https://bugs\.python\.org/issue37179\n" + r"\* https://github\.com/python/cpython/pull/28073\n" + r"\* https://docs\.aiohttp\.org/en/stable/client_advanced\.html#proxy-support\n" + r"\* https://github\.com/aio-libs/aiohttp/discussions/6044\n" + r"$" + ) + + with pytest.raises( + RuntimeError, + match=expected_exception_reason, + ) as runtime_err: + await sess.get("https://python.org", proxy="https://proxy") + + await sess.close() + await conn.close() + + assert type(runtime_err.value.__cause__) is AttributeError + + selector_event_loop_type = "Windows" if IS_WINDOWS else "Unix" + attr_err = ( + f"^'_{selector_event_loop_type}SelectorEventLoop' object " + "has no attribute 'start_tls'$" + ) + assert match_regex(attr_err, str(runtime_err.value.__cause__)) @pytest.fixture @@ -81,29 +353,28 @@ async def test_proxy_http_absolute_path(proxy_test_server, get_request) -> None: assert len(proxy.requests_list) == 1 assert proxy.request.method == "GET" assert proxy.request.host == "aiohttp.io" - assert proxy.request.path_qs == "http://aiohttp.io/path?query=yes" + assert proxy.request.path_qs == "/path?query=yes" async def test_proxy_http_raw_path(proxy_test_server, get_request) -> None: url = "http://aiohttp.io:2561/space sheep?q=can:fly" - raw_url = "http://aiohttp.io:2561/space%20sheep?q=can:fly" + raw_url = "/space%20sheep?q=can:fly" proxy = await proxy_test_server() await get_request(url=url, proxy=proxy.url) - assert proxy.request.host == "aiohttp.io:2561" + assert proxy.request.host == "aiohttp.io" assert proxy.request.path_qs == raw_url async def test_proxy_http_idna_support(proxy_test_server, get_request) -> None: url = "http://éé.com/" - raw_url = "http://xn--9caa.com/" proxy = await proxy_test_server() await get_request(url=url, proxy=proxy.url) - assert proxy.request.host == "xn--9caa.com" - assert proxy.request.path_qs == raw_url + assert proxy.request.host == "éé.com" + assert proxy.request.path_qs == "/" async def test_proxy_http_connection_error(get_request) -> None: @@ -289,7 +560,7 @@ async def xtest_proxy_https_connect_with_port(proxy_test_server, get_request): async def xtest_proxy_https_send_body(proxy_test_server, loop): sess = aiohttp.ClientSession(loop=loop) proxy = await proxy_test_server() - proxy.return_value = {"status": 200, "body": b"1" * (2 ** 20)} + proxy.return_value = {"status": 200, "body": b"1" * (2**20)} url = "https://www.google.com.ua/search?q=aiohttp proxy" resp = await sess.get(url, proxy=proxy.url) @@ -297,7 +568,7 @@ async def xtest_proxy_https_send_body(proxy_test_server, loop): await resp.release() await sess.close() - assert body == b"1" * (2 ** 20) + assert body == b"1" * (2**20) @pytest.mark.xfail @@ -499,7 +770,7 @@ async def test_proxy_from_env_http(proxy_test_server, get_request, mocker) -> No assert len(proxy.requests_list) == 1 assert proxy.request.method == "GET" assert proxy.request.host == "aiohttp.io" - assert proxy.request.path_qs == "http://aiohttp.io/path" + assert proxy.request.path_qs == "/path" assert "Proxy-Authorization" not in proxy.request.headers @@ -521,7 +792,7 @@ async def test_proxy_from_env_http_with_auth(proxy_test_server, get_request, moc assert len(proxy.requests_list) == 1 assert proxy.request.method == "GET" assert proxy.request.host == "aiohttp.io" - assert proxy.request.path_qs == "http://aiohttp.io/path" + assert proxy.request.path_qs == "/path" assert proxy.request.headers["Proxy-Authorization"] == auth.encode() @@ -547,7 +818,7 @@ async def test_proxy_from_env_http_with_auth_from_netrc( assert len(proxy.requests_list) == 1 assert proxy.request.method == "GET" assert proxy.request.host == "aiohttp.io" - assert proxy.request.path_qs == "http://aiohttp.io/path" + assert proxy.request.path_qs == "/path" assert proxy.request.headers["Proxy-Authorization"] == auth.encode() @@ -573,7 +844,7 @@ async def test_proxy_from_env_http_without_auth_from_netrc( assert len(proxy.requests_list) == 1 assert proxy.request.method == "GET" assert proxy.request.host == "aiohttp.io" - assert proxy.request.path_qs == "http://aiohttp.io/path" + assert proxy.request.path_qs == "/path" assert "Proxy-Authorization" not in proxy.request.headers @@ -597,7 +868,7 @@ async def test_proxy_from_env_http_without_auth_from_wrong_netrc( assert len(proxy.requests_list) == 1 assert proxy.request.method == "GET" assert proxy.request.host == "aiohttp.io" - assert proxy.request.path_qs == "http://aiohttp.io/path" + assert proxy.request.path_qs == "/path" assert "Proxy-Authorization" not in proxy.request.headers @@ -613,7 +884,7 @@ async def xtest_proxy_from_env_https(proxy_test_server, get_request, mocker): assert len(proxy.requests_list) == 2 assert proxy.request.method == "GET" assert proxy.request.host == "aiohttp.io" - assert proxy.request.path_qs == "https://aiohttp.io/path" + assert proxy.request.path_qs == "/path" assert "Proxy-Authorization" not in proxy.request.headers diff --git a/tests/test_resolver.py b/tests/test_resolver.py index 199707e..6140e38 100644 --- a/tests/test_resolver.py +++ b/tests/test_resolver.py @@ -1,6 +1,7 @@ import asyncio import ipaddress import socket +from typing import Any, List from unittest.mock import Mock, patch import pytest @@ -39,7 +40,7 @@ async def fake(*args, **kwargs): if not hosts: raise socket.gaierror - return list([(None, None, None, None, [h, 0]) for h in hosts]) + return [(socket.AF_INET, None, socket.SOCK_STREAM, None, [h, 0]) for h in hosts] return fake @@ -153,11 +154,61 @@ async def test_threaded_negative_lookup() -> None: await resolver.resolve("doesnotexist.bla") +async def test_threaded_negative_lookup_with_unknown_result() -> None: + loop = Mock() + + # If compile CPython with `--disable-ipv6` option, + # we will get an (int, bytes) tuple, instead of a Exception. + async def unknown_addrinfo(*args: Any, **kwargs: Any) -> List[Any]: + return [ + ( + socket.AF_INET6, + socket.SOCK_STREAM, + 6, + "", + (10, b"\x01\xbb\x00\x00\x00\x00*\x04NB\x00\x1a\x00\x00"), + ) + ] + + loop.getaddrinfo = unknown_addrinfo + resolver = ThreadedResolver() + resolver._loop = loop + with patch("socket.has_ipv6", False): + res = await resolver.resolve("www.python.org") + assert len(res) == 0 + + async def test_close_for_threaded_resolver(loop) -> None: resolver = ThreadedResolver(loop=loop) await resolver.close() +async def test_threaded_negative_lookup_with_unknown_result() -> None: + loop = Mock() + + # If compile CPython with `--disable-ipv6` option, + # we will get an (int, bytes) tuple, instead of a Exception. + async def unknown_addrinfo(*args: Any, **kwargs: Any) -> List[Any]: + return [ + ( + socket.AF_INET6, + socket.SOCK_STREAM, + 6, + "", + (10, b"\x01\xbb\x00\x00\x00\x00*\x04NB\x00\x1a\x00\x00"), + ) + ] + + loop.getaddrinfo = unknown_addrinfo + resolver = ThreadedResolver() + resolver._loop = loop + with patch("socket.has_ipv6", False): + res = await resolver.resolve("www.python.org") + assert len(res) == 0 + + await resolver.close() + + @pytest.mark.skipif(aiodns is None, reason="aiodns required") async def test_close_for_async_resolver(loop) -> None: resolver = AsyncResolver(loop=loop) diff --git a/tests/test_route_def.py b/tests/test_route_def.py index 49c6c4c..cf9cb12 100644 --- a/tests/test_route_def.py +++ b/tests/test_route_def.py @@ -232,6 +232,22 @@ async def handler(request): assert str(route.url_for()) == "/path" +def test_options_deco(router) -> None: + routes = web.RouteTableDef() + + @routes.options("/path") + async def handler(request): + pass + + router.add_routes(routes) + + assert len(router.routes()) == 1 + + route = list(router.routes())[0] + assert route.method == "OPTIONS" + assert str(route.url_for()) == "/path" + + def test_route_deco(router) -> None: routes = web.RouteTableDef() diff --git a/tests/test_run_app.py b/tests/test_run_app.py index d2ba226..b59634e 100644 --- a/tests/test_run_app.py +++ b/tests/test_run_app.py @@ -12,34 +12,31 @@ from uuid import uuid4 import pytest +from conftest import IS_UNIX, needs_unix from aiohttp import web from aiohttp.helpers import PY_37 from aiohttp.test_utils import make_mocked_coro +from aiohttp.web_runner import BaseRunner # Test for features of OS' socket support -_has_unix_domain_socks = hasattr(socket, "AF_UNIX") -if _has_unix_domain_socks: - _abstract_path_sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - try: - _abstract_path_sock.bind(b"\x00" + uuid4().hex.encode("ascii")) # type: ignore - except FileNotFoundError: - _abstract_path_failed = True - else: - _abstract_path_failed = False - finally: - _abstract_path_sock.close() - del _abstract_path_sock +if IS_UNIX: + with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as _abstract_path_sock: + try: + _abstract_path_sock.bind(b"\x00" + uuid4().hex.encode("ascii")) + except FileNotFoundError: + _abstract_path_failed = True + else: + _abstract_path_failed = False + finally: + del _abstract_path_sock else: _abstract_path_failed = True skip_if_no_abstract_paths = pytest.mark.skipif( _abstract_path_failed, reason="Linux-style abstract paths are not supported." ) -skip_if_no_unix_socks = pytest.mark.skipif( - not _has_unix_domain_socks, reason="Unix domain sockets are not supported" -) -del _has_unix_domain_socks, _abstract_path_failed +del IS_UNIX, _abstract_path_failed HAS_IPV6 = socket.has_ipv6 if HAS_IPV6: @@ -47,7 +44,8 @@ # support, but the target system still may not have it. # So let's ensure that we really have IPv6 support. try: - socket.socket(socket.AF_INET6, socket.SOCK_STREAM) + with socket.socket(socket.AF_INET6, socket.SOCK_STREAM): + pass except OSError: HAS_IPV6 = False @@ -93,7 +91,7 @@ def test_run_app_http(patched_loop) -> None: cleanup_handler = make_mocked_coro() app.on_cleanup.append(cleanup_handler) - web.run_app(app, print=stopper(patched_loop)) + web.run_app(app, print=stopper(patched_loop), loop=patched_loop) patched_loop.create_server.assert_called_with( mock.ANY, None, 8080, ssl=None, backlog=128, reuse_address=None, reuse_port=None @@ -104,7 +102,7 @@ def test_run_app_http(patched_loop) -> None: def test_run_app_close_loop(patched_loop) -> None: app = web.Application() - web.run_app(app, print=stopper(patched_loop)) + web.run_app(app, print=stopper(patched_loop), loop=patched_loop) patched_loop.create_server.assert_called_with( mock.ANY, None, 8080, ssl=None, backlog=128, reuse_address=None, reuse_port=None @@ -424,7 +422,7 @@ def test_run_app_mixed_bindings( run_app_kwargs, expected_server_calls, expected_unix_server_calls, patched_loop ): app = web.Application() - web.run_app(app, print=stopper(patched_loop), **run_app_kwargs) + web.run_app(app, print=stopper(patched_loop), **run_app_kwargs, loop=patched_loop) assert patched_loop.create_unix_server.mock_calls == expected_unix_server_calls assert patched_loop.create_server.mock_calls == expected_server_calls @@ -434,7 +432,9 @@ def test_run_app_https(patched_loop) -> None: app = web.Application() ssl_context = ssl.create_default_context() - web.run_app(app, ssl_context=ssl_context, print=stopper(patched_loop)) + web.run_app( + app, ssl_context=ssl_context, print=stopper(patched_loop), loop=patched_loop + ) patched_loop.create_server.assert_called_with( mock.ANY, @@ -452,7 +452,9 @@ def test_run_app_nondefault_host_port(patched_loop, aiohttp_unused_port) -> None host = "127.0.0.1" app = web.Application() - web.run_app(app, host=host, port=port, print=stopper(patched_loop)) + web.run_app( + app, host=host, port=port, print=stopper(patched_loop), loop=patched_loop + ) patched_loop.create_server.assert_called_with( mock.ANY, host, port, ssl=None, backlog=128, reuse_address=None, reuse_port=None @@ -463,7 +465,7 @@ def test_run_app_multiple_hosts(patched_loop) -> None: hosts = ("127.0.0.1", "127.0.0.2") app = web.Application() - web.run_app(app, host=hosts, print=stopper(patched_loop)) + web.run_app(app, host=hosts, print=stopper(patched_loop), loop=patched_loop) calls = map( lambda h: mock.call( @@ -482,7 +484,7 @@ def test_run_app_multiple_hosts(patched_loop) -> None: def test_run_app_custom_backlog(patched_loop) -> None: app = web.Application() - web.run_app(app, backlog=10, print=stopper(patched_loop)) + web.run_app(app, backlog=10, print=stopper(patched_loop), loop=patched_loop) patched_loop.create_server.assert_called_with( mock.ANY, None, 8080, ssl=None, backlog=10, reuse_address=None, reuse_port=None @@ -491,49 +493,60 @@ def test_run_app_custom_backlog(patched_loop) -> None: def test_run_app_custom_backlog_unix(patched_loop) -> None: app = web.Application() - web.run_app(app, path="/tmp/tmpsock.sock", backlog=10, print=stopper(patched_loop)) + web.run_app( + app, + path="/tmp/tmpsock.sock", + backlog=10, + print=stopper(patched_loop), + loop=patched_loop, + ) patched_loop.create_unix_server.assert_called_with( mock.ANY, "/tmp/tmpsock.sock", ssl=None, backlog=10 ) -@skip_if_no_unix_socks -def test_run_app_http_unix_socket(patched_loop, shorttmpdir) -> None: +def test_run_app_http_unix_socket(patched_loop, unix_sockname) -> None: app = web.Application() - sock_path = str(shorttmpdir / "socket.sock") printer = mock.Mock(wraps=stopper(patched_loop)) - web.run_app(app, path=sock_path, print=printer) + web.run_app(app, path=unix_sockname, print=printer, loop=patched_loop) patched_loop.create_unix_server.assert_called_with( - mock.ANY, sock_path, ssl=None, backlog=128 + mock.ANY, unix_sockname, ssl=None, backlog=128 ) - assert f"http://unix:{sock_path}:" in printer.call_args[0][0] + assert f"http://unix:{unix_sockname}:" in printer.call_args[0][0] -@skip_if_no_unix_socks -def test_run_app_https_unix_socket(patched_loop, shorttmpdir) -> None: +def test_run_app_https_unix_socket(patched_loop, unix_sockname) -> None: app = web.Application() - sock_path = str(shorttmpdir / "socket.sock") ssl_context = ssl.create_default_context() printer = mock.Mock(wraps=stopper(patched_loop)) - web.run_app(app, path=sock_path, ssl_context=ssl_context, print=printer) + web.run_app( + app, + path=unix_sockname, + ssl_context=ssl_context, + print=printer, + loop=patched_loop, + ) patched_loop.create_unix_server.assert_called_with( - mock.ANY, sock_path, ssl=ssl_context, backlog=128 + mock.ANY, unix_sockname, ssl=ssl_context, backlog=128 ) - assert f"https://unix:{sock_path}:" in printer.call_args[0][0] + assert f"https://unix:{unix_sockname}:" in printer.call_args[0][0] -@skip_if_no_unix_socks +@needs_unix @skip_if_no_abstract_paths def test_run_app_abstract_linux_socket(patched_loop) -> None: sock_path = b"\x00" + uuid4().hex.encode("ascii") app = web.Application() web.run_app( - app, path=sock_path.decode("ascii", "ignore"), print=stopper(patched_loop) + app, + path=sock_path.decode("ascii", "ignore"), + print=stopper(patched_loop), + loop=patched_loop, ) patched_loop.create_unix_server.assert_called_with( @@ -550,7 +563,7 @@ def test_run_app_preexisting_inet_socket(patched_loop, mocker) -> None: _, port = sock.getsockname() printer = mock.Mock(wraps=stopper(patched_loop)) - web.run_app(app, sock=sock, print=printer) + web.run_app(app, sock=sock, print=printer, loop=patched_loop) patched_loop.create_server.assert_called_with( mock.ANY, sock=sock, backlog=128, ssl=None @@ -568,7 +581,7 @@ def test_run_app_preexisting_inet6_socket(patched_loop) -> None: port = sock.getsockname()[1] printer = mock.Mock(wraps=stopper(patched_loop)) - web.run_app(app, sock=sock, print=printer) + web.run_app(app, sock=sock, print=printer, loop=patched_loop) patched_loop.create_server.assert_called_with( mock.ANY, sock=sock, backlog=128, ssl=None @@ -576,7 +589,7 @@ def test_run_app_preexisting_inet6_socket(patched_loop) -> None: assert f"http://[::]:{port}" in printer.call_args[0][0] -@skip_if_no_unix_socks +@needs_unix def test_run_app_preexisting_unix_socket(patched_loop, mocker) -> None: app = web.Application() @@ -587,7 +600,7 @@ def test_run_app_preexisting_unix_socket(patched_loop, mocker) -> None: os.unlink(sock_path) printer = mock.Mock(wraps=stopper(patched_loop)) - web.run_app(app, sock=sock, print=printer) + web.run_app(app, sock=sock, print=printer, loop=patched_loop) patched_loop.create_server.assert_called_with( mock.ANY, sock=sock, backlog=128, ssl=None @@ -607,7 +620,7 @@ def test_run_app_multiple_preexisting_sockets(patched_loop) -> None: _, port2 = sock2.getsockname() printer = mock.Mock(wraps=stopper(patched_loop)) - web.run_app(app, sock=(sock1, sock2), print=printer) + web.run_app(app, sock=(sock1, sock2), print=printer, loop=patched_loop) patched_loop.create_server.assert_has_calls( [ @@ -630,27 +643,29 @@ def test_run_app_multiple_preexisting_sockets(patched_loop) -> None: def test_sigint() -> None: skip_if_on_windows() - proc = subprocess.Popen( - [sys.executable, "-u", "-c", _script_test_signal], stdout=subprocess.PIPE - ) - for line in proc.stdout: - if line.startswith(b"======== Running on"): - break - proc.send_signal(signal.SIGINT) - assert proc.wait() == 0 + with subprocess.Popen( + [sys.executable, "-u", "-c", _script_test_signal], + stdout=subprocess.PIPE, + ) as proc: + for line in proc.stdout: + if line.startswith(b"======== Running on"): + break + proc.send_signal(signal.SIGINT) + assert proc.wait() == 0 def test_sigterm() -> None: skip_if_on_windows() - proc = subprocess.Popen( - [sys.executable, "-u", "-c", _script_test_signal], stdout=subprocess.PIPE - ) - for line in proc.stdout: - if line.startswith(b"======== Running on"): - break - proc.terminate() - assert proc.wait() == 0 + with subprocess.Popen( + [sys.executable, "-u", "-c", _script_test_signal], + stdout=subprocess.PIPE, + ) as proc: + for line in proc.stdout: + if line.startswith(b"======== Running on"): + break + proc.terminate() + assert proc.wait() == 0 def test_startup_cleanup_signals_even_on_failure(patched_loop) -> None: @@ -663,7 +678,7 @@ def test_startup_cleanup_signals_even_on_failure(patched_loop) -> None: app.on_cleanup.append(cleanup_handler) with pytest.raises(RuntimeError): - web.run_app(app, print=stopper(patched_loop)) + web.run_app(app, print=stopper(patched_loop), loop=patched_loop) startup_handler.assert_called_once_with(app) cleanup_handler.assert_called_once_with(app) @@ -681,7 +696,7 @@ async def make_app(): app.on_cleanup.append(cleanup_handler) return app - web.run_app(make_app(), print=stopper(patched_loop)) + web.run_app(make_app(), print=stopper(patched_loop), loop=patched_loop) patched_loop.create_server.assert_called_with( mock.ANY, None, 8080, ssl=None, backlog=128, reuse_address=None, reuse_port=None @@ -702,7 +717,12 @@ def test_run_app_default_logger(monkeypatch, patched_loop): mock_logger.configure_mock(**attrs) app = web.Application() - web.run_app(app, print=stopper(patched_loop), access_log=mock_logger) + web.run_app( + app, + print=stopper(patched_loop), + access_log=mock_logger, + loop=patched_loop, + ) mock_logger.setLevel.assert_any_call(logging.DEBUG) mock_logger.hasHandlers.assert_called_with() assert isinstance(mock_logger.addHandler.call_args[0][0], logging.StreamHandler) @@ -720,7 +740,12 @@ def test_run_app_default_logger_setup_requires_debug(patched_loop): mock_logger.configure_mock(**attrs) app = web.Application() - web.run_app(app, print=stopper(patched_loop), access_log=mock_logger) + web.run_app( + app, + print=stopper(patched_loop), + access_log=mock_logger, + loop=patched_loop, + ) mock_logger.setLevel.assert_not_called() mock_logger.hasHandlers.assert_not_called() mock_logger.addHandler.assert_not_called() @@ -738,7 +763,12 @@ def test_run_app_default_logger_setup_requires_default_logger(patched_loop): mock_logger.configure_mock(**attrs) app = web.Application() - web.run_app(app, print=stopper(patched_loop), access_log=mock_logger) + web.run_app( + app, + print=stopper(patched_loop), + access_log=mock_logger, + loop=patched_loop, + ) mock_logger.setLevel.assert_not_called() mock_logger.hasHandlers.assert_not_called() mock_logger.addHandler.assert_not_called() @@ -756,7 +786,12 @@ def test_run_app_default_logger_setup_only_if_unconfigured(patched_loop): mock_logger.configure_mock(**attrs) app = web.Application() - web.run_app(app, print=stopper(patched_loop), access_log=mock_logger) + web.run_app( + app, + print=stopper(patched_loop), + access_log=mock_logger, + loop=patched_loop, + ) mock_logger.setLevel.assert_not_called() mock_logger.hasHandlers.assert_called_with() mock_logger.addHandler.assert_not_called() @@ -773,7 +808,7 @@ async def on_startup(app): app.on_startup.append(on_startup) - web.run_app(app, print=stopper(patched_loop)) + web.run_app(app, print=stopper(patched_loop), loop=patched_loop) assert task.cancelled() @@ -791,7 +826,7 @@ async def on_startup(app): app.on_startup.append(on_startup) - web.run_app(app, print=stopper(patched_loop)) + web.run_app(app, print=stopper(patched_loop), loop=patched_loop) assert task.done() @@ -817,7 +852,7 @@ async def on_startup(app): exc_handler = mock.Mock() patched_loop.set_exception_handler(exc_handler) - web.run_app(app, print=stopper(patched_loop)) + web.run_app(app, print=stopper(patched_loop), loop=patched_loop) assert task.done() msg = { @@ -828,6 +863,24 @@ async def on_startup(app): exc_handler.assert_called_with(patched_loop, msg) +def test_run_app_keepalive_timeout(patched_loop, mocker, monkeypatch): + new_timeout = 1234 + base_runner_init_orig = BaseRunner.__init__ + + def base_runner_init_spy(self, *args, **kwargs): + assert kwargs["keepalive_timeout"] == new_timeout + base_runner_init_orig(self, *args, **kwargs) + + app = web.Application() + monkeypatch.setattr(BaseRunner, "__init__", base_runner_init_spy) + web.run_app( + app, + keepalive_timeout=new_timeout, + print=stopper(patched_loop), + loop=patched_loop, + ) + + @pytest.mark.skipif(not PY_37, reason="contextvars support is required") def test_run_app_context_vars(patched_loop): from contextvars import ContextVar @@ -857,5 +910,5 @@ async def init(): count += 1 return app - web.run_app(init(), print=stopper(patched_loop)) + web.run_app(init(), print=stopper(patched_loop), loop=patched_loop) assert count == 3 diff --git a/tests/test_signals.py b/tests/test_signals.py deleted file mode 100644 index 971cab5..0000000 --- a/tests/test_signals.py +++ /dev/null @@ -1,167 +0,0 @@ -from unittest import mock - -import pytest -from multidict import CIMultiDict -from re_assert import Matches - -from aiohttp.signals import Signal -from aiohttp.test_utils import make_mocked_coro, make_mocked_request -from aiohttp.web import Application, Response - - -@pytest.fixture -def app(): - return Application() - - -def make_request(app, method, path, headers=CIMultiDict()): - return make_mocked_request(method, path, headers, app=app) - - -async def test_add_signal_handler_not_a_callable(app) -> None: - callback = True - app.on_response_prepare.append(callback) - app.on_response_prepare.freeze() - with pytest.raises(TypeError): - await app.on_response_prepare(None, None) - - -async def test_function_signal_dispatch(app) -> None: - signal = Signal(app) - kwargs = {"foo": 1, "bar": 2} - - callback_mock = mock.Mock() - - async def callback(**kwargs): - callback_mock(**kwargs) - - signal.append(callback) - signal.freeze() - - await signal.send(**kwargs) - callback_mock.assert_called_once_with(**kwargs) - - -async def test_function_signal_dispatch2(app) -> None: - signal = Signal(app) - args = {"a", "b"} - kwargs = {"foo": 1, "bar": 2} - - callback_mock = mock.Mock() - - async def callback(*args, **kwargs): - callback_mock(*args, **kwargs) - - signal.append(callback) - signal.freeze() - - await signal.send(*args, **kwargs) - callback_mock.assert_called_once_with(*args, **kwargs) - - -async def test_response_prepare(app) -> None: - callback = mock.Mock() - - async def cb(*args, **kwargs): - callback(*args, **kwargs) - - app.on_response_prepare.append(cb) - app.on_response_prepare.freeze() - - request = make_request(app, "GET", "/") - response = Response(body=b"") - await response.prepare(request) - - callback.assert_called_once_with(request, response) - - -async def test_non_coroutine(app) -> None: - signal = Signal(app) - kwargs = {"foo": 1, "bar": 2} - - callback = mock.Mock() - - signal.append(callback) - signal.freeze() - - with pytest.raises(TypeError): - await signal.send(**kwargs) - - -def test_setitem(app) -> None: - signal = Signal(app) - m1 = mock.Mock() - signal.append(m1) - assert signal[0] is m1 - m2 = mock.Mock() - signal[0] = m2 - assert signal[0] is m2 - - -def test_delitem(app) -> None: - signal = Signal(app) - m1 = mock.Mock() - signal.append(m1) - assert len(signal) == 1 - del signal[0] - assert len(signal) == 0 - - -def test_cannot_append_to_frozen_signal(app) -> None: - signal = Signal(app) - m1 = mock.Mock() - m2 = mock.Mock() - signal.append(m1) - signal.freeze() - with pytest.raises(RuntimeError): - signal.append(m2) - - assert list(signal) == [m1] - - -def test_cannot_setitem_in_frozen_signal(app) -> None: - signal = Signal(app) - m1 = mock.Mock() - m2 = mock.Mock() - signal.append(m1) - signal.freeze() - with pytest.raises(RuntimeError): - signal[0] = m2 - - assert list(signal) == [m1] - - -def test_cannot_delitem_in_frozen_signal(app) -> None: - signal = Signal(app) - m1 = mock.Mock() - signal.append(m1) - signal.freeze() - with pytest.raises(RuntimeError): - del signal[0] - - assert list(signal) == [m1] - - -async def test_cannot_send_non_frozen_signal(app) -> None: - signal = Signal(app) - - callback = make_mocked_coro() - - signal.append(callback) - - with pytest.raises(RuntimeError): - await signal.send() - - assert not callback.called - - -async def test_repr(app) -> None: - signal = Signal(app) - - callback = make_mocked_coro() - - signal.append(callback) - - assert Matches( - r", frozen=False, " r"\[\]>" - ) == repr(signal) diff --git a/tests/test_streams.py b/tests/test_streams.py index d83941b..4de6fba 100644 --- a/tests/test_streams.py +++ b/tests/test_streams.py @@ -12,6 +12,7 @@ from re_assert import Matches from aiohttp import streams +from aiohttp.helpers import PY_311 DATA = b"line1\nline2\nline3\n" @@ -24,7 +25,7 @@ def chunkify(seq, n): async def create_stream(): loop = asyncio.get_event_loop() protocol = mock.Mock(_reading_paused=False) - stream = streams.StreamReader(protocol, 2 ** 16, loop=loop) + stream = streams.StreamReader(protocol, 2**16, loop=loop) stream.feed_data(DATA) stream.feed_eof() return stream @@ -72,7 +73,7 @@ class TestStreamReader: DATA = b"line1\nline2\nline3\n" def _make_one(self, *args, **kwargs): - kwargs.setdefault("limit", 2 ** 16) + kwargs.setdefault("limit", 2**16) return streams.StreamReader(mock.Mock(_reading_paused=False), *args, **kwargs) async def test_create_waiter(self) -> None: @@ -82,12 +83,26 @@ async def test_create_waiter(self) -> None: with pytest.raises(RuntimeError): await stream._wait("test") + @pytest.mark.xfail( + PY_311, + reason="No idea why ClientRequest() is constructed out of loop but " + "it calls `asyncio.get_event_loop()`", + raises=DeprecationWarning, + strict=False, + ) def test_ctor_global_loop(self) -> None: loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) - stream = streams.StreamReader(mock.Mock(_reading_paused=False), 2 ** 16) + try: + stream = streams.StreamReader(mock.Mock(_reading_paused=False), 2**16) - assert stream._loop is loop + assert stream._loop is loop + finally: # Otherwise an unstopped/unclosed loop affects the next test + # Cleanup, leaks into `test_at_eof` otherwise: + loop.stop() + loop.run_forever() + loop.close() + gc.collect() async def test_at_eof(self) -> None: stream = self._make_one() @@ -394,6 +409,117 @@ async def test_readline_exception(self) -> None: with pytest.raises(ValueError): await stream.readline() + async def test_readuntil(self) -> None: + loop = asyncio.get_event_loop() + # Read one chunk. 'readuntil' will need to wait for the data + # to come from 'cb' + stream = self._make_one() + stream.feed_data(b"chunk1 ") + read_task = loop.create_task(stream.readuntil(b"*")) + + def cb(): + stream.feed_data(b"chunk2 ") + stream.feed_data(b"chunk3 ") + stream.feed_data(b"* chunk4") + + loop.call_soon(cb) + + line = await read_task + assert b"chunk1 chunk2 chunk3 *" == line + + stream.feed_eof() + data = await stream.read() + assert b" chunk4" == data + + async def test_readuntil_limit_with_existing_data(self) -> None: + # Read one chunk. The data is in StreamReader's buffer + # before the event loop is run. + + stream = self._make_one(limit=2) + stream.feed_data(b"li") + stream.feed_data(b"ne1&line2&") + + with pytest.raises(ValueError): + await stream.readuntil(b"&") + # The buffer should contain the remaining data after exception + stream.feed_eof() + data = await stream.read() + assert b"line2&" == data + + async def test_readuntil_limit(self) -> None: + loop = asyncio.get_event_loop() + # Read one chunk. StreamReaders are fed with data after + # their 'readuntil' methods are called. + stream = self._make_one(limit=4) + + def cb(): + stream.feed_data(b"chunk1") + stream.feed_data(b"chunk2$") + stream.feed_data(b"chunk3#") + stream.feed_eof() + + loop.call_soon(cb) + + with pytest.raises(ValueError): + await stream.readuntil(b"$") + data = await stream.read() + assert b"chunk3#" == data + + async def test_readuntil_nolimit_nowait(self) -> None: + # All needed data for the first 'readuntil' call will be + # in the buffer. + stream = self._make_one() + data = b"line1!line2!line3!" + stream.feed_data(data[:6]) + stream.feed_data(data[6:]) + + line = await stream.readuntil(b"!") + assert b"line1!" == line + + stream.feed_eof() + data = await stream.read() + assert b"line2!line3!" == data + + async def test_readuntil_eof(self) -> None: + stream = self._make_one() + stream.feed_data(b"some data") + stream.feed_eof() + + line = await stream.readuntil(b"@") + assert b"some data" == line + + async def test_readuntil_empty_eof(self) -> None: + stream = self._make_one() + stream.feed_eof() + + line = await stream.readuntil(b"@") + assert b"" == line + + async def test_readuntil_read_byte_count(self) -> None: + stream = self._make_one() + data = b"line1!line2!line3!" + stream.feed_data(data) + + await stream.readuntil(b"!") + + data = await stream.read(7) + assert b"line2!l" == data + + stream.feed_eof() + data = await stream.read() + assert b"ine3!" == data + + async def test_readuntil_exception(self) -> None: + stream = self._make_one() + stream.feed_data(b"line#") + + data = await stream.readuntil(b"#") + assert b"line#" == data + + stream.set_exception(ValueError()) + with pytest.raises(ValueError): + await stream.readuntil(b"#") + async def test_readexactly_zero_or_less(self) -> None: # Read exact number of bytes (zero or less). stream = self._make_one() @@ -1123,7 +1249,7 @@ async def set_err(): async def test_feed_data_waiters(protocol) -> None: loop = asyncio.get_event_loop() - reader = streams.StreamReader(protocol, 2 ** 16, loop=loop) + reader = streams.StreamReader(protocol, 2**16, loop=loop) waiter = reader._waiter = loop.create_future() eof_waiter = reader._eof_waiter = loop.create_future() @@ -1140,7 +1266,7 @@ async def test_feed_data_waiters(protocol) -> None: async def test_feed_data_completed_waiters(protocol) -> None: loop = asyncio.get_event_loop() - reader = streams.StreamReader(protocol, 2 ** 16, loop=loop) + reader = streams.StreamReader(protocol, 2**16, loop=loop) waiter = reader._waiter = loop.create_future() waiter.set_result(1) @@ -1151,7 +1277,7 @@ async def test_feed_data_completed_waiters(protocol) -> None: async def test_feed_eof_waiters(protocol) -> None: loop = asyncio.get_event_loop() - reader = streams.StreamReader(protocol, 2 ** 16, loop=loop) + reader = streams.StreamReader(protocol, 2**16, loop=loop) waiter = reader._waiter = loop.create_future() eof_waiter = reader._eof_waiter = loop.create_future() @@ -1166,7 +1292,7 @@ async def test_feed_eof_waiters(protocol) -> None: async def test_feed_eof_cancelled(protocol) -> None: loop = asyncio.get_event_loop() - reader = streams.StreamReader(protocol, 2 ** 16, loop=loop) + reader = streams.StreamReader(protocol, 2**16, loop=loop) waiter = reader._waiter = loop.create_future() eof_waiter = reader._eof_waiter = loop.create_future() @@ -1183,7 +1309,7 @@ async def test_feed_eof_cancelled(protocol) -> None: async def test_on_eof(protocol) -> None: loop = asyncio.get_event_loop() - reader = streams.StreamReader(protocol, 2 ** 16, loop=loop) + reader = streams.StreamReader(protocol, 2**16, loop=loop) on_eof = mock.Mock() reader.on_eof(on_eof) @@ -1204,7 +1330,7 @@ async def test_on_eof_empty_reader() -> None: async def test_on_eof_exc_in_callback(protocol) -> None: loop = asyncio.get_event_loop() - reader = streams.StreamReader(protocol, 2 ** 16, loop=loop) + reader = streams.StreamReader(protocol, 2**16, loop=loop) on_eof = mock.Mock() on_eof.side_effect = ValueError @@ -1228,7 +1354,7 @@ async def test_on_eof_exc_in_callback_empty_stream_reader() -> None: async def test_on_eof_eof_is_set(protocol) -> None: loop = asyncio.get_event_loop() - reader = streams.StreamReader(protocol, 2 ** 16, loop=loop) + reader = streams.StreamReader(protocol, 2**16, loop=loop) reader.feed_eof() on_eof = mock.Mock() @@ -1239,7 +1365,7 @@ async def test_on_eof_eof_is_set(protocol) -> None: async def test_on_eof_eof_is_set_exception(protocol) -> None: loop = asyncio.get_event_loop() - reader = streams.StreamReader(protocol, 2 ** 16, loop=loop) + reader = streams.StreamReader(protocol, 2**16, loop=loop) reader.feed_eof() on_eof = mock.Mock() @@ -1252,7 +1378,7 @@ async def test_on_eof_eof_is_set_exception(protocol) -> None: async def test_set_exception(protocol) -> None: loop = asyncio.get_event_loop() - reader = streams.StreamReader(protocol, 2 ** 16, loop=loop) + reader = streams.StreamReader(protocol, 2**16, loop=loop) waiter = reader._waiter = loop.create_future() eof_waiter = reader._eof_waiter = loop.create_future() @@ -1267,7 +1393,7 @@ async def test_set_exception(protocol) -> None: async def test_set_exception_cancelled(protocol) -> None: loop = asyncio.get_event_loop() - reader = streams.StreamReader(protocol, 2 ** 16, loop=loop) + reader = streams.StreamReader(protocol, 2**16, loop=loop) waiter = reader._waiter = loop.create_future() eof_waiter = reader._eof_waiter = loop.create_future() @@ -1285,7 +1411,7 @@ async def test_set_exception_cancelled(protocol) -> None: async def test_set_exception_eof_callbacks(protocol) -> None: loop = asyncio.get_event_loop() - reader = streams.StreamReader(protocol, 2 ** 16, loop=loop) + reader = streams.StreamReader(protocol, 2**16, loop=loop) on_eof = mock.Mock() reader.on_eof(on_eof) @@ -1368,7 +1494,7 @@ async def test_stream_reader_iter_chunks_no_chunked_encoding() -> None: async def test_stream_reader_iter_chunks_chunked_encoding(protocol) -> None: loop = asyncio.get_event_loop() - stream = streams.StreamReader(protocol, 2 ** 16, loop=loop) + stream = streams.StreamReader(protocol, 2**16, loop=loop) for line in DATA.splitlines(keepends=True): stream.begin_http_chunk_receiving() stream.feed_data(line) @@ -1379,3 +1505,7 @@ async def test_stream_reader_iter_chunks_chunked_encoding(protocol) -> None: async for data, end_of_chunk in stream.iter_chunks(): assert (data, end_of_chunk) == (next(it), True) pytest.raises(StopIteration, next, it) + + +def test_isinstance_check() -> None: + assert isinstance(streams.EMPTY_PAYLOAD, streams.StreamReader) diff --git a/tests/test_tcp_helpers.py b/tests/test_tcp_helpers.py index 18fedb9..5b2438a 100644 --- a/tests/test_tcp_helpers.py +++ b/tests/test_tcp_helpers.py @@ -11,7 +11,8 @@ # support, but the target system still may not have it. # So let's ensure that we really have IPv6 support. try: - socket.socket(socket.AF_INET6, socket.SOCK_STREAM) + with socket.socket(socket.AF_INET6, socket.SOCK_STREAM): + pass except OSError: has_ipv6 = False diff --git a/tests/test_test_utils.py b/tests/test_test_utils.py index cbaed33..1ac742f 100644 --- a/tests/test_test_utils.py +++ b/tests/test_test_utils.py @@ -1,4 +1,6 @@ import gzip +from socket import socket +from typing import Any from unittest import mock import pytest @@ -12,6 +14,7 @@ RawTestServer as _RawTestServer, TestClient as _TestClient, TestServer as _TestServer, + get_port_socket, loop_context, make_mocked_request, unittest_run_loop, @@ -102,14 +105,13 @@ class TestAioHTTPTestCase(AioHTTPTestCase): def get_app(self): return _create_example_app() - @unittest_run_loop async def test_example_with_loop(self) -> None: request = await self.client.request("GET", "/") assert request.status == 200 text = await request.text() assert _hello_world_str == text - def test_example(self) -> None: + def test_inner_example(self) -> None: async def test_get_route() -> None: resp = await self.client.request("GET", "/") assert resp.status == 200 @@ -118,6 +120,32 @@ async def test_get_route() -> None: self.loop.run_until_complete(test_get_route()) + async def test_example_without_explicit_loop(self) -> None: + request = await self.client.request("GET", "/") + assert request.status == 200 + text = await request.text() + assert _hello_world_str == text + + async def test_inner_example_without_explicit_loop(self) -> None: + async def test_get_route() -> None: + resp = await self.client.request("GET", "/") + assert resp.status == 200 + text = await resp.text() + assert _hello_world_str == text + + await test_get_route() + + +def test_unittest_run_loop() -> None: + with pytest.warns( + DeprecationWarning, + match=r"Decorator `@unittest_run_loop` is no longer needed in aiohttp 3\.8\+", + ): + + @unittest_run_loop + def foo(): + pass + def test_get_route(loop, test_client) -> None: async def test_get_route() -> None: @@ -194,6 +222,12 @@ def test_make_mocked_request_app_can_store_values() -> None: assert req.app["a_field"] == "a_value" +def test_make_mocked_request_app_access_non_existing() -> None: + req = make_mocked_request("GET", "/") + with pytest.raises(AttributeError): + req.app.foo + + def test_make_mocked_request_match_info() -> None: req = make_mocked_request("GET", "/", match_info={"a": "1", "b": "2"}) assert req.match_info == {"a": "1", "b": "2"} @@ -314,3 +348,21 @@ async def test_custom_port(loop, app, aiohttp_unused_port) -> None: assert _hello_world_str == text await client.close() + + +@pytest.mark.parametrize("test_server_cls", [_TestServer, _RawTestServer]) +async def test_base_test_server_socket_factory( + test_server_cls: type, app: Any, loop: Any +) -> None: + factory_called = False + + def factory(*args, **kwargs) -> socket: + nonlocal factory_called + factory_called = True + return get_port_socket(*args, **kwargs) + + server = test_server_cls(app, loop=loop, socket_factory=factory) + async with server: + pass + + assert factory_called diff --git a/tests/test_tracing.py b/tests/test_tracing.py index 5523fe9..809d757 100644 --- a/tests/test_tracing.py +++ b/tests/test_tracing.py @@ -61,6 +61,7 @@ def test_freeze(self) -> None: assert trace_config.on_dns_resolvehost_end.frozen assert trace_config.on_dns_cache_hit.frozen assert trace_config.on_dns_cache_miss.frozen + assert trace_config.on_request_headers_sent.frozen class TestTrace: diff --git a/tests/test_web_app.py b/tests/test_web_app.py index f48e54b..13da52d 100644 --- a/tests/test_web_app.py +++ b/tests/test_web_app.py @@ -1,13 +1,14 @@ import asyncio +import gc from unittest import mock import pytest -from async_generator import async_generator, yield_ from aiohttp import log, web from aiohttp.abc import AbstractAccessLogger, AbstractRouter -from aiohttp.helpers import DEBUG, PY_36 +from aiohttp.helpers import DEBUG, PY_36, PY_311 from aiohttp.test_utils import make_mocked_coro +from aiohttp.typedefs import Handler async def test_app_ctor() -> None: @@ -38,14 +39,29 @@ async def test_set_loop() -> None: assert app.loop is loop +@pytest.mark.xfail( + PY_311, + reason="No idea why _set_loop() is constructed out of loop " + "but it calls `asyncio.get_event_loop()`", + raises=DeprecationWarning, + strict=False, +) def test_set_loop_default_loop() -> None: loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) app = web.Application() - app._set_loop(None) - with pytest.warns(DeprecationWarning): - assert app.loop is loop - asyncio.set_event_loop(None) + try: + app._set_loop(None) + with pytest.warns(DeprecationWarning): + assert app.loop is loop + asyncio.set_event_loop(None) + + finally: + # Cleanup, leaks into `test_app_make_handler_debug_exc[True]` otherwise: + loop.stop() + loop.run_forever() + loop.close() + gc.collect() def test_set_loop_with_different_loops() -> None: @@ -58,6 +74,12 @@ def test_set_loop_with_different_loops() -> None: with pytest.raises(RuntimeError): app._set_loop(loop=object()) + # Cleanup, leaks into `test_app_make_handler_debug_exc[True]` otherwise: + loop.stop() + loop.run_forever() + loop.close() + gc.collect() + @pytest.mark.parametrize("debug", [True, False]) async def test_app_make_handler_debug_exc(mocker, debug) -> None: @@ -261,7 +283,7 @@ def test_app_run_middlewares() -> None: assert root._run_middlewares is False @web.middleware - async def middleware(request, handler): + async def middleware(request, handler: Handler): return await handler(request) root = web.Application(middlewares=[middleware]) @@ -306,10 +328,9 @@ async def test_cleanup_ctx() -> None: out = [] def f(num): - @async_generator async def inner(app): out.append("pre_" + str(num)) - await yield_(None) + yield None out.append("post_" + str(num)) return inner @@ -330,12 +351,11 @@ async def test_cleanup_ctx_exception_on_startup() -> None: exc = Exception("fail") def f(num, fail=False): - @async_generator async def inner(app): out.append("pre_" + str(num)) if fail: raise exc - await yield_(None) + yield None out.append("post_" + str(num)) return inner @@ -359,10 +379,9 @@ async def test_cleanup_ctx_exception_on_cleanup() -> None: exc = Exception("fail") def f(num, fail=False): - @async_generator async def inner(app): out.append("pre_" + str(num)) - await yield_(None) + yield None out.append("post_" + str(num)) if fail: raise exc @@ -381,15 +400,40 @@ async def inner(app): assert out == ["pre_1", "pre_2", "pre_3", "post_3", "post_2", "post_1"] +async def test_cleanup_ctx_cleanup_after_exception() -> None: + app = web.Application() + ctx_state = None + + async def success_ctx(app): + nonlocal ctx_state + ctx_state = "START" + yield + ctx_state = "CLEAN" + + async def fail_ctx(app): + raise Exception() + yield + + app.cleanup_ctx.append(success_ctx) + app.cleanup_ctx.append(fail_ctx) + runner = web.AppRunner(app) + try: + with pytest.raises(Exception): + await runner.setup() + finally: + await runner.cleanup() + + assert ctx_state == "CLEAN" + + async def test_cleanup_ctx_exception_on_cleanup_multiple() -> None: app = web.Application() out = [] def f(num, fail=False): - @async_generator async def inner(app): out.append("pre_" + str(num)) - await yield_(None) + yield None out.append("post_" + str(num)) if fail: raise Exception("fail_" + str(num)) @@ -416,12 +460,11 @@ async def test_cleanup_ctx_multiple_yields() -> None: out = [] def f(num): - @async_generator async def inner(app): out.append("pre_" + str(num)) - await yield_(None) + yield None out.append("post_" + str(num)) - await yield_(None) + yield None return inner @@ -505,12 +548,11 @@ async def on_startup(app): ctx_pre_called = False ctx_post_called = False - @async_generator async def cleanup_ctx(app): nonlocal ctx_pre_called, ctx_post_called ctx_pre_called = True app["cleanup"] = True - await yield_(None) + yield None ctx_post_called = True subapp.cleanup_ctx.append(cleanup_ctx) diff --git a/tests/test_web_exceptions.py b/tests/test_web_exceptions.py index 43e5029..80932c8 100644 --- a/tests/test_web_exceptions.py +++ b/tests/test_web_exceptions.py @@ -3,9 +3,10 @@ from traceback import format_exception from unittest import mock +import aiosignal import pytest -from aiohttp import helpers, signals, web +from aiohttp import helpers, web from aiohttp.test_utils import make_mocked_request @@ -41,7 +42,7 @@ async def write_headers(status_line, headers): app = mock.Mock() app._debug = False - app.on_response_prepare = signals.Signal(app) + app.on_response_prepare = aiosignal.Signal(app) app.on_response_prepare.freeze() req = make_mocked_request(method, path, app=app, writer=writer) return req @@ -203,3 +204,40 @@ def test_HTTPException_retains_cause() -> None: tb = "".join(format_exception(ei.type, ei.value, ei.tb)) assert "CustomException" in tb assert "direct cause" in tb + + +async def test_HTTPException_retains_cookie(aiohttp_client): + @web.middleware + async def middleware(request, handler): + try: + return await handler(request) + except web.HTTPException as exc: + exc.set_cookie("foo", request["foo"]) + raise exc + + async def save(request): + request["foo"] = "works" + raise web.HTTPFound("/show") + + async def show(request): + return web.Response(text=request.cookies["foo"]) + + app = web.Application(middlewares=[middleware]) + app.router.add_route("GET", "/save", save) + app.router.add_route("GET", "/show", show) + client = await aiohttp_client(app) + + resp = await client.get("/save") + assert resp.status == 200 + assert str(resp.url)[-5:] == "/show" + text = await resp.text() + assert text == "works" + + +def test_unicode_text_body_unauthorized() -> None: + """Test that HTTPUnauthorized can be initialized with a string.""" + with pytest.warns( + DeprecationWarning, match="body argument is deprecated for http web exceptions" + ): + resp = web.HTTPUnauthorized(body="text") + assert resp.status == 401 diff --git a/tests/test_web_functional.py b/tests/test_web_functional.py index a28fcd4..5fdfb23 100644 --- a/tests/test_web_functional.py +++ b/tests/test_web_functional.py @@ -7,14 +7,14 @@ from unittest import mock import pytest -from async_generator import async_generator, yield_ from multidict import CIMultiDictProxy, MultiDict from yarl import URL import aiohttp from aiohttp import FormData, HttpVersion10, HttpVersion11, TraceConfig, multipart, web -from aiohttp.hdrs import CONTENT_LENGTH, TRANSFER_ENCODING +from aiohttp.hdrs import CONTENT_LENGTH, CONTENT_TYPE, TRANSFER_ENCODING from aiohttp.test_utils import make_mocked_coro +from aiohttp.typedefs import Handler try: import ssl @@ -53,6 +53,8 @@ async def handler(request): txt = await resp.text() assert "OK" == txt + await resp.release() + async def test_simple_get_with_text(aiohttp_client) -> None: async def handler(request): @@ -69,6 +71,8 @@ async def handler(request): txt = await resp.text() assert "OK" == txt + await resp.release() + async def test_handler_returns_not_response(aiohttp_server, aiohttp_client) -> None: asyncio.get_event_loop().set_debug(True) @@ -140,6 +144,8 @@ async def handler(request): text = await resp.text() assert "OK" == text + await resp.release() + async def test_post_form(aiohttp_client) -> None: async def handler(request): @@ -156,6 +162,8 @@ async def handler(request): txt = await resp.text() assert "OK" == txt + await resp.release() + async def test_post_text(aiohttp_client) -> None: async def handler(request): @@ -174,6 +182,8 @@ async def handler(request): txt = await resp.text() assert "русский" == txt + await resp.release() + async def test_post_json(aiohttp_client) -> None: @@ -199,6 +209,8 @@ async def handler(request): data = await resp.json() assert dct == data + await resp.release() + async def test_multipart(aiohttp_client) -> None: with multipart.MultipartWriter() as writer: @@ -297,6 +309,8 @@ async def handler(request): assert "301: Moved Permanently" == txt assert "/path" == resp.headers["location"] + await resp.release() + async def test_post_single_file(aiohttp_client) -> None: @@ -324,9 +338,12 @@ async def handler(request): fname = here / "data.unknown_mime_type" - resp = await client.post("/", data=[fname.open("rb")]) + with fname.open("rb") as fd: + resp = await client.post("/", data=[fd]) assert 200 == resp.status + await resp.release() + async def test_files_upload_with_same_key(aiohttp_client) -> None: async def handler(request): @@ -340,6 +357,7 @@ async def handler(request): if _file.filename == "test2.jpeg": assert _file.file.read() == b"binary data 2" file_names.add(_file.filename) + _file.file.close() assert len(files) == 2 assert file_names == {"test1.jpeg", "test2.jpeg"} resp = web.Response(body=b"OK") @@ -359,6 +377,8 @@ async def handler(request): resp = await client.post("/", data=data) assert 200 == resp.status + await resp.release() + async def test_post_files(aiohttp_client) -> None: @@ -389,6 +409,8 @@ async def handler(request): resp = await client.post("/", data=[f1, f2]) assert 200 == resp.status + await resp.release() + async def test_release_post_data(aiohttp_client) -> None: async def handler(request): @@ -404,6 +426,8 @@ async def handler(request): resp = await client.post("/", data="post text") assert 200 == resp.status + await resp.release() + async def test_POST_DATA_with_content_transfer_encoding(aiohttp_client) -> None: async def handler(request): @@ -421,6 +445,8 @@ async def handler(request): resp = await client.post("/", data=form) assert 200 == resp.status + await resp.release() + async def test_post_form_with_duplicate_keys(aiohttp_client) -> None: async def handler(request): @@ -436,10 +462,12 @@ async def handler(request): resp = await client.post("/", data=MultiDict([("a", 1), ("a", 2)])) assert 200 == resp.status + await resp.release() + def test_repr_for_application() -> None: app = web.Application() - assert "".format(id(app)) == repr(app) + assert f"" == repr(app) async def test_expect_default_handler_unknown(aiohttp_client) -> None: @@ -467,6 +495,8 @@ async def handler(request): resp = await client.post("/", headers={"Expect": "SPAM"}) assert 417 == resp.status + await resp.release() + async def test_100_continue(aiohttp_client) -> None: async def handler(request): @@ -484,6 +514,8 @@ async def handler(request): resp = await client.post("/", data=form, expect100=True) assert 200 == resp.status + await resp.release() + async def test_100_continue_custom(aiohttp_client) -> None: @@ -508,6 +540,8 @@ async def expect_handler(request): assert 200 == resp.status assert expect_received + await resp.release() + async def test_100_continue_custom_response(aiohttp_client) -> None: async def handler(request): @@ -529,10 +563,12 @@ async def expect_handler(request): auth_err = False resp = await client.post("/", data=new_dummy_form(), expect100=True) assert 200 == resp.status + await resp.release() auth_err = True resp = await client.post("/", data=new_dummy_form(), expect100=True) assert 403 == resp.status + await resp.release() async def test_100_continue_for_not_found(aiohttp_client) -> None: @@ -543,6 +579,8 @@ async def test_100_continue_for_not_found(aiohttp_client) -> None: resp = await client.post("/not_found", data="data", expect100=True) assert 404 == resp.status + await resp.release() + async def test_100_continue_for_not_allowed(aiohttp_client) -> None: async def handler(request): @@ -555,6 +593,8 @@ async def handler(request): resp = await client.get("/", expect100=True) assert 405 == resp.status + await resp.release() + async def test_http11_keep_alive_default(aiohttp_client) -> None: async def handler(request): @@ -569,6 +609,8 @@ async def handler(request): assert resp.version == HttpVersion11 assert "Connection" not in resp.headers + await resp.release() + @pytest.mark.xfail async def test_http10_keep_alive_default(aiohttp_client) -> None: @@ -584,6 +626,8 @@ async def handler(request): assert resp.version == HttpVersion10 assert resp.headers["Connection"] == "keep-alive" + await resp.release() + async def test_http10_keep_alive_with_headers_close(aiohttp_client) -> None: async def handler(request): @@ -600,6 +644,8 @@ async def handler(request): assert resp.version == HttpVersion10 assert "Connection" not in resp.headers + await resp.release() + async def test_http10_keep_alive_with_headers(aiohttp_client) -> None: async def handler(request): @@ -616,6 +662,8 @@ async def handler(request): assert resp.version == HttpVersion10 assert resp.headers["Connection"] == "keep-alive" + await resp.release() + async def test_upload_file(aiohttp_client) -> None: @@ -627,6 +675,7 @@ async def test_upload_file(aiohttp_client) -> None: async def handler(request): form = await request.post() raw_data = form["file"].file.read() + form["file"].file.close() assert data == raw_data return web.Response() @@ -637,6 +686,8 @@ async def handler(request): resp = await client.post("/", data={"file": data}) assert 200 == resp.status + await resp.release() + async def test_upload_file_object(aiohttp_client) -> None: here = pathlib.Path(__file__).parent @@ -647,6 +698,7 @@ async def test_upload_file_object(aiohttp_client) -> None: async def handler(request): form = await request.post() raw_data = form["file"].file.read() + form["file"].file.close() assert data == raw_data return web.Response() @@ -658,6 +710,8 @@ async def handler(request): resp = await client.post("/", data={"file": f}) assert 200 == resp.status + await resp.release() + @pytest.mark.parametrize( "method", ["get", "post", "options", "post", "put", "patch", "delete"] @@ -694,6 +748,8 @@ async def handler(request): resp = await client.post("/", data=b"data") assert 200 == resp.status + await resp.release() + async def test_get_with_empty_arg(aiohttp_client) -> None: async def handler(request): @@ -708,6 +764,8 @@ async def handler(request): resp = await client.get("/?arg") assert 200 == resp.status + await resp.release() + async def test_large_header(aiohttp_client) -> None: async def handler(request): @@ -721,6 +779,8 @@ async def handler(request): resp = await client.get("/", headers=headers) assert 400 == resp.status + await resp.release() + async def test_large_header_allowed(aiohttp_client, aiohttp_server) -> None: async def handler(request): @@ -735,6 +795,8 @@ async def handler(request): resp = await client.post("/", headers=headers) assert 200 == resp.status + await resp.release() + async def test_get_with_empty_arg_with_equal(aiohttp_client) -> None: async def handler(request): @@ -749,6 +811,8 @@ async def handler(request): resp = await client.get("/?arg=") assert 200 == resp.status + await resp.release() + async def test_response_with_async_gen(aiohttp_client, fname) -> None: @@ -757,12 +821,11 @@ async def test_response_with_async_gen(aiohttp_client, fname) -> None: data_size = len(data) - @async_generator async def stream(f_name): with f_name.open("rb") as f: data = f.read(100) while data: - await yield_(data) + yield data data = f.read(100) async def handler(request): @@ -779,6 +842,8 @@ async def handler(request): assert resp_data == data assert resp.headers.get("Content-Length") == str(len(resp_data)) + await resp.release() + async def test_response_with_streamer(aiohttp_client, fname) -> None: @@ -819,12 +884,11 @@ async def test_response_with_async_gen_no_params(aiohttp_client, fname) -> None: data_size = len(data) - @async_generator async def stream(): with fname.open("rb") as f: data = f.read(100) while data: - await yield_(data) + yield data data = f.read(100) async def handler(request): @@ -841,6 +905,8 @@ async def handler(request): assert resp_data == data assert resp.headers.get("Content-Length") == str(len(resp_data)) + await resp.release() + async def test_response_with_streamer_no_params(aiohttp_client, fname) -> None: @@ -875,12 +941,15 @@ async def handler(request): async def test_response_with_file(aiohttp_client, fname) -> None: + outer_file_descriptor = None with fname.open("rb") as f: data = f.read() async def handler(request): - return web.Response(body=fname.open("rb")) + nonlocal outer_file_descriptor + outer_file_descriptor = fname.open("rb") + return web.Response(body=outer_file_descriptor) app = web.Application() app.router.add_get("/", handler) @@ -889,9 +958,7 @@ async def handler(request): resp = await client.get("/") assert 200 == resp.status resp_data = await resp.read() - expected_content_disposition = ( - "attachment; filename=\"conftest.py\"; filename*=utf-8''conftest.py" - ) + expected_content_disposition = 'attachment; filename="conftest.py"' assert resp_data == data assert resp.headers.get("Content-Type") in ( "application/octet-stream", @@ -901,15 +968,23 @@ async def handler(request): assert resp.headers.get("Content-Length") == str(len(resp_data)) assert resp.headers.get("Content-Disposition") == expected_content_disposition + await resp.release() + + outer_file_descriptor.close() + async def test_response_with_file_ctype(aiohttp_client, fname) -> None: + outer_file_descriptor = None with fname.open("rb") as f: data = f.read() async def handler(request): + nonlocal outer_file_descriptor + outer_file_descriptor = fname.open("rb") + return web.Response( - body=fname.open("rb"), headers={"content-type": "text/binary"} + body=outer_file_descriptor, headers={"content-type": "text/binary"} ) app = web.Application() @@ -919,22 +994,27 @@ async def handler(request): resp = await client.get("/") assert 200 == resp.status resp_data = await resp.read() - expected_content_disposition = ( - "attachment; filename=\"conftest.py\"; filename*=utf-8''conftest.py" - ) + expected_content_disposition = 'attachment; filename="conftest.py"' assert resp_data == data assert resp.headers.get("Content-Type") == "text/binary" assert resp.headers.get("Content-Length") == str(len(resp_data)) assert resp.headers.get("Content-Disposition") == expected_content_disposition + await resp.release() + + outer_file_descriptor.close() + async def test_response_with_payload_disp(aiohttp_client, fname) -> None: + outer_file_descriptor = None with fname.open("rb") as f: data = f.read() async def handler(request): - pl = aiohttp.get_payload(fname.open("rb")) + nonlocal outer_file_descriptor + outer_file_descriptor = fname.open("rb") + pl = aiohttp.get_payload(outer_file_descriptor) pl.set_content_disposition("inline", filename="test.txt") return web.Response(body=pl, headers={"content-type": "text/binary"}) @@ -948,10 +1028,11 @@ async def handler(request): assert resp_data == data assert resp.headers.get("Content-Type") == "text/binary" assert resp.headers.get("Content-Length") == str(len(resp_data)) - assert ( - resp.headers.get("Content-Disposition") - == "inline; filename=\"test.txt\"; filename*=utf-8''test.txt" - ) + assert resp.headers.get("Content-Disposition") == 'inline; filename="test.txt"' + + await resp.release() + + outer_file_descriptor.close() async def test_response_with_payload_stringio(aiohttp_client, fname) -> None: @@ -967,6 +1048,8 @@ async def handler(request): resp_data = await resp.read() assert resp_data == b"test" + await resp.release() + async def test_response_with_precompressed_body_gzip(aiohttp_client) -> None: async def handler(request): @@ -985,6 +1068,8 @@ async def handler(request): assert b"mydata" == data assert resp.headers.get("Content-Encoding") == "gzip" + await resp.release() + async def test_response_with_precompressed_body_deflate(aiohttp_client) -> None: async def handler(request): @@ -1003,6 +1088,8 @@ async def handler(request): assert b"mydata" == data assert resp.headers.get("Content-Encoding") == "deflate" + await resp.release() + async def test_response_with_precompressed_body_deflate_no_hdrs(aiohttp_client) -> None: async def handler(request): @@ -1040,6 +1127,8 @@ async def handler(request): resp = await client.post("/", data=b"test", headers={"content-encoding": "gzip"}) assert 200 == resp.status + await resp.release() + async def test_stream_response_multiple_chunks(aiohttp_client) -> None: async def handler(request): @@ -1060,6 +1149,8 @@ async def handler(request): data = await resp.read() assert b"xyz" == data + await resp.release() + async def test_start_without_routes(aiohttp_client) -> None: @@ -1069,6 +1160,8 @@ async def test_start_without_routes(aiohttp_client) -> None: resp = await client.get("/") assert 404 == resp.status + await resp.release() + async def test_requests_count(aiohttp_client) -> None: async def handler(request): @@ -1082,14 +1175,17 @@ async def handler(request): resp = await client.get("/") assert 200 == resp.status assert client.server.handler.requests_count == 1 + await resp.release() resp = await client.get("/") assert 200 == resp.status assert client.server.handler.requests_count == 2 + await resp.release() resp = await client.get("/") assert 200 == resp.status assert client.server.handler.requests_count == 3 + await resp.release() async def test_redirect_url(aiohttp_client) -> None: @@ -1107,6 +1203,8 @@ async def redirected(request): resp = await client.get("/redirector") assert resp.status == 200 + await resp.release() + async def test_simple_subapp(aiohttp_client) -> None: async def handler(request): @@ -1123,6 +1221,8 @@ async def handler(request): txt = await resp.text() assert "OK" == txt + await resp.release() + async def test_subapp_reverse_url(aiohttp_client) -> None: async def handler(request): @@ -1144,6 +1244,8 @@ async def handler2(request): assert "OK" == txt assert resp.url.path == "/path/final" + await resp.release() + async def test_subapp_reverse_variable_url(aiohttp_client) -> None: async def handler(request): @@ -1167,6 +1269,8 @@ async def handler2(request): assert "OK" == txt assert resp.url.path == "/path/final" + await resp.release() + async def test_subapp_reverse_static_url(aiohttp_client) -> None: fname = "aiohttp.png" @@ -1188,6 +1292,9 @@ async def handler(request): assert resp.url.path == "/path/static/" + fname assert resp.status == 200 body = await resp.read() + + await resp.release() + with (here / fname).open("rb") as f: assert body == f.read() @@ -1208,6 +1315,8 @@ async def handler(request): txt = await resp.text() assert "OK" == txt + await resp.release() + async def test_subapp_not_found(aiohttp_client) -> None: async def handler(request): @@ -1222,6 +1331,8 @@ async def handler(request): resp = await client.get("/path/other") assert resp.status == 404 + await resp.release() + async def test_subapp_not_found2(aiohttp_client) -> None: async def handler(request): @@ -1236,6 +1347,8 @@ async def handler(request): resp = await client.get("/invalid/other") assert resp.status == 404 + await resp.release() + async def test_subapp_not_allowed(aiohttp_client) -> None: async def handler(request): @@ -1251,6 +1364,8 @@ async def handler(request): assert resp.status == 405 assert resp.headers["Allow"] == "GET,HEAD" + await resp.release() + async def test_subapp_cannot_add_app_in_handler(aiohttp_client) -> None: async def handler(request): @@ -1266,6 +1381,8 @@ async def handler(request): resp = await client.get("/path/to") assert resp.status == 500 + await resp.release() + async def test_subapp_middlewares(aiohttp_client) -> None: order = [] @@ -1273,7 +1390,7 @@ async def test_subapp_middlewares(aiohttp_client) -> None: async def handler(request): return web.Response(text="OK") - async def middleware_factory(app, handler): + async def middleware_factory(app, handler: Handler): async def middleware(request): order.append((1, app)) resp = await handler(request) @@ -1303,6 +1420,8 @@ async def middleware(request): (2, app), ] == order + await resp.release() + async def test_subapp_on_response_prepare(aiohttp_client) -> None: order = [] @@ -1331,6 +1450,8 @@ async def on_response(request, response): assert resp.status == 200 assert [app, subapp1, subapp2] == order + await resp.release() + async def test_subapp_on_startup(aiohttp_server) -> None: order = [] @@ -1412,7 +1533,7 @@ async def test_subapp_middleware_context(aiohttp_client, route, expected, middle def show_app_context(appname): @web.middleware - async def middleware(request, handler): + async def middleware(request, handler: Handler): values.append("{}: {}".format(appname, request.app["my_value"])) return await handler(request) @@ -1444,6 +1565,8 @@ async def handler(request): assert "Ok" == await resp.text() assert expected == values + await resp.release() + async def test_custom_date_header(aiohttp_client) -> None: async def handler(request): @@ -1457,6 +1580,8 @@ async def handler(request): assert 200 == resp.status assert resp.headers["Date"] == "Sun, 30 Oct 2016 03:13:52 GMT" + await resp.release() + async def test_response_prepared_with_clone(aiohttp_client) -> None: async def handler(request): @@ -1472,13 +1597,15 @@ async def handler(request): resp = await client.get("/") assert 200 == resp.status + await resp.release() + async def test_app_max_client_size(aiohttp_client) -> None: async def handler(request): await request.post() return web.Response(body=b"ok") - max_size = 1024 ** 2 + max_size = 1024**2 app = web.Application() app.router.add_post("/", handler) client = await aiohttp_client(app) @@ -1494,23 +1621,28 @@ async def handler(request): body_size = int(resp_text.split()[-1]) assert body_size >= max_size + await resp.release() + async def test_app_max_client_size_adjusted(aiohttp_client) -> None: async def handler(request): await request.post() return web.Response(body=b"ok") - default_max_size = 1024 ** 2 + default_max_size = 1024**2 custom_max_size = default_max_size * 2 app = web.Application(client_max_size=custom_max_size) app.router.add_post("/", handler) client = await aiohttp_client(app) data = {"long_string": default_max_size * "x" + "xxx"} + with pytest.warns(ResourceWarning): resp = await client.post("/", data=data) assert 200 == resp.status resp_text = await resp.text() assert "ok" == resp_text + await resp.release() + too_large_data = {"log_string": custom_max_size * "x" + "xxx"} with pytest.warns(ResourceWarning): resp = await client.post("/", data=too_large_data) @@ -1523,29 +1655,35 @@ async def handler(request): body_size = int(resp_text.split()[-1]) assert body_size >= custom_max_size + await resp.release() + async def test_app_max_client_size_none(aiohttp_client) -> None: async def handler(request): await request.post() return web.Response(body=b"ok") - default_max_size = 1024 ** 2 + default_max_size = 1024**2 custom_max_size = None app = web.Application(client_max_size=custom_max_size) app.router.add_post("/", handler) client = await aiohttp_client(app) + data = {"long_string": default_max_size * "x" + "xxx"} with pytest.warns(ResourceWarning): resp = await client.post("/", data=data) assert 200 == resp.status resp_text = await resp.text() assert "ok" == resp_text + await resp.release() + too_large_data = {"log_string": default_max_size * 2 * "x"} with pytest.warns(ResourceWarning): resp = await client.post("/", data=too_large_data) assert 200 == resp.status resp_text = await resp.text() assert resp_text == "ok" + await resp.release() async def test_post_max_client_size(aiohttp_client) -> None: @@ -1557,14 +1695,19 @@ async def handler(request): app.router.add_post("/", handler) client = await aiohttp_client(app) - data = {"long_string": 1024 * "x", "file": io.BytesIO(b"test")} - resp = await client.post("/", data=data) + with io.BytesIO(b"test") as file_handle: + data = {"long_string": 1024 * "x", "file": file_handle} + resp = await client.post("/", data=data) - assert 413 == resp.status - resp_text = await resp.text() - assert ( - "Maximum request body size 10 exceeded, " "actual body size 1024" in resp_text - ) + assert 413 == resp.status + resp_text = await resp.text() + assert ( + "Maximum request body size 10 exceeded, " + "actual body size 1024" in resp_text + ) + data["file"].close() + + await resp.release() async def test_post_max_client_size_for_file(aiohttp_client) -> None: @@ -1576,11 +1719,14 @@ async def handler(request): app.router.add_post("/", handler) client = await aiohttp_client(app) - data = {"file": io.BytesIO(b"test")} - resp = await client.post("/", data=data) + with io.BytesIO(b"test") as file_handle: + data = {"file": file_handle} + resp = await client.post("/", data=data) assert 413 == resp.status + await resp.release() + async def test_response_with_bodypart(aiohttp_client) -> None: async def handler(request): @@ -1592,18 +1738,18 @@ async def handler(request): app.router.add_post("/", handler) client = await aiohttp_client(app) - data = {"file": io.BytesIO(b"test")} - resp = await client.post("/", data=data) + with io.BytesIO(b"test") as file_handle: + data = {"file": file_handle} + resp = await client.post("/", data=data) - assert 200 == resp.status - body = await resp.read() - assert body == b"test" + assert 200 == resp.status + body = await resp.read() + assert body == b"test" - disp = multipart.parse_content_disposition(resp.headers["content-disposition"]) - assert disp == ( - "attachment", - {"name": "file", "filename": "file", "filename*": "file"}, - ) + disp = multipart.parse_content_disposition(resp.headers["content-disposition"]) + assert disp == ("attachment", {"name": "file", "filename": "file"}) + + await resp.release() async def test_response_with_bodypart_named(aiohttp_client, tmpdir) -> None: @@ -1618,18 +1764,18 @@ async def handler(request): f = tmpdir.join("foobar.txt") f.write_text("test", encoding="utf8") - data = {"file": open(str(f), "rb")} - resp = await client.post("/", data=data) + with open(str(f), "rb") as fd: + data = {"file": fd} + resp = await client.post("/", data=data) - assert 200 == resp.status - body = await resp.read() + assert 200 == resp.status + body = await resp.read() assert body == b"test" disp = multipart.parse_content_disposition(resp.headers["content-disposition"]) - assert disp == ( - "attachment", - {"name": "file", "filename": "foobar.txt", "filename*": "foobar.txt"}, - ) + assert disp == ("attachment", {"name": "file", "filename": "foobar.txt"}) + + await resp.release() async def test_response_with_bodypart_invalid_name(aiohttp_client) -> None: @@ -1652,6 +1798,8 @@ async def handler(request): assert "content-disposition" not in resp.headers + await resp.release() + async def test_request_clone(aiohttp_client) -> None: async def handler(request): @@ -1666,6 +1814,7 @@ async def handler(request): resp = await client.get("/") assert 200 == resp.status + await resp.release() async def test_await(aiohttp_server) -> None: @@ -1700,12 +1849,15 @@ async def handler(request): app = web.Application() app.router.add_route("GET", "/", handler) server = await aiohttp_server(app) - resp = await aiohttp.ClientSession().get(server.make_url("/")) + session = aiohttp.ClientSession() + resp = await session.get(server.make_url("/")) async with resp: assert resp.status == 200 assert resp.connection is None assert resp.connection is None + await session.close() + async def test_response_context_manager_error(aiohttp_server) -> None: async def handler(request): @@ -1726,6 +1878,8 @@ async def handler(request): assert len(session._connector._conns) == 1 + await session.close() + async def aiohttp_client_api_context_manager(aiohttp_server): async def handler(request): @@ -1845,7 +1999,7 @@ async def resolve(self, host, port=0, family=socket.AF_INET): connector = aiohttp.TCPConnector(resolver=resolver) client = aiohttp.ClientSession(connector=connector, trace_configs=[trace_config]) - await client.get("http://example.com/redirector", data="foo") + resp = await client.get("http://example.com/redirector", data="foo") assert on_request_start.called assert on_request_end.called @@ -1854,6 +2008,8 @@ async def resolve(self, host, port=0, family=socket.AF_INET): assert on_request_redirect.called assert on_connection_create_start.called assert on_connection_create_end.called + + await resp.release() await client.close() @@ -1884,6 +2040,7 @@ async def handler(request): assert 200 == resp.status txt = await resp.text() assert "OK" == txt + await resp.release() async def test_app_add_routes(aiohttp_client) -> None: @@ -1896,6 +2053,7 @@ async def handler(request): client = await aiohttp_client(app) resp = await client.get("/get") assert resp.status == 200 + await resp.release() async def test_request_headers_type(aiohttp_client) -> None: @@ -1909,6 +2067,7 @@ async def handler(request): client = await aiohttp_client(app) resp = await client.get("/get") assert resp.status == 200 + await resp.release() async def test_signal_on_error_handler(aiohttp_client) -> None: @@ -1922,6 +2081,7 @@ async def on_prepare(request, response): resp = await client.get("/") assert resp.status == 404 assert resp.headers["X-Custom"] == "val" + await resp.release() @pytest.mark.skipif( @@ -1949,6 +2109,34 @@ async def handler(request): resp = await client.post("/", data=b"data") assert resp.status == 200 assert await resp.text() == "data (2, 4)" + await resp.release() + + +@pytest.mark.parametrize( + "auto_decompress,len_of", [(True, "uncompressed"), (False, "compressed")] +) +async def test_auto_decompress( + aiohttp_client, + auto_decompress, + len_of, +) -> None: + async def handler(request): + data = await request.read() + return web.Response(text=str(len(data))) + + app = web.Application(handler_args={"auto_decompress": auto_decompress}) + app.router.add_post("/", handler) + + client = await aiohttp_client(app) + uncompressed = b"dataaaaaaaaaaaaaaaaaaaaaaaaa" + compressor = zlib.compressobj(wbits=16 + zlib.MAX_WBITS) + compressed = compressor.compress(uncompressed) + compressor.flush() + assert len(compressed) != len(uncompressed) + headers = {"content-encoding": "gzip"} + resp = await client.post("/", data=compressed, headers=headers) + assert resp.status == 200 + assert await resp.text() == str(len(locals()[len_of])) + await resp.release() @pytest.mark.parametrize( @@ -1967,3 +2155,17 @@ async def handler(_): resp = await client.get("/") assert CONTENT_LENGTH not in resp.headers assert TRANSFER_ENCODING not in resp.headers + await resp.release() + + +async def test_stream_response_headers_204(aiohttp_client): + async def handler(_): + return web.StreamResponse(status=204) + + app = web.Application() + app.router.add_get("/", handler) + client = await aiohttp_client(app) + resp = await client.get("/") + assert CONTENT_TYPE not in resp.headers + assert TRANSFER_ENCODING not in resp.headers + await resp.release() diff --git a/tests/test_web_log.py b/tests/test_web_log.py index 0a4168a..54c4fa5 100644 --- a/tests/test_web_log.py +++ b/tests/test_web_log.py @@ -8,6 +8,7 @@ from aiohttp import web from aiohttp.abc import AbstractAccessLogger from aiohttp.helpers import PY_37 +from aiohttp.typedefs import Handler from aiohttp.web_log import AccessLogger try: @@ -177,7 +178,7 @@ async def handler(request): return web.Response() @web.middleware - async def middleware(request, handler): + async def middleware(request, handler: Handler): VAR.set("uuid") return await handler(request) diff --git a/tests/test_web_middleware.py b/tests/test_web_middleware.py index 1a6ea61..4660075 100644 --- a/tests/test_web_middleware.py +++ b/tests/test_web_middleware.py @@ -5,6 +5,7 @@ from yarl import URL from aiohttp import web +from aiohttp.typedefs import Handler async def test_middleware_modifies_response(loop, aiohttp_client) -> None: @@ -12,7 +13,7 @@ async def handler(request): return web.Response(body=b"OK") @web.middleware - async def middleware(request, handler): + async def middleware(request, handler: Handler): resp = await handler(request) assert 200 == resp.status resp.set_status(201) @@ -34,7 +35,7 @@ async def handler(request): raise RuntimeError("Error text") @web.middleware - async def middleware(request, handler): + async def middleware(request, handler: Handler): with pytest.raises(RuntimeError) as ctx: await handler(request) return web.Response(status=501, text=str(ctx.value) + "[MIDDLEWARE]") @@ -62,7 +63,7 @@ async def handler2(request): def make_middleware(num): @web.middleware - async def middleware(request, handler): + async def middleware(request, handler: Handler): middleware_annotation_seen_values.append( getattr(handler, "annotation", None) ) @@ -108,7 +109,7 @@ async def handler(request): def make_middleware(num): @web.middleware - async def middleware(request, handler): + async def middleware(request, handler: Handler): annotation = getattr(handler, "annotation", None) if annotation is not None: middleware_annotation_seen_values.append(f"{annotation}/{num}") @@ -390,7 +391,7 @@ async def test_old_style_middleware(loop, aiohttp_client) -> None: async def handler(request): return web.Response(body=b"OK") - async def middleware_factory(app, handler): + async def middleware_factory(app, handler: Handler): async def middleware(request): resp = await handler(request) assert 200 == resp.status @@ -410,72 +411,21 @@ async def middleware(request): txt = await resp.text() assert "OK[old style middleware]" == txt - assert len(warning_checker) == 1 - msg = str(warning_checker.list[0].message) - assert re.match( - "^old-style middleware " - '".' - 'middleware_factory at 0x[0-9a-fA-F]+>" ' - "deprecated, see #2252$", - msg, - ) - - -async def test_mixed_middleware(loop, aiohttp_client) -> None: - async def handler(request): - return web.Response(body=b"OK") - - async def m_old1(app, handler): - async def middleware(request): - resp = await handler(request) - resp.text += "[old style 1]" - return resp - - return middleware - - @web.middleware - async def m_new1(request, handler): - resp = await handler(request) - resp.text += "[new style 1]" - return resp - - async def m_old2(app, handler): - async def middleware(request): - resp = await handler(request) - resp.text += "[old style 2]" - return resp - - return middleware - - @web.middleware - async def m_new2(request, handler): - resp = await handler(request) - resp.text += "[new style 2]" - return resp - - middlewares = m_old1, m_new1, m_old2, m_new2 - - with pytest.warns(DeprecationWarning) as w: - app = web.Application(middlewares=middlewares) - app.router.add_route("GET", "/", handler) - client = await aiohttp_client(app) - resp = await client.get("/") - assert 200 == resp.status - txt = await resp.text() - assert "OK[new style 2][old style 2][new style 1][old style 1]" == txt - - assert len(w) == 2 - tmpl = ( - "^old-style middleware " - '".' - '{} at 0x[0-9a-fA-F]+>" ' - "deprecated, see #2252$" - ) - p1 = tmpl.format("m_old1") - p2 = tmpl.format("m_old2") + found = False + for obj in warning_checker.list: + msg = str(obj.message) + if "old-style" not in msg: + continue + assert re.match( + "^old-style middleware " + '".' + 'middleware_factory at 0x[0-9a-fA-F]+>" ' + "deprecated, see #2252$", + msg, + ) + found = True - assert re.match(p2, str(w.list[0].message)) - assert re.match(p1, str(w.list[1].message)) + assert found async def test_old_style_middleware_class(loop, aiohttp_client) -> None: @@ -483,7 +433,7 @@ async def handler(request): return web.Response(body=b"OK") class Middleware: - async def __call__(self, app, handler): + async def __call__(self, app, handler: Handler): async def middleware(request): resp = await handler(request) assert 200 == resp.status @@ -503,15 +453,21 @@ async def middleware(request): txt = await resp.text() assert "OK[old style middleware]" == txt - assert len(warning_checker) == 1 - msg = str(warning_checker.list[0].message) - assert re.match( - "^old-style middleware " - '".Middleware object " - 'at 0x[0-9a-fA-F]+>" deprecated, see #2252$', - msg, - ) + found = False + for obj in warning_checker.list: + msg = str(obj.message) + if "old-style" not in msg: + continue + assert re.match( + "^old-style middleware " + '".Middleware object " + 'at 0x[0-9a-fA-F]+>" deprecated, see #2252$', + msg, + ) + found = True + + assert found async def test_new_style_middleware_class(loop, aiohttp_client) -> None: @@ -520,24 +476,21 @@ async def handler(request): @web.middleware class Middleware: - async def __call__(self, request, handler): + async def __call__(self, request, handler: Handler): resp = await handler(request) assert 200 == resp.status resp.set_status(201) resp.text = resp.text + "[new style middleware]" return resp - with pytest.warns(None) as warning_checker: - app = web.Application() - app.middlewares.append(Middleware()) - app.router.add_route("GET", "/", handler) - client = await aiohttp_client(app) - resp = await client.get("/") - assert 201 == resp.status - txt = await resp.text() - assert "OK[new style middleware]" == txt - - assert len(warning_checker) == 0 + app = web.Application() + app.middlewares.append(Middleware()) + app.router.add_route("GET", "/", handler) + client = await aiohttp_client(app) + resp = await client.get("/") + assert 201 == resp.status + txt = await resp.text() + assert "OK[new style middleware]" == txt async def test_new_style_middleware_method(loop, aiohttp_client) -> None: @@ -546,21 +499,18 @@ async def handler(request): class Middleware: @web.middleware - async def call(self, request, handler): + async def call(self, request, handler: Handler): resp = await handler(request) assert 200 == resp.status resp.set_status(201) resp.text = resp.text + "[new style middleware]" return resp - with pytest.warns(None) as warning_checker: - app = web.Application() - app.middlewares.append(Middleware().call) - app.router.add_route("GET", "/", handler) - client = await aiohttp_client(app) - resp = await client.get("/") - assert 201 == resp.status - txt = await resp.text() - assert "OK[new style middleware]" == txt - - assert len(warning_checker) == 0 + app = web.Application() + app.middlewares.append(Middleware().call) + app.router.add_route("GET", "/", handler) + client = await aiohttp_client(app) + resp = await client.get("/") + assert 201 == resp.status + txt = await resp.text() + assert "OK[new style middleware]" == txt diff --git a/tests/test_web_protocol.py b/tests/test_web_protocol.py deleted file mode 100644 index 9795270..0000000 --- a/tests/test_web_protocol.py +++ /dev/null @@ -1,758 +0,0 @@ -# Tests for aiohttp/server.py - -import asyncio -import platform -import socket -from functools import partial -from unittest import mock - -import pytest - -from aiohttp import helpers, http, streams, web - -IS_MACOS = platform.system() == "Darwin" - - -@pytest.fixture -def make_srv(loop, manager): - srv = None - - def maker(*, cls=web.RequestHandler, **kwargs): - nonlocal srv - m = kwargs.pop("manager", manager) - srv = cls(m, loop=loop, access_log=None, **kwargs) - return srv - - yield maker - - if srv is not None: - if srv.transport is not None: - srv.connection_lost(None) - - -@pytest.fixture -def manager(request_handler, loop): - async def maker(): - return web.Server(request_handler) - - return loop.run_until_complete(maker()) - - -@pytest.fixture -def srv(make_srv, transport): - srv = make_srv() - srv.connection_made(transport) - transport.close.side_effect = partial(srv.connection_lost, None) - with mock.patch.object( - web.RequestHandler, "_drain_helper", side_effect=helpers.noop - ): - yield srv - - -@pytest.fixture -def buf(): - return bytearray() - - -@pytest.fixture -def request_handler(): - async def handler(request): - return web.Response() - - m = mock.Mock() - m.side_effect = handler - return m - - -@pytest.fixture -def handle_with_error(): - def wrapper(exc=ValueError): - async def handle(request): - raise exc - - h = mock.Mock() - h.side_effect = handle - return h - - return wrapper - - -@pytest.fixture -def writer(srv): - return http.StreamWriter(srv, srv.transport, srv._loop) - - -@pytest.fixture -def transport(buf): - transport = mock.Mock() - - def write(chunk): - buf.extend(chunk) - - transport.write.side_effect = write - transport.is_closing.return_value = False - - return transport - - -async def test_shutdown(srv, transport) -> None: - loop = asyncio.get_event_loop() - assert transport is srv.transport - - srv._keepalive = True - task_handler = srv._task_handler - - assert srv._waiter is not None - assert srv._task_handler is not None - - t0 = loop.time() - await srv.shutdown() - t1 = loop.time() - - assert t1 - t0 < 0.05, t1 - t0 - - assert transport.close.called - assert srv.transport is None - - assert not srv._task_handler - await asyncio.sleep(0.1) - assert task_handler.done() - - -async def test_double_shutdown(srv, transport) -> None: - await srv.shutdown() - assert transport.close.called - assert srv.transport is None - - transport.reset_mock() - await srv.shutdown() - assert not transport.close.called - assert srv.transport is None - - -async def test_shutdown_wait_error_handler(srv, transport) -> None: - loop = asyncio.get_event_loop() - - async def _error_handle(): - pass - - srv._error_handler = loop.create_task(_error_handle()) - await srv.shutdown() - assert srv._error_handler.done() - - -async def test_close_after_response(srv, transport) -> None: - srv.data_received( - b"GET / HTTP/1.0\r\n" b"Host: example.com\r\n" b"Content-Length: 0\r\n\r\n" - ) - h = srv._task_handler - - await asyncio.sleep(0.1) - assert srv._waiter is None - assert srv._task_handler is None - - assert transport.close.called - assert srv.transport is None - - assert h.done() - - -def test_connection_made(make_srv) -> None: - srv = make_srv() - srv.connection_made(mock.Mock()) - assert not srv._force_close - - -def test_connection_made_with_tcp_keepaplive(make_srv, transport) -> None: - srv = make_srv() - - sock = mock.Mock() - transport.get_extra_info.return_value = sock - srv.connection_made(transport) - sock.setsockopt.assert_called_with(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) - - -def test_connection_made_without_tcp_keepaplive(make_srv) -> None: - srv = make_srv(tcp_keepalive=False) - - sock = mock.Mock() - transport = mock.Mock() - transport.get_extra_info.return_value = sock - srv.connection_made(transport) - assert not sock.setsockopt.called - - -def test_eof_received(make_srv) -> None: - srv = make_srv() - srv.connection_made(mock.Mock()) - srv.eof_received() - # assert srv.reader._eof - - -async def test_connection_lost(srv) -> None: - srv.data_received( - b"GET / HTTP/1.1\r\n" b"Host: example.com\r\n" b"Content-Length: 0\r\n\r\n" - ) - srv._keepalive = True - - handle = srv._task_handler - await asyncio.sleep(0) # wait for .start() starting - srv.connection_lost(None) - - assert srv._force_close - - await handle - - assert not srv._task_handler - - -def test_srv_keep_alive(srv) -> None: - assert not srv._keepalive - - srv.keep_alive(True) - assert srv._keepalive - - srv.keep_alive(False) - assert not srv._keepalive - - -def test_srv_keep_alive_disable(srv) -> None: - handle = srv._keepalive_handle = mock.Mock() - - srv.keep_alive(False) - assert not srv._keepalive - assert srv._keepalive_handle is None - handle.cancel.assert_called_with() - - -async def test_simple(srv, buf) -> None: - srv.data_received(b"GET / HTTP/1.1\r\n\r\n") - - await asyncio.sleep(0.05) - assert buf.startswith(b"HTTP/1.1 200 OK\r\n") - - -async def test_bad_method(srv, buf) -> None: - srv.data_received(b":BAD; / HTTP/1.0\r\n" b"Host: example.com\r\n\r\n") - - await asyncio.sleep(0) - assert buf.startswith(b"HTTP/1.0 400 Bad Request\r\n") - - -async def test_line_too_long(srv, buf) -> None: - srv.data_received(b"".join([b"a" for _ in range(10000)]) + b"\r\n\r\n") - - await asyncio.sleep(0) - assert buf.startswith(b"HTTP/1.0 400 Bad Request\r\n") - - -async def test_invalid_content_length(srv, buf) -> None: - srv.data_received( - b"GET / HTTP/1.0\r\n" b"Host: example.com\r\n" b"Content-Length: sdgg\r\n\r\n" - ) - await asyncio.sleep(0) - - assert buf.startswith(b"HTTP/1.0 400 Bad Request\r\n") - - -async def test_unhandled_runtime_error(make_srv, transport, request_handler): - async def handle(request): - resp = web.Response() - resp.write_eof = mock.Mock() - resp.write_eof.side_effect = RuntimeError - return resp - - srv = make_srv(lingering_time=0) - srv.debug = True - srv.connection_made(transport) - srv.logger.exception = mock.Mock() - request_handler.side_effect = handle - - srv.data_received( - b"GET / HTTP/1.0\r\n" b"Host: example.com\r\n" b"Content-Length: 0\r\n\r\n" - ) - - await srv._task_handler - assert request_handler.called - srv.logger.exception.assert_called_with( - "Unhandled runtime exception", exc_info=mock.ANY - ) - - -async def test_handle_uncompleted( - make_srv, transport, handle_with_error, request_handler -): - closed = False - - def close(): - nonlocal closed - closed = True - - transport.close.side_effect = close - - srv = make_srv(lingering_time=0) - srv.connection_made(transport) - srv.logger.exception = mock.Mock() - request_handler.side_effect = handle_with_error() - - srv.data_received( - b"GET / HTTP/1.0\r\n" b"Host: example.com\r\n" b"Content-Length: 50000\r\n\r\n" - ) - - await srv._task_handler - assert request_handler.called - assert closed - srv.logger.exception.assert_called_with("Error handling request", exc_info=mock.ANY) - - -@pytest.mark.xfail( - IS_MACOS, - raises=TypeError, - reason="Intermittently fails on macOS", - strict=False, -) -async def test_handle_uncompleted_pipe( - make_srv, transport, request_handler, handle_with_error -): - closed = False - normal_completed = False - - def close(): - nonlocal closed - closed = True - - transport.close.side_effect = close - - srv = make_srv(lingering_time=0) - srv.connection_made(transport) - srv.logger.exception = mock.Mock() - - async def handle(request): - nonlocal normal_completed - normal_completed = True - await asyncio.sleep(0.05) - return web.Response() - - # normal - request_handler.side_effect = handle - srv.data_received( - b"GET / HTTP/1.1\r\n" b"Host: example.com\r\n" b"Content-Length: 0\r\n\r\n" - ) - await asyncio.sleep(0.01) - - # with exception - request_handler.side_effect = handle_with_error() - srv.data_received( - b"GET / HTTP/1.1\r\n" b"Host: example.com\r\n" b"Content-Length: 50000\r\n\r\n" - ) - - assert srv._task_handler - - await asyncio.sleep(0.01) - - await srv._task_handler - assert normal_completed - assert request_handler.called - assert closed - srv.logger.exception.assert_called_with("Error handling request", exc_info=mock.ANY) - - -async def test_lingering(srv, transport) -> None: - assert not transport.close.called - - async def handle(message, request, writer): - pass - - with mock.patch.object( - web.RequestHandler, "handle_request", create=True, new=handle - ): - srv.data_received( - b"GET / HTTP/1.0\r\n" b"Host: example.com\r\n" b"Content-Length: 3\r\n\r\n" - ) - - await asyncio.sleep(0.05) - assert not transport.close.called - - srv.data_received(b"123") - - await asyncio.sleep(0) - transport.close.assert_called_with() - - -async def test_lingering_disabled(make_srv, transport, request_handler) -> None: - async def handle_request(request): - await asyncio.sleep(0) - - srv = make_srv(lingering_time=0) - srv.connection_made(transport) - request_handler.side_effect = handle_request - - await asyncio.sleep(0) - assert not transport.close.called - - srv.data_received( - b"GET / HTTP/1.0\r\n" b"Host: example.com\r\n" b"Content-Length: 50\r\n\r\n" - ) - await asyncio.sleep(0) - assert not transport.close.called - await asyncio.sleep(0.05) - transport.close.assert_called_with() - - -async def test_lingering_timeout(make_srv, transport, request_handler): - async def handle_request(request): - await asyncio.sleep(0) - - srv = make_srv(lingering_time=1e-30) - srv.connection_made(transport) - request_handler.side_effect = handle_request - - await asyncio.sleep(0.05) - assert not transport.close.called - - srv.data_received( - b"GET / HTTP/1.0\r\n" b"Host: example.com\r\n" b"Content-Length: 50\r\n\r\n" - ) - await asyncio.sleep(0) - assert not transport.close.called - - await asyncio.sleep(0.05) - transport.close.assert_called_with() - - -async def test_handle_payload_access_error(make_srv, transport, request_handler): - srv = make_srv(lingering_time=0) - srv.connection_made(transport) - srv.data_received( - b"POST /test HTTP/1.1\r\n" b"Content-Length: 9\r\n\r\n" b"some data" - ) - # start request_handler task - await asyncio.sleep(0.05) - - with pytest.raises(web.PayloadAccessError): - await request_handler.call_args[0][0].content.read() - - -async def test_handle_cancel(make_srv, transport) -> None: - log = mock.Mock() - - srv = make_srv(logger=log, debug=True) - srv.connection_made(transport) - - async def handle_request(message, payload, writer): - await asyncio.sleep(10) - - async def cancel(): - srv._task_handler.cancel() - - with mock.patch.object( - web.RequestHandler, "handle_request", create=True, new=handle_request - ): - srv.data_received( - b"GET / HTTP/1.0\r\n" b"Content-Length: 10\r\n" b"Host: example.com\r\n\r\n" - ) - - await asyncio.gather(srv._task_handler, cancel()) - assert log.debug.called - - -async def test_handle_cancelled(make_srv, transport) -> None: - log = mock.Mock() - - srv = make_srv(logger=log, debug=True) - srv.connection_made(transport) - - # start request_handler task - await asyncio.sleep(0) - - srv.data_received(b"GET / HTTP/1.0\r\n" b"Host: example.com\r\n\r\n") - - r_handler = srv._task_handler - assert (await r_handler) is None - - -async def test_handle_400(srv, buf, transport) -> None: - srv.data_received(b"GET / HT/asd\r\n\r\n") - - await asyncio.sleep(0) - assert b"400 Bad Request" in buf - - -async def test_keep_alive(make_srv, transport) -> None: - loop = asyncio.get_event_loop() - srv = make_srv(keepalive_timeout=0.05) - future = loop.create_future() - future.set_result(1) - - with mock.patch.object( - web.RequestHandler, "KEEPALIVE_RESCHEDULE_DELAY", new=0.1 - ), mock.patch.object( - web.RequestHandler, "handle_request", create=True, return_value=future - ): - srv.connection_made(transport) - srv.keep_alive(True) - srv.data_received( - b"GET / HTTP/1.1\r\n" b"Host: example.com\r\n" b"Content-Length: 0\r\n\r\n" - ) - - waiter = None - while waiter is None: - await asyncio.sleep(0) - waiter = srv._waiter - assert srv._keepalive_handle is not None - assert not transport.close.called - - await asyncio.sleep(0.2) - assert transport.close.called - assert waiter.cancelled - - -async def test_srv_process_request_without_timeout(make_srv, transport) -> None: - srv = make_srv() - srv.connection_made(transport) - - srv.data_received(b"GET / HTTP/1.0\r\n" b"Host: example.com\r\n\r\n") - - await srv._task_handler - assert transport.close.called - - -def test_keep_alive_timeout_default(srv) -> None: - assert 75 == srv.keepalive_timeout - - -def test_keep_alive_timeout_nondefault(make_srv) -> None: - srv = make_srv(keepalive_timeout=10) - assert 10 == srv.keepalive_timeout - - -async def test_supports_connect_method(srv, transport, request_handler) -> None: - srv.data_received( - b"CONNECT aiohttp.readthedocs.org:80 HTTP/1.0\r\n" b"Content-Length: 0\r\n\r\n" - ) - await asyncio.sleep(0.1) - - assert request_handler.called - assert isinstance(request_handler.call_args[0][0].content, streams.StreamReader) - - -async def test_content_length_0(srv, request_handler) -> None: - srv.data_received( - b"GET / HTTP/1.1\r\n" b"Host: example.org\r\n" b"Content-Length: 0\r\n\r\n" - ) - await asyncio.sleep(0.01) - - assert request_handler.called - assert request_handler.call_args[0][0].content == streams.EMPTY_PAYLOAD - - -def test_rudimentary_transport(srv) -> None: - transport = mock.Mock() - srv.connection_made(transport) - - srv.pause_reading() - assert srv._reading_paused - assert transport.pause_reading.called - - srv.resume_reading() - assert not srv._reading_paused - assert transport.resume_reading.called - - transport.resume_reading.side_effect = NotImplementedError() - transport.pause_reading.side_effect = NotImplementedError() - - srv._reading_paused = False - srv.pause_reading() - assert srv._reading_paused - - srv.resume_reading() - assert not srv._reading_paused - - -async def test_pipeline_multiple_messages(srv, transport, request_handler): - transport.close.side_effect = partial(srv.connection_lost, None) - - processed = 0 - - async def handle(request): - nonlocal processed - processed += 1 - return web.Response() - - request_handler.side_effect = handle - - assert transport is srv.transport - - srv._keepalive = True - srv.data_received( - b"GET / HTTP/1.1\r\n" - b"Host: example.com\r\n" - b"Content-Length: 0\r\n\r\n" - b"GET / HTTP/1.1\r\n" - b"Host: example.com\r\n" - b"Content-Length: 0\r\n\r\n" - ) - - assert srv._task_handler is not None - assert len(srv._messages) == 2 - assert srv._waiter is not None - - await asyncio.sleep(0.05) - assert srv._task_handler is not None - assert srv._waiter is not None - assert processed == 2 - - -async def test_pipeline_response_order(srv, buf, transport, request_handler): - transport.close.side_effect = partial(srv.connection_lost, None) - srv._keepalive = True - - processed = [] - - async def handle1(request): - nonlocal processed - await asyncio.sleep(0.01) - resp = web.StreamResponse() - await resp.prepare(request) - await resp.write(b"test1") - await resp.write_eof() - processed.append(1) - return resp - - request_handler.side_effect = handle1 - srv.data_received( - b"GET / HTTP/1.1\r\n" b"Host: example.com\r\n" b"Content-Length: 0\r\n\r\n" - ) - await asyncio.sleep(0.01) - - # second - - async def handle2(request): - nonlocal processed - resp = web.StreamResponse() - await resp.prepare(request) - await resp.write(b"test2") - await resp.write_eof() - processed.append(2) - return resp - - request_handler.side_effect = handle2 - srv.data_received( - b"GET / HTTP/1.1\r\n" b"Host: example.com\r\n" b"Content-Length: 0\r\n\r\n" - ) - await asyncio.sleep(0.01) - - assert srv._task_handler is not None - - await asyncio.sleep(0.1) - assert processed == [1, 2] - - -def test_data_received_close(srv) -> None: - srv.close() - srv.data_received( - b"GET / HTTP/1.1\r\n" b"Host: example.com\r\n" b"Content-Length: 0\r\n\r\n" - ) - - assert not srv._messages - - -def test_data_received_force_close(srv) -> None: - srv.force_close() - srv.data_received( - b"GET / HTTP/1.1\r\n" b"Host: example.com\r\n" b"Content-Length: 0\r\n\r\n" - ) - - assert not srv._messages - - -async def test__process_keepalive(srv) -> None: - loop = asyncio.get_event_loop() - # wait till the waiter is waiting - await asyncio.sleep(0) - - assert srv._waiter is not None - - srv._keepalive_time = 1 - srv._keepalive = True - srv._keepalive_timeout = 1 - expired_time = srv._keepalive_time + srv._keepalive_timeout + 1 - with mock.patch.object(loop, "time", return_value=expired_time): - srv._process_keepalive() - assert srv._force_close - - -async def test__process_keepalive_schedule_next(srv) -> None: - loop = asyncio.get_event_loop() - # wait till the waiter is waiting - await asyncio.sleep(0) - - srv._keepalive = True - srv._keepalive_time = 1 - srv._keepalive_timeout = 1 - expire_time = srv._keepalive_time + srv._keepalive_timeout - with mock.patch.object(loop, "time", return_value=expire_time): - with mock.patch.object(loop, "call_later") as call_later_patched: - srv._process_keepalive() - call_later_patched.assert_called_with(1, srv._process_keepalive) - - -async def test__process_keepalive_force_close(srv) -> None: - loop = asyncio.get_event_loop() - srv._force_close = True - with mock.patch.object(loop, "call_at") as call_at_patched: - srv._process_keepalive() - assert not call_at_patched.called - - -async def test_two_data_received_without_waking_up_start_task(srv) -> None: - # make a chance to srv.start() method start waiting for srv._waiter - await asyncio.sleep(0.01) - assert srv._waiter is not None - - srv.data_received( - b"GET / HTTP/1.1\r\n" b"Host: ex.com\r\n" b"Content-Length: 1\r\n\r\n" b"a" - ) - srv.data_received( - b"GET / HTTP/1.1\r\n" b"Host: ex.com\r\n" b"Content-Length: 1\r\n\r\n" b"b" - ) - - assert len(srv._messages) == 2 - assert srv._waiter.done() - await asyncio.sleep(0.01) - - -async def test_client_disconnect(aiohttp_server) -> None: - async def handler(request): - buf = b"" - with pytest.raises(ConnectionError): - while len(buf) < 10: - buf += await request.content.read(10) - # return with closed transport means premature client disconnection - return web.Response() - - logger = mock.Mock() - app = web.Application() - app._debug = True - app.router.add_route("POST", "/", handler) - server = await aiohttp_server(app, logger=logger) - - _, writer = await asyncio.open_connection("127.0.0.1", server.port) - writer.write( - """POST / HTTP/1.1\r -Connection: keep-alive\r -Content-Length: 10\r -Host: localhost:{port}\r -\r -""".format( - port=server.port - ).encode( - "ascii" - ) - ) - await writer.drain() - await asyncio.sleep(0.1) - writer.write(b"x") - writer.close() - await asyncio.sleep(0.1) - logger.debug.assert_called_with("Ignored premature client disconnection") diff --git a/tests/test_web_request.py b/tests/test_web_request.py index f251e04..c6aeaf8 100644 --- a/tests/test_web_request.py +++ b/tests/test_web_request.py @@ -1,4 +1,5 @@ import asyncio +import datetime import socket from collections.abc import MutableMapping from typing import Any @@ -14,6 +15,7 @@ from aiohttp.streams import StreamReader from aiohttp.test_utils import make_mocked_request from aiohttp.web import BaseRequest, HTTPRequestEntityTooLarge +from aiohttp.web_request import ETag @pytest.fixture @@ -155,6 +157,14 @@ def test_non_ascii_raw_path() -> None: assert "/путь" == req.raw_path +def test_absolute_url() -> None: + req = make_mocked_request("GET", "https://example.com/path/to?a=1") + assert req.url == URL("https://example.com/path/to?a=1") + assert req.scheme == "https" + assert req.host == "example.com" + assert req.rel_url == URL.build(path="/path/to", query={"a": "1"}) + + def test_content_length() -> None: req = make_mocked_request("Get", "/", CIMultiDict([("CONTENT-LENGTH", "123")])) @@ -544,7 +554,7 @@ def test_clone_headers_dict() -> None: async def test_cannot_clone_after_read(protocol) -> None: - payload = StreamReader(protocol, 2 ** 16, loop=asyncio.get_event_loop()) + payload = StreamReader(protocol, 2**16, loop=asyncio.get_event_loop()) payload.feed_data(b"data") payload.feed_eof() req = make_mocked_request("GET", "/path", payload=payload) @@ -554,8 +564,8 @@ async def test_cannot_clone_after_read(protocol) -> None: async def test_make_too_big_request(protocol) -> None: - payload = StreamReader(protocol, 2 ** 16, loop=asyncio.get_event_loop()) - large_file = 1024 ** 2 * b"x" + payload = StreamReader(protocol, 2**16, loop=asyncio.get_event_loop()) + large_file = 1024**2 * b"x" too_large_file = large_file + b"x" payload.feed_data(too_large_file) payload.feed_eof() @@ -567,19 +577,19 @@ async def test_make_too_big_request(protocol) -> None: async def test_make_too_big_request_adjust_limit(protocol) -> None: - payload = StreamReader(protocol, 2 ** 16, loop=asyncio.get_event_loop()) - large_file = 1024 ** 2 * b"x" + payload = StreamReader(protocol, 2**16, loop=asyncio.get_event_loop()) + large_file = 1024**2 * b"x" too_large_file = large_file + b"x" payload.feed_data(too_large_file) payload.feed_eof() - max_size = 1024 ** 2 + 2 + max_size = 1024**2 + 2 req = make_mocked_request("POST", "/", payload=payload, client_max_size=max_size) txt = await req.read() - assert len(txt) == 1024 ** 2 + 1 + assert len(txt) == 1024**2 + 1 async def test_multipart_formdata(protocol) -> None: - payload = StreamReader(protocol, 2 ** 16, loop=asyncio.get_event_loop()) + payload = StreamReader(protocol, 2**16, loop=asyncio.get_event_loop()) payload.feed_data( b"-----------------------------326931944431359\r\n" b'Content-Disposition: form-data; name="a"\r\n' @@ -604,7 +614,7 @@ async def test_multipart_formdata(protocol) -> None: async def test_multipart_formdata_file(protocol) -> None: # Make sure file uploads work, even without a content type - payload = StreamReader(protocol, 2 ** 16, loop=asyncio.get_event_loop()) + payload = StreamReader(protocol, 2**16, loop=asyncio.get_event_loop()) payload.feed_data( b"-----------------------------326931944431359\r\n" b'Content-Disposition: form-data; name="a_file"; filename="binary"\r\n' @@ -624,17 +634,19 @@ async def test_multipart_formdata_file(protocol) -> None: content = result["a_file"].file.read() assert content == b"\ff" + result["a_file"].file.close() + async def test_make_too_big_request_limit_None(protocol) -> None: - payload = StreamReader(protocol, 2 ** 16, loop=asyncio.get_event_loop()) - large_file = 1024 ** 2 * b"x" + payload = StreamReader(protocol, 2**16, loop=asyncio.get_event_loop()) + large_file = 1024**2 * b"x" too_large_file = large_file + b"x" payload.feed_data(too_large_file) payload.feed_eof() max_size = None req = make_mocked_request("POST", "/", payload=payload, client_max_size=max_size) txt = await req.read() - assert len(txt) == 1024 ** 2 + 1 + assert len(txt) == 1024**2 + 1 def test_remote_peername_tcp() -> None: @@ -742,3 +754,72 @@ async def test_loop_prop() -> None: req = make_mocked_request("GET", "/path", loop=loop) with pytest.warns(DeprecationWarning): assert req.loop is loop + + +@pytest.mark.parametrize( + ["header", "header_attr"], + [ + pytest.param("If-Match", "if_match"), + pytest.param("If-None-Match", "if_none_match"), + ], +) +@pytest.mark.parametrize( + ["header_val", "expected"], + [ + pytest.param( + '"67ab43", W/"54ed21", "7892,dd"', + ( + ETag(is_weak=False, value="67ab43"), + ETag(is_weak=True, value="54ed21"), + ETag(is_weak=False, value="7892,dd"), + ), + ), + pytest.param( + '"bfc1ef-5b2c2730249c88ca92d82d"', + (ETag(is_weak=False, value="bfc1ef-5b2c2730249c88ca92d82d"),), + ), + pytest.param( + '"valid-tag", "also-valid-tag",somegarbage"last-tag"', + ( + ETag(is_weak=False, value="valid-tag"), + ETag(is_weak=False, value="also-valid-tag"), + ), + ), + pytest.param( + '"ascii", "это точно не ascii", "ascii again"', + (ETag(is_weak=False, value="ascii"),), + ), + pytest.param( + "*", + (ETag(is_weak=False, value="*"),), + ), + ], +) +def test_etag_headers(header, header_attr, header_val, expected) -> None: + req = make_mocked_request("GET", "/", headers={header: header_val}) + assert getattr(req, header_attr) == expected + + +@pytest.mark.parametrize( + ["header", "header_attr"], + [ + pytest.param("If-Modified-Since", "if_modified_since"), + pytest.param("If-Unmodified-Since", "if_unmodified_since"), + pytest.param("If-Range", "if_range"), + ], +) +@pytest.mark.parametrize( + ["header_val", "expected"], + [ + pytest.param("xxyyzz", None), + pytest.param("Tue, 08 Oct 4446413 00:56:40 GMT", None), + pytest.param("Tue, 08 Oct 2000 00:56:80 GMT", None), + pytest.param( + "Tue, 08 Oct 2000 00:56:40 GMT", + datetime.datetime(2000, 10, 8, 0, 56, 40, tzinfo=datetime.timezone.utc), + ), + ], +) +def test_datetime_headers(header, header_attr, header_val, expected) -> None: + req = make_mocked_request("GET", "/", headers={header: header_val}) + assert getattr(req, header_attr) == expected diff --git a/tests/test_web_response.py b/tests/test_web_response.py index f847343..c514cba 100644 --- a/tests/test_web_response.py +++ b/tests/test_web_response.py @@ -5,11 +5,14 @@ from concurrent.futures import ThreadPoolExecutor from unittest import mock +import aiosignal import pytest from multidict import CIMultiDict, CIMultiDictProxy from re_assert import Matches -from aiohttp import HttpVersion, HttpVersion10, HttpVersion11, hdrs, signals +from aiohttp import HttpVersion, HttpVersion10, HttpVersion11, hdrs +from aiohttp.helpers import ETag +from aiohttp.http_writer import _serialize_headers from aiohttp.payload import BytesPayload from aiohttp.test_utils import make_mocked_coro, make_mocked_request from aiohttp.web import ContentCoding, Response, StreamResponse, json_response @@ -21,12 +24,12 @@ def make_request( headers=CIMultiDict(), version=HttpVersion11, on_response_prepare=None, - **kwargs + **kwargs, ): app = kwargs.pop("app", None) or mock.Mock() app._debug = False if on_response_prepare is None: - on_response_prepare = signals.Signal(app) + on_response_prepare = aiosignal.Signal(app) app.on_response_prepare = on_response_prepare app.on_response_prepare.freeze() protocol = kwargs.pop("protocol", None) or mock.Mock() @@ -54,12 +57,7 @@ def write(chunk): buf.extend(chunk) async def write_headers(status_line, headers): - headers = ( - status_line - + "\r\n" - + "".join([k + ": " + v + "\r\n" for k, v in headers.items()]) - ) - headers = headers.encode("utf-8") + b"\r\n" + headers = _serialize_headers(status_line, headers) buf.extend(headers) async def write_eof(chunk=b""): @@ -253,6 +251,95 @@ def test_last_modified_reset() -> None: assert resp.last_modified is None +@pytest.mark.parametrize( + ["header_val", "expected"], + [ + pytest.param("xxyyzz", None), + pytest.param("Tue, 08 Oct 4446413 00:56:40 GMT", None), + pytest.param("Tue, 08 Oct 2000 00:56:80 GMT", None), + ], +) +def test_last_modified_string_invalid(header_val, expected) -> None: + resp = StreamResponse(headers={"Last-Modified": header_val}) + assert resp.last_modified == expected + + +def test_etag_initial() -> None: + resp = StreamResponse() + assert resp.etag is None + + +def test_etag_string() -> None: + resp = StreamResponse() + value = "0123-kotik" + resp.etag = value + assert resp.etag == ETag(value=value) + assert resp.headers[hdrs.ETAG] == f'"{value}"' + + +@pytest.mark.parametrize( + ["etag", "expected_header"], + ( + (ETag(value="0123-weak-kotik", is_weak=True), 'W/"0123-weak-kotik"'), + (ETag(value="0123-strong-kotik", is_weak=False), '"0123-strong-kotik"'), + ), +) +def test_etag_class(etag, expected_header) -> None: + resp = StreamResponse() + resp.etag = etag + assert resp.etag == etag + assert resp.headers[hdrs.ETAG] == expected_header + + +def test_etag_any() -> None: + resp = StreamResponse() + resp.etag = "*" + assert resp.etag == ETag(value="*") + assert resp.headers[hdrs.ETAG] == "*" + + +@pytest.mark.parametrize( + "invalid_value", + ( + '"invalid"', + "повинен бути ascii", + ETag(value='"invalid"', is_weak=True), + ETag(value="bad ©®"), + ), +) +def test_etag_invalid_value_set(invalid_value) -> None: + resp = StreamResponse() + with pytest.raises(ValueError, match="is not a valid etag"): + resp.etag = invalid_value + + +@pytest.mark.parametrize( + "header", + ( + "forgotten quotes", + '"∀ x ∉ ascii"', + ), +) +def test_etag_invalid_value_get(header) -> None: + resp = StreamResponse() + resp.headers["ETag"] = header + assert resp.etag is None + + +@pytest.mark.parametrize("invalid", (123, ETag(value=123, is_weak=True))) +def test_etag_invalid_value_class(invalid) -> None: + resp = StreamResponse() + with pytest.raises(ValueError, match="Unsupported etag type"): + resp.etag = invalid + + +def test_etag_reset() -> None: + resp = StreamResponse() + resp.etag = "*" + resp.etag = None + assert resp.etag is None + + async def test_start() -> None: req = make_request("GET", "/") resp = StreamResponse() @@ -820,7 +907,7 @@ async def test_prepare_twice() -> None: async def test_prepare_calls_signal() -> None: app = mock.Mock() sig = make_mocked_coro() - on_response_prepare = signals.Signal(app) + on_response_prepare = aiosignal.Signal(app) on_response_prepare.append(sig) req = make_request("GET", "/", app=app, on_response_prepare=on_response_prepare) resp = StreamResponse() @@ -1184,7 +1271,7 @@ async def _strip_server(req, res): del res.headers["Server"] app = mock.Mock() - sig = signals.Signal(app) + sig = aiosignal.Signal(app) sig.append(_strip_server) req = make_request("GET", "/", on_response_prepare=sig, app=app) diff --git a/tests/test_web_runner.py b/tests/test_web_runner.py index af6df1a..b8a738e 100644 --- a/tests/test_web_runner.py +++ b/tests/test_web_runner.py @@ -1,6 +1,7 @@ import asyncio import platform import signal +import sys from unittest.mock import patch import pytest @@ -104,21 +105,17 @@ def test_non_app() -> None: web.AppRunner(object()) -@pytest.mark.skipif( - platform.system() == "Windows", reason="Unix socket support is required" -) -async def test_addresses(make_runner, shorttmpdir) -> None: +async def test_addresses(make_runner, unix_sockname) -> None: _sock = get_unused_port_socket("127.0.0.1") runner = make_runner() await runner.setup() tcp = web.SockSite(runner, _sock) await tcp.start() - path = str(shorttmpdir / "tmp.sock") - unix = web.UnixSite(runner, path) + unix = web.UnixSite(runner, unix_sockname) await unix.start() actual_addrs = runner.addresses expected_host, expected_post = _sock.getsockname()[:2] - assert actual_addrs == [(expected_host, expected_post), path] + assert actual_addrs == [(expected_host, expected_post), unix_sockname] @pytest.mark.skipif( @@ -162,3 +159,28 @@ async def mock_create_server(*args, **kwargs): assert server is runner.server assert host is None assert port == 8080 + + +@pytest.mark.skipif(sys.version_info < (3, 7), reason="Requires asyncio.run()") +def test_run_after_asyncio_run() -> None: + async def nothing(): + pass + + def spy(): + spy.called = True + + spy.called = False + + async def shutdown(): + spy() + raise web.GracefulExit() + + # asyncio.run() creates a new loop and closes it. + asyncio.run(nothing()) + + app = web.Application() + # create_task() will delay the function until app is run. + app.on_startup.append(lambda a: asyncio.create_task(shutdown())) + + web.run_app(app) + assert spy.called, "run_app() should work after asyncio.run()." diff --git a/tests/test_web_sendfile.py b/tests/test_web_sendfile.py index 4835354..d7e078a 100644 --- a/tests/test_web_sendfile.py +++ b/tests/test_web_sendfile.py @@ -14,7 +14,8 @@ def test_using_gzip_if_header_present_and_file_available(loop) -> None: gz_filepath.open = mock.mock_open() gz_filepath.is_file.return_value = True gz_filepath.stat.return_value = mock.MagicMock() - gz_filepath.stat.st_size = 1024 + gz_filepath.stat.return_value.st_size = 1024 + gz_filepath.stat.return_value.st_mtime_ns = 1603733507222449291 filepath = mock.Mock() filepath.name = "logo.png" @@ -22,7 +23,7 @@ def test_using_gzip_if_header_present_and_file_available(loop) -> None: filepath.with_name.return_value = gz_filepath file_sender = FileResponse(filepath) - file_sender._sendfile = make_mocked_coro(None) + file_sender._sendfile = make_mocked_coro(None) # type: ignore[assignment] loop.run_until_complete(file_sender.prepare(request)) @@ -42,10 +43,11 @@ def test_gzip_if_header_not_present_and_file_available(loop) -> None: filepath.open = mock.mock_open() filepath.with_name.return_value = gz_filepath filepath.stat.return_value = mock.MagicMock() - filepath.stat.st_size = 1024 + filepath.stat.return_value.st_size = 1024 + filepath.stat.return_value.st_mtime_ns = 1603733507222449291 file_sender = FileResponse(filepath) - file_sender._sendfile = make_mocked_coro(None) + file_sender._sendfile = make_mocked_coro(None) # type: ignore[assignment] loop.run_until_complete(file_sender.prepare(request)) @@ -65,10 +67,11 @@ def test_gzip_if_header_not_present_and_file_not_available(loop) -> None: filepath.open = mock.mock_open() filepath.with_name.return_value = gz_filepath filepath.stat.return_value = mock.MagicMock() - filepath.stat.st_size = 1024 + filepath.stat.return_value.st_size = 1024 + filepath.stat.return_value.st_mtime_ns = 1603733507222449291 file_sender = FileResponse(filepath) - file_sender._sendfile = make_mocked_coro(None) + file_sender._sendfile = make_mocked_coro(None) # type: ignore[assignment] loop.run_until_complete(file_sender.prepare(request)) @@ -90,10 +93,11 @@ def test_gzip_if_header_present_and_file_not_available(loop) -> None: filepath.open = mock.mock_open() filepath.with_name.return_value = gz_filepath filepath.stat.return_value = mock.MagicMock() - filepath.stat.st_size = 1024 + filepath.stat.return_value.st_size = 1024 + filepath.stat.return_value.st_mtime_ns = 1603733507222449291 file_sender = FileResponse(filepath) - file_sender._sendfile = make_mocked_coro(None) + file_sender._sendfile = make_mocked_coro(None) # type: ignore[assignment] loop.run_until_complete(file_sender.prepare(request)) @@ -108,10 +112,11 @@ def test_status_controlled_by_user(loop) -> None: filepath.name = "logo.png" filepath.open = mock.mock_open() filepath.stat.return_value = mock.MagicMock() - filepath.stat.st_size = 1024 + filepath.stat.return_value.st_size = 1024 + filepath.stat.return_value.st_mtime_ns = 1603733507222449291 file_sender = FileResponse(filepath, status=203) - file_sender._sendfile = make_mocked_coro(None) + file_sender._sendfile = make_mocked_coro(None) # type: ignore[assignment] loop.run_until_complete(file_sender.prepare(request)) diff --git a/tests/test_web_sendfile_functional.py b/tests/test_web_sendfile_functional.py index 60a542b..3f4f133 100644 --- a/tests/test_web_sendfile_functional.py +++ b/tests/test_web_sendfile_functional.py @@ -3,6 +3,7 @@ import pathlib import socket import zlib +from typing import Any, Iterable import pytest @@ -24,6 +25,17 @@ def sendfile(*args, **kwargs): return loop +@pytest.fixture +def loop_with_mocked_native_sendfile(loop: Any): + def sendfile(transport, fobj, offset, count): + if count == 0: + raise ValueError("count must be a positive integer (got 0)") + raise NotImplementedError + + loop.sendfile = sendfile + return loop + + @pytest.fixture(params=["sendfile", "no_sendfile"], ids=["sendfile", "no_sendfile"]) def sender(request, loop_without_sendfile): def maker(*args, **kwargs): @@ -35,15 +47,24 @@ def maker(*args, **kwargs): return maker -async def test_static_file_ok(aiohttp_client, sender) -> None: - filepath = pathlib.Path(__file__).parent / "data.unknown_mime_type" +@pytest.fixture +def app_with_static_route(sender): + filename = "data.unknown_mime_type" + filepath = pathlib.Path(__file__).parent / filename async def handler(request): return sender(filepath) app = web.Application() app.router.add_get("/", handler) - client = await aiohttp_client(app) + return app + + +async def test_static_file_ok( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) resp = await client.get("/") assert resp.status == 200 @@ -52,6 +73,7 @@ async def handler(request): assert "application/octet-stream" == resp.headers["Content-Type"] assert resp.headers.get("Content-Encoding") is None await resp.release() + await client.close() async def test_zero_bytes_file_ok(aiohttp_client, sender) -> None: @@ -64,25 +86,56 @@ async def handler(request): app.router.add_get("/", handler) client = await aiohttp_client(app) - resp = await client.get("/") - assert resp.status == 200 - txt = await resp.text() - assert "" == txt.rstrip() - assert "application/octet-stream" == resp.headers["Content-Type"] - assert resp.headers.get("Content-Encoding") is None - await resp.release() + # Run the request multiple times to ensure + # that an untrapped exception is not hidden + # because there is no read of the zero bytes + for i in range(2): + resp = await client.get("/") + assert resp.status == 200 + txt = await resp.text() + assert "" == txt.rstrip() + assert "application/octet-stream" == resp.headers["Content-Type"] + assert resp.headers.get("Content-Encoding") is None + await resp.release() + await client.close() -async def test_static_file_ok_string_path(aiohttp_client, sender) -> None: - filepath = pathlib.Path(__file__).parent / "data.unknown_mime_type" + +async def test_zero_bytes_file_mocked_native_sendfile( + aiohttp_client: Any, loop_with_mocked_native_sendfile: Any +) -> None: + filepath = pathlib.Path(__file__).parent / "data.zero_bytes" async def handler(request): - return sender(str(filepath)) + asyncio.set_event_loop(loop_with_mocked_native_sendfile) + return web.FileResponse(filepath) app = web.Application() app.router.add_get("/", handler) client = await aiohttp_client(app) + # Run the request multiple times to ensure + # that an untrapped exception is not hidden + # because there is no read of the zero bytes + for i in range(2): + resp = await client.get("/") + assert resp.status == 200 + txt = await resp.text() + assert "" == txt.rstrip() + assert "application/octet-stream" == resp.headers["Content-Type"] + assert resp.headers.get("Content-Encoding") is None + assert resp.headers.get("Content-Length") == "0" + await resp.release() + + await client.close() + + +async def test_static_file_ok_string_path( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) + resp = await client.get("/") assert resp.status == 200 txt = await resp.text() @@ -90,6 +143,7 @@ async def handler(request): assert "application/octet-stream" == resp.headers["Content-Type"] assert resp.headers.get("Content-Encoding") is None await resp.release() + await client.close() async def test_static_file_not_exists(aiohttp_client) -> None: @@ -100,6 +154,7 @@ async def test_static_file_not_exists(aiohttp_client) -> None: resp = await client.get("/fake") assert resp.status == 404 await resp.release() + await client.close() async def test_static_file_name_too_long(aiohttp_client) -> None: @@ -110,6 +165,7 @@ async def test_static_file_name_too_long(aiohttp_client) -> None: resp = await client.get("/x*500") assert resp.status == 404 await resp.release() + await client.close() async def test_static_file_upper_directory(aiohttp_client) -> None: @@ -120,6 +176,7 @@ async def test_static_file_upper_directory(aiohttp_client) -> None: resp = await client.get("/../../") assert resp.status == 404 await resp.release() + await client.close() async def test_static_file_with_content_type(aiohttp_client, sender) -> None: @@ -141,6 +198,8 @@ async def handler(request): assert resp.headers["Content-Type"] == "image/jpeg" assert resp.headers.get("Content-Encoding") is None resp.close() + await resp.release() + await client.close() async def test_static_file_custom_content_type(aiohttp_client, sender) -> None: @@ -164,6 +223,8 @@ async def handler(request): assert resp.headers["Content-Type"] == "application/pdf" assert resp.headers.get("Content-Encoding") is None resp.close() + await resp.release() + await client.close() async def test_static_file_custom_content_type_compress(aiohttp_client, sender): @@ -185,6 +246,8 @@ async def handler(request): assert resp.headers["Content-Type"] == "application/pdf" assert resp.headers.get("Content-Encoding") == "gzip" resp.close() + await resp.release() + await client.close() async def test_static_file_with_content_encoding(aiohttp_client, sender) -> None: @@ -207,42 +270,39 @@ async def handler(request): assert "gzip" == encoding resp.close() + await resp.release() + await client.close() -async def test_static_file_if_modified_since(aiohttp_client, sender) -> None: - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_modified_since( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) resp = await client.get("/") assert 200 == resp.status lastmod = resp.headers.get("Last-Modified") assert lastmod is not None resp.close() + await resp.release() resp = await client.get("/", headers={"If-Modified-Since": lastmod}) body = await resp.read() assert 304 == resp.status assert resp.headers.get("Content-Length") is None + assert resp.headers.get("Last-Modified") == lastmod assert b"" == body resp.close() + await resp.release() + await client.close() -async def test_static_file_if_modified_since_past_date(aiohttp_client, sender) -> None: - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_modified_since_past_date( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "Mon, 1 Jan 1990 01:01:01 GMT" @@ -250,17 +310,15 @@ async def handler(request): assert 200 == resp.status resp.close() + await resp.release() + await client.close() -async def test_static_file_if_modified_since_invalid_date(aiohttp_client, sender): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_modified_since_invalid_date( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "not a valid HTTP-date" @@ -268,17 +326,15 @@ async def handler(request): assert 200 == resp.status resp.close() + await resp.release() + await client.close() -async def test_static_file_if_modified_since_future_date(aiohttp_client, sender): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_modified_since_future_date( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "Fri, 31 Dec 9999 23:59:59 GMT" @@ -286,9 +342,131 @@ async def handler(request): body = await resp.read() assert 304 == resp.status assert resp.headers.get("Content-Length") is None + assert resp.headers.get("Last-Modified") assert b"" == body resp.close() + await resp.release() + await client.close() + + +@pytest.mark.parametrize("if_unmodified_since", ("", "Fri, 31 Dec 0000 23:59:59 GMT")) +async def test_static_file_if_match( + aiohttp_client: Any, + app_with_static_route: web.Application, + if_unmodified_since: str, +) -> None: + client = await aiohttp_client(app_with_static_route) + + resp = await client.get("/") + assert 200 == resp.status + original_etag = resp.headers.get("ETag") + + assert original_etag is not None + resp.close() + await resp.release() + + headers = {"If-Match": original_etag, "If-Unmodified-Since": if_unmodified_since} + resp = await client.head("/", headers=headers) + body = await resp.read() + assert 200 == resp.status + assert resp.headers.get("ETag") + assert resp.headers.get("Last-Modified") + assert b"" == body + resp.close() + await resp.release() + + await client.close() + + +@pytest.mark.parametrize("if_unmodified_since", ("", "Fri, 31 Dec 0000 23:59:59 GMT")) +@pytest.mark.parametrize( + "etags,expected_status", + [ + (("*",), 200), + (('"example-tag"', 'W/"weak-tag"'), 412), + ], +) +async def test_static_file_if_match_custom_tags( + aiohttp_client: Any, + app_with_static_route: web.Application, + if_unmodified_since: str, + etags: Iterable[str], + expected_status: Iterable[int], +) -> None: + client = await aiohttp_client(app_with_static_route) + + if_match = ", ".join(etags) + headers = {"If-Match": if_match, "If-Unmodified-Since": if_unmodified_since} + resp = await client.head("/", headers=headers) + body = await resp.read() + assert expected_status == resp.status + assert b"" == body + resp.close() + + await resp.release() + await client.close() + + +@pytest.mark.parametrize("if_modified_since", ("", "Fri, 31 Dec 9999 23:59:59 GMT")) +@pytest.mark.parametrize( + "additional_etags", + ( + (), + ('"some-other-strong-etag"', 'W/"weak-tag"', "invalid-tag"), + ), +) +async def test_static_file_if_none_match( + aiohttp_client: Any, + app_with_static_route: web.Application, + if_modified_since: str, + additional_etags: Iterable[str], +) -> None: + client = await aiohttp_client(app_with_static_route) + + resp = await client.get("/") + assert 200 == resp.status + original_etag = resp.headers.get("ETag") + + assert resp.headers.get("Last-Modified") is not None + assert original_etag is not None + resp.close() + await resp.release() + + etag = ",".join((original_etag, *additional_etags)) + + resp = await client.get( + "/", headers={"If-None-Match": etag, "If-Modified-Since": if_modified_since} + ) + body = await resp.read() + assert 304 == resp.status + assert resp.headers.get("Content-Length") is None + assert resp.headers.get("ETag") == original_etag + assert b"" == body + resp.close() + await resp.release() + + await client.close() + + +async def test_static_file_if_none_match_star( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) + + resp = await client.head("/", headers={"If-None-Match": "*"}) + body = await resp.read() + assert 304 == resp.status + assert resp.headers.get("Content-Length") is None + assert resp.headers.get("ETag") + assert resp.headers.get("Last-Modified") + assert b"" == body + resp.close() + + await resp.release() + await client.close() + @pytest.mark.skipif(not ssl, reason="ssl not supported") async def test_static_file_ssl( @@ -313,6 +491,9 @@ async def test_static_file_ssl( assert "application/octet-stream" == ct assert resp.headers.get("CONTENT-ENCODING") is None + await resp.release() + await client.close() + async def test_static_file_directory_traversal_attack(aiohttp_client) -> None: dirname = os.path.dirname(__file__) @@ -325,14 +506,19 @@ async def test_static_file_directory_traversal_attack(aiohttp_client) -> None: resp = await client.get("/static/" + relpath) assert 404 == resp.status + await resp.release() url_relpath2 = "/static/dir/../" + relpath resp = await client.get(url_relpath2) assert 404 == resp.status + await resp.release() url_abspath = "/static/" + os.path.abspath(os.path.join(dirname, relpath)) resp = await client.get(url_abspath) assert 403 == resp.status + await resp.release() + + await client.close() def test_static_route_path_existence_check() -> None: @@ -376,9 +562,12 @@ async def test_static_file_huge(aiohttp_client, tmpdir) -> None: cnt += 1 f.close() + await resp.release() + await client.close() -async def test_static_file_range(aiohttp_client, sender) -> None: - filepath = pathlib.Path(__file__).parent.parent / "LICENSE.txt" + +async def test_static_file_range(aiohttp_client: Any, sender: Any) -> None: + filepath = pathlib.Path(__file__).parent / "sample.txt" filesize = filepath.stat().st_size @@ -428,8 +617,14 @@ async def handler(request): responses[1].close() responses[2].close() + await asyncio.gather( + *(resp.release() for resp in responses), + ) + assert content == b"".join(body) + await client.close() + async def test_static_file_range_end_bigger_than_size(aiohttp_client, sender): filepath = pathlib.Path(__file__).parent / "aiohttp.png" @@ -461,6 +656,9 @@ async def handler(request): assert content[54000:] == body + await response.release() + await client.close() + async def test_static_file_range_beyond_eof(aiohttp_client, sender) -> None: filepath = pathlib.Path(__file__).parent / "aiohttp.png" @@ -479,6 +677,9 @@ async def handler(request): "failed 'bytes=1000000-1200000': %s" % response.reason ) + await response.release() + await client.close() + async def test_static_file_range_tail(aiohttp_client, sender) -> None: filepath = pathlib.Path(__file__).parent / "aiohttp.png" @@ -501,6 +702,7 @@ async def handler(request): ), "failed: Content-Range Error" body4 = await resp.read() resp.close() + await resp.release() assert content[-500:] == body4 # Ensure out-of-range tails could be handled @@ -509,6 +711,9 @@ async def handler(request): assert ( resp2.headers["Content-Range"] == "bytes 0-54996/54997" ), "failed: Content-Range Error" + await resp2.release() + + await client.close() async def test_static_file_invalid_range(aiohttp_client, sender) -> None: @@ -525,43 +730,46 @@ async def handler(request): resp = await client.get("/", headers={"Range": "blocks=0-10"}) assert resp.status == 416, "Range must be in bytes" resp.close() + await resp.release() # start > end resp = await client.get("/", headers={"Range": "bytes=100-0"}) assert resp.status == 416, "Range start can't be greater than end" resp.close() + await resp.release() # start > end resp = await client.get("/", headers={"Range": "bytes=10-9"}) assert resp.status == 416, "Range start can't be greater than end" resp.close() + await resp.release() # non-number range resp = await client.get("/", headers={"Range": "bytes=a-f"}) assert resp.status == 416, "Range must be integers" resp.close() + await resp.release() # double dash range resp = await client.get("/", headers={"Range": "bytes=0--10"}) assert resp.status == 416, "double dash in range" resp.close() + await resp.release() # no range resp = await client.get("/", headers={"Range": "bytes=-"}) assert resp.status == 416, "no range given" resp.close() + await resp.release() + await client.close() -async def test_static_file_if_unmodified_since_past_with_range(aiohttp_client, sender): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_unmodified_since_past_with_range( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "Mon, 1 Jan 1990 01:01:01 GMT" @@ -570,20 +778,16 @@ async def handler(request): ) assert 412 == resp.status resp.close() + await resp.release() + await client.close() -async def test_static_file_if_unmodified_since_future_with_range( - aiohttp_client, sender -): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_unmodified_since_future_with_range( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "Fri, 31 Dec 9999 23:59:59 GMT" @@ -594,18 +798,16 @@ async def handler(request): assert resp.headers["Content-Range"] == "bytes 2-12/13" assert resp.headers["Content-Length"] == "11" resp.close() + await resp.release() + await client.close() -async def test_static_file_if_range_past_with_range(aiohttp_client, sender): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_range_past_with_range( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "Mon, 1 Jan 1990 01:01:01 GMT" @@ -613,18 +815,15 @@ async def handler(request): assert 200 == resp.status assert resp.headers["Content-Length"] == "13" resp.close() + await resp.release() + await client.close() -async def test_static_file_if_range_future_with_range(aiohttp_client, sender): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_range_future_with_range( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "Fri, 31 Dec 9999 23:59:59 GMT" @@ -634,19 +833,15 @@ async def handler(request): assert resp.headers["Content-Length"] == "11" resp.close() + await resp.release() + await client.close() -async def test_static_file_if_unmodified_since_past_without_range( - aiohttp_client, sender -): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_unmodified_since_past_without_range( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "Mon, 1 Jan 1990 01:01:01 GMT" @@ -654,19 +849,15 @@ async def handler(request): assert 412 == resp.status resp.close() + await resp.release() + await client.close() -async def test_static_file_if_unmodified_since_future_without_range( - aiohttp_client, sender -): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_unmodified_since_future_without_range( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "Fri, 31 Dec 9999 23:59:59 GMT" @@ -675,17 +866,15 @@ async def handler(request): assert resp.headers["Content-Length"] == "13" resp.close() + await resp.release() + await client.close() -async def test_static_file_if_range_past_without_range(aiohttp_client, sender): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_range_past_without_range( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "Mon, 1 Jan 1990 01:01:01 GMT" @@ -694,17 +883,15 @@ async def handler(request): assert resp.headers["Content-Length"] == "13" resp.close() + await resp.release() + await client.close() -async def test_static_file_if_range_future_without_range(aiohttp_client, sender): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - async def handler(request): - return sender(filepath) - - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_range_future_without_range( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "Fri, 31 Dec 9999 23:59:59 GMT" @@ -713,17 +900,15 @@ async def handler(request): assert resp.headers["Content-Length"] == "13" resp.close() + await resp.release() + await client.close() -async def test_static_file_if_unmodified_since_invalid_date(aiohttp_client, sender): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_unmodified_since_invalid_date( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "not a valid HTTP-date" @@ -731,23 +916,24 @@ async def handler(request): assert 200 == resp.status resp.close() + await resp.release() + await client.close() -async def test_static_file_if_range_invalid_date(aiohttp_client, sender): - filename = "data.unknown_mime_type" - filepath = pathlib.Path(__file__).parent / filename - - async def handler(request): - return sender(filepath) - app = web.Application() - app.router.add_get("/", handler) - client = await aiohttp_client(app) +async def test_static_file_if_range_invalid_date( + aiohttp_client: Any, + app_with_static_route: web.Application, +) -> None: + client = await aiohttp_client(app_with_static_route) lastmod = "not a valid HTTP-date" resp = await client.get("/", headers={"If-Range": lastmod}) assert 200 == resp.status resp.close() + await resp.release() + + await client.close() async def test_static_file_compression(aiohttp_client, sender) -> None: @@ -771,6 +957,8 @@ async def handler(request): assert resp.headers.get("Content-Encoding") == "deflate" await resp.release() + await client.close() + async def test_static_file_huge_cancel(aiohttp_client, tmpdir) -> None: filename = "huge_data.unknown_mime_type" @@ -809,6 +997,9 @@ async def handler(request): break assert len(data) < 1024 * 1024 * 20 + await resp.release() + await client.close() + async def test_static_file_huge_error(aiohttp_client, tmpdir) -> None: filename = "huge_data.unknown_mime_type" @@ -835,3 +1026,6 @@ async def handler(request): assert resp.status == 200 # raise an exception on server side resp.close() + + await resp.release() + await client.close() diff --git a/tests/test_web_server.py b/tests/test_web_server.py index b02787b..627f0f9 100644 --- a/tests/test_web_server.py +++ b/tests/test_web_server.py @@ -3,7 +3,7 @@ import pytest -from aiohttp import client, web +from aiohttp import client, helpers, web async def test_simple_server(aiohttp_raw_server, aiohttp_client) -> None: @@ -18,6 +18,28 @@ async def handler(request): assert txt == "/path/to" +@pytest.mark.xfail( + not helpers.NO_EXTENSIONS, + raises=client.ServerDisconnectedError, + reason="The behavior of C-extensions differs from pure-Python: " + "https://github.com/aio-libs/aiohttp/issues/6446", +) +async def test_unsupported_upgrade(aiohttp_raw_server, aiohttp_client) -> None: + # don't fail if a client probes for an unsupported protocol upgrade + # https://github.com/aio-libs/aiohttp/issues/6446#issuecomment-999032039 + async def handler(request: web.Request): + return web.Response(body=await request.read()) + + upgrade_headers = {"Connection": "Upgrade", "Upgrade": "unsupported_proto"} + server = await aiohttp_raw_server(handler) + cli = await aiohttp_client(server) + test_data = b"Test" + resp = await cli.post("/path/to", data=test_data, headers=upgrade_headers) + assert resp.status == 200 + data = await resp.read() + assert data == test_data + + async def test_raw_server_not_http_exception(aiohttp_raw_server, aiohttp_client): exc = RuntimeError("custom runtime error") diff --git a/tests/test_web_urldispatcher.py b/tests/test_web_urldispatcher.py index 0ba2e7c..f24f451 100644 --- a/tests/test_web_urldispatcher.py +++ b/tests/test_web_urldispatcher.py @@ -5,10 +5,12 @@ import shutil import sys import tempfile +from typing import Any from unittest import mock from unittest.mock import MagicMock import pytest +import yarl from aiohttp import abc, web from aiohttp.web_urldispatcher import SystemRoute @@ -18,6 +20,7 @@ def tmp_dir_path(request): """ Give a path for a temporary directory + The directory is destroyed at the end of the test. """ # Temporary directory. @@ -152,6 +155,7 @@ async def test_access_to_the_file_with_spaces( r = await client.get(url) assert r.status == 200 assert (await r.text()) == data + await r.release() async def test_access_non_existing_resource(tmp_dir_path, aiohttp_client) -> None: @@ -192,10 +196,7 @@ async def handler(request): async def test_handler_metadata_persistence() -> None: - """ - Tests accessing metadata of a handler after registering it on the app - router. - """ + """Tests accessing metadata of a handler after registering it on the app router.""" app = web.Application() async def async_handler(request): @@ -515,3 +516,50 @@ async def test_static_absolute_url(aiohttp_client, tmpdir) -> None: client = await aiohttp_client(app) resp = await client.get("/static/" + str(fname)) assert resp.status == 403 + + +async def test_for_issue_5250(aiohttp_client: Any, tmp_path: Any) -> None: + app = web.Application() + app.router.add_static("/foo", tmp_path) + + async def get_foobar(request): + return web.Response(body="success!") + + app.router.add_get("/foobar", get_foobar) + + client = await aiohttp_client(app) + async with await client.get("/foobar") as resp: + assert resp.status == 200 + assert (await resp.text()) == "success!" + + +@pytest.mark.xfail( + raises=AssertionError, + reason="Regression in v3.7: https://github.com/aio-libs/aiohttp/issues/5621", +) +@pytest.mark.parametrize( + ("route_definition", "urlencoded_path", "expected_http_resp_status"), + ( + ("/467,802,24834/hello", "/467%2C802%2C24834/hello", 200), + ("/{user_ids:([0-9]+)(,([0-9]+))*}/hello", "/467%2C802%2C24834/hello", 200), + ("/1%2C3/hello", "/1%2C3/hello", 404), + ), + ids=("urldecoded_route", "urldecoded_route_with_regex", "urlencoded_route"), +) +async def test_decoded_url_match( + aiohttp_client, + route_definition, + urlencoded_path, + expected_http_resp_status, +) -> None: + app = web.Application() + + async def handler(_): + return web.Response() + + app.router.add_get(route_definition, handler) + client = await aiohttp_client(app) + + r = await client.get(yarl.URL(urlencoded_path, encoded=True)) + assert r.status == expected_http_resp_status + await r.release() diff --git a/tests/test_web_websocket.py b/tests/test_web_websocket.py index 0a79113..ee8ae2d 100644 --- a/tests/test_web_websocket.py +++ b/tests/test_web_websocket.py @@ -1,10 +1,11 @@ import asyncio from unittest import mock +import aiosignal import pytest from multidict import CIMultiDict -from aiohttp import WSMessage, WSMsgType, signals +from aiohttp import WSMessage, WSMsgType from aiohttp.streams import EofStream from aiohttp.test_utils import make_mocked_coro, make_mocked_request from aiohttp.web import HTTPBadRequest, WebSocketResponse @@ -16,7 +17,7 @@ def app(loop): ret = mock.Mock() ret.loop = loop ret._debug = False - ret.on_response_prepare = signals.Signal(ret) + ret.on_response_prepare = aiosignal.Signal(ret) ret.on_response_prepare.freeze() return ret diff --git a/tests/test_web_websocket_functional.py b/tests/test_web_websocket_functional.py index e5ea2a5..da855a4 100644 --- a/tests/test_web_websocket_functional.py +++ b/tests/test_web_websocket_functional.py @@ -6,7 +6,7 @@ import aiohttp from aiohttp import web -from aiohttp.http import WSMsgType +from aiohttp.http import WSCloseCode, WSMsgType async def test_websocket_can_prepare(loop, aiohttp_client) -> None: @@ -153,11 +153,11 @@ async def handler(request): msg = await ws.receive() assert msg.type == aiohttp.WSMsgType.CLOSE - assert msg.data == 1000 + assert msg.data == WSCloseCode.OK assert msg.extra == "" assert ws.closed - assert ws.close_code == 1000 + assert ws.close_code == WSCloseCode.OK await closed @@ -188,11 +188,11 @@ async def handler(request): msg = await ws.receive() assert msg.type == aiohttp.WSMsgType.CLOSE - assert msg.data == 1000 + assert msg.data == WSCloseCode.OK assert msg.extra == "" assert ws.closed - assert ws.close_code == 1000 + assert ws.close_code == WSCloseCode.OK await closed @@ -223,7 +223,7 @@ async def handler(request): msg = await ws.receive() assert msg.type == aiohttp.WSMsgType.CLOSE - assert msg.data == 1000 + assert msg.data == WSCloseCode.OK assert msg.extra == "" await ws.close() @@ -244,7 +244,7 @@ async def handler(request): begin = ws._loop.time() assert await ws.close() elapsed = ws._loop.time() - begin - assert ws.close_code == 1006 + assert ws.close_code == WSCloseCode.ABNORMAL_CLOSURE assert isinstance(ws.exception(), asyncio.TimeoutError) aborted.set_result(1) return ws @@ -300,7 +300,7 @@ async def handler(request): ws = await client.ws_connect("/", autoclose=False, protocols=("eggs", "bar")) - await srv_ws.close(code=1007) + await srv_ws.close(code=WSCloseCode.INVALID_TEXT) msg = await ws.receive() assert msg.type == WSMsgType.CLOSE @@ -321,7 +321,7 @@ async def handler(request): msg = await ws.receive() assert msg.type == WSMsgType.CLOSE - assert msg.data == 1000 + assert msg.data == WSCloseCode.OK assert msg.extra == "exit message" closed.set_result(None) return ws @@ -336,7 +336,7 @@ async def handler(request): msg = await ws.receive() assert msg.type == WSMsgType.PONG - await ws.close(code=1000, message="exit message") + await ws.close(code=WSCloseCode.OK, message="exit message") await closed @@ -407,7 +407,7 @@ async def handler(request): msg = await ws.receive() assert msg.type == WSMsgType.CLOSE - assert msg.data == 1000 + assert msg.data == WSCloseCode.OK assert msg.extra == "exit message" closed.set_result(None) return ws @@ -423,7 +423,7 @@ async def handler(request): assert msg.type == WSMsgType.PONG assert msg.data == b"data" - await ws.close(code=1000, message="exit message") + await ws.close(code=WSCloseCode.OK, message="exit message") await closed @@ -511,7 +511,7 @@ async def handler(request): assert not ws.closed await ws.close() assert ws.closed - assert ws.close_code == 1007 + assert ws.close_code == WSCloseCode.INVALID_TEXT msg = await ws.receive() assert msg.type == WSMsgType.CLOSED @@ -525,7 +525,7 @@ async def handler(request): ws = await client.ws_connect("/", autoclose=False, protocols=("eggs", "bar")) - await ws.close(code=1007) + await ws.close(code=WSCloseCode.INVALID_TEXT) msg = await ws.receive() assert msg.type == WSMsgType.CLOSED await closed diff --git a/tests/test_worker.py b/tests/test_worker.py index 64cff82..68c28c8 100644 --- a/tests/test_worker.py +++ b/tests/test_worker.py @@ -212,8 +212,8 @@ async def test__run_ok_parent_changed(worker, loop, aiohttp_unused_port) -> None worker.sockets = [sock] worker.log = mock.Mock() worker.loop = loop + worker.max_requests = 0 worker.cfg.access_log_format = ACCEPTABLE_LOG_FORMAT - worker.cfg.max_requests = 0 worker.cfg.is_ssl = False await worker._run() @@ -233,8 +233,8 @@ async def test__run_exc(worker, loop, aiohttp_unused_port) -> None: worker.sockets = [sock] worker.log = mock.Mock() worker.loop = loop + worker.max_requests = 0 worker.cfg.access_log_format = ACCEPTABLE_LOG_FORMAT - worker.cfg.max_requests = 0 worker.cfg.is_ssl = False def raiser(): @@ -252,7 +252,7 @@ def test__create_ssl_context_without_certs_and_ciphers( worker, tls_certificate_pem_path, ) -> None: - worker.cfg.ssl_version = ssl.PROTOCOL_SSLv23 + worker.cfg.ssl_version = ssl.PROTOCOL_TLS_CLIENT worker.cfg.cert_reqs = ssl.CERT_OPTIONAL worker.cfg.certfile = tls_certificate_pem_path worker.cfg.keyfile = tls_certificate_pem_path @@ -266,7 +266,7 @@ def test__create_ssl_context_with_ciphers( worker, tls_certificate_pem_path, ) -> None: - worker.cfg.ssl_version = ssl.PROTOCOL_SSLv23 + worker.cfg.ssl_version = ssl.PROTOCOL_TLS_CLIENT worker.cfg.cert_reqs = ssl.CERT_OPTIONAL worker.cfg.certfile = tls_certificate_pem_path worker.cfg.keyfile = tls_certificate_pem_path @@ -281,7 +281,7 @@ def test__create_ssl_context_with_ca_certs( tls_ca_certificate_pem_path, tls_certificate_pem_path, ) -> None: - worker.cfg.ssl_version = ssl.PROTOCOL_SSLv23 + worker.cfg.ssl_version = ssl.PROTOCOL_TLS_CLIENT worker.cfg.cert_reqs = ssl.CERT_OPTIONAL worker.cfg.certfile = tls_certificate_pem_path worker.cfg.keyfile = tls_certificate_pem_path diff --git a/vendor/README.rst b/vendor/README.rst new file mode 100644 index 0000000..6156f37 --- /dev/null +++ b/vendor/README.rst @@ -0,0 +1,23 @@ +LLHTTP +------ + +When building aiohttp from source, there is a pure Python parser used by default. +For better performance, you may want to build the higher performance C parser. + +To build this ``llhttp`` parser, first get/update the submodules (to update to a +newer release, add ``--remote``):: + + git submodule update --init --recursive + +Then build ``llhttp``:: + + cd vendor/llhttp/ + npm install + make + +Then build our parser:: + + cd - + make cythonize + +Then you can build or install it with ``python -m build`` or ``pip install -e .`` diff --git a/vendor/http-parser/.gitignore b/vendor/http-parser/.gitignore deleted file mode 100644 index c122e76..0000000 --- a/vendor/http-parser/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -/out/ -core -tags -*.o -test -test_g -test_fast -bench -url_parser -parsertrace -parsertrace_g -*.mk -*.Makefile -*.so.* -*.exe.* -*.exe -*.a - - -# Visual Studio uglies -*.suo -*.sln -*.vcxproj -*.vcxproj.filters -*.vcxproj.user -*.opensdf -*.ncrunchsolution* -*.sdf -*.vsp -*.psess diff --git a/vendor/http-parser/.mailmap b/vendor/http-parser/.mailmap deleted file mode 100644 index 278d141..0000000 --- a/vendor/http-parser/.mailmap +++ /dev/null @@ -1,8 +0,0 @@ -# update AUTHORS with: -# git log --all --reverse --format='%aN <%aE>' | perl -ne 'BEGIN{print "# Authors ordered by first contribution.\n"} print unless $h{$_}; $h{$_} = 1' > AUTHORS -Ryan Dahl -Salman Haq -Simon Zimmermann -Thomas LE ROUX LE ROUX Thomas -Thomas LE ROUX Thomas LE ROUX -Fedor Indutny diff --git a/vendor/http-parser/.travis.yml b/vendor/http-parser/.travis.yml deleted file mode 100644 index 4b038e6..0000000 --- a/vendor/http-parser/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -language: c - -compiler: - - clang - - gcc - -script: - - "make" - -notifications: - email: false - irc: - - "irc.freenode.net#node-ci" diff --git a/vendor/http-parser/AUTHORS b/vendor/http-parser/AUTHORS deleted file mode 100644 index 5323b68..0000000 --- a/vendor/http-parser/AUTHORS +++ /dev/null @@ -1,68 +0,0 @@ -# Authors ordered by first contribution. -Ryan Dahl -Jeremy Hinegardner -Sergey Shepelev -Joe Damato -tomika -Phoenix Sol -Cliff Frey -Ewen Cheslack-Postava -Santiago Gala -Tim Becker -Jeff Terrace -Ben Noordhuis -Nathan Rajlich -Mark Nottingham -Aman Gupta -Tim Becker -Sean Cunningham -Peter Griess -Salman Haq -Cliff Frey -Jon Kolb -Fouad Mardini -Paul Querna -Felix Geisendörfer -koichik -Andre Caron -Ivo Raisr -James McLaughlin -David Gwynne -Thomas LE ROUX -Randy Rizun -Andre Louis Caron -Simon Zimmermann -Erik Dubbelboer -Martell Malone -Bertrand Paquet -BogDan Vatra -Peter Faiman -Corey Richardson -Tóth Tamás -Cam Swords -Chris Dickinson -Uli Köhler -Charlie Somerville -Patrik Stutz -Fedor Indutny -runner -Alexis Campailla -David Wragg -Vinnie Falco -Alex Butum -Rex Feng -Alex Kocharin -Mark Koopman -Helge Heß -Alexis La Goutte -George Miroshnykov -Maciej Małecki -Marc O'Morain -Jeff Pinner -Timothy J Fontaine -Akagi201 -Romain Giraud -Jay Satiro -Arne Steen -Kjell Schubert -Olivier Mengué diff --git a/vendor/http-parser/LICENSE-MIT b/vendor/http-parser/LICENSE-MIT deleted file mode 100644 index 1ec0ab4..0000000 --- a/vendor/http-parser/LICENSE-MIT +++ /dev/null @@ -1,19 +0,0 @@ -Copyright Joyent, Inc. and other Node contributors. - -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/vendor/http-parser/Makefile b/vendor/http-parser/Makefile deleted file mode 100644 index 5d21221..0000000 --- a/vendor/http-parser/Makefile +++ /dev/null @@ -1,160 +0,0 @@ -# Copyright Joyent, Inc. and other Node contributors. All rights reserved. -# -# 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. - -PLATFORM ?= $(shell sh -c 'uname -s | tr "[A-Z]" "[a-z]"') -HELPER ?= -BINEXT ?= -SOLIBNAME = libhttp_parser -SOMAJOR = 2 -SOMINOR = 9 -SOREV = 4 -ifeq (darwin,$(PLATFORM)) -SOEXT ?= dylib -SONAME ?= $(SOLIBNAME).$(SOMAJOR).$(SOMINOR).$(SOEXT) -LIBNAME ?= $(SOLIBNAME).$(SOMAJOR).$(SOMINOR).$(SOREV).$(SOEXT) -else ifeq (wine,$(PLATFORM)) -CC = winegcc -BINEXT = .exe.so -HELPER = wine -else -SOEXT ?= so -SONAME ?= $(SOLIBNAME).$(SOEXT).$(SOMAJOR).$(SOMINOR) -LIBNAME ?= $(SOLIBNAME).$(SOEXT).$(SOMAJOR).$(SOMINOR).$(SOREV) -endif - -CC?=gcc -AR?=ar - -CPPFLAGS ?= -LDFLAGS ?= - -CPPFLAGS += -I. -CPPFLAGS_DEBUG = $(CPPFLAGS) -DHTTP_PARSER_STRICT=1 -CPPFLAGS_DEBUG += $(CPPFLAGS_DEBUG_EXTRA) -CPPFLAGS_FAST = $(CPPFLAGS) -DHTTP_PARSER_STRICT=0 -CPPFLAGS_FAST += $(CPPFLAGS_FAST_EXTRA) -CPPFLAGS_BENCH = $(CPPFLAGS_FAST) - -CFLAGS += -Wall -Wextra -Werror -CFLAGS_DEBUG = $(CFLAGS) -O0 -g $(CFLAGS_DEBUG_EXTRA) -CFLAGS_FAST = $(CFLAGS) -O3 $(CFLAGS_FAST_EXTRA) -CFLAGS_BENCH = $(CFLAGS_FAST) -Wno-unused-parameter -CFLAGS_LIB = $(CFLAGS_FAST) -fPIC - -LDFLAGS_LIB = $(LDFLAGS) -shared - -INSTALL ?= install -PREFIX ?= /usr/local -LIBDIR = $(PREFIX)/lib -INCLUDEDIR = $(PREFIX)/include - -ifeq (darwin,$(PLATFORM)) -LDFLAGS_LIB += -Wl,-install_name,$(LIBDIR)/$(SONAME) -else -# TODO(bnoordhuis) The native SunOS linker expects -h rather than -soname... -LDFLAGS_LIB += -Wl,-soname=$(SONAME) -endif - -test: test_g test_fast - $(HELPER) ./test_g$(BINEXT) - $(HELPER) ./test_fast$(BINEXT) - -test_g: http_parser_g.o test_g.o - $(CC) $(CFLAGS_DEBUG) $(LDFLAGS) http_parser_g.o test_g.o -o $@ - -test_g.o: test.c http_parser.h Makefile - $(CC) $(CPPFLAGS_DEBUG) $(CFLAGS_DEBUG) -c test.c -o $@ - -http_parser_g.o: http_parser.c http_parser.h Makefile - $(CC) $(CPPFLAGS_DEBUG) $(CFLAGS_DEBUG) -c http_parser.c -o $@ - -test_fast: http_parser.o test.o http_parser.h - $(CC) $(CFLAGS_FAST) $(LDFLAGS) http_parser.o test.o -o $@ - -test.o: test.c http_parser.h Makefile - $(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) -c test.c -o $@ - -bench: http_parser.o bench.o - $(CC) $(CFLAGS_BENCH) $(LDFLAGS) http_parser.o bench.o -o $@ - -bench.o: bench.c http_parser.h Makefile - $(CC) $(CPPFLAGS_BENCH) $(CFLAGS_BENCH) -c bench.c -o $@ - -http_parser.o: http_parser.c http_parser.h Makefile - $(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) -c http_parser.c - -test-run-timed: test_fast - while(true) do time $(HELPER) ./test_fast$(BINEXT) > /dev/null; done - -test-valgrind: test_g - valgrind ./test_g - -libhttp_parser.o: http_parser.c http_parser.h Makefile - $(CC) $(CPPFLAGS_FAST) $(CFLAGS_LIB) -c http_parser.c -o libhttp_parser.o - -library: libhttp_parser.o - $(CC) $(LDFLAGS_LIB) -o $(LIBNAME) $< - -package: http_parser.o - $(AR) rcs libhttp_parser.a http_parser.o - -url_parser: http_parser.o contrib/url_parser.c - $(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) $^ -o $@ - -url_parser_g: http_parser_g.o contrib/url_parser.c - $(CC) $(CPPFLAGS_DEBUG) $(CFLAGS_DEBUG) $^ -o $@ - -parsertrace: http_parser.o contrib/parsertrace.c - $(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) $^ -o parsertrace$(BINEXT) - -parsertrace_g: http_parser_g.o contrib/parsertrace.c - $(CC) $(CPPFLAGS_DEBUG) $(CFLAGS_DEBUG) $^ -o parsertrace_g$(BINEXT) - -tags: http_parser.c http_parser.h test.c - ctags $^ - -install: library - $(INSTALL) -D http_parser.h $(DESTDIR)$(INCLUDEDIR)/http_parser.h - $(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME) - ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME) - ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SOLIBNAME).$(SOEXT) - -install-strip: library - $(INSTALL) -D http_parser.h $(DESTDIR)$(INCLUDEDIR)/http_parser.h - $(INSTALL) -D -s $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME) - ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME) - ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SOLIBNAME).$(SOEXT) - -uninstall: - rm $(DESTDIR)$(INCLUDEDIR)/http_parser.h - rm $(DESTDIR)$(LIBDIR)/$(SOLIBNAME).$(SOEXT) - rm $(DESTDIR)$(LIBDIR)/$(SONAME) - rm $(DESTDIR)$(LIBDIR)/$(LIBNAME) - -clean: - rm -f *.o *.a tags test test_fast test_g \ - http_parser.tar libhttp_parser.so.* \ - url_parser url_parser_g parsertrace parsertrace_g \ - *.exe *.exe.so - -contrib/url_parser.c: http_parser.h -contrib/parsertrace.c: http_parser.h - -.PHONY: clean package test-run test-run-timed test-valgrind install install-strip uninstall diff --git a/vendor/http-parser/README.md b/vendor/http-parser/README.md deleted file mode 100644 index b265d71..0000000 --- a/vendor/http-parser/README.md +++ /dev/null @@ -1,246 +0,0 @@ -HTTP Parser -=========== - -[![Build Status](https://api.travis-ci.org/nodejs/http-parser.svg?branch=master)](https://travis-ci.org/nodejs/http-parser) - -This is a parser for HTTP messages written in C. It parses both requests and -responses. The parser is designed to be used in performance HTTP -applications. It does not make any syscalls nor allocations, it does not -buffer data, it can be interrupted at anytime. Depending on your -architecture, it only requires about 40 bytes of data per message -stream (in a web server that is per connection). - -Features: - - * No dependencies - * Handles persistent streams (keep-alive). - * Decodes chunked encoding. - * Upgrade support - * Defends against buffer overflow attacks. - -The parser extracts the following information from HTTP messages: - - * Header fields and values - * Content-Length - * Request method - * Response status code - * Transfer-Encoding - * HTTP version - * Request URL - * Message body - - -Usage ------ - -One `http_parser` object is used per TCP connection. Initialize the struct -using `http_parser_init()` and set the callbacks. That might look something -like this for a request parser: -```c -http_parser_settings settings; -settings.on_url = my_url_callback; -settings.on_header_field = my_header_field_callback; -/* ... */ - -http_parser *parser = malloc(sizeof(http_parser)); -http_parser_init(parser, HTTP_REQUEST); -parser->data = my_socket; -``` - -When data is received on the socket execute the parser and check for errors. - -```c -size_t len = 80*1024, nparsed; -char buf[len]; -ssize_t recved; - -recved = recv(fd, buf, len, 0); - -if (recved < 0) { - /* Handle error. */ -} - -/* Start up / continue the parser. - * Note we pass recved==0 to signal that EOF has been received. - */ -nparsed = http_parser_execute(parser, &settings, buf, recved); - -if (parser->upgrade) { - /* handle new protocol */ -} else if (nparsed != recved) { - /* Handle error. Usually just close the connection. */ -} -``` - -`http_parser` needs to know where the end of the stream is. For example, sometimes -servers send responses without Content-Length and expect the client to -consume input (for the body) until EOF. To tell `http_parser` about EOF, give -`0` as the fourth parameter to `http_parser_execute()`. Callbacks and errors -can still be encountered during an EOF, so one must still be prepared -to receive them. - -Scalar valued message information such as `status_code`, `method`, and the -HTTP version are stored in the parser structure. This data is only -temporally stored in `http_parser` and gets reset on each new message. If -this information is needed later, copy it out of the structure during the -`headers_complete` callback. - -The parser decodes the transfer-encoding for both requests and responses -transparently. That is, a chunked encoding is decoded before being sent to -the on_body callback. - - -The Special Problem of Upgrade ------------------------------- - -`http_parser` supports upgrading the connection to a different protocol. An -increasingly common example of this is the WebSocket protocol which sends -a request like - - GET /demo HTTP/1.1 - Upgrade: WebSocket - Connection: Upgrade - Host: example.com - Origin: http://example.com - WebSocket-Protocol: sample - -followed by non-HTTP data. - -(See [RFC6455](https://tools.ietf.org/html/rfc6455) for more information the -WebSocket protocol.) - -To support this, the parser will treat this as a normal HTTP message without a -body, issuing both on_headers_complete and on_message_complete callbacks. However -http_parser_execute() will stop parsing at the end of the headers and return. - -The user is expected to check if `parser->upgrade` has been set to 1 after -`http_parser_execute()` returns. Non-HTTP data begins at the buffer supplied -offset by the return value of `http_parser_execute()`. - - -Callbacks ---------- - -During the `http_parser_execute()` call, the callbacks set in -`http_parser_settings` will be executed. The parser maintains state and -never looks behind, so buffering the data is not necessary. If you need to -save certain data for later usage, you can do that from the callbacks. - -There are two types of callbacks: - -* notification `typedef int (*http_cb) (http_parser*);` - Callbacks: on_message_begin, on_headers_complete, on_message_complete. -* data `typedef int (*http_data_cb) (http_parser*, const char *at, size_t length);` - Callbacks: (requests only) on_url, - (common) on_header_field, on_header_value, on_body; - -Callbacks must return 0 on success. Returning a non-zero value indicates -error to the parser, making it exit immediately. - -For cases where it is necessary to pass local information to/from a callback, -the `http_parser` object's `data` field can be used. -An example of such a case is when using threads to handle a socket connection, -parse a request, and then give a response over that socket. By instantiation -of a thread-local struct containing relevant data (e.g. accepted socket, -allocated memory for callbacks to write into, etc), a parser's callbacks are -able to communicate data between the scope of the thread and the scope of the -callback in a threadsafe manner. This allows `http_parser` to be used in -multi-threaded contexts. - -Example: -```c - typedef struct { - socket_t sock; - void* buffer; - int buf_len; - } custom_data_t; - - -int my_url_callback(http_parser* parser, const char *at, size_t length) { - /* access to thread local custom_data_t struct. - Use this access save parsed data for later use into thread local - buffer, or communicate over socket - */ - parser->data; - ... - return 0; -} - -... - -void http_parser_thread(socket_t sock) { - int nparsed = 0; - /* allocate memory for user data */ - custom_data_t *my_data = malloc(sizeof(custom_data_t)); - - /* some information for use by callbacks. - * achieves thread -> callback information flow */ - my_data->sock = sock; - - /* instantiate a thread-local parser */ - http_parser *parser = malloc(sizeof(http_parser)); - http_parser_init(parser, HTTP_REQUEST); /* initialise parser */ - /* this custom data reference is accessible through the reference to the - parser supplied to callback functions */ - parser->data = my_data; - - http_parser_settings settings; /* set up callbacks */ - settings.on_url = my_url_callback; - - /* execute parser */ - nparsed = http_parser_execute(parser, &settings, buf, recved); - - ... - /* parsed information copied from callback. - can now perform action on data copied into thread-local memory from callbacks. - achieves callback -> thread information flow */ - my_data->buffer; - ... -} - -``` - -In case you parse HTTP message in chunks (i.e. `read()` request line -from socket, parse, read half headers, parse, etc) your data callbacks -may be called more than once. `http_parser` guarantees that data pointer is only -valid for the lifetime of callback. You can also `read()` into a heap allocated -buffer to avoid copying memory around if this fits your application. - -Reading headers may be a tricky task if you read/parse headers partially. -Basically, you need to remember whether last header callback was field or value -and apply the following logic: - - (on_header_field and on_header_value shortened to on_h_*) - ------------------------ ------------ -------------------------------------------- - | State (prev. callback) | Callback | Description/action | - ------------------------ ------------ -------------------------------------------- - | nothing (first call) | on_h_field | Allocate new buffer and copy callback data | - | | | into it | - ------------------------ ------------ -------------------------------------------- - | value | on_h_field | New header started. | - | | | Copy current name,value buffers to headers | - | | | list and allocate new buffer for new name | - ------------------------ ------------ -------------------------------------------- - | field | on_h_field | Previous name continues. Reallocate name | - | | | buffer and append callback data to it | - ------------------------ ------------ -------------------------------------------- - | field | on_h_value | Value for current header started. Allocate | - | | | new buffer and copy callback data to it | - ------------------------ ------------ -------------------------------------------- - | value | on_h_value | Value continues. Reallocate value buffer | - | | | and append callback data to it | - ------------------------ ------------ -------------------------------------------- - - -Parsing URLs ------------- - -A simplistic zero-copy URL parser is provided as `http_parser_parse_url()`. -Users of this library may wish to use it to parse URLs constructed from -consecutive `on_url` callbacks. - -See examples of reading in headers: - -* [partial example](http://gist.github.com/155877) in C -* [from http-parser tests](http://github.com/joyent/http-parser/blob/37a0ff8/test.c#L403) in C -* [from Node library](http://github.com/joyent/node/blob/842eaf4/src/http.js#L284) in Javascript diff --git a/vendor/http-parser/bench.c b/vendor/http-parser/bench.c deleted file mode 100644 index 678f555..0000000 --- a/vendor/http-parser/bench.c +++ /dev/null @@ -1,128 +0,0 @@ -/* Copyright Fedor Indutny. All rights reserved. - * - * 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. - */ -#include "http_parser.h" -#include -#include -#include -#include -#include - -/* 8 gb */ -static const int64_t kBytes = 8LL << 30; - -static const char data[] = - "POST /joyent/http-parser HTTP/1.1\r\n" - "Host: github.com\r\n" - "DNT: 1\r\n" - "Accept-Encoding: gzip, deflate, sdch\r\n" - "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4\r\n" - "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) " - "AppleWebKit/537.36 (KHTML, like Gecko) " - "Chrome/39.0.2171.65 Safari/537.36\r\n" - "Accept: text/html,application/xhtml+xml,application/xml;q=0.9," - "image/webp,*/*;q=0.8\r\n" - "Referer: https://github.com/joyent/http-parser\r\n" - "Connection: keep-alive\r\n" - "Transfer-Encoding: chunked\r\n" - "Cache-Control: max-age=0\r\n\r\nb\r\nhello world\r\n0\r\n"; -static const size_t data_len = sizeof(data) - 1; - -static int on_info(http_parser* p) { - return 0; -} - - -static int on_data(http_parser* p, const char *at, size_t length) { - return 0; -} - -static http_parser_settings settings = { - .on_message_begin = on_info, - .on_headers_complete = on_info, - .on_message_complete = on_info, - .on_header_field = on_data, - .on_header_value = on_data, - .on_url = on_data, - .on_status = on_data, - .on_body = on_data -}; - -int bench(int iter_count, int silent) { - struct http_parser parser; - int i; - int err; - struct timeval start; - struct timeval end; - - if (!silent) { - err = gettimeofday(&start, NULL); - assert(err == 0); - } - - fprintf(stderr, "req_len=%d\n", (int) data_len); - for (i = 0; i < iter_count; i++) { - size_t parsed; - http_parser_init(&parser, HTTP_REQUEST); - - parsed = http_parser_execute(&parser, &settings, data, data_len); - assert(parsed == data_len); - } - - if (!silent) { - double elapsed; - double bw; - double total; - - err = gettimeofday(&end, NULL); - assert(err == 0); - - fprintf(stdout, "Benchmark result:\n"); - - elapsed = (double) (end.tv_sec - start.tv_sec) + - (end.tv_usec - start.tv_usec) * 1e-6f; - - total = (double) iter_count * data_len; - bw = (double) total / elapsed; - - fprintf(stdout, "%.2f mb | %.2f mb/s | %.2f req/sec | %.2f s\n", - (double) total / (1024 * 1024), - bw / (1024 * 1024), - (double) iter_count / elapsed, - elapsed); - - fflush(stdout); - } - - return 0; -} - -int main(int argc, char** argv) { - int64_t iterations; - - iterations = kBytes / (int64_t) data_len; - if (argc == 2 && strcmp(argv[1], "infinite") == 0) { - for (;;) - bench(iterations, 1); - return 0; - } else { - return bench(iterations, 0); - } -} diff --git a/vendor/http-parser/contrib/parsertrace.c b/vendor/http-parser/contrib/parsertrace.c deleted file mode 100644 index 3daa7f4..0000000 --- a/vendor/http-parser/contrib/parsertrace.c +++ /dev/null @@ -1,157 +0,0 @@ -/* Copyright Joyent, Inc. and other Node contributors. - * - * 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. - */ - -/* Dump what the parser finds to stdout as it happen */ - -#include "http_parser.h" -#include -#include -#include - -int on_message_begin(http_parser* _) { - (void)_; - printf("\n***MESSAGE BEGIN***\n\n"); - return 0; -} - -int on_headers_complete(http_parser* _) { - (void)_; - printf("\n***HEADERS COMPLETE***\n\n"); - return 0; -} - -int on_message_complete(http_parser* _) { - (void)_; - printf("\n***MESSAGE COMPLETE***\n\n"); - return 0; -} - -int on_url(http_parser* _, const char* at, size_t length) { - (void)_; - printf("Url: %.*s\n", (int)length, at); - return 0; -} - -int on_header_field(http_parser* _, const char* at, size_t length) { - (void)_; - printf("Header field: %.*s\n", (int)length, at); - return 0; -} - -int on_header_value(http_parser* _, const char* at, size_t length) { - (void)_; - printf("Header value: %.*s\n", (int)length, at); - return 0; -} - -int on_body(http_parser* _, const char* at, size_t length) { - (void)_; - printf("Body: %.*s\n", (int)length, at); - return 0; -} - -void usage(const char* name) { - fprintf(stderr, - "Usage: %s $type $filename\n" - " type: -x, where x is one of {r,b,q}\n" - " parses file as a Response, reQuest, or Both\n", - name); - exit(EXIT_FAILURE); -} - -int main(int argc, char* argv[]) { - enum http_parser_type file_type; - - if (argc != 3) { - usage(argv[0]); - } - - char* type = argv[1]; - if (type[0] != '-') { - usage(argv[0]); - } - - switch (type[1]) { - /* in the case of "-", type[1] will be NUL */ - case 'r': - file_type = HTTP_RESPONSE; - break; - case 'q': - file_type = HTTP_REQUEST; - break; - case 'b': - file_type = HTTP_BOTH; - break; - default: - usage(argv[0]); - } - - char* filename = argv[2]; - FILE* file = fopen(filename, "r"); - if (file == NULL) { - perror("fopen"); - goto fail; - } - - fseek(file, 0, SEEK_END); - long file_length = ftell(file); - if (file_length == -1) { - perror("ftell"); - goto fail; - } - fseek(file, 0, SEEK_SET); - - char* data = malloc(file_length); - if (fread(data, 1, file_length, file) != (size_t)file_length) { - fprintf(stderr, "couldn't read entire file\n"); - free(data); - goto fail; - } - - http_parser_settings settings; - memset(&settings, 0, sizeof(settings)); - settings.on_message_begin = on_message_begin; - settings.on_url = on_url; - settings.on_header_field = on_header_field; - settings.on_header_value = on_header_value; - settings.on_headers_complete = on_headers_complete; - settings.on_body = on_body; - settings.on_message_complete = on_message_complete; - - http_parser parser; - http_parser_init(&parser, file_type); - size_t nparsed = http_parser_execute(&parser, &settings, data, file_length); - free(data); - - if (nparsed != (size_t)file_length) { - fprintf(stderr, - "Error: %s (%s)\n", - http_errno_description(HTTP_PARSER_ERRNO(&parser)), - http_errno_name(HTTP_PARSER_ERRNO(&parser))); - goto fail; - } - - return EXIT_SUCCESS; - -fail: - fclose(file); - return EXIT_FAILURE; -} diff --git a/vendor/http-parser/contrib/url_parser.c b/vendor/http-parser/contrib/url_parser.c deleted file mode 100644 index f235bed..0000000 --- a/vendor/http-parser/contrib/url_parser.c +++ /dev/null @@ -1,47 +0,0 @@ -#include "http_parser.h" -#include -#include - -void -dump_url (const char *url, const struct http_parser_url *u) -{ - unsigned int i; - - printf("\tfield_set: 0x%x, port: %u\n", u->field_set, u->port); - for (i = 0; i < UF_MAX; i++) { - if ((u->field_set & (1 << i)) == 0) { - printf("\tfield_data[%u]: unset\n", i); - continue; - } - - printf("\tfield_data[%u]: off: %u, len: %u, part: %.*s\n", - i, - u->field_data[i].off, - u->field_data[i].len, - u->field_data[i].len, - url + u->field_data[i].off); - } -} - -int main(int argc, char ** argv) { - struct http_parser_url u; - int len, connect, result; - - if (argc != 3) { - printf("Syntax : %s connect|get url\n", argv[0]); - return 1; - } - len = strlen(argv[2]); - connect = strcmp("connect", argv[1]) == 0 ? 1 : 0; - printf("Parsing %s, connect %d\n", argv[2], connect); - - http_parser_url_init(&u); - result = http_parser_parse_url(argv[2], len, connect, &u); - if (result != 0) { - printf("Parse error : %d\n", result); - return result; - } - printf("Parse ok, result : \n"); - dump_url(argv[2], &u); - return 0; -} diff --git a/vendor/http-parser/http_parser.c b/vendor/http-parser/http_parser.c deleted file mode 100644 index 95ff42f..0000000 --- a/vendor/http-parser/http_parser.c +++ /dev/null @@ -1,2568 +0,0 @@ -/* Copyright Joyent, Inc. and other Node contributors. - * - * 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. - */ -#include "http_parser.h" -#include -#include -#include -#include -#include - -static uint32_t max_header_size = HTTP_MAX_HEADER_SIZE; - -#ifndef ULLONG_MAX -# define ULLONG_MAX ((uint64_t) -1) /* 2^64-1 */ -#endif - -#ifndef MIN -# define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif - -#ifndef ARRAY_SIZE -# define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) -#endif - -#ifndef BIT_AT -# define BIT_AT(a, i) \ - (!!((unsigned int) (a)[(unsigned int) (i) >> 3] & \ - (1 << ((unsigned int) (i) & 7)))) -#endif - -#ifndef ELEM_AT -# define ELEM_AT(a, i, v) ((unsigned int) (i) < ARRAY_SIZE(a) ? (a)[(i)] : (v)) -#endif - -#define SET_ERRNO(e) \ -do { \ - parser->nread = nread; \ - parser->http_errno = (e); \ -} while(0) - -#define CURRENT_STATE() p_state -#define UPDATE_STATE(V) p_state = (enum state) (V); -#define RETURN(V) \ -do { \ - parser->nread = nread; \ - parser->state = CURRENT_STATE(); \ - return (V); \ -} while (0); -#define REEXECUTE() \ - goto reexecute; \ - - -#ifdef __GNUC__ -# define LIKELY(X) __builtin_expect(!!(X), 1) -# define UNLIKELY(X) __builtin_expect(!!(X), 0) -#else -# define LIKELY(X) (X) -# define UNLIKELY(X) (X) -#endif - - -/* Run the notify callback FOR, returning ER if it fails */ -#define CALLBACK_NOTIFY_(FOR, ER) \ -do { \ - assert(HTTP_PARSER_ERRNO(parser) == HPE_OK); \ - \ - if (LIKELY(settings->on_##FOR)) { \ - parser->state = CURRENT_STATE(); \ - if (UNLIKELY(0 != settings->on_##FOR(parser))) { \ - SET_ERRNO(HPE_CB_##FOR); \ - } \ - UPDATE_STATE(parser->state); \ - \ - /* We either errored above or got paused; get out */ \ - if (UNLIKELY(HTTP_PARSER_ERRNO(parser) != HPE_OK)) { \ - return (ER); \ - } \ - } \ -} while (0) - -/* Run the notify callback FOR and consume the current byte */ -#define CALLBACK_NOTIFY(FOR) CALLBACK_NOTIFY_(FOR, p - data + 1) - -/* Run the notify callback FOR and don't consume the current byte */ -#define CALLBACK_NOTIFY_NOADVANCE(FOR) CALLBACK_NOTIFY_(FOR, p - data) - -/* Run data callback FOR with LEN bytes, returning ER if it fails */ -#define CALLBACK_DATA_(FOR, LEN, ER) \ -do { \ - assert(HTTP_PARSER_ERRNO(parser) == HPE_OK); \ - \ - if (FOR##_mark) { \ - if (LIKELY(settings->on_##FOR)) { \ - parser->state = CURRENT_STATE(); \ - if (UNLIKELY(0 != \ - settings->on_##FOR(parser, FOR##_mark, (LEN)))) { \ - SET_ERRNO(HPE_CB_##FOR); \ - } \ - UPDATE_STATE(parser->state); \ - \ - /* We either errored above or got paused; get out */ \ - if (UNLIKELY(HTTP_PARSER_ERRNO(parser) != HPE_OK)) { \ - return (ER); \ - } \ - } \ - FOR##_mark = NULL; \ - } \ -} while (0) - -/* Run the data callback FOR and consume the current byte */ -#define CALLBACK_DATA(FOR) \ - CALLBACK_DATA_(FOR, p - FOR##_mark, p - data + 1) - -/* Run the data callback FOR and don't consume the current byte */ -#define CALLBACK_DATA_NOADVANCE(FOR) \ - CALLBACK_DATA_(FOR, p - FOR##_mark, p - data) - -/* Set the mark FOR; non-destructive if mark is already set */ -#define MARK(FOR) \ -do { \ - if (!FOR##_mark) { \ - FOR##_mark = p; \ - } \ -} while (0) - -/* Don't allow the total size of the HTTP headers (including the status - * line) to exceed max_header_size. This check is here to protect - * embedders against denial-of-service attacks where the attacker feeds - * us a never-ending header that the embedder keeps buffering. - * - * This check is arguably the responsibility of embedders but we're doing - * it on the embedder's behalf because most won't bother and this way we - * make the web a little safer. max_header_size is still far bigger - * than any reasonable request or response so this should never affect - * day-to-day operation. - */ -#define COUNT_HEADER_SIZE(V) \ -do { \ - nread += (uint32_t)(V); \ - if (UNLIKELY(nread > max_header_size)) { \ - SET_ERRNO(HPE_HEADER_OVERFLOW); \ - goto error; \ - } \ -} while (0) - - -#define PROXY_CONNECTION "proxy-connection" -#define CONNECTION "connection" -#define CONTENT_LENGTH "content-length" -#define TRANSFER_ENCODING "transfer-encoding" -#define UPGRADE "upgrade" -#define CHUNKED "chunked" -#define KEEP_ALIVE "keep-alive" -#define CLOSE "close" - - -static const char *method_strings[] = - { -#define XX(num, name, string) #string, - HTTP_METHOD_MAP(XX) -#undef XX - }; - - -/* Tokens as defined by rfc 2616. Also lowercases them. - * token = 1* - * separators = "(" | ")" | "<" | ">" | "@" - * | "," | ";" | ":" | "\" | <"> - * | "/" | "[" | "]" | "?" | "=" - * | "{" | "}" | SP | HT - */ -static const char tokens[256] = { -/* 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel */ - 0, 0, 0, 0, 0, 0, 0, 0, -/* 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si */ - 0, 0, 0, 0, 0, 0, 0, 0, -/* 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb */ - 0, 0, 0, 0, 0, 0, 0, 0, -/* 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us */ - 0, 0, 0, 0, 0, 0, 0, 0, -/* 32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' */ - ' ', '!', 0, '#', '$', '%', '&', '\'', -/* 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / */ - 0, 0, '*', '+', 0, '-', '.', 0, -/* 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 */ - '0', '1', '2', '3', '4', '5', '6', '7', -/* 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? */ - '8', '9', 0, 0, 0, 0, 0, 0, -/* 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G */ - 0, 'a', 'b', 'c', 'd', 'e', 'f', 'g', -/* 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O */ - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', -/* 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W */ - 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', -/* 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ */ - 'x', 'y', 'z', 0, 0, 0, '^', '_', -/* 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g */ - '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', -/* 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o */ - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', -/* 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w */ - 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', -/* 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del */ - 'x', 'y', 'z', 0, '|', 0, '~', 0 }; - - -static const int8_t unhex[256] = - {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 - ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 - ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 - , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1 - ,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1 - ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 - ,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1 - ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 - }; - - -#if HTTP_PARSER_STRICT -# define T(v) 0 -#else -# define T(v) v -#endif - - -static const uint8_t normal_url_char[32] = { -/* 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel */ - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, -/* 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si */ - 0 | T(2) | 0 | 0 | T(16) | 0 | 0 | 0, -/* 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb */ - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, -/* 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us */ - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, -/* 32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' */ - 0 | 2 | 4 | 0 | 16 | 32 | 64 | 128, -/* 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / */ - 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, -/* 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 */ - 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, -/* 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? */ - 1 | 2 | 4 | 8 | 16 | 32 | 64 | 0, -/* 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G */ - 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, -/* 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O */ - 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, -/* 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W */ - 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, -/* 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ */ - 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, -/* 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g */ - 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, -/* 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o */ - 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, -/* 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w */ - 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, -/* 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del */ - 1 | 2 | 4 | 8 | 16 | 32 | 64 | 0, }; - -#undef T - -enum state - { s_dead = 1 /* important that this is > 0 */ - - , s_start_req_or_res - , s_res_or_resp_H - , s_start_res - , s_res_H - , s_res_HT - , s_res_HTT - , s_res_HTTP - , s_res_http_major - , s_res_http_dot - , s_res_http_minor - , s_res_http_end - , s_res_first_status_code - , s_res_status_code - , s_res_status_start - , s_res_status - , s_res_line_almost_done - - , s_start_req - - , s_req_method - , s_req_spaces_before_url - , s_req_schema - , s_req_schema_slash - , s_req_schema_slash_slash - , s_req_server_start - , s_req_server - , s_req_server_with_at - , s_req_path - , s_req_query_string_start - , s_req_query_string - , s_req_fragment_start - , s_req_fragment - , s_req_http_start - , s_req_http_H - , s_req_http_HT - , s_req_http_HTT - , s_req_http_HTTP - , s_req_http_I - , s_req_http_IC - , s_req_http_major - , s_req_http_dot - , s_req_http_minor - , s_req_http_end - , s_req_line_almost_done - - , s_header_field_start - , s_header_field - , s_header_value_discard_ws - , s_header_value_discard_ws_almost_done - , s_header_value_discard_lws - , s_header_value_start - , s_header_value - , s_header_value_lws - - , s_header_almost_done - - , s_chunk_size_start - , s_chunk_size - , s_chunk_parameters - , s_chunk_size_almost_done - - , s_headers_almost_done - , s_headers_done - - /* Important: 's_headers_done' must be the last 'header' state. All - * states beyond this must be 'body' states. It is used for overflow - * checking. See the PARSING_HEADER() macro. - */ - - , s_chunk_data - , s_chunk_data_almost_done - , s_chunk_data_done - - , s_body_identity - , s_body_identity_eof - - , s_message_done - }; - - -#define PARSING_HEADER(state) (state <= s_headers_done) - - -enum header_states - { h_general = 0 - , h_C - , h_CO - , h_CON - - , h_matching_connection - , h_matching_proxy_connection - , h_matching_content_length - , h_matching_transfer_encoding - , h_matching_upgrade - - , h_connection - , h_content_length - , h_content_length_num - , h_content_length_ws - , h_transfer_encoding - , h_upgrade - - , h_matching_transfer_encoding_token_start - , h_matching_transfer_encoding_chunked - , h_matching_transfer_encoding_token - - , h_matching_connection_token_start - , h_matching_connection_keep_alive - , h_matching_connection_close - , h_matching_connection_upgrade - , h_matching_connection_token - - , h_transfer_encoding_chunked - , h_connection_keep_alive - , h_connection_close - , h_connection_upgrade - }; - -enum http_host_state - { - s_http_host_dead = 1 - , s_http_userinfo_start - , s_http_userinfo - , s_http_host_start - , s_http_host_v6_start - , s_http_host - , s_http_host_v6 - , s_http_host_v6_end - , s_http_host_v6_zone_start - , s_http_host_v6_zone - , s_http_host_port_start - , s_http_host_port -}; - -/* Macros for character classes; depends on strict-mode */ -#define CR '\r' -#define LF '\n' -#define LOWER(c) (unsigned char)(c | 0x20) -#define IS_ALPHA(c) (LOWER(c) >= 'a' && LOWER(c) <= 'z') -#define IS_NUM(c) ((c) >= '0' && (c) <= '9') -#define IS_ALPHANUM(c) (IS_ALPHA(c) || IS_NUM(c)) -#define IS_HEX(c) (IS_NUM(c) || (LOWER(c) >= 'a' && LOWER(c) <= 'f')) -#define IS_MARK(c) ((c) == '-' || (c) == '_' || (c) == '.' || \ - (c) == '!' || (c) == '~' || (c) == '*' || (c) == '\'' || (c) == '(' || \ - (c) == ')') -#define IS_USERINFO_CHAR(c) (IS_ALPHANUM(c) || IS_MARK(c) || (c) == '%' || \ - (c) == ';' || (c) == ':' || (c) == '&' || (c) == '=' || (c) == '+' || \ - (c) == '$' || (c) == ',') - -#define STRICT_TOKEN(c) ((c == ' ') ? 0 : tokens[(unsigned char)c]) - -#if HTTP_PARSER_STRICT -#define TOKEN(c) STRICT_TOKEN(c) -#define IS_URL_CHAR(c) (BIT_AT(normal_url_char, (unsigned char)c)) -#define IS_HOST_CHAR(c) (IS_ALPHANUM(c) || (c) == '.' || (c) == '-') -#else -#define TOKEN(c) tokens[(unsigned char)c] -#define IS_URL_CHAR(c) \ - (BIT_AT(normal_url_char, (unsigned char)c) || ((c) & 0x80)) -#define IS_HOST_CHAR(c) \ - (IS_ALPHANUM(c) || (c) == '.' || (c) == '-' || (c) == '_') -#endif - -/** - * Verify that a char is a valid visible (printable) US-ASCII - * character or %x80-FF - **/ -#define IS_HEADER_CHAR(ch) \ - (ch == CR || ch == LF || ch == 9 || ((unsigned char)ch > 31 && ch != 127)) - -#define start_state (parser->type == HTTP_REQUEST ? s_start_req : s_start_res) - - -#if HTTP_PARSER_STRICT -# define STRICT_CHECK(cond) \ -do { \ - if (cond) { \ - SET_ERRNO(HPE_STRICT); \ - goto error; \ - } \ -} while (0) -# define NEW_MESSAGE() (http_should_keep_alive(parser) ? start_state : s_dead) -#else -# define STRICT_CHECK(cond) -# define NEW_MESSAGE() start_state -#endif - - -/* Map errno values to strings for human-readable output */ -#define HTTP_STRERROR_GEN(n, s) { "HPE_" #n, s }, -static struct { - const char *name; - const char *description; -} http_strerror_tab[] = { - HTTP_ERRNO_MAP(HTTP_STRERROR_GEN) -}; -#undef HTTP_STRERROR_GEN - -int http_message_needs_eof(const http_parser *parser); - -/* Our URL parser. - * - * This is designed to be shared by http_parser_execute() for URL validation, - * hence it has a state transition + byte-for-byte interface. In addition, it - * is meant to be embedded in http_parser_parse_url(), which does the dirty - * work of turning state transitions URL components for its API. - * - * This function should only be invoked with non-space characters. It is - * assumed that the caller cares about (and can detect) the transition between - * URL and non-URL states by looking for these. - */ -static enum state -parse_url_char(enum state s, const char ch) -{ - if (ch == ' ' || ch == '\r' || ch == '\n') { - return s_dead; - } - -#if HTTP_PARSER_STRICT - if (ch == '\t' || ch == '\f') { - return s_dead; - } -#endif - - switch (s) { - case s_req_spaces_before_url: - /* Proxied requests are followed by scheme of an absolute URI (alpha). - * All methods except CONNECT are followed by '/' or '*'. - */ - - if (ch == '/' || ch == '*') { - return s_req_path; - } - - if (IS_ALPHA(ch)) { - return s_req_schema; - } - - break; - - case s_req_schema: - if (IS_ALPHA(ch)) { - return s; - } - - if (ch == ':') { - return s_req_schema_slash; - } - - break; - - case s_req_schema_slash: - if (ch == '/') { - return s_req_schema_slash_slash; - } - - break; - - case s_req_schema_slash_slash: - if (ch == '/') { - return s_req_server_start; - } - - break; - - case s_req_server_with_at: - if (ch == '@') { - return s_dead; - } - - /* fall through */ - case s_req_server_start: - case s_req_server: - if (ch == '/') { - return s_req_path; - } - - if (ch == '?') { - return s_req_query_string_start; - } - - if (ch == '@') { - return s_req_server_with_at; - } - - if (IS_USERINFO_CHAR(ch) || ch == '[' || ch == ']') { - return s_req_server; - } - - break; - - case s_req_path: - if (IS_URL_CHAR(ch)) { - return s; - } - - switch (ch) { - case '?': - return s_req_query_string_start; - - case '#': - return s_req_fragment_start; - } - - break; - - case s_req_query_string_start: - case s_req_query_string: - if (IS_URL_CHAR(ch)) { - return s_req_query_string; - } - - switch (ch) { - case '?': - /* allow extra '?' in query string */ - return s_req_query_string; - - case '#': - return s_req_fragment_start; - } - - break; - - case s_req_fragment_start: - if (IS_URL_CHAR(ch)) { - return s_req_fragment; - } - - switch (ch) { - case '?': - return s_req_fragment; - - case '#': - return s; - } - - break; - - case s_req_fragment: - if (IS_URL_CHAR(ch)) { - return s; - } - - switch (ch) { - case '?': - case '#': - return s; - } - - break; - - default: - break; - } - - /* We should never fall out of the switch above unless there's an error */ - return s_dead; -} - -size_t http_parser_execute (http_parser *parser, - const http_parser_settings *settings, - const char *data, - size_t len) -{ - char c, ch; - int8_t unhex_val; - const char *p = data; - const char *header_field_mark = 0; - const char *header_value_mark = 0; - const char *url_mark = 0; - const char *body_mark = 0; - const char *status_mark = 0; - enum state p_state = (enum state) parser->state; - const unsigned int lenient = parser->lenient_http_headers; - uint32_t nread = parser->nread; - - /* We're in an error state. Don't bother doing anything. */ - if (HTTP_PARSER_ERRNO(parser) != HPE_OK) { - return 0; - } - - if (len == 0) { - switch (CURRENT_STATE()) { - case s_body_identity_eof: - /* Use of CALLBACK_NOTIFY() here would erroneously return 1 byte read if - * we got paused. - */ - CALLBACK_NOTIFY_NOADVANCE(message_complete); - return 0; - - case s_dead: - case s_start_req_or_res: - case s_start_res: - case s_start_req: - return 0; - - default: - SET_ERRNO(HPE_INVALID_EOF_STATE); - return 1; - } - } - - - if (CURRENT_STATE() == s_header_field) - header_field_mark = data; - if (CURRENT_STATE() == s_header_value) - header_value_mark = data; - switch (CURRENT_STATE()) { - case s_req_path: - case s_req_schema: - case s_req_schema_slash: - case s_req_schema_slash_slash: - case s_req_server_start: - case s_req_server: - case s_req_server_with_at: - case s_req_query_string_start: - case s_req_query_string: - case s_req_fragment_start: - case s_req_fragment: - url_mark = data; - break; - case s_res_status: - status_mark = data; - break; - default: - break; - } - - for (p=data; p != data + len; p++) { - ch = *p; - - if (PARSING_HEADER(CURRENT_STATE())) - COUNT_HEADER_SIZE(1); - -reexecute: - switch (CURRENT_STATE()) { - - case s_dead: - /* this state is used after a 'Connection: close' message - * the parser will error out if it reads another message - */ - if (LIKELY(ch == CR || ch == LF)) - break; - - SET_ERRNO(HPE_CLOSED_CONNECTION); - goto error; - - case s_start_req_or_res: - { - if (ch == CR || ch == LF) - break; - parser->flags = 0; - parser->extra_flags = 0; - parser->content_length = ULLONG_MAX; - - if (ch == 'H') { - UPDATE_STATE(s_res_or_resp_H); - - CALLBACK_NOTIFY(message_begin); - } else { - parser->type = HTTP_REQUEST; - UPDATE_STATE(s_start_req); - REEXECUTE(); - } - - break; - } - - case s_res_or_resp_H: - if (ch == 'T') { - parser->type = HTTP_RESPONSE; - UPDATE_STATE(s_res_HT); - } else { - if (UNLIKELY(ch != 'E')) { - SET_ERRNO(HPE_INVALID_CONSTANT); - goto error; - } - - parser->type = HTTP_REQUEST; - parser->method = HTTP_HEAD; - parser->index = 2; - UPDATE_STATE(s_req_method); - } - break; - - case s_start_res: - { - if (ch == CR || ch == LF) - break; - parser->flags = 0; - parser->extra_flags = 0; - parser->content_length = ULLONG_MAX; - - if (ch == 'H') { - UPDATE_STATE(s_res_H); - } else { - SET_ERRNO(HPE_INVALID_CONSTANT); - goto error; - } - - CALLBACK_NOTIFY(message_begin); - break; - } - - case s_res_H: - STRICT_CHECK(ch != 'T'); - UPDATE_STATE(s_res_HT); - break; - - case s_res_HT: - STRICT_CHECK(ch != 'T'); - UPDATE_STATE(s_res_HTT); - break; - - case s_res_HTT: - STRICT_CHECK(ch != 'P'); - UPDATE_STATE(s_res_HTTP); - break; - - case s_res_HTTP: - STRICT_CHECK(ch != '/'); - UPDATE_STATE(s_res_http_major); - break; - - case s_res_http_major: - if (UNLIKELY(!IS_NUM(ch))) { - SET_ERRNO(HPE_INVALID_VERSION); - goto error; - } - - parser->http_major = ch - '0'; - UPDATE_STATE(s_res_http_dot); - break; - - case s_res_http_dot: - { - if (UNLIKELY(ch != '.')) { - SET_ERRNO(HPE_INVALID_VERSION); - goto error; - } - - UPDATE_STATE(s_res_http_minor); - break; - } - - case s_res_http_minor: - if (UNLIKELY(!IS_NUM(ch))) { - SET_ERRNO(HPE_INVALID_VERSION); - goto error; - } - - parser->http_minor = ch - '0'; - UPDATE_STATE(s_res_http_end); - break; - - case s_res_http_end: - { - if (UNLIKELY(ch != ' ')) { - SET_ERRNO(HPE_INVALID_VERSION); - goto error; - } - - UPDATE_STATE(s_res_first_status_code); - break; - } - - case s_res_first_status_code: - { - if (!IS_NUM(ch)) { - if (ch == ' ') { - break; - } - - SET_ERRNO(HPE_INVALID_STATUS); - goto error; - } - parser->status_code = ch - '0'; - UPDATE_STATE(s_res_status_code); - break; - } - - case s_res_status_code: - { - if (!IS_NUM(ch)) { - switch (ch) { - case ' ': - UPDATE_STATE(s_res_status_start); - break; - case CR: - case LF: - UPDATE_STATE(s_res_status_start); - REEXECUTE(); - break; - default: - SET_ERRNO(HPE_INVALID_STATUS); - goto error; - } - break; - } - - parser->status_code *= 10; - parser->status_code += ch - '0'; - - if (UNLIKELY(parser->status_code > 999)) { - SET_ERRNO(HPE_INVALID_STATUS); - goto error; - } - - break; - } - - case s_res_status_start: - { - MARK(status); - UPDATE_STATE(s_res_status); - parser->index = 0; - - if (ch == CR || ch == LF) - REEXECUTE(); - - break; - } - - case s_res_status: - if (ch == CR) { - UPDATE_STATE(s_res_line_almost_done); - CALLBACK_DATA(status); - break; - } - - if (ch == LF) { - UPDATE_STATE(s_header_field_start); - CALLBACK_DATA(status); - break; - } - - break; - - case s_res_line_almost_done: - STRICT_CHECK(ch != LF); - UPDATE_STATE(s_header_field_start); - break; - - case s_start_req: - { - if (ch == CR || ch == LF) - break; - parser->flags = 0; - parser->extra_flags = 0; - parser->content_length = ULLONG_MAX; - - if (UNLIKELY(!IS_ALPHA(ch))) { - SET_ERRNO(HPE_INVALID_METHOD); - goto error; - } - - parser->method = (enum http_method) 0; - parser->index = 1; - switch (ch) { - case 'A': parser->method = HTTP_ACL; break; - case 'B': parser->method = HTTP_BIND; break; - case 'C': parser->method = HTTP_CONNECT; /* or COPY, CHECKOUT */ break; - case 'D': parser->method = HTTP_DELETE; break; - case 'G': parser->method = HTTP_GET; break; - case 'H': parser->method = HTTP_HEAD; break; - case 'L': parser->method = HTTP_LOCK; /* or LINK */ break; - case 'M': parser->method = HTTP_MKCOL; /* or MOVE, MKACTIVITY, MERGE, M-SEARCH, MKCALENDAR */ break; - case 'N': parser->method = HTTP_NOTIFY; break; - case 'O': parser->method = HTTP_OPTIONS; break; - case 'P': parser->method = HTTP_POST; - /* or PROPFIND|PROPPATCH|PUT|PATCH|PURGE */ - break; - case 'R': parser->method = HTTP_REPORT; /* or REBIND */ break; - case 'S': parser->method = HTTP_SUBSCRIBE; /* or SEARCH, SOURCE */ break; - case 'T': parser->method = HTTP_TRACE; break; - case 'U': parser->method = HTTP_UNLOCK; /* or UNSUBSCRIBE, UNBIND, UNLINK */ break; - default: - SET_ERRNO(HPE_INVALID_METHOD); - goto error; - } - UPDATE_STATE(s_req_method); - - CALLBACK_NOTIFY(message_begin); - - break; - } - - case s_req_method: - { - const char *matcher; - if (UNLIKELY(ch == '\0')) { - SET_ERRNO(HPE_INVALID_METHOD); - goto error; - } - - matcher = method_strings[parser->method]; - if (ch == ' ' && matcher[parser->index] == '\0') { - UPDATE_STATE(s_req_spaces_before_url); - } else if (ch == matcher[parser->index]) { - ; /* nada */ - } else if ((ch >= 'A' && ch <= 'Z') || ch == '-') { - - switch (parser->method << 16 | parser->index << 8 | ch) { -#define XX(meth, pos, ch, new_meth) \ - case (HTTP_##meth << 16 | pos << 8 | ch): \ - parser->method = HTTP_##new_meth; break; - - XX(POST, 1, 'U', PUT) - XX(POST, 1, 'A', PATCH) - XX(POST, 1, 'R', PROPFIND) - XX(PUT, 2, 'R', PURGE) - XX(CONNECT, 1, 'H', CHECKOUT) - XX(CONNECT, 2, 'P', COPY) - XX(MKCOL, 1, 'O', MOVE) - XX(MKCOL, 1, 'E', MERGE) - XX(MKCOL, 1, '-', MSEARCH) - XX(MKCOL, 2, 'A', MKACTIVITY) - XX(MKCOL, 3, 'A', MKCALENDAR) - XX(SUBSCRIBE, 1, 'E', SEARCH) - XX(SUBSCRIBE, 1, 'O', SOURCE) - XX(REPORT, 2, 'B', REBIND) - XX(PROPFIND, 4, 'P', PROPPATCH) - XX(LOCK, 1, 'I', LINK) - XX(UNLOCK, 2, 'S', UNSUBSCRIBE) - XX(UNLOCK, 2, 'B', UNBIND) - XX(UNLOCK, 3, 'I', UNLINK) -#undef XX - default: - SET_ERRNO(HPE_INVALID_METHOD); - goto error; - } - } else { - SET_ERRNO(HPE_INVALID_METHOD); - goto error; - } - - ++parser->index; - break; - } - - case s_req_spaces_before_url: - { - if (ch == ' ') break; - - MARK(url); - if (parser->method == HTTP_CONNECT) { - UPDATE_STATE(s_req_server_start); - } - - UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); - if (UNLIKELY(CURRENT_STATE() == s_dead)) { - SET_ERRNO(HPE_INVALID_URL); - goto error; - } - - break; - } - - case s_req_schema: - case s_req_schema_slash: - case s_req_schema_slash_slash: - case s_req_server_start: - { - switch (ch) { - /* No whitespace allowed here */ - case ' ': - case CR: - case LF: - SET_ERRNO(HPE_INVALID_URL); - goto error; - default: - UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); - if (UNLIKELY(CURRENT_STATE() == s_dead)) { - SET_ERRNO(HPE_INVALID_URL); - goto error; - } - } - - break; - } - - case s_req_server: - case s_req_server_with_at: - case s_req_path: - case s_req_query_string_start: - case s_req_query_string: - case s_req_fragment_start: - case s_req_fragment: - { - switch (ch) { - case ' ': - UPDATE_STATE(s_req_http_start); - CALLBACK_DATA(url); - break; - case CR: - case LF: - parser->http_major = 0; - parser->http_minor = 9; - UPDATE_STATE((ch == CR) ? - s_req_line_almost_done : - s_header_field_start); - CALLBACK_DATA(url); - break; - default: - UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); - if (UNLIKELY(CURRENT_STATE() == s_dead)) { - SET_ERRNO(HPE_INVALID_URL); - goto error; - } - } - break; - } - - case s_req_http_start: - switch (ch) { - case ' ': - break; - case 'H': - UPDATE_STATE(s_req_http_H); - break; - case 'I': - if (parser->method == HTTP_SOURCE) { - UPDATE_STATE(s_req_http_I); - break; - } - /* fall through */ - default: - SET_ERRNO(HPE_INVALID_CONSTANT); - goto error; - } - break; - - case s_req_http_H: - STRICT_CHECK(ch != 'T'); - UPDATE_STATE(s_req_http_HT); - break; - - case s_req_http_HT: - STRICT_CHECK(ch != 'T'); - UPDATE_STATE(s_req_http_HTT); - break; - - case s_req_http_HTT: - STRICT_CHECK(ch != 'P'); - UPDATE_STATE(s_req_http_HTTP); - break; - - case s_req_http_I: - STRICT_CHECK(ch != 'C'); - UPDATE_STATE(s_req_http_IC); - break; - - case s_req_http_IC: - STRICT_CHECK(ch != 'E'); - UPDATE_STATE(s_req_http_HTTP); /* Treat "ICE" as "HTTP". */ - break; - - case s_req_http_HTTP: - STRICT_CHECK(ch != '/'); - UPDATE_STATE(s_req_http_major); - break; - - case s_req_http_major: - if (UNLIKELY(!IS_NUM(ch))) { - SET_ERRNO(HPE_INVALID_VERSION); - goto error; - } - - parser->http_major = ch - '0'; - UPDATE_STATE(s_req_http_dot); - break; - - case s_req_http_dot: - { - if (UNLIKELY(ch != '.')) { - SET_ERRNO(HPE_INVALID_VERSION); - goto error; - } - - UPDATE_STATE(s_req_http_minor); - break; - } - - case s_req_http_minor: - if (UNLIKELY(!IS_NUM(ch))) { - SET_ERRNO(HPE_INVALID_VERSION); - goto error; - } - - parser->http_minor = ch - '0'; - UPDATE_STATE(s_req_http_end); - break; - - case s_req_http_end: - { - if (ch == CR) { - UPDATE_STATE(s_req_line_almost_done); - break; - } - - if (ch == LF) { - UPDATE_STATE(s_header_field_start); - break; - } - - SET_ERRNO(HPE_INVALID_VERSION); - goto error; - break; - } - - /* end of request line */ - case s_req_line_almost_done: - { - if (UNLIKELY(ch != LF)) { - SET_ERRNO(HPE_LF_EXPECTED); - goto error; - } - - UPDATE_STATE(s_header_field_start); - break; - } - - case s_header_field_start: - { - if (ch == CR) { - UPDATE_STATE(s_headers_almost_done); - break; - } - - if (ch == LF) { - /* they might be just sending \n instead of \r\n so this would be - * the second \n to denote the end of headers*/ - UPDATE_STATE(s_headers_almost_done); - REEXECUTE(); - } - - c = TOKEN(ch); - - if (UNLIKELY(!c)) { - SET_ERRNO(HPE_INVALID_HEADER_TOKEN); - goto error; - } - - MARK(header_field); - - parser->index = 0; - UPDATE_STATE(s_header_field); - - switch (c) { - case 'c': - parser->header_state = h_C; - break; - - case 'p': - parser->header_state = h_matching_proxy_connection; - break; - - case 't': - parser->header_state = h_matching_transfer_encoding; - break; - - case 'u': - parser->header_state = h_matching_upgrade; - break; - - default: - parser->header_state = h_general; - break; - } - break; - } - - case s_header_field: - { - const char* start = p; - for (; p != data + len; p++) { - ch = *p; - c = TOKEN(ch); - - if (!c) - break; - - switch (parser->header_state) { - case h_general: { - size_t left = data + len - p; - const char* pe = p + MIN(left, max_header_size); - while (p+1 < pe && TOKEN(p[1])) { - p++; - } - break; - } - - case h_C: - parser->index++; - parser->header_state = (c == 'o' ? h_CO : h_general); - break; - - case h_CO: - parser->index++; - parser->header_state = (c == 'n' ? h_CON : h_general); - break; - - case h_CON: - parser->index++; - switch (c) { - case 'n': - parser->header_state = h_matching_connection; - break; - case 't': - parser->header_state = h_matching_content_length; - break; - default: - parser->header_state = h_general; - break; - } - break; - - /* connection */ - - case h_matching_connection: - parser->index++; - if (parser->index > sizeof(CONNECTION)-1 - || c != CONNECTION[parser->index]) { - parser->header_state = h_general; - } else if (parser->index == sizeof(CONNECTION)-2) { - parser->header_state = h_connection; - } - break; - - /* proxy-connection */ - - case h_matching_proxy_connection: - parser->index++; - if (parser->index > sizeof(PROXY_CONNECTION)-1 - || c != PROXY_CONNECTION[parser->index]) { - parser->header_state = h_general; - } else if (parser->index == sizeof(PROXY_CONNECTION)-2) { - parser->header_state = h_connection; - } - break; - - /* content-length */ - - case h_matching_content_length: - parser->index++; - if (parser->index > sizeof(CONTENT_LENGTH)-1 - || c != CONTENT_LENGTH[parser->index]) { - parser->header_state = h_general; - } else if (parser->index == sizeof(CONTENT_LENGTH)-2) { - parser->header_state = h_content_length; - } - break; - - /* transfer-encoding */ - - case h_matching_transfer_encoding: - parser->index++; - if (parser->index > sizeof(TRANSFER_ENCODING)-1 - || c != TRANSFER_ENCODING[parser->index]) { - parser->header_state = h_general; - } else if (parser->index == sizeof(TRANSFER_ENCODING)-2) { - parser->header_state = h_transfer_encoding; - parser->extra_flags |= F_TRANSFER_ENCODING >> 8; - } - break; - - /* upgrade */ - - case h_matching_upgrade: - parser->index++; - if (parser->index > sizeof(UPGRADE)-1 - || c != UPGRADE[parser->index]) { - parser->header_state = h_general; - } else if (parser->index == sizeof(UPGRADE)-2) { - parser->header_state = h_upgrade; - } - break; - - case h_connection: - case h_content_length: - case h_transfer_encoding: - case h_upgrade: - if (ch != ' ') parser->header_state = h_general; - break; - - default: - assert(0 && "Unknown header_state"); - break; - } - } - - if (p == data + len) { - --p; - COUNT_HEADER_SIZE(p - start); - break; - } - - COUNT_HEADER_SIZE(p - start); - - if (ch == ':') { - UPDATE_STATE(s_header_value_discard_ws); - CALLBACK_DATA(header_field); - break; - } - - SET_ERRNO(HPE_INVALID_HEADER_TOKEN); - goto error; - } - - case s_header_value_discard_ws: - if (ch == ' ' || ch == '\t') break; - - if (ch == CR) { - UPDATE_STATE(s_header_value_discard_ws_almost_done); - break; - } - - if (ch == LF) { - UPDATE_STATE(s_header_value_discard_lws); - break; - } - - /* fall through */ - - case s_header_value_start: - { - MARK(header_value); - - UPDATE_STATE(s_header_value); - parser->index = 0; - - c = LOWER(ch); - - switch (parser->header_state) { - case h_upgrade: - parser->flags |= F_UPGRADE; - parser->header_state = h_general; - break; - - case h_transfer_encoding: - /* looking for 'Transfer-Encoding: chunked' */ - if ('c' == c) { - parser->header_state = h_matching_transfer_encoding_chunked; - } else { - parser->header_state = h_matching_transfer_encoding_token; - } - break; - - /* Multi-value `Transfer-Encoding` header */ - case h_matching_transfer_encoding_token_start: - break; - - case h_content_length: - if (UNLIKELY(!IS_NUM(ch))) { - SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); - goto error; - } - - if (parser->flags & F_CONTENTLENGTH) { - SET_ERRNO(HPE_UNEXPECTED_CONTENT_LENGTH); - goto error; - } - - parser->flags |= F_CONTENTLENGTH; - parser->content_length = ch - '0'; - parser->header_state = h_content_length_num; - break; - - /* when obsolete line folding is encountered for content length - * continue to the s_header_value state */ - case h_content_length_ws: - break; - - case h_connection: - /* looking for 'Connection: keep-alive' */ - if (c == 'k') { - parser->header_state = h_matching_connection_keep_alive; - /* looking for 'Connection: close' */ - } else if (c == 'c') { - parser->header_state = h_matching_connection_close; - } else if (c == 'u') { - parser->header_state = h_matching_connection_upgrade; - } else { - parser->header_state = h_matching_connection_token; - } - break; - - /* Multi-value `Connection` header */ - case h_matching_connection_token_start: - break; - - default: - parser->header_state = h_general; - break; - } - break; - } - - case s_header_value: - { - const char* start = p; - enum header_states h_state = (enum header_states) parser->header_state; - for (; p != data + len; p++) { - ch = *p; - if (ch == CR) { - UPDATE_STATE(s_header_almost_done); - parser->header_state = h_state; - CALLBACK_DATA(header_value); - break; - } - - if (ch == LF) { - UPDATE_STATE(s_header_almost_done); - COUNT_HEADER_SIZE(p - start); - parser->header_state = h_state; - CALLBACK_DATA_NOADVANCE(header_value); - REEXECUTE(); - } - - if (!lenient && !IS_HEADER_CHAR(ch)) { - SET_ERRNO(HPE_INVALID_HEADER_TOKEN); - goto error; - } - - c = LOWER(ch); - - switch (h_state) { - case h_general: - { - size_t left = data + len - p; - const char* pe = p + MIN(left, max_header_size); - - for (; p != pe; p++) { - ch = *p; - if (ch == CR || ch == LF) { - --p; - break; - } - if (!lenient && !IS_HEADER_CHAR(ch)) { - SET_ERRNO(HPE_INVALID_HEADER_TOKEN); - goto error; - } - } - if (p == data + len) - --p; - break; - } - - case h_connection: - case h_transfer_encoding: - assert(0 && "Shouldn't get here."); - break; - - case h_content_length: - if (ch == ' ') break; - h_state = h_content_length_num; - /* fall through */ - - case h_content_length_num: - { - uint64_t t; - - if (ch == ' ') { - h_state = h_content_length_ws; - break; - } - - if (UNLIKELY(!IS_NUM(ch))) { - SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); - parser->header_state = h_state; - goto error; - } - - t = parser->content_length; - t *= 10; - t += ch - '0'; - - /* Overflow? Test against a conservative limit for simplicity. */ - if (UNLIKELY((ULLONG_MAX - 10) / 10 < parser->content_length)) { - SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); - parser->header_state = h_state; - goto error; - } - - parser->content_length = t; - break; - } - - case h_content_length_ws: - if (ch == ' ') break; - SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); - parser->header_state = h_state; - goto error; - - /* Transfer-Encoding: chunked */ - case h_matching_transfer_encoding_token_start: - /* looking for 'Transfer-Encoding: chunked' */ - if ('c' == c) { - h_state = h_matching_transfer_encoding_chunked; - } else if (STRICT_TOKEN(c)) { - /* TODO(indutny): similar code below does this, but why? - * At the very least it seems to be inconsistent given that - * h_matching_transfer_encoding_token does not check for - * `STRICT_TOKEN` - */ - h_state = h_matching_transfer_encoding_token; - } else if (c == ' ' || c == '\t') { - /* Skip lws */ - } else { - h_state = h_general; - } - break; - - case h_matching_transfer_encoding_chunked: - parser->index++; - if (parser->index > sizeof(CHUNKED)-1 - || c != CHUNKED[parser->index]) { - h_state = h_matching_transfer_encoding_token; - } else if (parser->index == sizeof(CHUNKED)-2) { - h_state = h_transfer_encoding_chunked; - } - break; - - case h_matching_transfer_encoding_token: - if (ch == ',') { - h_state = h_matching_transfer_encoding_token_start; - parser->index = 0; - } - break; - - case h_matching_connection_token_start: - /* looking for 'Connection: keep-alive' */ - if (c == 'k') { - h_state = h_matching_connection_keep_alive; - /* looking for 'Connection: close' */ - } else if (c == 'c') { - h_state = h_matching_connection_close; - } else if (c == 'u') { - h_state = h_matching_connection_upgrade; - } else if (STRICT_TOKEN(c)) { - h_state = h_matching_connection_token; - } else if (c == ' ' || c == '\t') { - /* Skip lws */ - } else { - h_state = h_general; - } - break; - - /* looking for 'Connection: keep-alive' */ - case h_matching_connection_keep_alive: - parser->index++; - if (parser->index > sizeof(KEEP_ALIVE)-1 - || c != KEEP_ALIVE[parser->index]) { - h_state = h_matching_connection_token; - } else if (parser->index == sizeof(KEEP_ALIVE)-2) { - h_state = h_connection_keep_alive; - } - break; - - /* looking for 'Connection: close' */ - case h_matching_connection_close: - parser->index++; - if (parser->index > sizeof(CLOSE)-1 || c != CLOSE[parser->index]) { - h_state = h_matching_connection_token; - } else if (parser->index == sizeof(CLOSE)-2) { - h_state = h_connection_close; - } - break; - - /* looking for 'Connection: upgrade' */ - case h_matching_connection_upgrade: - parser->index++; - if (parser->index > sizeof(UPGRADE) - 1 || - c != UPGRADE[parser->index]) { - h_state = h_matching_connection_token; - } else if (parser->index == sizeof(UPGRADE)-2) { - h_state = h_connection_upgrade; - } - break; - - case h_matching_connection_token: - if (ch == ',') { - h_state = h_matching_connection_token_start; - parser->index = 0; - } - break; - - case h_transfer_encoding_chunked: - if (ch != ' ') h_state = h_matching_transfer_encoding_token; - break; - - case h_connection_keep_alive: - case h_connection_close: - case h_connection_upgrade: - if (ch == ',') { - if (h_state == h_connection_keep_alive) { - parser->flags |= F_CONNECTION_KEEP_ALIVE; - } else if (h_state == h_connection_close) { - parser->flags |= F_CONNECTION_CLOSE; - } else if (h_state == h_connection_upgrade) { - parser->flags |= F_CONNECTION_UPGRADE; - } - h_state = h_matching_connection_token_start; - parser->index = 0; - } else if (ch != ' ') { - h_state = h_matching_connection_token; - } - break; - - default: - UPDATE_STATE(s_header_value); - h_state = h_general; - break; - } - } - parser->header_state = h_state; - - if (p == data + len) - --p; - - COUNT_HEADER_SIZE(p - start); - break; - } - - case s_header_almost_done: - { - if (UNLIKELY(ch != LF)) { - SET_ERRNO(HPE_LF_EXPECTED); - goto error; - } - - UPDATE_STATE(s_header_value_lws); - break; - } - - case s_header_value_lws: - { - if (ch == ' ' || ch == '\t') { - if (parser->header_state == h_content_length_num) { - /* treat obsolete line folding as space */ - parser->header_state = h_content_length_ws; - } - UPDATE_STATE(s_header_value_start); - REEXECUTE(); - } - - /* finished the header */ - switch (parser->header_state) { - case h_connection_keep_alive: - parser->flags |= F_CONNECTION_KEEP_ALIVE; - break; - case h_connection_close: - parser->flags |= F_CONNECTION_CLOSE; - break; - case h_transfer_encoding_chunked: - parser->flags |= F_CHUNKED; - break; - case h_connection_upgrade: - parser->flags |= F_CONNECTION_UPGRADE; - break; - default: - break; - } - - UPDATE_STATE(s_header_field_start); - REEXECUTE(); - } - - case s_header_value_discard_ws_almost_done: - { - STRICT_CHECK(ch != LF); - UPDATE_STATE(s_header_value_discard_lws); - break; - } - - case s_header_value_discard_lws: - { - if (ch == ' ' || ch == '\t') { - UPDATE_STATE(s_header_value_discard_ws); - break; - } else { - switch (parser->header_state) { - case h_connection_keep_alive: - parser->flags |= F_CONNECTION_KEEP_ALIVE; - break; - case h_connection_close: - parser->flags |= F_CONNECTION_CLOSE; - break; - case h_connection_upgrade: - parser->flags |= F_CONNECTION_UPGRADE; - break; - case h_transfer_encoding_chunked: - parser->flags |= F_CHUNKED; - break; - case h_content_length: - /* do not allow empty content length */ - SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); - goto error; - break; - default: - break; - } - - /* header value was empty */ - MARK(header_value); - UPDATE_STATE(s_header_field_start); - CALLBACK_DATA_NOADVANCE(header_value); - REEXECUTE(); - } - } - - case s_headers_almost_done: - { - STRICT_CHECK(ch != LF); - - if (parser->flags & F_TRAILING) { - /* End of a chunked request */ - UPDATE_STATE(s_message_done); - CALLBACK_NOTIFY_NOADVANCE(chunk_complete); - REEXECUTE(); - } - - /* Cannot us transfer-encoding and a content-length header together - per the HTTP specification. (RFC 7230 Section 3.3.3) */ - if ((parser->extra_flags & (F_TRANSFER_ENCODING >> 8)) && - (parser->flags & F_CONTENTLENGTH)) { - /* Allow it for lenient parsing as long as `Transfer-Encoding` is - * not `chunked` - */ - if (!lenient || (parser->flags & F_CHUNKED)) { - SET_ERRNO(HPE_UNEXPECTED_CONTENT_LENGTH); - goto error; - } - } - - UPDATE_STATE(s_headers_done); - - /* Set this here so that on_headers_complete() callbacks can see it */ - if ((parser->flags & F_UPGRADE) && - (parser->flags & F_CONNECTION_UPGRADE)) { - /* For responses, "Upgrade: foo" and "Connection: upgrade" are - * mandatory only when it is a 101 Switching Protocols response, - * otherwise it is purely informational, to announce support. - */ - parser->upgrade = - (parser->type == HTTP_REQUEST || parser->status_code == 101); - } else { - parser->upgrade = (parser->method == HTTP_CONNECT); - } - - /* Here we call the headers_complete callback. This is somewhat - * different than other callbacks because if the user returns 1, we - * will interpret that as saying that this message has no body. This - * is needed for the annoying case of recieving a response to a HEAD - * request. - * - * We'd like to use CALLBACK_NOTIFY_NOADVANCE() here but we cannot, so - * we have to simulate it by handling a change in errno below. - */ - if (settings->on_headers_complete) { - switch (settings->on_headers_complete(parser)) { - case 0: - break; - - case 2: - parser->upgrade = 1; - - /* fall through */ - case 1: - parser->flags |= F_SKIPBODY; - break; - - default: - SET_ERRNO(HPE_CB_headers_complete); - RETURN(p - data); /* Error */ - } - } - - if (HTTP_PARSER_ERRNO(parser) != HPE_OK) { - RETURN(p - data); - } - - REEXECUTE(); - } - - case s_headers_done: - { - int hasBody; - STRICT_CHECK(ch != LF); - - parser->nread = 0; - nread = 0; - - hasBody = parser->flags & F_CHUNKED || - (parser->content_length > 0 && parser->content_length != ULLONG_MAX); - if (parser->upgrade && (parser->method == HTTP_CONNECT || - (parser->flags & F_SKIPBODY) || !hasBody)) { - /* Exit, the rest of the message is in a different protocol. */ - UPDATE_STATE(NEW_MESSAGE()); - CALLBACK_NOTIFY(message_complete); - RETURN((p - data) + 1); - } - - if (parser->flags & F_SKIPBODY) { - UPDATE_STATE(NEW_MESSAGE()); - CALLBACK_NOTIFY(message_complete); - } else if (parser->flags & F_CHUNKED) { - /* chunked encoding - ignore Content-Length header, - * prepare for a chunk */ - UPDATE_STATE(s_chunk_size_start); - } else if (parser->extra_flags & (F_TRANSFER_ENCODING >> 8)) { - if (parser->type == HTTP_REQUEST && !lenient) { - /* RFC 7230 3.3.3 */ - - /* If a Transfer-Encoding header field - * is present in a request and the chunked transfer coding is not - * the final encoding, the message body length cannot be determined - * reliably; the server MUST respond with the 400 (Bad Request) - * status code and then close the connection. - */ - SET_ERRNO(HPE_INVALID_TRANSFER_ENCODING); - RETURN(p - data); /* Error */ - } else { - /* RFC 7230 3.3.3 */ - - /* If a Transfer-Encoding header field is present in a response and - * the chunked transfer coding is not the final encoding, the - * message body length is determined by reading the connection until - * it is closed by the server. - */ - UPDATE_STATE(s_body_identity_eof); - } - } else { - if (parser->content_length == 0) { - /* Content-Length header given but zero: Content-Length: 0\r\n */ - UPDATE_STATE(NEW_MESSAGE()); - CALLBACK_NOTIFY(message_complete); - } else if (parser->content_length != ULLONG_MAX) { - /* Content-Length header given and non-zero */ - UPDATE_STATE(s_body_identity); - } else { - if (!http_message_needs_eof(parser)) { - /* Assume content-length 0 - read the next */ - UPDATE_STATE(NEW_MESSAGE()); - CALLBACK_NOTIFY(message_complete); - } else { - /* Read body until EOF */ - UPDATE_STATE(s_body_identity_eof); - } - } - } - - break; - } - - case s_body_identity: - { - uint64_t to_read = MIN(parser->content_length, - (uint64_t) ((data + len) - p)); - - assert(parser->content_length != 0 - && parser->content_length != ULLONG_MAX); - - /* The difference between advancing content_length and p is because - * the latter will automaticaly advance on the next loop iteration. - * Further, if content_length ends up at 0, we want to see the last - * byte again for our message complete callback. - */ - MARK(body); - parser->content_length -= to_read; - p += to_read - 1; - - if (parser->content_length == 0) { - UPDATE_STATE(s_message_done); - - /* Mimic CALLBACK_DATA_NOADVANCE() but with one extra byte. - * - * The alternative to doing this is to wait for the next byte to - * trigger the data callback, just as in every other case. The - * problem with this is that this makes it difficult for the test - * harness to distinguish between complete-on-EOF and - * complete-on-length. It's not clear that this distinction is - * important for applications, but let's keep it for now. - */ - CALLBACK_DATA_(body, p - body_mark + 1, p - data); - REEXECUTE(); - } - - break; - } - - /* read until EOF */ - case s_body_identity_eof: - MARK(body); - p = data + len - 1; - - break; - - case s_message_done: - UPDATE_STATE(NEW_MESSAGE()); - CALLBACK_NOTIFY(message_complete); - if (parser->upgrade) { - /* Exit, the rest of the message is in a different protocol. */ - RETURN((p - data) + 1); - } - break; - - case s_chunk_size_start: - { - assert(nread == 1); - assert(parser->flags & F_CHUNKED); - - unhex_val = unhex[(unsigned char)ch]; - if (UNLIKELY(unhex_val == -1)) { - SET_ERRNO(HPE_INVALID_CHUNK_SIZE); - goto error; - } - - parser->content_length = unhex_val; - UPDATE_STATE(s_chunk_size); - break; - } - - case s_chunk_size: - { - uint64_t t; - - assert(parser->flags & F_CHUNKED); - - if (ch == CR) { - UPDATE_STATE(s_chunk_size_almost_done); - break; - } - - unhex_val = unhex[(unsigned char)ch]; - - if (unhex_val == -1) { - if (ch == ';' || ch == ' ') { - UPDATE_STATE(s_chunk_parameters); - break; - } - - SET_ERRNO(HPE_INVALID_CHUNK_SIZE); - goto error; - } - - t = parser->content_length; - t *= 16; - t += unhex_val; - - /* Overflow? Test against a conservative limit for simplicity. */ - if (UNLIKELY((ULLONG_MAX - 16) / 16 < parser->content_length)) { - SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); - goto error; - } - - parser->content_length = t; - break; - } - - case s_chunk_parameters: - { - assert(parser->flags & F_CHUNKED); - /* just ignore this shit. TODO check for overflow */ - if (ch == CR) { - UPDATE_STATE(s_chunk_size_almost_done); - break; - } - break; - } - - case s_chunk_size_almost_done: - { - assert(parser->flags & F_CHUNKED); - STRICT_CHECK(ch != LF); - - parser->nread = 0; - nread = 0; - - if (parser->content_length == 0) { - parser->flags |= F_TRAILING; - UPDATE_STATE(s_header_field_start); - } else { - UPDATE_STATE(s_chunk_data); - } - CALLBACK_NOTIFY(chunk_header); - break; - } - - case s_chunk_data: - { - uint64_t to_read = MIN(parser->content_length, - (uint64_t) ((data + len) - p)); - - assert(parser->flags & F_CHUNKED); - assert(parser->content_length != 0 - && parser->content_length != ULLONG_MAX); - - /* See the explanation in s_body_identity for why the content - * length and data pointers are managed this way. - */ - MARK(body); - parser->content_length -= to_read; - p += to_read - 1; - - if (parser->content_length == 0) { - UPDATE_STATE(s_chunk_data_almost_done); - } - - break; - } - - case s_chunk_data_almost_done: - assert(parser->flags & F_CHUNKED); - assert(parser->content_length == 0); - STRICT_CHECK(ch != CR); - UPDATE_STATE(s_chunk_data_done); - CALLBACK_DATA(body); - break; - - case s_chunk_data_done: - assert(parser->flags & F_CHUNKED); - STRICT_CHECK(ch != LF); - parser->nread = 0; - nread = 0; - UPDATE_STATE(s_chunk_size_start); - CALLBACK_NOTIFY(chunk_complete); - break; - - default: - assert(0 && "unhandled state"); - SET_ERRNO(HPE_INVALID_INTERNAL_STATE); - goto error; - } - } - - /* Run callbacks for any marks that we have leftover after we ran out of - * bytes. There should be at most one of these set, so it's OK to invoke - * them in series (unset marks will not result in callbacks). - * - * We use the NOADVANCE() variety of callbacks here because 'p' has already - * overflowed 'data' and this allows us to correct for the off-by-one that - * we'd otherwise have (since CALLBACK_DATA() is meant to be run with a 'p' - * value that's in-bounds). - */ - - assert(((header_field_mark ? 1 : 0) + - (header_value_mark ? 1 : 0) + - (url_mark ? 1 : 0) + - (body_mark ? 1 : 0) + - (status_mark ? 1 : 0)) <= 1); - - CALLBACK_DATA_NOADVANCE(header_field); - CALLBACK_DATA_NOADVANCE(header_value); - CALLBACK_DATA_NOADVANCE(url); - CALLBACK_DATA_NOADVANCE(body); - CALLBACK_DATA_NOADVANCE(status); - - RETURN(len); - -error: - if (HTTP_PARSER_ERRNO(parser) == HPE_OK) { - SET_ERRNO(HPE_UNKNOWN); - } - - RETURN(p - data); -} - - -/* Does the parser need to see an EOF to find the end of the message? */ -int -http_message_needs_eof (const http_parser *parser) -{ - if (parser->type == HTTP_REQUEST) { - return 0; - } - - /* See RFC 2616 section 4.4 */ - if (parser->status_code / 100 == 1 || /* 1xx e.g. Continue */ - parser->status_code == 204 || /* No Content */ - parser->status_code == 304 || /* Not Modified */ - parser->flags & F_SKIPBODY) { /* response to a HEAD request */ - return 0; - } - - /* RFC 7230 3.3.3, see `s_headers_almost_done` */ - if ((parser->extra_flags & (F_TRANSFER_ENCODING >> 8)) && - (parser->flags & F_CHUNKED) == 0) { - return 1; - } - - if ((parser->flags & F_CHUNKED) || parser->content_length != ULLONG_MAX) { - return 0; - } - - return 1; -} - - -int -http_should_keep_alive (const http_parser *parser) -{ - if (parser->http_major > 0 && parser->http_minor > 0) { - /* HTTP/1.1 */ - if (parser->flags & F_CONNECTION_CLOSE) { - return 0; - } - } else { - /* HTTP/1.0 or earlier */ - if (!(parser->flags & F_CONNECTION_KEEP_ALIVE)) { - return 0; - } - } - - return !http_message_needs_eof(parser); -} - - -const char * -http_method_str (enum http_method m) -{ - return ELEM_AT(method_strings, m, ""); -} - -const char * -http_status_str (enum http_status s) -{ - switch (s) { -#define XX(num, name, string) case HTTP_STATUS_##name: return #string; - HTTP_STATUS_MAP(XX) -#undef XX - default: return ""; - } -} - -void -http_parser_init (http_parser *parser, enum http_parser_type t) -{ - void *data = parser->data; /* preserve application data */ - memset(parser, 0, sizeof(*parser)); - parser->data = data; - parser->type = t; - parser->state = (t == HTTP_REQUEST ? s_start_req : (t == HTTP_RESPONSE ? s_start_res : s_start_req_or_res)); - parser->http_errno = HPE_OK; -} - -void -http_parser_settings_init(http_parser_settings *settings) -{ - memset(settings, 0, sizeof(*settings)); -} - -const char * -http_errno_name(enum http_errno err) { - assert(((size_t) err) < ARRAY_SIZE(http_strerror_tab)); - return http_strerror_tab[err].name; -} - -const char * -http_errno_description(enum http_errno err) { - assert(((size_t) err) < ARRAY_SIZE(http_strerror_tab)); - return http_strerror_tab[err].description; -} - -static enum http_host_state -http_parse_host_char(enum http_host_state s, const char ch) { - switch(s) { - case s_http_userinfo: - case s_http_userinfo_start: - if (ch == '@') { - return s_http_host_start; - } - - if (IS_USERINFO_CHAR(ch)) { - return s_http_userinfo; - } - break; - - case s_http_host_start: - if (ch == '[') { - return s_http_host_v6_start; - } - - if (IS_HOST_CHAR(ch)) { - return s_http_host; - } - - break; - - case s_http_host: - if (IS_HOST_CHAR(ch)) { - return s_http_host; - } - - /* fall through */ - case s_http_host_v6_end: - if (ch == ':') { - return s_http_host_port_start; - } - - break; - - case s_http_host_v6: - if (ch == ']') { - return s_http_host_v6_end; - } - - /* fall through */ - case s_http_host_v6_start: - if (IS_HEX(ch) || ch == ':' || ch == '.') { - return s_http_host_v6; - } - - if (s == s_http_host_v6 && ch == '%') { - return s_http_host_v6_zone_start; - } - break; - - case s_http_host_v6_zone: - if (ch == ']') { - return s_http_host_v6_end; - } - - /* fall through */ - case s_http_host_v6_zone_start: - /* RFC 6874 Zone ID consists of 1*( unreserved / pct-encoded) */ - if (IS_ALPHANUM(ch) || ch == '%' || ch == '.' || ch == '-' || ch == '_' || - ch == '~') { - return s_http_host_v6_zone; - } - break; - - case s_http_host_port: - case s_http_host_port_start: - if (IS_NUM(ch)) { - return s_http_host_port; - } - - break; - - default: - break; - } - return s_http_host_dead; -} - -static int -http_parse_host(const char * buf, struct http_parser_url *u, int found_at) { - enum http_host_state s; - - const char *p; - size_t buflen = u->field_data[UF_HOST].off + u->field_data[UF_HOST].len; - - assert(u->field_set & (1 << UF_HOST)); - - u->field_data[UF_HOST].len = 0; - - s = found_at ? s_http_userinfo_start : s_http_host_start; - - for (p = buf + u->field_data[UF_HOST].off; p < buf + buflen; p++) { - enum http_host_state new_s = http_parse_host_char(s, *p); - - if (new_s == s_http_host_dead) { - return 1; - } - - switch(new_s) { - case s_http_host: - if (s != s_http_host) { - u->field_data[UF_HOST].off = (uint16_t)(p - buf); - } - u->field_data[UF_HOST].len++; - break; - - case s_http_host_v6: - if (s != s_http_host_v6) { - u->field_data[UF_HOST].off = (uint16_t)(p - buf); - } - u->field_data[UF_HOST].len++; - break; - - case s_http_host_v6_zone_start: - case s_http_host_v6_zone: - u->field_data[UF_HOST].len++; - break; - - case s_http_host_port: - if (s != s_http_host_port) { - u->field_data[UF_PORT].off = (uint16_t)(p - buf); - u->field_data[UF_PORT].len = 0; - u->field_set |= (1 << UF_PORT); - } - u->field_data[UF_PORT].len++; - break; - - case s_http_userinfo: - if (s != s_http_userinfo) { - u->field_data[UF_USERINFO].off = (uint16_t)(p - buf); - u->field_data[UF_USERINFO].len = 0; - u->field_set |= (1 << UF_USERINFO); - } - u->field_data[UF_USERINFO].len++; - break; - - default: - break; - } - s = new_s; - } - - /* Make sure we don't end somewhere unexpected */ - switch (s) { - case s_http_host_start: - case s_http_host_v6_start: - case s_http_host_v6: - case s_http_host_v6_zone_start: - case s_http_host_v6_zone: - case s_http_host_port_start: - case s_http_userinfo: - case s_http_userinfo_start: - return 1; - default: - break; - } - - return 0; -} - -void -http_parser_url_init(struct http_parser_url *u) { - memset(u, 0, sizeof(*u)); -} - -int -http_parser_parse_url(const char *buf, size_t buflen, int is_connect, - struct http_parser_url *u) -{ - enum state s; - const char *p; - enum http_parser_url_fields uf, old_uf; - int found_at = 0; - - if (buflen == 0) { - return 1; - } - - u->port = u->field_set = 0; - s = is_connect ? s_req_server_start : s_req_spaces_before_url; - old_uf = UF_MAX; - - for (p = buf; p < buf + buflen; p++) { - s = parse_url_char(s, *p); - - /* Figure out the next field that we're operating on */ - switch (s) { - case s_dead: - return 1; - - /* Skip delimeters */ - case s_req_schema_slash: - case s_req_schema_slash_slash: - case s_req_server_start: - case s_req_query_string_start: - case s_req_fragment_start: - continue; - - case s_req_schema: - uf = UF_SCHEMA; - break; - - case s_req_server_with_at: - found_at = 1; - - /* fall through */ - case s_req_server: - uf = UF_HOST; - break; - - case s_req_path: - uf = UF_PATH; - break; - - case s_req_query_string: - uf = UF_QUERY; - break; - - case s_req_fragment: - uf = UF_FRAGMENT; - break; - - default: - assert(!"Unexpected state"); - return 1; - } - - /* Nothing's changed; soldier on */ - if (uf == old_uf) { - u->field_data[uf].len++; - continue; - } - - u->field_data[uf].off = (uint16_t)(p - buf); - u->field_data[uf].len = 1; - - u->field_set |= (1 << uf); - old_uf = uf; - } - - /* host must be present if there is a schema */ - /* parsing http:///toto will fail */ - if ((u->field_set & (1 << UF_SCHEMA)) && - (u->field_set & (1 << UF_HOST)) == 0) { - return 1; - } - - if (u->field_set & (1 << UF_HOST)) { - if (http_parse_host(buf, u, found_at) != 0) { - return 1; - } - } - - /* CONNECT requests can only contain "hostname:port" */ - if (is_connect && u->field_set != ((1 << UF_HOST)|(1 << UF_PORT))) { - return 1; - } - - if (u->field_set & (1 << UF_PORT)) { - uint16_t off; - uint16_t len; - const char* p; - const char* end; - unsigned long v; - - off = u->field_data[UF_PORT].off; - len = u->field_data[UF_PORT].len; - end = buf + off + len; - - /* NOTE: The characters are already validated and are in the [0-9] range */ - assert(off + len <= buflen && "Port number overflow"); - v = 0; - for (p = buf + off; p < end; p++) { - v *= 10; - v += *p - '0'; - - /* Ports have a max value of 2^16 */ - if (v > 0xffff) { - return 1; - } - } - - u->port = (uint16_t) v; - } - - return 0; -} - -void -http_parser_pause(http_parser *parser, int paused) { - /* Users should only be pausing/unpausing a parser that is not in an error - * state. In non-debug builds, there's not much that we can do about this - * other than ignore it. - */ - if (HTTP_PARSER_ERRNO(parser) == HPE_OK || - HTTP_PARSER_ERRNO(parser) == HPE_PAUSED) { - uint32_t nread = parser->nread; /* used by the SET_ERRNO macro */ - SET_ERRNO((paused) ? HPE_PAUSED : HPE_OK); - } else { - assert(0 && "Attempting to pause parser in error state"); - } -} - -int -http_body_is_final(const struct http_parser *parser) { - return parser->state == s_message_done; -} - -unsigned long -http_parser_version(void) { - return HTTP_PARSER_VERSION_MAJOR * 0x10000 | - HTTP_PARSER_VERSION_MINOR * 0x00100 | - HTTP_PARSER_VERSION_PATCH * 0x00001; -} - -void -http_parser_set_max_header_size(uint32_t size) { - max_header_size = size; -} diff --git a/vendor/http-parser/http_parser.gyp b/vendor/http-parser/http_parser.gyp deleted file mode 100644 index ef34eca..0000000 --- a/vendor/http-parser/http_parser.gyp +++ /dev/null @@ -1,111 +0,0 @@ -# This file is used with the GYP meta build system. -# http://code.google.com/p/gyp/ -# To build try this: -# svn co http://gyp.googlecode.com/svn/trunk gyp -# ./gyp/gyp -f make --depth=`pwd` http_parser.gyp -# ./out/Debug/test -{ - 'target_defaults': { - 'default_configuration': 'Debug', - 'configurations': { - # TODO: hoist these out and put them somewhere common, because - # RuntimeLibrary MUST MATCH across the entire project - 'Debug': { - 'defines': [ 'DEBUG', '_DEBUG' ], - 'cflags': [ '-Wall', '-Wextra', '-O0', '-g', '-ftrapv' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 1, # static debug - }, - }, - }, - 'Release': { - 'defines': [ 'NDEBUG' ], - 'cflags': [ '-Wall', '-Wextra', '-O3' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - 'RuntimeLibrary': 0, # static release - }, - }, - } - }, - 'msvs_settings': { - 'VCCLCompilerTool': { - }, - 'VCLibrarianTool': { - }, - 'VCLinkerTool': { - 'GenerateDebugInformation': 'true', - }, - }, - 'conditions': [ - ['OS == "win"', { - 'defines': [ - 'WIN32' - ], - }] - ], - }, - - 'targets': [ - { - 'target_name': 'http_parser', - 'type': 'static_library', - 'include_dirs': [ '.' ], - 'direct_dependent_settings': { - 'defines': [ 'HTTP_PARSER_STRICT=0' ], - 'include_dirs': [ '.' ], - }, - 'defines': [ 'HTTP_PARSER_STRICT=0' ], - 'sources': [ './http_parser.c', ], - 'conditions': [ - ['OS=="win"', { - 'msvs_settings': { - 'VCCLCompilerTool': { - # Compile as C++. http_parser.c is actually C99, but C++ is - # close enough in this case. - 'CompileAs': 2, - }, - }, - }] - ], - }, - - { - 'target_name': 'http_parser_strict', - 'type': 'static_library', - 'include_dirs': [ '.' ], - 'direct_dependent_settings': { - 'defines': [ 'HTTP_PARSER_STRICT=1' ], - 'include_dirs': [ '.' ], - }, - 'defines': [ 'HTTP_PARSER_STRICT=1' ], - 'sources': [ './http_parser.c', ], - 'conditions': [ - ['OS=="win"', { - 'msvs_settings': { - 'VCCLCompilerTool': { - # Compile as C++. http_parser.c is actually C99, but C++ is - # close enough in this case. - 'CompileAs': 2, - }, - }, - }] - ], - }, - - { - 'target_name': 'test-nonstrict', - 'type': 'executable', - 'dependencies': [ 'http_parser' ], - 'sources': [ 'test.c' ] - }, - - { - 'target_name': 'test-strict', - 'type': 'executable', - 'dependencies': [ 'http_parser_strict' ], - 'sources': [ 'test.c' ] - } - ] -} diff --git a/vendor/http-parser/http_parser.h b/vendor/http-parser/http_parser.h deleted file mode 100644 index df88252..0000000 --- a/vendor/http-parser/http_parser.h +++ /dev/null @@ -1,443 +0,0 @@ -/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. - * - * 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. - */ -#ifndef http_parser_h -#define http_parser_h -#ifdef __cplusplus -extern "C" { -#endif - -/* Also update SONAME in the Makefile whenever you change these. */ -#define HTTP_PARSER_VERSION_MAJOR 2 -#define HTTP_PARSER_VERSION_MINOR 9 -#define HTTP_PARSER_VERSION_PATCH 4 - -#include -#if defined(_WIN32) && !defined(__MINGW32__) && \ - (!defined(_MSC_VER) || _MSC_VER<1600) && !defined(__WINE__) -#include -typedef __int8 int8_t; -typedef unsigned __int8 uint8_t; -typedef __int16 int16_t; -typedef unsigned __int16 uint16_t; -typedef __int32 int32_t; -typedef unsigned __int32 uint32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -#include -#endif - -/* Compile with -DHTTP_PARSER_STRICT=0 to make less checks, but run - * faster - */ -#ifndef HTTP_PARSER_STRICT -# define HTTP_PARSER_STRICT 1 -#endif - -/* Maximium header size allowed. If the macro is not defined - * before including this header then the default is used. To - * change the maximum header size, define the macro in the build - * environment (e.g. -DHTTP_MAX_HEADER_SIZE=). To remove - * the effective limit on the size of the header, define the macro - * to a very large number (e.g. -DHTTP_MAX_HEADER_SIZE=0x7fffffff) - */ -#ifndef HTTP_MAX_HEADER_SIZE -# define HTTP_MAX_HEADER_SIZE (80*1024) -#endif - -typedef struct http_parser http_parser; -typedef struct http_parser_settings http_parser_settings; - - -/* Callbacks should return non-zero to indicate an error. The parser will - * then halt execution. - * - * The one exception is on_headers_complete. In a HTTP_RESPONSE parser - * returning '1' from on_headers_complete will tell the parser that it - * should not expect a body. This is used when receiving a response to a - * HEAD request which may contain 'Content-Length' or 'Transfer-Encoding: - * chunked' headers that indicate the presence of a body. - * - * Returning `2` from on_headers_complete will tell parser that it should not - * expect neither a body nor any futher responses on this connection. This is - * useful for handling responses to a CONNECT request which may not contain - * `Upgrade` or `Connection: upgrade` headers. - * - * http_data_cb does not return data chunks. It will be called arbitrarily - * many times for each string. E.G. you might get 10 callbacks for "on_url" - * each providing just a few characters more data. - */ -typedef int (*http_data_cb) (http_parser*, const char *at, size_t length); -typedef int (*http_cb) (http_parser*); - - -/* Status Codes */ -#define HTTP_STATUS_MAP(XX) \ - XX(100, CONTINUE, Continue) \ - XX(101, SWITCHING_PROTOCOLS, Switching Protocols) \ - XX(102, PROCESSING, Processing) \ - XX(200, OK, OK) \ - XX(201, CREATED, Created) \ - XX(202, ACCEPTED, Accepted) \ - XX(203, NON_AUTHORITATIVE_INFORMATION, Non-Authoritative Information) \ - XX(204, NO_CONTENT, No Content) \ - XX(205, RESET_CONTENT, Reset Content) \ - XX(206, PARTIAL_CONTENT, Partial Content) \ - XX(207, MULTI_STATUS, Multi-Status) \ - XX(208, ALREADY_REPORTED, Already Reported) \ - XX(226, IM_USED, IM Used) \ - XX(300, MULTIPLE_CHOICES, Multiple Choices) \ - XX(301, MOVED_PERMANENTLY, Moved Permanently) \ - XX(302, FOUND, Found) \ - XX(303, SEE_OTHER, See Other) \ - XX(304, NOT_MODIFIED, Not Modified) \ - XX(305, USE_PROXY, Use Proxy) \ - XX(307, TEMPORARY_REDIRECT, Temporary Redirect) \ - XX(308, PERMANENT_REDIRECT, Permanent Redirect) \ - XX(400, BAD_REQUEST, Bad Request) \ - XX(401, UNAUTHORIZED, Unauthorized) \ - XX(402, PAYMENT_REQUIRED, Payment Required) \ - XX(403, FORBIDDEN, Forbidden) \ - XX(404, NOT_FOUND, Not Found) \ - XX(405, METHOD_NOT_ALLOWED, Method Not Allowed) \ - XX(406, NOT_ACCEPTABLE, Not Acceptable) \ - XX(407, PROXY_AUTHENTICATION_REQUIRED, Proxy Authentication Required) \ - XX(408, REQUEST_TIMEOUT, Request Timeout) \ - XX(409, CONFLICT, Conflict) \ - XX(410, GONE, Gone) \ - XX(411, LENGTH_REQUIRED, Length Required) \ - XX(412, PRECONDITION_FAILED, Precondition Failed) \ - XX(413, PAYLOAD_TOO_LARGE, Payload Too Large) \ - XX(414, URI_TOO_LONG, URI Too Long) \ - XX(415, UNSUPPORTED_MEDIA_TYPE, Unsupported Media Type) \ - XX(416, RANGE_NOT_SATISFIABLE, Range Not Satisfiable) \ - XX(417, EXPECTATION_FAILED, Expectation Failed) \ - XX(421, MISDIRECTED_REQUEST, Misdirected Request) \ - XX(422, UNPROCESSABLE_ENTITY, Unprocessable Entity) \ - XX(423, LOCKED, Locked) \ - XX(424, FAILED_DEPENDENCY, Failed Dependency) \ - XX(426, UPGRADE_REQUIRED, Upgrade Required) \ - XX(428, PRECONDITION_REQUIRED, Precondition Required) \ - XX(429, TOO_MANY_REQUESTS, Too Many Requests) \ - XX(431, REQUEST_HEADER_FIELDS_TOO_LARGE, Request Header Fields Too Large) \ - XX(451, UNAVAILABLE_FOR_LEGAL_REASONS, Unavailable For Legal Reasons) \ - XX(500, INTERNAL_SERVER_ERROR, Internal Server Error) \ - XX(501, NOT_IMPLEMENTED, Not Implemented) \ - XX(502, BAD_GATEWAY, Bad Gateway) \ - XX(503, SERVICE_UNAVAILABLE, Service Unavailable) \ - XX(504, GATEWAY_TIMEOUT, Gateway Timeout) \ - XX(505, HTTP_VERSION_NOT_SUPPORTED, HTTP Version Not Supported) \ - XX(506, VARIANT_ALSO_NEGOTIATES, Variant Also Negotiates) \ - XX(507, INSUFFICIENT_STORAGE, Insufficient Storage) \ - XX(508, LOOP_DETECTED, Loop Detected) \ - XX(510, NOT_EXTENDED, Not Extended) \ - XX(511, NETWORK_AUTHENTICATION_REQUIRED, Network Authentication Required) \ - -enum http_status - { -#define XX(num, name, string) HTTP_STATUS_##name = num, - HTTP_STATUS_MAP(XX) -#undef XX - }; - - -/* Request Methods */ -#define HTTP_METHOD_MAP(XX) \ - XX(0, DELETE, DELETE) \ - XX(1, GET, GET) \ - XX(2, HEAD, HEAD) \ - XX(3, POST, POST) \ - XX(4, PUT, PUT) \ - /* pathological */ \ - XX(5, CONNECT, CONNECT) \ - XX(6, OPTIONS, OPTIONS) \ - XX(7, TRACE, TRACE) \ - /* WebDAV */ \ - XX(8, COPY, COPY) \ - XX(9, LOCK, LOCK) \ - XX(10, MKCOL, MKCOL) \ - XX(11, MOVE, MOVE) \ - XX(12, PROPFIND, PROPFIND) \ - XX(13, PROPPATCH, PROPPATCH) \ - XX(14, SEARCH, SEARCH) \ - XX(15, UNLOCK, UNLOCK) \ - XX(16, BIND, BIND) \ - XX(17, REBIND, REBIND) \ - XX(18, UNBIND, UNBIND) \ - XX(19, ACL, ACL) \ - /* subversion */ \ - XX(20, REPORT, REPORT) \ - XX(21, MKACTIVITY, MKACTIVITY) \ - XX(22, CHECKOUT, CHECKOUT) \ - XX(23, MERGE, MERGE) \ - /* upnp */ \ - XX(24, MSEARCH, M-SEARCH) \ - XX(25, NOTIFY, NOTIFY) \ - XX(26, SUBSCRIBE, SUBSCRIBE) \ - XX(27, UNSUBSCRIBE, UNSUBSCRIBE) \ - /* RFC-5789 */ \ - XX(28, PATCH, PATCH) \ - XX(29, PURGE, PURGE) \ - /* CalDAV */ \ - XX(30, MKCALENDAR, MKCALENDAR) \ - /* RFC-2068, section 19.6.1.2 */ \ - XX(31, LINK, LINK) \ - XX(32, UNLINK, UNLINK) \ - /* icecast */ \ - XX(33, SOURCE, SOURCE) \ - -enum http_method - { -#define XX(num, name, string) HTTP_##name = num, - HTTP_METHOD_MAP(XX) -#undef XX - }; - - -enum http_parser_type { HTTP_REQUEST, HTTP_RESPONSE, HTTP_BOTH }; - - -/* Flag values for http_parser.flags field */ -enum flags - { F_CHUNKED = 1 << 0 - , F_CONNECTION_KEEP_ALIVE = 1 << 1 - , F_CONNECTION_CLOSE = 1 << 2 - , F_CONNECTION_UPGRADE = 1 << 3 - , F_TRAILING = 1 << 4 - , F_UPGRADE = 1 << 5 - , F_SKIPBODY = 1 << 6 - , F_CONTENTLENGTH = 1 << 7 - , F_TRANSFER_ENCODING = 1 << 8 /* Never set in http_parser.flags */ - }; - - -/* Map for errno-related constants - * - * The provided argument should be a macro that takes 2 arguments. - */ -#define HTTP_ERRNO_MAP(XX) \ - /* No error */ \ - XX(OK, "success") \ - \ - /* Callback-related errors */ \ - XX(CB_message_begin, "the on_message_begin callback failed") \ - XX(CB_url, "the on_url callback failed") \ - XX(CB_header_field, "the on_header_field callback failed") \ - XX(CB_header_value, "the on_header_value callback failed") \ - XX(CB_headers_complete, "the on_headers_complete callback failed") \ - XX(CB_body, "the on_body callback failed") \ - XX(CB_message_complete, "the on_message_complete callback failed") \ - XX(CB_status, "the on_status callback failed") \ - XX(CB_chunk_header, "the on_chunk_header callback failed") \ - XX(CB_chunk_complete, "the on_chunk_complete callback failed") \ - \ - /* Parsing-related errors */ \ - XX(INVALID_EOF_STATE, "stream ended at an unexpected time") \ - XX(HEADER_OVERFLOW, \ - "too many header bytes seen; overflow detected") \ - XX(CLOSED_CONNECTION, \ - "data received after completed connection: close message") \ - XX(INVALID_VERSION, "invalid HTTP version") \ - XX(INVALID_STATUS, "invalid HTTP status code") \ - XX(INVALID_METHOD, "invalid HTTP method") \ - XX(INVALID_URL, "invalid URL") \ - XX(INVALID_HOST, "invalid host") \ - XX(INVALID_PORT, "invalid port") \ - XX(INVALID_PATH, "invalid path") \ - XX(INVALID_QUERY_STRING, "invalid query string") \ - XX(INVALID_FRAGMENT, "invalid fragment") \ - XX(LF_EXPECTED, "LF character expected") \ - XX(INVALID_HEADER_TOKEN, "invalid character in header") \ - XX(INVALID_CONTENT_LENGTH, \ - "invalid character in content-length header") \ - XX(UNEXPECTED_CONTENT_LENGTH, \ - "unexpected content-length header") \ - XX(INVALID_CHUNK_SIZE, \ - "invalid character in chunk size header") \ - XX(INVALID_CONSTANT, "invalid constant string") \ - XX(INVALID_INTERNAL_STATE, "encountered unexpected internal state")\ - XX(STRICT, "strict mode assertion failed") \ - XX(PAUSED, "parser is paused") \ - XX(UNKNOWN, "an unknown error occurred") \ - XX(INVALID_TRANSFER_ENCODING, \ - "request has invalid transfer-encoding") \ - - -/* Define HPE_* values for each errno value above */ -#define HTTP_ERRNO_GEN(n, s) HPE_##n, -enum http_errno { - HTTP_ERRNO_MAP(HTTP_ERRNO_GEN) -}; -#undef HTTP_ERRNO_GEN - - -/* Get an http_errno value from an http_parser */ -#define HTTP_PARSER_ERRNO(p) ((enum http_errno) (p)->http_errno) - - -struct http_parser { - /** PRIVATE **/ - unsigned int type : 2; /* enum http_parser_type */ - unsigned int flags : 8; /* F_* values from 'flags' enum; semi-public */ - unsigned int state : 7; /* enum state from http_parser.c */ - unsigned int header_state : 7; /* enum header_state from http_parser.c */ - unsigned int index : 5; /* index into current matcher */ - unsigned int extra_flags : 2; - unsigned int lenient_http_headers : 1; - - uint32_t nread; /* # bytes read in various scenarios */ - uint64_t content_length; /* # bytes in body (0 if no Content-Length header) */ - - /** READ-ONLY **/ - unsigned short http_major; - unsigned short http_minor; - unsigned int status_code : 16; /* responses only */ - unsigned int method : 8; /* requests only */ - unsigned int http_errno : 7; - - /* 1 = Upgrade header was present and the parser has exited because of that. - * 0 = No upgrade header present. - * Should be checked when http_parser_execute() returns in addition to - * error checking. - */ - unsigned int upgrade : 1; - - /** PUBLIC **/ - void *data; /* A pointer to get hook to the "connection" or "socket" object */ -}; - - -struct http_parser_settings { - http_cb on_message_begin; - http_data_cb on_url; - http_data_cb on_status; - http_data_cb on_header_field; - http_data_cb on_header_value; - http_cb on_headers_complete; - http_data_cb on_body; - http_cb on_message_complete; - /* When on_chunk_header is called, the current chunk length is stored - * in parser->content_length. - */ - http_cb on_chunk_header; - http_cb on_chunk_complete; -}; - - -enum http_parser_url_fields - { UF_SCHEMA = 0 - , UF_HOST = 1 - , UF_PORT = 2 - , UF_PATH = 3 - , UF_QUERY = 4 - , UF_FRAGMENT = 5 - , UF_USERINFO = 6 - , UF_MAX = 7 - }; - - -/* Result structure for http_parser_parse_url(). - * - * Callers should index into field_data[] with UF_* values iff field_set - * has the relevant (1 << UF_*) bit set. As a courtesy to clients (and - * because we probably have padding left over), we convert any port to - * a uint16_t. - */ -struct http_parser_url { - uint16_t field_set; /* Bitmask of (1 << UF_*) values */ - uint16_t port; /* Converted UF_PORT string */ - - struct { - uint16_t off; /* Offset into buffer in which field starts */ - uint16_t len; /* Length of run in buffer */ - } field_data[UF_MAX]; -}; - - -/* Returns the library version. Bits 16-23 contain the major version number, - * bits 8-15 the minor version number and bits 0-7 the patch level. - * Usage example: - * - * unsigned long version = http_parser_version(); - * unsigned major = (version >> 16) & 255; - * unsigned minor = (version >> 8) & 255; - * unsigned patch = version & 255; - * printf("http_parser v%u.%u.%u\n", major, minor, patch); - */ -unsigned long http_parser_version(void); - -void http_parser_init(http_parser *parser, enum http_parser_type type); - - -/* Initialize http_parser_settings members to 0 - */ -void http_parser_settings_init(http_parser_settings *settings); - - -/* Executes the parser. Returns number of parsed bytes. Sets - * `parser->http_errno` on error. */ -size_t http_parser_execute(http_parser *parser, - const http_parser_settings *settings, - const char *data, - size_t len); - - -/* If http_should_keep_alive() in the on_headers_complete or - * on_message_complete callback returns 0, then this should be - * the last message on the connection. - * If you are the server, respond with the "Connection: close" header. - * If you are the client, close the connection. - */ -int http_should_keep_alive(const http_parser *parser); - -/* Returns a string version of the HTTP method. */ -const char *http_method_str(enum http_method m); - -/* Returns a string version of the HTTP status code. */ -const char *http_status_str(enum http_status s); - -/* Return a string name of the given error */ -const char *http_errno_name(enum http_errno err); - -/* Return a string description of the given error */ -const char *http_errno_description(enum http_errno err); - -/* Initialize all http_parser_url members to 0 */ -void http_parser_url_init(struct http_parser_url *u); - -/* Parse a URL; return nonzero on failure */ -int http_parser_parse_url(const char *buf, size_t buflen, - int is_connect, - struct http_parser_url *u); - -/* Pause or un-pause the parser; a nonzero value pauses */ -void http_parser_pause(http_parser *parser, int paused); - -/* Checks if this is the final chunk of the body. */ -int http_body_is_final(const http_parser *parser); - -/* Change the maximum header size provided at compile time. */ -void http_parser_set_max_header_size(uint32_t size); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/vendor/http-parser/test.c b/vendor/http-parser/test.c deleted file mode 100644 index 7983424..0000000 --- a/vendor/http-parser/test.c +++ /dev/null @@ -1,4600 +0,0 @@ -/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. - * - * 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. - */ -#include "http_parser.h" -#include -#include -#include -#include /* rand */ -#include -#include - -#if defined(__APPLE__) -# undef strlncpy -#endif /* defined(__APPLE__) */ - -#undef TRUE -#define TRUE 1 -#undef FALSE -#define FALSE 0 - -#define MAX_HEADERS 13 -#define MAX_ELEMENT_SIZE 2048 -#define MAX_CHUNKS 16 - -#define MIN(a,b) ((a) < (b) ? (a) : (b)) - -#define ARRAY_SIZE(x) (sizeof(x) / sizeof(*x)) - -static http_parser parser; - -struct message { - const char *name; // for debugging purposes - const char *raw; - enum http_parser_type type; - enum http_method method; - int status_code; - char response_status[MAX_ELEMENT_SIZE]; - char request_path[MAX_ELEMENT_SIZE]; - char request_url[MAX_ELEMENT_SIZE]; - char fragment[MAX_ELEMENT_SIZE]; - char query_string[MAX_ELEMENT_SIZE]; - char body[MAX_ELEMENT_SIZE]; - size_t body_size; - const char *host; - const char *userinfo; - uint16_t port; - int num_headers; - enum { NONE=0, FIELD, VALUE } last_header_element; - char headers [MAX_HEADERS][2][MAX_ELEMENT_SIZE]; - int should_keep_alive; - - int num_chunks; - int num_chunks_complete; - int chunk_lengths[MAX_CHUNKS]; - - const char *upgrade; // upgraded body - - unsigned short http_major; - unsigned short http_minor; - - int message_begin_cb_called; - int headers_complete_cb_called; - int message_complete_cb_called; - int status_cb_called; - int message_complete_on_eof; - int body_is_final; -}; - -static int currently_parsing_eof; - -static struct message messages[5]; -static int num_messages; -static http_parser_settings *current_pause_parser; - -/* * R E Q U E S T S * */ -const struct message requests[] = -#define CURL_GET 0 -{ {.name= "curl get" - ,.type= HTTP_REQUEST - ,.raw= "GET /test HTTP/1.1\r\n" - "User-Agent: curl/7.18.0 (i486-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1\r\n" - "Host: 0.0.0.0=5000\r\n" - "Accept: */*\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/test" - ,.request_url= "/test" - ,.num_headers= 3 - ,.headers= - { { "User-Agent", "curl/7.18.0 (i486-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1" } - , { "Host", "0.0.0.0=5000" } - , { "Accept", "*/*" } - } - ,.body= "" - } - -#define FIREFOX_GET 1 -, {.name= "firefox get" - ,.type= HTTP_REQUEST - ,.raw= "GET /favicon.ico HTTP/1.1\r\n" - "Host: 0.0.0.0=5000\r\n" - "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008061015 Firefox/3.0\r\n" - "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n" - "Accept-Language: en-us,en;q=0.5\r\n" - "Accept-Encoding: gzip,deflate\r\n" - "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n" - "Keep-Alive: 300\r\n" - "Connection: keep-alive\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/favicon.ico" - ,.request_url= "/favicon.ico" - ,.num_headers= 8 - ,.headers= - { { "Host", "0.0.0.0=5000" } - , { "User-Agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008061015 Firefox/3.0" } - , { "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" } - , { "Accept-Language", "en-us,en;q=0.5" } - , { "Accept-Encoding", "gzip,deflate" } - , { "Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7" } - , { "Keep-Alive", "300" } - , { "Connection", "keep-alive" } - } - ,.body= "" - } - -#define DUMBLUCK 2 -, {.name= "dumbluck" - ,.type= HTTP_REQUEST - ,.raw= "GET /dumbluck HTTP/1.1\r\n" - "aaaaaaaaaaaaa:++++++++++\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/dumbluck" - ,.request_url= "/dumbluck" - ,.num_headers= 1 - ,.headers= - { { "aaaaaaaaaaaaa", "++++++++++" } - } - ,.body= "" - } - -#define FRAGMENT_IN_URI 3 -, {.name= "fragment in url" - ,.type= HTTP_REQUEST - ,.raw= "GET /forums/1/topics/2375?page=1#posts-17408 HTTP/1.1\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "page=1" - ,.fragment= "posts-17408" - ,.request_path= "/forums/1/topics/2375" - /* XXX request url does include fragment? */ - ,.request_url= "/forums/1/topics/2375?page=1#posts-17408" - ,.num_headers= 0 - ,.body= "" - } - -#define GET_NO_HEADERS_NO_BODY 4 -, {.name= "get no headers no body" - ,.type= HTTP_REQUEST - ,.raw= "GET /get_no_headers_no_body/world HTTP/1.1\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE /* would need Connection: close */ - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/get_no_headers_no_body/world" - ,.request_url= "/get_no_headers_no_body/world" - ,.num_headers= 0 - ,.body= "" - } - -#define GET_ONE_HEADER_NO_BODY 5 -, {.name= "get one header no body" - ,.type= HTTP_REQUEST - ,.raw= "GET /get_one_header_no_body HTTP/1.1\r\n" - "Accept: */*\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE /* would need Connection: close */ - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/get_one_header_no_body" - ,.request_url= "/get_one_header_no_body" - ,.num_headers= 1 - ,.headers= - { { "Accept" , "*/*" } - } - ,.body= "" - } - -#define GET_FUNKY_CONTENT_LENGTH 6 -, {.name= "get funky content length body hello" - ,.type= HTTP_REQUEST - ,.raw= "GET /get_funky_content_length_body_hello HTTP/1.0\r\n" - "conTENT-Length: 5\r\n" - "\r\n" - "HELLO" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 0 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/get_funky_content_length_body_hello" - ,.request_url= "/get_funky_content_length_body_hello" - ,.num_headers= 1 - ,.headers= - { { "conTENT-Length" , "5" } - } - ,.body= "HELLO" - } - -#define POST_IDENTITY_BODY_WORLD 7 -, {.name= "post identity body world" - ,.type= HTTP_REQUEST - ,.raw= "POST /post_identity_body_world?q=search#hey HTTP/1.1\r\n" - "Accept: */*\r\n" - "Content-Length: 5\r\n" - "\r\n" - "World" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_POST - ,.query_string= "q=search" - ,.fragment= "hey" - ,.request_path= "/post_identity_body_world" - ,.request_url= "/post_identity_body_world?q=search#hey" - ,.num_headers= 2 - ,.headers= - { { "Accept", "*/*" } - , { "Content-Length", "5" } - } - ,.body= "World" - } - -#define POST_CHUNKED_ALL_YOUR_BASE 8 -, {.name= "post - chunked body: all your base are belong to us" - ,.type= HTTP_REQUEST - ,.raw= "POST /post_chunked_all_your_base HTTP/1.1\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "1e\r\nall your base are belong to us\r\n" - "0\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_POST - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/post_chunked_all_your_base" - ,.request_url= "/post_chunked_all_your_base" - ,.num_headers= 1 - ,.headers= - { { "Transfer-Encoding" , "chunked" } - } - ,.body= "all your base are belong to us" - ,.num_chunks_complete= 2 - ,.chunk_lengths= { 0x1e } - } - -#define TWO_CHUNKS_MULT_ZERO_END 9 -, {.name= "two chunks ; triple zero ending" - ,.type= HTTP_REQUEST - ,.raw= "POST /two_chunks_mult_zero_end HTTP/1.1\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "5\r\nhello\r\n" - "6\r\n world\r\n" - "000\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_POST - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/two_chunks_mult_zero_end" - ,.request_url= "/two_chunks_mult_zero_end" - ,.num_headers= 1 - ,.headers= - { { "Transfer-Encoding", "chunked" } - } - ,.body= "hello world" - ,.num_chunks_complete= 3 - ,.chunk_lengths= { 5, 6 } - } - -#define CHUNKED_W_TRAILING_HEADERS 10 -, {.name= "chunked with trailing headers. blech." - ,.type= HTTP_REQUEST - ,.raw= "POST /chunked_w_trailing_headers HTTP/1.1\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "5\r\nhello\r\n" - "6\r\n world\r\n" - "0\r\n" - "Vary: *\r\n" - "Content-Type: text/plain\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_POST - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/chunked_w_trailing_headers" - ,.request_url= "/chunked_w_trailing_headers" - ,.num_headers= 3 - ,.headers= - { { "Transfer-Encoding", "chunked" } - , { "Vary", "*" } - , { "Content-Type", "text/plain" } - } - ,.body= "hello world" - ,.num_chunks_complete= 3 - ,.chunk_lengths= { 5, 6 } - } - -#define CHUNKED_W_NONSENSE_AFTER_LENGTH 11 -, {.name= "with nonsense after the length" - ,.type= HTTP_REQUEST - ,.raw= "POST /chunked_w_nonsense_after_length HTTP/1.1\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "5; ilovew3;whattheluck=aretheseparametersfor\r\nhello\r\n" - "6; blahblah; blah\r\n world\r\n" - "0\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_POST - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/chunked_w_nonsense_after_length" - ,.request_url= "/chunked_w_nonsense_after_length" - ,.num_headers= 1 - ,.headers= - { { "Transfer-Encoding", "chunked" } - } - ,.body= "hello world" - ,.num_chunks_complete= 3 - ,.chunk_lengths= { 5, 6 } - } - -#define WITH_QUOTES 12 -, {.name= "with quotes" - ,.type= HTTP_REQUEST - ,.raw= "GET /with_\"stupid\"_quotes?foo=\"bar\" HTTP/1.1\r\n\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "foo=\"bar\"" - ,.fragment= "" - ,.request_path= "/with_\"stupid\"_quotes" - ,.request_url= "/with_\"stupid\"_quotes?foo=\"bar\"" - ,.num_headers= 0 - ,.headers= { } - ,.body= "" - } - -#define APACHEBENCH_GET 13 -/* The server receiving this request SHOULD NOT wait for EOF - * to know that content-length == 0. - * How to represent this in a unit test? message_complete_on_eof - * Compare with NO_CONTENT_LENGTH_RESPONSE. - */ -, {.name = "apachebench get" - ,.type= HTTP_REQUEST - ,.raw= "GET /test HTTP/1.0\r\n" - "Host: 0.0.0.0:5000\r\n" - "User-Agent: ApacheBench/2.3\r\n" - "Accept: */*\r\n\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 0 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/test" - ,.request_url= "/test" - ,.num_headers= 3 - ,.headers= { { "Host", "0.0.0.0:5000" } - , { "User-Agent", "ApacheBench/2.3" } - , { "Accept", "*/*" } - } - ,.body= "" - } - -#define QUERY_URL_WITH_QUESTION_MARK_GET 14 -/* Some clients include '?' characters in query strings. - */ -, {.name = "query url with question mark" - ,.type= HTTP_REQUEST - ,.raw= "GET /test.cgi?foo=bar?baz HTTP/1.1\r\n\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "foo=bar?baz" - ,.fragment= "" - ,.request_path= "/test.cgi" - ,.request_url= "/test.cgi?foo=bar?baz" - ,.num_headers= 0 - ,.headers= {} - ,.body= "" - } - -#define PREFIX_NEWLINE_GET 15 -/* Some clients, especially after a POST in a keep-alive connection, - * will send an extra CRLF before the next request - */ -, {.name = "newline prefix get" - ,.type= HTTP_REQUEST - ,.raw= "\r\nGET /test HTTP/1.1\r\n\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/test" - ,.request_url= "/test" - ,.num_headers= 0 - ,.headers= { } - ,.body= "" - } - -#define UPGRADE_REQUEST 16 -, {.name = "upgrade request" - ,.type= HTTP_REQUEST - ,.raw= "GET /demo HTTP/1.1\r\n" - "Host: example.com\r\n" - "Connection: Upgrade\r\n" - "Sec-WebSocket-Key2: 12998 5 Y3 1 .P00\r\n" - "Sec-WebSocket-Protocol: sample\r\n" - "Upgrade: WebSocket\r\n" - "Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5\r\n" - "Origin: http://example.com\r\n" - "\r\n" - "Hot diggity dogg" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/demo" - ,.request_url= "/demo" - ,.num_headers= 7 - ,.upgrade="Hot diggity dogg" - ,.headers= { { "Host", "example.com" } - , { "Connection", "Upgrade" } - , { "Sec-WebSocket-Key2", "12998 5 Y3 1 .P00" } - , { "Sec-WebSocket-Protocol", "sample" } - , { "Upgrade", "WebSocket" } - , { "Sec-WebSocket-Key1", "4 @1 46546xW%0l 1 5" } - , { "Origin", "http://example.com" } - } - ,.body= "" - } - -#define CONNECT_REQUEST 17 -, {.name = "connect request" - ,.type= HTTP_REQUEST - ,.raw= "CONNECT 0-home0.netscape.com:443 HTTP/1.0\r\n" - "User-agent: Mozilla/1.1N\r\n" - "Proxy-authorization: basic aGVsbG86d29ybGQ=\r\n" - "\r\n" - "some data\r\n" - "and yet even more data" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 0 - ,.method= HTTP_CONNECT - ,.query_string= "" - ,.fragment= "" - ,.request_path= "" - ,.request_url= "0-home0.netscape.com:443" - ,.num_headers= 2 - ,.upgrade="some data\r\nand yet even more data" - ,.headers= { { "User-agent", "Mozilla/1.1N" } - , { "Proxy-authorization", "basic aGVsbG86d29ybGQ=" } - } - ,.body= "" - } - -#define REPORT_REQ 18 -, {.name= "report request" - ,.type= HTTP_REQUEST - ,.raw= "REPORT /test HTTP/1.1\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_REPORT - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/test" - ,.request_url= "/test" - ,.num_headers= 0 - ,.headers= {} - ,.body= "" - } - -#define NO_HTTP_VERSION 19 -, {.name= "request with no http version" - ,.type= HTTP_REQUEST - ,.raw= "GET /\r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 0 - ,.http_minor= 9 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/" - ,.request_url= "/" - ,.num_headers= 0 - ,.headers= {} - ,.body= "" - } - -#define MSEARCH_REQ 20 -, {.name= "m-search request" - ,.type= HTTP_REQUEST - ,.raw= "M-SEARCH * HTTP/1.1\r\n" - "HOST: 239.255.255.250:1900\r\n" - "MAN: \"ssdp:discover\"\r\n" - "ST: \"ssdp:all\"\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_MSEARCH - ,.query_string= "" - ,.fragment= "" - ,.request_path= "*" - ,.request_url= "*" - ,.num_headers= 3 - ,.headers= { { "HOST", "239.255.255.250:1900" } - , { "MAN", "\"ssdp:discover\"" } - , { "ST", "\"ssdp:all\"" } - } - ,.body= "" - } - -#define LINE_FOLDING_IN_HEADER 21 -, {.name= "line folding in header value" - ,.type= HTTP_REQUEST - ,.raw= "GET / HTTP/1.1\r\n" - "Line1: abc\r\n" - "\tdef\r\n" - " ghi\r\n" - "\t\tjkl\r\n" - " mno \r\n" - "\t \tqrs\r\n" - "Line2: \t line2\t\r\n" - "Line3:\r\n" - " line3\r\n" - "Line4: \r\n" - " \r\n" - "Connection:\r\n" - " close\r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/" - ,.request_url= "/" - ,.num_headers= 5 - ,.headers= { { "Line1", "abc\tdef ghi\t\tjkl mno \t \tqrs" } - , { "Line2", "line2\t" } - , { "Line3", "line3" } - , { "Line4", "" } - , { "Connection", "close" }, - } - ,.body= "" - } - - -#define QUERY_TERMINATED_HOST 22 -, {.name= "host terminated by a query string" - ,.type= HTTP_REQUEST - ,.raw= "GET http://hypnotoad.org?hail=all HTTP/1.1\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "hail=all" - ,.fragment= "" - ,.request_path= "" - ,.request_url= "http://hypnotoad.org?hail=all" - ,.host= "hypnotoad.org" - ,.num_headers= 0 - ,.headers= { } - ,.body= "" - } - -#define QUERY_TERMINATED_HOSTPORT 23 -, {.name= "host:port terminated by a query string" - ,.type= HTTP_REQUEST - ,.raw= "GET http://hypnotoad.org:1234?hail=all HTTP/1.1\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "hail=all" - ,.fragment= "" - ,.request_path= "" - ,.request_url= "http://hypnotoad.org:1234?hail=all" - ,.host= "hypnotoad.org" - ,.port= 1234 - ,.num_headers= 0 - ,.headers= { } - ,.body= "" - } - -#define SPACE_TERMINATED_HOSTPORT 24 -, {.name= "host:port terminated by a space" - ,.type= HTTP_REQUEST - ,.raw= "GET http://hypnotoad.org:1234 HTTP/1.1\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "" - ,.request_url= "http://hypnotoad.org:1234" - ,.host= "hypnotoad.org" - ,.port= 1234 - ,.num_headers= 0 - ,.headers= { } - ,.body= "" - } - -#define PATCH_REQ 25 -, {.name = "PATCH request" - ,.type= HTTP_REQUEST - ,.raw= "PATCH /file.txt HTTP/1.1\r\n" - "Host: www.example.com\r\n" - "Content-Type: application/example\r\n" - "If-Match: \"e0023aa4e\"\r\n" - "Content-Length: 10\r\n" - "\r\n" - "cccccccccc" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_PATCH - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/file.txt" - ,.request_url= "/file.txt" - ,.num_headers= 4 - ,.headers= { { "Host", "www.example.com" } - , { "Content-Type", "application/example" } - , { "If-Match", "\"e0023aa4e\"" } - , { "Content-Length", "10" } - } - ,.body= "cccccccccc" - } - -#define CONNECT_CAPS_REQUEST 26 -, {.name = "connect caps request" - ,.type= HTTP_REQUEST - ,.raw= "CONNECT HOME0.NETSCAPE.COM:443 HTTP/1.0\r\n" - "User-agent: Mozilla/1.1N\r\n" - "Proxy-authorization: basic aGVsbG86d29ybGQ=\r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 0 - ,.method= HTTP_CONNECT - ,.query_string= "" - ,.fragment= "" - ,.request_path= "" - ,.request_url= "HOME0.NETSCAPE.COM:443" - ,.num_headers= 2 - ,.upgrade="" - ,.headers= { { "User-agent", "Mozilla/1.1N" } - , { "Proxy-authorization", "basic aGVsbG86d29ybGQ=" } - } - ,.body= "" - } - -#if !HTTP_PARSER_STRICT -#define UTF8_PATH_REQ 27 -, {.name= "utf-8 path request" - ,.type= HTTP_REQUEST - ,.raw= "GET /δ¶/δt/pope?q=1#narf HTTP/1.1\r\n" - "Host: github.com\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "q=1" - ,.fragment= "narf" - ,.request_path= "/δ¶/δt/pope" - ,.request_url= "/δ¶/δt/pope?q=1#narf" - ,.num_headers= 1 - ,.headers= { {"Host", "github.com" } - } - ,.body= "" - } - -#define HOSTNAME_UNDERSCORE 28 -, {.name = "hostname underscore" - ,.type= HTTP_REQUEST - ,.raw= "CONNECT home_0.netscape.com:443 HTTP/1.0\r\n" - "User-agent: Mozilla/1.1N\r\n" - "Proxy-authorization: basic aGVsbG86d29ybGQ=\r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 0 - ,.method= HTTP_CONNECT - ,.query_string= "" - ,.fragment= "" - ,.request_path= "" - ,.request_url= "home_0.netscape.com:443" - ,.num_headers= 2 - ,.upgrade="" - ,.headers= { { "User-agent", "Mozilla/1.1N" } - , { "Proxy-authorization", "basic aGVsbG86d29ybGQ=" } - } - ,.body= "" - } -#endif /* !HTTP_PARSER_STRICT */ - -/* see https://github.com/ry/http-parser/issues/47 */ -#define EAT_TRAILING_CRLF_NO_CONNECTION_CLOSE 29 -, {.name = "eat CRLF between requests, no \"Connection: close\" header" - ,.raw= "POST / HTTP/1.1\r\n" - "Host: www.example.com\r\n" - "Content-Type: application/x-www-form-urlencoded\r\n" - "Content-Length: 4\r\n" - "\r\n" - "q=42\r\n" /* note the trailing CRLF */ - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_POST - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/" - ,.request_url= "/" - ,.num_headers= 3 - ,.upgrade= 0 - ,.headers= { { "Host", "www.example.com" } - , { "Content-Type", "application/x-www-form-urlencoded" } - , { "Content-Length", "4" } - } - ,.body= "q=42" - } - -/* see https://github.com/ry/http-parser/issues/47 */ -#define EAT_TRAILING_CRLF_WITH_CONNECTION_CLOSE 30 -, {.name = "eat CRLF between requests even if \"Connection: close\" is set" - ,.raw= "POST / HTTP/1.1\r\n" - "Host: www.example.com\r\n" - "Content-Type: application/x-www-form-urlencoded\r\n" - "Content-Length: 4\r\n" - "Connection: close\r\n" - "\r\n" - "q=42\r\n" /* note the trailing CRLF */ - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE /* input buffer isn't empty when on_message_complete is called */ - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_POST - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/" - ,.request_url= "/" - ,.num_headers= 4 - ,.upgrade= 0 - ,.headers= { { "Host", "www.example.com" } - , { "Content-Type", "application/x-www-form-urlencoded" } - , { "Content-Length", "4" } - , { "Connection", "close" } - } - ,.body= "q=42" - } - -#define PURGE_REQ 31 -, {.name = "PURGE request" - ,.type= HTTP_REQUEST - ,.raw= "PURGE /file.txt HTTP/1.1\r\n" - "Host: www.example.com\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_PURGE - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/file.txt" - ,.request_url= "/file.txt" - ,.num_headers= 1 - ,.headers= { { "Host", "www.example.com" } } - ,.body= "" - } - -#define SEARCH_REQ 32 -, {.name = "SEARCH request" - ,.type= HTTP_REQUEST - ,.raw= "SEARCH / HTTP/1.1\r\n" - "Host: www.example.com\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_SEARCH - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/" - ,.request_url= "/" - ,.num_headers= 1 - ,.headers= { { "Host", "www.example.com" } } - ,.body= "" - } - -#define PROXY_WITH_BASIC_AUTH 33 -, {.name= "host:port and basic_auth" - ,.type= HTTP_REQUEST - ,.raw= "GET http://a%12:b!&*$@hypnotoad.org:1234/toto HTTP/1.1\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.fragment= "" - ,.request_path= "/toto" - ,.request_url= "http://a%12:b!&*$@hypnotoad.org:1234/toto" - ,.host= "hypnotoad.org" - ,.userinfo= "a%12:b!&*$" - ,.port= 1234 - ,.num_headers= 0 - ,.headers= { } - ,.body= "" - } - -#define LINE_FOLDING_IN_HEADER_WITH_LF 34 -, {.name= "line folding in header value" - ,.type= HTTP_REQUEST - ,.raw= "GET / HTTP/1.1\n" - "Line1: abc\n" - "\tdef\n" - " ghi\n" - "\t\tjkl\n" - " mno \n" - "\t \tqrs\n" - "Line2: \t line2\t\n" - "Line3:\n" - " line3\n" - "Line4: \n" - " \n" - "Connection:\n" - " close\n" - "\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/" - ,.request_url= "/" - ,.num_headers= 5 - ,.headers= { { "Line1", "abc\tdef ghi\t\tjkl mno \t \tqrs" } - , { "Line2", "line2\t" } - , { "Line3", "line3" } - , { "Line4", "" } - , { "Connection", "close" }, - } - ,.body= "" - } - -#define CONNECTION_MULTI 35 -, {.name = "multiple connection header values with folding" - ,.type= HTTP_REQUEST - ,.raw= "GET /demo HTTP/1.1\r\n" - "Host: example.com\r\n" - "Connection: Something,\r\n" - " Upgrade, ,Keep-Alive\r\n" - "Sec-WebSocket-Key2: 12998 5 Y3 1 .P00\r\n" - "Sec-WebSocket-Protocol: sample\r\n" - "Upgrade: WebSocket\r\n" - "Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5\r\n" - "Origin: http://example.com\r\n" - "\r\n" - "Hot diggity dogg" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/demo" - ,.request_url= "/demo" - ,.num_headers= 7 - ,.upgrade="Hot diggity dogg" - ,.headers= { { "Host", "example.com" } - , { "Connection", "Something, Upgrade, ,Keep-Alive" } - , { "Sec-WebSocket-Key2", "12998 5 Y3 1 .P00" } - , { "Sec-WebSocket-Protocol", "sample" } - , { "Upgrade", "WebSocket" } - , { "Sec-WebSocket-Key1", "4 @1 46546xW%0l 1 5" } - , { "Origin", "http://example.com" } - } - ,.body= "" - } - -#define CONNECTION_MULTI_LWS 36 -, {.name = "multiple connection header values with folding and lws" - ,.type= HTTP_REQUEST - ,.raw= "GET /demo HTTP/1.1\r\n" - "Connection: keep-alive, upgrade\r\n" - "Upgrade: WebSocket\r\n" - "\r\n" - "Hot diggity dogg" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/demo" - ,.request_url= "/demo" - ,.num_headers= 2 - ,.upgrade="Hot diggity dogg" - ,.headers= { { "Connection", "keep-alive, upgrade" } - , { "Upgrade", "WebSocket" } - } - ,.body= "" - } - -#define CONNECTION_MULTI_LWS_CRLF 37 -, {.name = "multiple connection header values with folding and lws" - ,.type= HTTP_REQUEST - ,.raw= "GET /demo HTTP/1.1\r\n" - "Connection: keep-alive, \r\n upgrade\r\n" - "Upgrade: WebSocket\r\n" - "\r\n" - "Hot diggity dogg" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_GET - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/demo" - ,.request_url= "/demo" - ,.num_headers= 2 - ,.upgrade="Hot diggity dogg" - ,.headers= { { "Connection", "keep-alive, upgrade" } - , { "Upgrade", "WebSocket" } - } - ,.body= "" - } - -#define UPGRADE_POST_REQUEST 38 -, {.name = "upgrade post request" - ,.type= HTTP_REQUEST - ,.raw= "POST /demo HTTP/1.1\r\n" - "Host: example.com\r\n" - "Connection: Upgrade\r\n" - "Upgrade: HTTP/2.0\r\n" - "Content-Length: 15\r\n" - "\r\n" - "sweet post body" - "Hot diggity dogg" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_POST - ,.request_path= "/demo" - ,.request_url= "/demo" - ,.num_headers= 4 - ,.upgrade="Hot diggity dogg" - ,.headers= { { "Host", "example.com" } - , { "Connection", "Upgrade" } - , { "Upgrade", "HTTP/2.0" } - , { "Content-Length", "15" } - } - ,.body= "sweet post body" - } - -#define CONNECT_WITH_BODY_REQUEST 39 -, {.name = "connect with body request" - ,.type= HTTP_REQUEST - ,.raw= "CONNECT foo.bar.com:443 HTTP/1.0\r\n" - "User-agent: Mozilla/1.1N\r\n" - "Proxy-authorization: basic aGVsbG86d29ybGQ=\r\n" - "Content-Length: 10\r\n" - "\r\n" - "blarfcicle" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 0 - ,.method= HTTP_CONNECT - ,.request_url= "foo.bar.com:443" - ,.num_headers= 3 - ,.upgrade="blarfcicle" - ,.headers= { { "User-agent", "Mozilla/1.1N" } - , { "Proxy-authorization", "basic aGVsbG86d29ybGQ=" } - , { "Content-Length", "10" } - } - ,.body= "" - } - -/* Examples from the Internet draft for LINK/UNLINK methods: - * https://tools.ietf.org/id/draft-snell-link-method-01.html#rfc.section.5 - */ - -#define LINK_REQUEST 40 -, {.name = "link request" - ,.type= HTTP_REQUEST - ,.raw= "LINK /images/my_dog.jpg HTTP/1.1\r\n" - "Host: example.com\r\n" - "Link: ; rel=\"tag\"\r\n" - "Link: ; rel=\"tag\"\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_LINK - ,.request_path= "/images/my_dog.jpg" - ,.request_url= "/images/my_dog.jpg" - ,.query_string= "" - ,.fragment= "" - ,.num_headers= 3 - ,.headers= { { "Host", "example.com" } - , { "Link", "; rel=\"tag\"" } - , { "Link", "; rel=\"tag\"" } - } - ,.body= "" - } - -#define UNLINK_REQUEST 41 -, {.name = "unlink request" - ,.type= HTTP_REQUEST - ,.raw= "UNLINK /images/my_dog.jpg HTTP/1.1\r\n" - "Host: example.com\r\n" - "Link: ; rel=\"tag\"\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_UNLINK - ,.request_path= "/images/my_dog.jpg" - ,.request_url= "/images/my_dog.jpg" - ,.query_string= "" - ,.fragment= "" - ,.num_headers= 2 - ,.headers= { { "Host", "example.com" } - , { "Link", "; rel=\"tag\"" } - } - ,.body= "" - } - -#define SOURCE_REQUEST 42 -, {.name = "source request" - ,.type= HTTP_REQUEST - ,.raw= "SOURCE /music/sweet/music HTTP/1.1\r\n" - "Host: example.com\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_SOURCE - ,.request_path= "/music/sweet/music" - ,.request_url= "/music/sweet/music" - ,.query_string= "" - ,.fragment= "" - ,.num_headers= 1 - ,.headers= { { "Host", "example.com" } } - ,.body= "" - } - -#define SOURCE_ICE_REQUEST 42 -, {.name = "source request" - ,.type= HTTP_REQUEST - ,.raw= "SOURCE /music/sweet/music ICE/1.0\r\n" - "Host: example.com\r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 0 - ,.method= HTTP_SOURCE - ,.request_path= "/music/sweet/music" - ,.request_url= "/music/sweet/music" - ,.query_string= "" - ,.fragment= "" - ,.num_headers= 1 - ,.headers= { { "Host", "example.com" } } - ,.body= "" - } - -#define POST_MULTI_TE_LAST_CHUNKED 43 -, {.name= "post - multi coding transfer-encoding chunked body" - ,.type= HTTP_REQUEST - ,.raw= "POST / HTTP/1.1\r\n" - "Transfer-Encoding: deflate, chunked\r\n" - "\r\n" - "1e\r\nall your base are belong to us\r\n" - "0\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_POST - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/" - ,.request_url= "/" - ,.num_headers= 1 - ,.headers= - { { "Transfer-Encoding" , "deflate, chunked" } - } - ,.body= "all your base are belong to us" - ,.num_chunks_complete= 2 - ,.chunk_lengths= { 0x1e } - } - -#define POST_MULTI_LINE_TE_LAST_CHUNKED 44 -, {.name= "post - multi line coding transfer-encoding chunked body" - ,.type= HTTP_REQUEST - ,.raw= "POST / HTTP/1.1\r\n" - "Transfer-Encoding: deflate,\r\n" - " chunked\r\n" - "\r\n" - "1e\r\nall your base are belong to us\r\n" - "0\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.method= HTTP_POST - ,.query_string= "" - ,.fragment= "" - ,.request_path= "/" - ,.request_url= "/" - ,.num_headers= 1 - ,.headers= - { { "Transfer-Encoding" , "deflate, chunked" } - } - ,.body= "all your base are belong to us" - ,.num_chunks_complete= 2 - ,.chunk_lengths= { 0x1e } - } -}; - -/* * R E S P O N S E S * */ -const struct message responses[] = -#define GOOGLE_301 0 -{ {.name= "google 301" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 301 Moved Permanently\r\n" - "Location: http://www.google.com/\r\n" - "Content-Type: text/html; charset=UTF-8\r\n" - "Date: Sun, 26 Apr 2009 11:11:49 GMT\r\n" - "Expires: Tue, 26 May 2009 11:11:49 GMT\r\n" - "X-$PrototypeBI-Version: 1.6.0.3\r\n" /* $ char in header field */ - "Cache-Control: public, max-age=2592000\r\n" - "Server: gws\r\n" - "Content-Length: 219 \r\n" - "\r\n" - "\n" - "301 Moved\n" - "

301 Moved

\n" - "The document has moved\n" - "here.\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 301 - ,.response_status= "Moved Permanently" - ,.num_headers= 8 - ,.headers= - { { "Location", "http://www.google.com/" } - , { "Content-Type", "text/html; charset=UTF-8" } - , { "Date", "Sun, 26 Apr 2009 11:11:49 GMT" } - , { "Expires", "Tue, 26 May 2009 11:11:49 GMT" } - , { "X-$PrototypeBI-Version", "1.6.0.3" } - , { "Cache-Control", "public, max-age=2592000" } - , { "Server", "gws" } - , { "Content-Length", "219 " } - } - ,.body= "\n" - "301 Moved\n" - "

301 Moved

\n" - "The document has moved\n" - "here.\r\n" - "\r\n" - } - -#define NO_CONTENT_LENGTH_RESPONSE 1 -/* The client should wait for the server's EOF. That is, when content-length - * is not specified, and "Connection: close", the end of body is specified - * by the EOF. - * Compare with APACHEBENCH_GET - */ -, {.name= "no content-length response" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Date: Tue, 04 Aug 2009 07:59:32 GMT\r\n" - "Server: Apache\r\n" - "X-Powered-By: Servlet/2.5 JSP/2.1\r\n" - "Content-Type: text/xml; charset=utf-8\r\n" - "Connection: close\r\n" - "\r\n" - "\n" - "\n" - " \n" - " \n" - " SOAP-ENV:Client\n" - " Client Error\n" - " \n" - " \n" - "" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= TRUE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 5 - ,.headers= - { { "Date", "Tue, 04 Aug 2009 07:59:32 GMT" } - , { "Server", "Apache" } - , { "X-Powered-By", "Servlet/2.5 JSP/2.1" } - , { "Content-Type", "text/xml; charset=utf-8" } - , { "Connection", "close" } - } - ,.body= "\n" - "\n" - " \n" - " \n" - " SOAP-ENV:Client\n" - " Client Error\n" - " \n" - " \n" - "" - } - -#define NO_HEADERS_NO_BODY_404 2 -, {.name= "404 no headers no body" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 404 Not Found\r\n\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= TRUE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 404 - ,.response_status= "Not Found" - ,.num_headers= 0 - ,.headers= {} - ,.body_size= 0 - ,.body= "" - } - -#define NO_REASON_PHRASE 3 -, {.name= "301 no response phrase" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 301\r\n\r\n" - ,.should_keep_alive = FALSE - ,.message_complete_on_eof= TRUE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 301 - ,.response_status= "" - ,.num_headers= 0 - ,.headers= {} - ,.body= "" - } - -#define TRAILING_SPACE_ON_CHUNKED_BODY 4 -, {.name="200 trailing space on chunked body" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Content-Type: text/plain\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "25 \r\n" - "This is the data in the first chunk\r\n" - "\r\n" - "1C\r\n" - "and this is the second one\r\n" - "\r\n" - "0 \r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 2 - ,.headers= - { {"Content-Type", "text/plain" } - , {"Transfer-Encoding", "chunked" } - } - ,.body_size = 37+28 - ,.body = - "This is the data in the first chunk\r\n" - "and this is the second one\r\n" - ,.num_chunks_complete= 3 - ,.chunk_lengths= { 0x25, 0x1c } - } - -#define NO_CARRIAGE_RET 5 -, {.name="no carriage ret" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\n" - "Content-Type: text/html; charset=utf-8\n" - "Connection: close\n" - "\n" - "these headers are from http://news.ycombinator.com/" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= TRUE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 2 - ,.headers= - { {"Content-Type", "text/html; charset=utf-8" } - , {"Connection", "close" } - } - ,.body= "these headers are from http://news.ycombinator.com/" - } - -#define PROXY_CONNECTION 6 -, {.name="proxy connection" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Content-Type: text/html; charset=UTF-8\r\n" - "Content-Length: 11\r\n" - "Proxy-Connection: close\r\n" - "Date: Thu, 31 Dec 2009 20:55:48 +0000\r\n" - "\r\n" - "hello world" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 4 - ,.headers= - { {"Content-Type", "text/html; charset=UTF-8" } - , {"Content-Length", "11" } - , {"Proxy-Connection", "close" } - , {"Date", "Thu, 31 Dec 2009 20:55:48 +0000"} - } - ,.body= "hello world" - } - -#define UNDERSTORE_HEADER_KEY 7 - // shown by - // curl -o /dev/null -v "http://ad.doubleclick.net/pfadx/DARTSHELLCONFIGXML;dcmt=text/xml;" -, {.name="underscore header key" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Server: DCLK-AdSvr\r\n" - "Content-Type: text/xml\r\n" - "Content-Length: 0\r\n" - "DCLK_imp: v7;x;114750856;0-0;0;17820020;0/0;21603567/21621457/1;;~okv=;dcmt=text/xml;;~cs=o\r\n\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 4 - ,.headers= - { {"Server", "DCLK-AdSvr" } - , {"Content-Type", "text/xml" } - , {"Content-Length", "0" } - , {"DCLK_imp", "v7;x;114750856;0-0;0;17820020;0/0;21603567/21621457/1;;~okv=;dcmt=text/xml;;~cs=o" } - } - ,.body= "" - } - -#define BONJOUR_MADAME_FR 8 -/* The client should not merge two headers fields when the first one doesn't - * have a value. - */ -, {.name= "bonjourmadame.fr" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.0 301 Moved Permanently\r\n" - "Date: Thu, 03 Jun 2010 09:56:32 GMT\r\n" - "Server: Apache/2.2.3 (Red Hat)\r\n" - "Cache-Control: public\r\n" - "Pragma: \r\n" - "Location: http://www.bonjourmadame.fr/\r\n" - "Vary: Accept-Encoding\r\n" - "Content-Length: 0\r\n" - "Content-Type: text/html; charset=UTF-8\r\n" - "Connection: keep-alive\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 0 - ,.status_code= 301 - ,.response_status= "Moved Permanently" - ,.num_headers= 9 - ,.headers= - { { "Date", "Thu, 03 Jun 2010 09:56:32 GMT" } - , { "Server", "Apache/2.2.3 (Red Hat)" } - , { "Cache-Control", "public" } - , { "Pragma", "" } - , { "Location", "http://www.bonjourmadame.fr/" } - , { "Vary", "Accept-Encoding" } - , { "Content-Length", "0" } - , { "Content-Type", "text/html; charset=UTF-8" } - , { "Connection", "keep-alive" } - } - ,.body= "" - } - -#define RES_FIELD_UNDERSCORE 9 -/* Should handle spaces in header fields */ -, {.name= "field underscore" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Date: Tue, 28 Sep 2010 01:14:13 GMT\r\n" - "Server: Apache\r\n" - "Cache-Control: no-cache, must-revalidate\r\n" - "Expires: Mon, 26 Jul 1997 05:00:00 GMT\r\n" - ".et-Cookie: PlaxoCS=1274804622353690521; path=/; domain=.plaxo.com\r\n" - "Vary: Accept-Encoding\r\n" - "_eep-Alive: timeout=45\r\n" /* semantic value ignored */ - "_onnection: Keep-Alive\r\n" /* semantic value ignored */ - "Transfer-Encoding: chunked\r\n" - "Content-Type: text/html\r\n" - "Connection: close\r\n" - "\r\n" - "0\r\n\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 11 - ,.headers= - { { "Date", "Tue, 28 Sep 2010 01:14:13 GMT" } - , { "Server", "Apache" } - , { "Cache-Control", "no-cache, must-revalidate" } - , { "Expires", "Mon, 26 Jul 1997 05:00:00 GMT" } - , { ".et-Cookie", "PlaxoCS=1274804622353690521; path=/; domain=.plaxo.com" } - , { "Vary", "Accept-Encoding" } - , { "_eep-Alive", "timeout=45" } - , { "_onnection", "Keep-Alive" } - , { "Transfer-Encoding", "chunked" } - , { "Content-Type", "text/html" } - , { "Connection", "close" } - } - ,.body= "" - ,.num_chunks_complete= 1 - ,.chunk_lengths= {} - } - -#define NON_ASCII_IN_STATUS_LINE 10 -/* Should handle non-ASCII in status line */ -, {.name= "non-ASCII in status line" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 500 Oriëntatieprobleem\r\n" - "Date: Fri, 5 Nov 2010 23:07:12 GMT+2\r\n" - "Content-Length: 0\r\n" - "Connection: close\r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 500 - ,.response_status= "Oriëntatieprobleem" - ,.num_headers= 3 - ,.headers= - { { "Date", "Fri, 5 Nov 2010 23:07:12 GMT+2" } - , { "Content-Length", "0" } - , { "Connection", "close" } - } - ,.body= "" - } - -#define HTTP_VERSION_0_9 11 -/* Should handle HTTP/0.9 */ -, {.name= "http version 0.9" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/0.9 200 OK\r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= TRUE - ,.http_major= 0 - ,.http_minor= 9 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 0 - ,.headers= - {} - ,.body= "" - } - -#define NO_CONTENT_LENGTH_NO_TRANSFER_ENCODING_RESPONSE 12 -/* The client should wait for the server's EOF. That is, when neither - * content-length nor transfer-encoding is specified, the end of body - * is specified by the EOF. - */ -, {.name= "neither content-length nor transfer-encoding response" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Content-Type: text/plain\r\n" - "\r\n" - "hello world" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= TRUE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 1 - ,.headers= - { { "Content-Type", "text/plain" } - } - ,.body= "hello world" - } - -#define NO_BODY_HTTP10_KA_200 13 -, {.name= "HTTP/1.0 with keep-alive and EOF-terminated 200 status" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.0 200 OK\r\n" - "Connection: keep-alive\r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= TRUE - ,.http_major= 1 - ,.http_minor= 0 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 1 - ,.headers= - { { "Connection", "keep-alive" } - } - ,.body_size= 0 - ,.body= "" - } - -#define NO_BODY_HTTP10_KA_204 14 -, {.name= "HTTP/1.0 with keep-alive and a 204 status" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.0 204 No content\r\n" - "Connection: keep-alive\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 0 - ,.status_code= 204 - ,.response_status= "No content" - ,.num_headers= 1 - ,.headers= - { { "Connection", "keep-alive" } - } - ,.body_size= 0 - ,.body= "" - } - -#define NO_BODY_HTTP11_KA_200 15 -, {.name= "HTTP/1.1 with an EOF-terminated 200 status" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= TRUE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 0 - ,.headers={} - ,.body_size= 0 - ,.body= "" - } - -#define NO_BODY_HTTP11_KA_204 16 -, {.name= "HTTP/1.1 with a 204 status" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 204 No content\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 204 - ,.response_status= "No content" - ,.num_headers= 0 - ,.headers={} - ,.body_size= 0 - ,.body= "" - } - -#define NO_BODY_HTTP11_NOKA_204 17 -, {.name= "HTTP/1.1 with a 204 status and keep-alive disabled" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 204 No content\r\n" - "Connection: close\r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 204 - ,.response_status= "No content" - ,.num_headers= 1 - ,.headers= - { { "Connection", "close" } - } - ,.body_size= 0 - ,.body= "" - } - -#define NO_BODY_HTTP11_KA_CHUNKED_200 18 -, {.name= "HTTP/1.1 with chunked endocing and a 200 response" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "0\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 1 - ,.headers= - { { "Transfer-Encoding", "chunked" } - } - ,.body_size= 0 - ,.body= "" - ,.num_chunks_complete= 1 - } - -#if !HTTP_PARSER_STRICT -#define SPACE_IN_FIELD_RES 19 -/* Should handle spaces in header fields */ -, {.name= "field space" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Server: Microsoft-IIS/6.0\r\n" - "X-Powered-By: ASP.NET\r\n" - "en-US Content-Type: text/xml\r\n" /* this is the problem */ - "Content-Type: text/xml\r\n" - "Content-Length: 16\r\n" - "Date: Fri, 23 Jul 2010 18:45:38 GMT\r\n" - "Connection: keep-alive\r\n" - "\r\n" - "hello" /* fake body */ - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 7 - ,.headers= - { { "Server", "Microsoft-IIS/6.0" } - , { "X-Powered-By", "ASP.NET" } - , { "en-US Content-Type", "text/xml" } - , { "Content-Type", "text/xml" } - , { "Content-Length", "16" } - , { "Date", "Fri, 23 Jul 2010 18:45:38 GMT" } - , { "Connection", "keep-alive" } - } - ,.body= "hello" - } -#endif /* !HTTP_PARSER_STRICT */ - -#define AMAZON_COM 20 -, {.name= "amazon.com" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 301 MovedPermanently\r\n" - "Date: Wed, 15 May 2013 17:06:33 GMT\r\n" - "Server: Server\r\n" - "x-amz-id-1: 0GPHKXSJQ826RK7GZEB2\r\n" - "p3p: policyref=\"http://www.amazon.com/w3c/p3p.xml\",CP=\"CAO DSP LAW CUR ADM IVAo IVDo CONo OTPo OUR DELi PUBi OTRi BUS PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA HEA PRE LOC GOV OTC \"\r\n" - "x-amz-id-2: STN69VZxIFSz9YJLbz1GDbxpbjG6Qjmmq5E3DxRhOUw+Et0p4hr7c/Q8qNcx4oAD\r\n" - "Location: http://www.amazon.com/Dan-Brown/e/B000AP9DSU/ref=s9_pop_gw_al1?_encoding=UTF8&refinementId=618073011&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=0SHYY5BZXN3KR20BNFAY&pf_rd_t=101&pf_rd_p=1263340922&pf_rd_i=507846\r\n" - "Vary: Accept-Encoding,User-Agent\r\n" - "Content-Type: text/html; charset=ISO-8859-1\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "1\r\n" - "\n\r\n" - "0\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 301 - ,.response_status= "MovedPermanently" - ,.num_headers= 9 - ,.headers= { { "Date", "Wed, 15 May 2013 17:06:33 GMT" } - , { "Server", "Server" } - , { "x-amz-id-1", "0GPHKXSJQ826RK7GZEB2" } - , { "p3p", "policyref=\"http://www.amazon.com/w3c/p3p.xml\",CP=\"CAO DSP LAW CUR ADM IVAo IVDo CONo OTPo OUR DELi PUBi OTRi BUS PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA HEA PRE LOC GOV OTC \"" } - , { "x-amz-id-2", "STN69VZxIFSz9YJLbz1GDbxpbjG6Qjmmq5E3DxRhOUw+Et0p4hr7c/Q8qNcx4oAD" } - , { "Location", "http://www.amazon.com/Dan-Brown/e/B000AP9DSU/ref=s9_pop_gw_al1?_encoding=UTF8&refinementId=618073011&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=0SHYY5BZXN3KR20BNFAY&pf_rd_t=101&pf_rd_p=1263340922&pf_rd_i=507846" } - , { "Vary", "Accept-Encoding,User-Agent" } - , { "Content-Type", "text/html; charset=ISO-8859-1" } - , { "Transfer-Encoding", "chunked" } - } - ,.body= "\n" - ,.num_chunks_complete= 2 - ,.chunk_lengths= { 1 } - } - -#define EMPTY_REASON_PHRASE_AFTER_SPACE 20 -, {.name= "empty reason phrase after space" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 \r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= TRUE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "" - ,.num_headers= 0 - ,.headers= {} - ,.body= "" - } - -#define CONTENT_LENGTH_X 21 -, {.name= "Content-Length-X" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Content-Length-X: 0\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "2\r\n" - "OK\r\n" - "0\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 2 - ,.headers= { { "Content-Length-X", "0" } - , { "Transfer-Encoding", "chunked" } - } - ,.body= "OK" - ,.num_chunks_complete= 2 - ,.chunk_lengths= { 2 } - } - -#define HTTP_101_RESPONSE_WITH_UPGRADE_HEADER 22 -, {.name= "HTTP 101 response with Upgrade header" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 101 Switching Protocols\r\n" - "Connection: upgrade\r\n" - "Upgrade: h2c\r\n" - "\r\n" - "proto" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 101 - ,.response_status= "Switching Protocols" - ,.upgrade= "proto" - ,.num_headers= 2 - ,.headers= - { { "Connection", "upgrade" } - , { "Upgrade", "h2c" } - } - } - -#define HTTP_101_RESPONSE_WITH_UPGRADE_HEADER_AND_CONTENT_LENGTH 23 -, {.name= "HTTP 101 response with Upgrade and Content-Length header" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 101 Switching Protocols\r\n" - "Connection: upgrade\r\n" - "Upgrade: h2c\r\n" - "Content-Length: 4\r\n" - "\r\n" - "body" - "proto" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 101 - ,.response_status= "Switching Protocols" - ,.body= "body" - ,.upgrade= "proto" - ,.num_headers= 3 - ,.headers= - { { "Connection", "upgrade" } - , { "Upgrade", "h2c" } - , { "Content-Length", "4" } - } - } - -#define HTTP_101_RESPONSE_WITH_UPGRADE_HEADER_AND_TRANSFER_ENCODING 24 -, {.name= "HTTP 101 response with Upgrade and Transfer-Encoding header" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 101 Switching Protocols\r\n" - "Connection: upgrade\r\n" - "Upgrade: h2c\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "2\r\n" - "bo\r\n" - "2\r\n" - "dy\r\n" - "0\r\n" - "\r\n" - "proto" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 101 - ,.response_status= "Switching Protocols" - ,.body= "body" - ,.upgrade= "proto" - ,.num_headers= 3 - ,.headers= - { { "Connection", "upgrade" } - , { "Upgrade", "h2c" } - , { "Transfer-Encoding", "chunked" } - } - ,.num_chunks_complete= 3 - ,.chunk_lengths= { 2, 2 } - } - -#define HTTP_200_RESPONSE_WITH_UPGRADE_HEADER 25 -, {.name= "HTTP 200 response with Upgrade header" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Connection: upgrade\r\n" - "Upgrade: h2c\r\n" - "\r\n" - "body" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= TRUE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.body= "body" - ,.upgrade= NULL - ,.num_headers= 2 - ,.headers= - { { "Connection", "upgrade" } - , { "Upgrade", "h2c" } - } - } - -#define HTTP_200_RESPONSE_WITH_UPGRADE_HEADER_AND_CONTENT_LENGTH 26 -, {.name= "HTTP 200 response with Upgrade and Content-Length header" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Connection: upgrade\r\n" - "Upgrade: h2c\r\n" - "Content-Length: 4\r\n" - "\r\n" - "body" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 3 - ,.body= "body" - ,.upgrade= NULL - ,.headers= - { { "Connection", "upgrade" } - , { "Upgrade", "h2c" } - , { "Content-Length", "4" } - } - } - -#define HTTP_200_RESPONSE_WITH_UPGRADE_HEADER_AND_TRANSFER_ENCODING 27 -, {.name= "HTTP 200 response with Upgrade and Transfer-Encoding header" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Connection: upgrade\r\n" - "Upgrade: h2c\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "2\r\n" - "bo\r\n" - "2\r\n" - "dy\r\n" - "0\r\n" - "\r\n" - ,.should_keep_alive= TRUE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 3 - ,.body= "body" - ,.upgrade= NULL - ,.headers= - { { "Connection", "upgrade" } - , { "Upgrade", "h2c" } - , { "Transfer-Encoding", "chunked" } - } - ,.num_chunks_complete= 3 - ,.chunk_lengths= { 2, 2 } - } -#define HTTP_200_MULTI_TE_NOT_LAST_CHUNKED 28 -, {.name= "HTTP 200 response with `chunked` being *not last* Transfer-Encoding" - ,.type= HTTP_RESPONSE - ,.raw= "HTTP/1.1 200 OK\r\n" - "Transfer-Encoding: chunked, identity\r\n" - "\r\n" - "2\r\n" - "OK\r\n" - "0\r\n" - "\r\n" - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= TRUE - ,.http_major= 1 - ,.http_minor= 1 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 1 - ,.headers= { { "Transfer-Encoding", "chunked, identity" } - } - ,.body= "2\r\nOK\r\n0\r\n\r\n" - ,.num_chunks_complete= 0 - } -}; - -/* strnlen() is a POSIX.2008 addition. Can't rely on it being available so - * define it ourselves. - */ -size_t -strnlen(const char *s, size_t maxlen) -{ - const char *p; - - p = memchr(s, '\0', maxlen); - if (p == NULL) - return maxlen; - - return p - s; -} - -size_t -strlncat(char *dst, size_t len, const char *src, size_t n) -{ - size_t slen; - size_t dlen; - size_t rlen; - size_t ncpy; - - slen = strnlen(src, n); - dlen = strnlen(dst, len); - - if (dlen < len) { - rlen = len - dlen; - ncpy = slen < rlen ? slen : (rlen - 1); - memcpy(dst + dlen, src, ncpy); - dst[dlen + ncpy] = '\0'; - } - - assert(len > slen + dlen); - return slen + dlen; -} - -size_t -strlncpy(char *dst, size_t len, const char *src, size_t n) -{ - size_t slen; - size_t ncpy; - - slen = strnlen(src, n); - - if (len > 0) { - ncpy = slen < len ? slen : (len - 1); - memcpy(dst, src, ncpy); - dst[ncpy] = '\0'; - } - - assert(len > slen); - return slen; -} - -int -request_url_cb (http_parser *p, const char *buf, size_t len) -{ - assert(p == &parser); - strlncat(messages[num_messages].request_url, - sizeof(messages[num_messages].request_url), - buf, - len); - return 0; -} - -int -header_field_cb (http_parser *p, const char *buf, size_t len) -{ - assert(p == &parser); - struct message *m = &messages[num_messages]; - - if (m->last_header_element != FIELD) - m->num_headers++; - - strlncat(m->headers[m->num_headers-1][0], - sizeof(m->headers[m->num_headers-1][0]), - buf, - len); - - m->last_header_element = FIELD; - - return 0; -} - -int -header_value_cb (http_parser *p, const char *buf, size_t len) -{ - assert(p == &parser); - struct message *m = &messages[num_messages]; - - strlncat(m->headers[m->num_headers-1][1], - sizeof(m->headers[m->num_headers-1][1]), - buf, - len); - - m->last_header_element = VALUE; - - return 0; -} - -void -check_body_is_final (const http_parser *p) -{ - if (messages[num_messages].body_is_final) { - fprintf(stderr, "\n\n *** Error http_body_is_final() should return 1 " - "on last on_body callback call " - "but it doesn't! ***\n\n"); - assert(0); - abort(); - } - messages[num_messages].body_is_final = http_body_is_final(p); -} - -int -body_cb (http_parser *p, const char *buf, size_t len) -{ - assert(p == &parser); - strlncat(messages[num_messages].body, - sizeof(messages[num_messages].body), - buf, - len); - messages[num_messages].body_size += len; - check_body_is_final(p); - // printf("body_cb: '%s'\n", requests[num_messages].body); - return 0; -} - -int -count_body_cb (http_parser *p, const char *buf, size_t len) -{ - assert(p == &parser); - assert(buf); - messages[num_messages].body_size += len; - check_body_is_final(p); - return 0; -} - -int -message_begin_cb (http_parser *p) -{ - assert(p == &parser); - assert(!messages[num_messages].message_begin_cb_called); - messages[num_messages].message_begin_cb_called = TRUE; - return 0; -} - -int -headers_complete_cb (http_parser *p) -{ - assert(p == &parser); - messages[num_messages].method = parser.method; - messages[num_messages].status_code = parser.status_code; - messages[num_messages].http_major = parser.http_major; - messages[num_messages].http_minor = parser.http_minor; - messages[num_messages].headers_complete_cb_called = TRUE; - messages[num_messages].should_keep_alive = http_should_keep_alive(&parser); - return 0; -} - -int -message_complete_cb (http_parser *p) -{ - assert(p == &parser); - if (messages[num_messages].should_keep_alive != - http_should_keep_alive(&parser)) - { - fprintf(stderr, "\n\n *** Error http_should_keep_alive() should have same " - "value in both on_message_complete and on_headers_complete " - "but it doesn't! ***\n\n"); - assert(0); - abort(); - } - - if (messages[num_messages].body_size && - http_body_is_final(p) && - !messages[num_messages].body_is_final) - { - fprintf(stderr, "\n\n *** Error http_body_is_final() should return 1 " - "on last on_body callback call " - "but it doesn't! ***\n\n"); - assert(0); - abort(); - } - - messages[num_messages].message_complete_cb_called = TRUE; - - messages[num_messages].message_complete_on_eof = currently_parsing_eof; - - num_messages++; - return 0; -} - -int -response_status_cb (http_parser *p, const char *buf, size_t len) -{ - assert(p == &parser); - - messages[num_messages].status_cb_called = TRUE; - - strlncat(messages[num_messages].response_status, - sizeof(messages[num_messages].response_status), - buf, - len); - return 0; -} - -int -chunk_header_cb (http_parser *p) -{ - assert(p == &parser); - int chunk_idx = messages[num_messages].num_chunks; - messages[num_messages].num_chunks++; - if (chunk_idx < MAX_CHUNKS) { - messages[num_messages].chunk_lengths[chunk_idx] = p->content_length; - } - - return 0; -} - -int -chunk_complete_cb (http_parser *p) -{ - assert(p == &parser); - - /* Here we want to verify that each chunk_header_cb is matched by a - * chunk_complete_cb, so not only should the total number of calls to - * both callbacks be the same, but they also should be interleaved - * properly */ - assert(messages[num_messages].num_chunks == - messages[num_messages].num_chunks_complete + 1); - - messages[num_messages].num_chunks_complete++; - return 0; -} - -/* These dontcall_* callbacks exist so that we can verify that when we're - * paused, no additional callbacks are invoked */ -int -dontcall_message_begin_cb (http_parser *p) -{ - if (p) { } // gcc - fprintf(stderr, "\n\n*** on_message_begin() called on paused parser ***\n\n"); - abort(); -} - -int -dontcall_header_field_cb (http_parser *p, const char *buf, size_t len) -{ - if (p || buf || len) { } // gcc - fprintf(stderr, "\n\n*** on_header_field() called on paused parser ***\n\n"); - abort(); -} - -int -dontcall_header_value_cb (http_parser *p, const char *buf, size_t len) -{ - if (p || buf || len) { } // gcc - fprintf(stderr, "\n\n*** on_header_value() called on paused parser ***\n\n"); - abort(); -} - -int -dontcall_request_url_cb (http_parser *p, const char *buf, size_t len) -{ - if (p || buf || len) { } // gcc - fprintf(stderr, "\n\n*** on_request_url() called on paused parser ***\n\n"); - abort(); -} - -int -dontcall_body_cb (http_parser *p, const char *buf, size_t len) -{ - if (p || buf || len) { } // gcc - fprintf(stderr, "\n\n*** on_body_cb() called on paused parser ***\n\n"); - abort(); -} - -int -dontcall_headers_complete_cb (http_parser *p) -{ - if (p) { } // gcc - fprintf(stderr, "\n\n*** on_headers_complete() called on paused " - "parser ***\n\n"); - abort(); -} - -int -dontcall_message_complete_cb (http_parser *p) -{ - if (p) { } // gcc - fprintf(stderr, "\n\n*** on_message_complete() called on paused " - "parser ***\n\n"); - abort(); -} - -int -dontcall_response_status_cb (http_parser *p, const char *buf, size_t len) -{ - if (p || buf || len) { } // gcc - fprintf(stderr, "\n\n*** on_status() called on paused parser ***\n\n"); - abort(); -} - -int -dontcall_chunk_header_cb (http_parser *p) -{ - if (p) { } // gcc - fprintf(stderr, "\n\n*** on_chunk_header() called on paused parser ***\n\n"); - exit(1); -} - -int -dontcall_chunk_complete_cb (http_parser *p) -{ - if (p) { } // gcc - fprintf(stderr, "\n\n*** on_chunk_complete() " - "called on paused parser ***\n\n"); - exit(1); -} - -static http_parser_settings settings_dontcall = - {.on_message_begin = dontcall_message_begin_cb - ,.on_header_field = dontcall_header_field_cb - ,.on_header_value = dontcall_header_value_cb - ,.on_url = dontcall_request_url_cb - ,.on_status = dontcall_response_status_cb - ,.on_body = dontcall_body_cb - ,.on_headers_complete = dontcall_headers_complete_cb - ,.on_message_complete = dontcall_message_complete_cb - ,.on_chunk_header = dontcall_chunk_header_cb - ,.on_chunk_complete = dontcall_chunk_complete_cb - }; - -/* These pause_* callbacks always pause the parser and just invoke the regular - * callback that tracks content. Before returning, we overwrite the parser - * settings to point to the _dontcall variety so that we can verify that - * the pause actually did, you know, pause. */ -int -pause_message_begin_cb (http_parser *p) -{ - http_parser_pause(p, 1); - *current_pause_parser = settings_dontcall; - return message_begin_cb(p); -} - -int -pause_header_field_cb (http_parser *p, const char *buf, size_t len) -{ - http_parser_pause(p, 1); - *current_pause_parser = settings_dontcall; - return header_field_cb(p, buf, len); -} - -int -pause_header_value_cb (http_parser *p, const char *buf, size_t len) -{ - http_parser_pause(p, 1); - *current_pause_parser = settings_dontcall; - return header_value_cb(p, buf, len); -} - -int -pause_request_url_cb (http_parser *p, const char *buf, size_t len) -{ - http_parser_pause(p, 1); - *current_pause_parser = settings_dontcall; - return request_url_cb(p, buf, len); -} - -int -pause_body_cb (http_parser *p, const char *buf, size_t len) -{ - http_parser_pause(p, 1); - *current_pause_parser = settings_dontcall; - return body_cb(p, buf, len); -} - -int -pause_headers_complete_cb (http_parser *p) -{ - http_parser_pause(p, 1); - *current_pause_parser = settings_dontcall; - return headers_complete_cb(p); -} - -int -pause_message_complete_cb (http_parser *p) -{ - http_parser_pause(p, 1); - *current_pause_parser = settings_dontcall; - return message_complete_cb(p); -} - -int -pause_response_status_cb (http_parser *p, const char *buf, size_t len) -{ - http_parser_pause(p, 1); - *current_pause_parser = settings_dontcall; - return response_status_cb(p, buf, len); -} - -int -pause_chunk_header_cb (http_parser *p) -{ - http_parser_pause(p, 1); - *current_pause_parser = settings_dontcall; - return chunk_header_cb(p); -} - -int -pause_chunk_complete_cb (http_parser *p) -{ - http_parser_pause(p, 1); - *current_pause_parser = settings_dontcall; - return chunk_complete_cb(p); -} - -int -connect_headers_complete_cb (http_parser *p) -{ - headers_complete_cb(p); - return 1; -} - -int -connect_message_complete_cb (http_parser *p) -{ - messages[num_messages].should_keep_alive = http_should_keep_alive(&parser); - return message_complete_cb(p); -} - -static http_parser_settings settings_pause = - {.on_message_begin = pause_message_begin_cb - ,.on_header_field = pause_header_field_cb - ,.on_header_value = pause_header_value_cb - ,.on_url = pause_request_url_cb - ,.on_status = pause_response_status_cb - ,.on_body = pause_body_cb - ,.on_headers_complete = pause_headers_complete_cb - ,.on_message_complete = pause_message_complete_cb - ,.on_chunk_header = pause_chunk_header_cb - ,.on_chunk_complete = pause_chunk_complete_cb - }; - -static http_parser_settings settings = - {.on_message_begin = message_begin_cb - ,.on_header_field = header_field_cb - ,.on_header_value = header_value_cb - ,.on_url = request_url_cb - ,.on_status = response_status_cb - ,.on_body = body_cb - ,.on_headers_complete = headers_complete_cb - ,.on_message_complete = message_complete_cb - ,.on_chunk_header = chunk_header_cb - ,.on_chunk_complete = chunk_complete_cb - }; - -static http_parser_settings settings_count_body = - {.on_message_begin = message_begin_cb - ,.on_header_field = header_field_cb - ,.on_header_value = header_value_cb - ,.on_url = request_url_cb - ,.on_status = response_status_cb - ,.on_body = count_body_cb - ,.on_headers_complete = headers_complete_cb - ,.on_message_complete = message_complete_cb - ,.on_chunk_header = chunk_header_cb - ,.on_chunk_complete = chunk_complete_cb - }; - -static http_parser_settings settings_connect = - {.on_message_begin = message_begin_cb - ,.on_header_field = header_field_cb - ,.on_header_value = header_value_cb - ,.on_url = request_url_cb - ,.on_status = response_status_cb - ,.on_body = dontcall_body_cb - ,.on_headers_complete = connect_headers_complete_cb - ,.on_message_complete = connect_message_complete_cb - ,.on_chunk_header = chunk_header_cb - ,.on_chunk_complete = chunk_complete_cb - }; - -static http_parser_settings settings_null = - {.on_message_begin = 0 - ,.on_header_field = 0 - ,.on_header_value = 0 - ,.on_url = 0 - ,.on_status = 0 - ,.on_body = 0 - ,.on_headers_complete = 0 - ,.on_message_complete = 0 - ,.on_chunk_header = 0 - ,.on_chunk_complete = 0 - }; - -void -parser_init (enum http_parser_type type) -{ - num_messages = 0; - http_parser_init(&parser, type); - memset(&messages, 0, sizeof messages); -} - -size_t parse (const char *buf, size_t len) -{ - size_t nparsed; - currently_parsing_eof = (len == 0); - nparsed = http_parser_execute(&parser, &settings, buf, len); - return nparsed; -} - -size_t parse_count_body (const char *buf, size_t len) -{ - size_t nparsed; - currently_parsing_eof = (len == 0); - nparsed = http_parser_execute(&parser, &settings_count_body, buf, len); - return nparsed; -} - -size_t parse_pause (const char *buf, size_t len) -{ - size_t nparsed; - http_parser_settings s = settings_pause; - - currently_parsing_eof = (len == 0); - current_pause_parser = &s; - nparsed = http_parser_execute(&parser, current_pause_parser, buf, len); - return nparsed; -} - -size_t parse_connect (const char *buf, size_t len) -{ - size_t nparsed; - currently_parsing_eof = (len == 0); - nparsed = http_parser_execute(&parser, &settings_connect, buf, len); - return nparsed; -} - -static inline int -check_str_eq (const struct message *m, - const char *prop, - const char *expected, - const char *found) { - if ((expected == NULL) != (found == NULL)) { - printf("\n*** Error: %s in '%s' ***\n\n", prop, m->name); - printf("expected %s\n", (expected == NULL) ? "NULL" : expected); - printf(" found %s\n", (found == NULL) ? "NULL" : found); - return 0; - } - if (expected != NULL && 0 != strcmp(expected, found)) { - printf("\n*** Error: %s in '%s' ***\n\n", prop, m->name); - printf("expected '%s'\n", expected); - printf(" found '%s'\n", found); - return 0; - } - return 1; -} - -static inline int -check_num_eq (const struct message *m, - const char *prop, - int expected, - int found) { - if (expected != found) { - printf("\n*** Error: %s in '%s' ***\n\n", prop, m->name); - printf("expected %d\n", expected); - printf(" found %d\n", found); - return 0; - } - return 1; -} - -#define MESSAGE_CHECK_STR_EQ(expected, found, prop) \ - if (!check_str_eq(expected, #prop, expected->prop, found->prop)) return 0 - -#define MESSAGE_CHECK_NUM_EQ(expected, found, prop) \ - if (!check_num_eq(expected, #prop, expected->prop, found->prop)) return 0 - -#define MESSAGE_CHECK_URL_EQ(u, expected, found, prop, fn) \ -do { \ - char ubuf[256]; \ - \ - if ((u)->field_set & (1 << (fn))) { \ - memcpy(ubuf, (found)->request_url + (u)->field_data[(fn)].off, \ - (u)->field_data[(fn)].len); \ - ubuf[(u)->field_data[(fn)].len] = '\0'; \ - } else { \ - ubuf[0] = '\0'; \ - } \ - \ - check_str_eq(expected, #prop, expected->prop, ubuf); \ -} while(0) - -int -message_eq (int index, int connect, const struct message *expected) -{ - int i; - struct message *m = &messages[index]; - - MESSAGE_CHECK_NUM_EQ(expected, m, http_major); - MESSAGE_CHECK_NUM_EQ(expected, m, http_minor); - - if (expected->type == HTTP_REQUEST) { - MESSAGE_CHECK_NUM_EQ(expected, m, method); - } else { - MESSAGE_CHECK_NUM_EQ(expected, m, status_code); - MESSAGE_CHECK_STR_EQ(expected, m, response_status); - assert(m->status_cb_called); - } - - if (!connect) { - MESSAGE_CHECK_NUM_EQ(expected, m, should_keep_alive); - MESSAGE_CHECK_NUM_EQ(expected, m, message_complete_on_eof); - } - - assert(m->message_begin_cb_called); - assert(m->headers_complete_cb_called); - assert(m->message_complete_cb_called); - - - MESSAGE_CHECK_STR_EQ(expected, m, request_url); - - /* Check URL components; we can't do this w/ CONNECT since it doesn't - * send us a well-formed URL. - */ - if (*m->request_url && m->method != HTTP_CONNECT) { - struct http_parser_url u; - - if (http_parser_parse_url(m->request_url, strlen(m->request_url), 0, &u)) { - fprintf(stderr, "\n\n*** failed to parse URL %s ***\n\n", - m->request_url); - abort(); - } - - if (expected->host) { - MESSAGE_CHECK_URL_EQ(&u, expected, m, host, UF_HOST); - } - - if (expected->userinfo) { - MESSAGE_CHECK_URL_EQ(&u, expected, m, userinfo, UF_USERINFO); - } - - m->port = (u.field_set & (1 << UF_PORT)) ? - u.port : 0; - - MESSAGE_CHECK_URL_EQ(&u, expected, m, query_string, UF_QUERY); - MESSAGE_CHECK_URL_EQ(&u, expected, m, fragment, UF_FRAGMENT); - MESSAGE_CHECK_URL_EQ(&u, expected, m, request_path, UF_PATH); - MESSAGE_CHECK_NUM_EQ(expected, m, port); - } - - if (connect) { - check_num_eq(m, "body_size", 0, m->body_size); - } else if (expected->body_size) { - MESSAGE_CHECK_NUM_EQ(expected, m, body_size); - } else { - MESSAGE_CHECK_STR_EQ(expected, m, body); - } - - if (connect) { - check_num_eq(m, "num_chunks_complete", 0, m->num_chunks_complete); - } else { - assert(m->num_chunks == m->num_chunks_complete); - MESSAGE_CHECK_NUM_EQ(expected, m, num_chunks_complete); - for (i = 0; i < m->num_chunks && i < MAX_CHUNKS; i++) { - MESSAGE_CHECK_NUM_EQ(expected, m, chunk_lengths[i]); - } - } - - MESSAGE_CHECK_NUM_EQ(expected, m, num_headers); - - int r; - for (i = 0; i < m->num_headers; i++) { - r = check_str_eq(expected, "header field", expected->headers[i][0], m->headers[i][0]); - if (!r) return 0; - r = check_str_eq(expected, "header value", expected->headers[i][1], m->headers[i][1]); - if (!r) return 0; - } - - if (!connect) { - MESSAGE_CHECK_STR_EQ(expected, m, upgrade); - } - - return 1; -} - -/* Given a sequence of varargs messages, return the number of them that the - * parser should successfully parse, taking into account that upgraded - * messages prevent all subsequent messages from being parsed. - */ -size_t -count_parsed_messages(const size_t nmsgs, ...) { - size_t i; - va_list ap; - - va_start(ap, nmsgs); - - for (i = 0; i < nmsgs; i++) { - struct message *m = va_arg(ap, struct message *); - - if (m->upgrade) { - va_end(ap); - return i + 1; - } - } - - va_end(ap); - return nmsgs; -} - -/* Given a sequence of bytes and the number of these that we were able to - * parse, verify that upgrade bodies are correct. - */ -void -upgrade_message_fix(char *body, const size_t nread, const size_t nmsgs, ...) { - va_list ap; - size_t i; - size_t off = 0; - - va_start(ap, nmsgs); - - for (i = 0; i < nmsgs; i++) { - struct message *m = va_arg(ap, struct message *); - - off += strlen(m->raw); - - if (m->upgrade) { - off -= strlen(m->upgrade); - - /* Check the portion of the response after its specified upgrade */ - if (!check_str_eq(m, "upgrade", body + off, body + nread)) { - abort(); - } - - /* Fix up the response so that message_eq() will verify the beginning - * of the upgrade */ - *(body + nread + strlen(m->upgrade)) = '\0'; - messages[num_messages -1 ].upgrade = body + nread; - - va_end(ap); - return; - } - } - - va_end(ap); - printf("\n\n*** Error: expected a message with upgrade ***\n"); - - abort(); -} - -static void -print_error (const char *raw, size_t error_location) -{ - fprintf(stderr, "\n*** %s ***\n\n", - http_errno_description(HTTP_PARSER_ERRNO(&parser))); - - int this_line = 0, char_len = 0; - size_t i, j, len = strlen(raw), error_location_line = 0; - for (i = 0; i < len; i++) { - if (i == error_location) this_line = 1; - switch (raw[i]) { - case '\r': - char_len = 2; - fprintf(stderr, "\\r"); - break; - - case '\n': - fprintf(stderr, "\\n\n"); - - if (this_line) goto print; - - error_location_line = 0; - continue; - - default: - char_len = 1; - fputc(raw[i], stderr); - break; - } - if (!this_line) error_location_line += char_len; - } - - fprintf(stderr, "[eof]\n"); - - print: - for (j = 0; j < error_location_line; j++) { - fputc(' ', stderr); - } - fprintf(stderr, "^\n\nerror location: %u\n", (unsigned int)error_location); -} - -void -test_preserve_data (void) -{ - char my_data[] = "application-specific data"; - http_parser parser; - parser.data = my_data; - http_parser_init(&parser, HTTP_REQUEST); - if (parser.data != my_data) { - printf("\n*** parser.data not preserved accross http_parser_init ***\n\n"); - abort(); - } -} - -struct url_test { - const char *name; - const char *url; - int is_connect; - struct http_parser_url u; - int rv; -}; - -const struct url_test url_tests[] = -{ {.name="proxy request" - ,.url="http://hostname/" - ,.is_connect=0 - ,.u= - {.field_set=(1 << UF_SCHEMA) | (1 << UF_HOST) | (1 << UF_PATH) - ,.port=0 - ,.field_data= - {{ 0, 4 } /* UF_SCHEMA */ - ,{ 7, 8 } /* UF_HOST */ - ,{ 0, 0 } /* UF_PORT */ - ,{ 15, 1 } /* UF_PATH */ - ,{ 0, 0 } /* UF_QUERY */ - ,{ 0, 0 } /* UF_FRAGMENT */ - ,{ 0, 0 } /* UF_USERINFO */ - } - } - ,.rv=0 - } - -, {.name="proxy request with port" - ,.url="http://hostname:444/" - ,.is_connect=0 - ,.u= - {.field_set=(1 << UF_SCHEMA) | (1 << UF_HOST) | (1 << UF_PORT) | (1 << UF_PATH) - ,.port=444 - ,.field_data= - {{ 0, 4 } /* UF_SCHEMA */ - ,{ 7, 8 } /* UF_HOST */ - ,{ 16, 3 } /* UF_PORT */ - ,{ 19, 1 } /* UF_PATH */ - ,{ 0, 0 } /* UF_QUERY */ - ,{ 0, 0 } /* UF_FRAGMENT */ - ,{ 0, 0 } /* UF_USERINFO */ - } - } - ,.rv=0 - } - -, {.name="CONNECT request" - ,.url="hostname:443" - ,.is_connect=1 - ,.u= - {.field_set=(1 << UF_HOST) | (1 << UF_PORT) - ,.port=443 - ,.field_data= - {{ 0, 0 } /* UF_SCHEMA */ - ,{ 0, 8 } /* UF_HOST */ - ,{ 9, 3 } /* UF_PORT */ - ,{ 0, 0 } /* UF_PATH */ - ,{ 0, 0 } /* UF_QUERY */ - ,{ 0, 0 } /* UF_FRAGMENT */ - ,{ 0, 0 } /* UF_USERINFO */ - } - } - ,.rv=0 - } - -, {.name="CONNECT request but not connect" - ,.url="hostname:443" - ,.is_connect=0 - ,.rv=1 - } - -, {.name="proxy ipv6 request" - ,.url="http://[1:2::3:4]/" - ,.is_connect=0 - ,.u= - {.field_set=(1 << UF_SCHEMA) | (1 << UF_HOST) | (1 << UF_PATH) - ,.port=0 - ,.field_data= - {{ 0, 4 } /* UF_SCHEMA */ - ,{ 8, 8 } /* UF_HOST */ - ,{ 0, 0 } /* UF_PORT */ - ,{ 17, 1 } /* UF_PATH */ - ,{ 0, 0 } /* UF_QUERY */ - ,{ 0, 0 } /* UF_FRAGMENT */ - ,{ 0, 0 } /* UF_USERINFO */ - } - } - ,.rv=0 - } - -, {.name="proxy ipv6 request with port" - ,.url="http://[1:2::3:4]:67/" - ,.is_connect=0 - ,.u= - {.field_set=(1 << UF_SCHEMA) | (1 << UF_HOST) | (1 << UF_PORT) | (1 << UF_PATH) - ,.port=67 - ,.field_data= - {{ 0, 4 } /* UF_SCHEMA */ - ,{ 8, 8 } /* UF_HOST */ - ,{ 18, 2 } /* UF_PORT */ - ,{ 20, 1 } /* UF_PATH */ - ,{ 0, 0 } /* UF_QUERY */ - ,{ 0, 0 } /* UF_FRAGMENT */ - ,{ 0, 0 } /* UF_USERINFO */ - } - } - ,.rv=0 - } - -, {.name="CONNECT ipv6 address" - ,.url="[1:2::3:4]:443" - ,.is_connect=1 - ,.u= - {.field_set=(1 << UF_HOST) | (1 << UF_PORT) - ,.port=443 - ,.field_data= - {{ 0, 0 } /* UF_SCHEMA */ - ,{ 1, 8 } /* UF_HOST */ - ,{ 11, 3 } /* UF_PORT */ - ,{ 0, 0 } /* UF_PATH */ - ,{ 0, 0 } /* UF_QUERY */ - ,{ 0, 0 } /* UF_FRAGMENT */ - ,{ 0, 0 } /* UF_USERINFO */ - } - } - ,.rv=0 - } - -, {.name="ipv4 in ipv6 address" - ,.url="http://[2001:0000:0000:0000:0000:0000:1.9.1.1]/" - ,.is_connect=0 - ,.u= - {.field_set=(1 << UF_SCHEMA) | (1 << UF_HOST) | (1 << UF_PATH) - ,.port=0 - ,.field_data= - {{ 0, 4 } /* UF_SCHEMA */ - ,{ 8, 37 } /* UF_HOST */ - ,{ 0, 0 } /* UF_PORT */ - ,{ 46, 1 } /* UF_PATH */ - ,{ 0, 0 } /* UF_QUERY */ - ,{ 0, 0 } /* UF_FRAGMENT */ - ,{ 0, 0 } /* UF_USERINFO */ - } - } - ,.rv=0 - } - -, {.name="extra ? in query string" - ,.url="http://a.tbcdn.cn/p/fp/2010c/??fp-header-min.css,fp-base-min.css," - "fp-channel-min.css,fp-product-min.css,fp-mall-min.css,fp-category-min.css," - "fp-sub-min.css,fp-gdp4p-min.css,fp-css3-min.css,fp-misc-min.css?t=20101022.css" - ,.is_connect=0 - ,.u= - {.field_set=(1<field_set, u->port); - for (i = 0; i < UF_MAX; i++) { - if ((u->field_set & (1 << i)) == 0) { - printf("\tfield_data[%u]: unset\n", i); - continue; - } - - printf("\tfield_data[%u]: off: %u len: %u part: \"%.*s\n\"", - i, - u->field_data[i].off, - u->field_data[i].len, - u->field_data[i].len, - url + u->field_data[i].off); - } -} - -void -test_parse_url (void) -{ - struct http_parser_url u; - const struct url_test *test; - unsigned int i; - int rv; - - for (i = 0; i < (sizeof(url_tests) / sizeof(url_tests[0])); i++) { - test = &url_tests[i]; - memset(&u, 0, sizeof(u)); - - rv = http_parser_parse_url(test->url, - test->url ? strlen(test->url) : 0, - test->is_connect, - &u); - - if (test->rv == 0) { - if (rv != 0) { - printf("\n*** http_parser_parse_url(\"%s\") \"%s\" test failed, " - "unexpected rv %d ***\n\n", test->url, test->name, rv); - abort(); - } - - if (memcmp(&u, &test->u, sizeof(u)) != 0) { - printf("\n*** http_parser_parse_url(\"%s\") \"%s\" failed ***\n", - test->url, test->name); - - printf("target http_parser_url:\n"); - dump_url(test->url, &test->u); - printf("result http_parser_url:\n"); - dump_url(test->url, &u); - - abort(); - } - } else { - /* test->rv != 0 */ - if (rv == 0) { - printf("\n*** http_parser_parse_url(\"%s\") \"%s\" test failed, " - "unexpected rv %d ***\n\n", test->url, test->name, rv); - abort(); - } - } - } -} - -void -test_method_str (void) -{ - assert(0 == strcmp("GET", http_method_str(HTTP_GET))); - assert(0 == strcmp("", http_method_str(1337))); -} - -void -test_status_str (void) -{ - assert(0 == strcmp("OK", http_status_str(HTTP_STATUS_OK))); - assert(0 == strcmp("Not Found", http_status_str(HTTP_STATUS_NOT_FOUND))); - assert(0 == strcmp("", http_status_str(1337))); -} - -void -test_message (const struct message *message) -{ - size_t raw_len = strlen(message->raw); - size_t msg1len; - for (msg1len = 0; msg1len < raw_len; msg1len++) { - parser_init(message->type); - - size_t read; - const char *msg1 = message->raw; - const char *msg2 = msg1 + msg1len; - size_t msg2len = raw_len - msg1len; - - if (msg1len) { - assert(num_messages == 0); - messages[0].headers_complete_cb_called = FALSE; - - read = parse(msg1, msg1len); - - if (!messages[0].headers_complete_cb_called && parser.nread != read) { - assert(parser.nread == read); - print_error(msg1, read); - abort(); - } - - if (message->upgrade && parser.upgrade && num_messages > 0) { - messages[num_messages - 1].upgrade = msg1 + read; - goto test; - } - - if (read != msg1len) { - print_error(msg1, read); - abort(); - } - } - - - read = parse(msg2, msg2len); - - if (message->upgrade && parser.upgrade) { - messages[num_messages - 1].upgrade = msg2 + read; - goto test; - } - - if (read != msg2len) { - print_error(msg2, read); - abort(); - } - - read = parse(NULL, 0); - - if (read != 0) { - print_error(message->raw, read); - abort(); - } - - test: - - if (num_messages != 1) { - printf("\n*** num_messages != 1 after testing '%s' ***\n\n", message->name); - abort(); - } - - if(!message_eq(0, 0, message)) abort(); - } -} - -void -test_message_count_body (const struct message *message) -{ - parser_init(message->type); - - size_t read; - size_t l = strlen(message->raw); - size_t i, toread; - size_t chunk = 4024; - - for (i = 0; i < l; i+= chunk) { - toread = MIN(l-i, chunk); - read = parse_count_body(message->raw + i, toread); - if (read != toread) { - print_error(message->raw, read); - abort(); - } - } - - - read = parse_count_body(NULL, 0); - if (read != 0) { - print_error(message->raw, read); - abort(); - } - - if (num_messages != 1) { - printf("\n*** num_messages != 1 after testing '%s' ***\n\n", message->name); - abort(); - } - - if(!message_eq(0, 0, message)) abort(); -} - -void -test_simple_type (const char *buf, - enum http_errno err_expected, - enum http_parser_type type) -{ - parser_init(type); - - enum http_errno err; - - parse(buf, strlen(buf)); - err = HTTP_PARSER_ERRNO(&parser); - parse(NULL, 0); - - /* In strict mode, allow us to pass with an unexpected HPE_STRICT as - * long as the caller isn't expecting success. - */ -#if HTTP_PARSER_STRICT - if (err_expected != err && err_expected != HPE_OK && err != HPE_STRICT) { -#else - if (err_expected != err) { -#endif - fprintf(stderr, "\n*** test_simple expected %s, but saw %s ***\n\n%s\n", - http_errno_name(err_expected), http_errno_name(err), buf); - abort(); - } -} - -void -test_simple (const char *buf, enum http_errno err_expected) -{ - test_simple_type(buf, err_expected, HTTP_REQUEST); -} - -void -test_invalid_header_content (int req, const char* str) -{ - http_parser parser; - http_parser_init(&parser, req ? HTTP_REQUEST : HTTP_RESPONSE); - size_t parsed; - const char *buf; - buf = req ? - "GET / HTTP/1.1\r\n" : - "HTTP/1.1 200 OK\r\n"; - parsed = http_parser_execute(&parser, &settings_null, buf, strlen(buf)); - assert(parsed == strlen(buf)); - - buf = str; - size_t buflen = strlen(buf); - - parsed = http_parser_execute(&parser, &settings_null, buf, buflen); - if (parsed != buflen) { - assert(HTTP_PARSER_ERRNO(&parser) == HPE_INVALID_HEADER_TOKEN); - return; - } - - fprintf(stderr, - "\n*** Error expected but none in invalid header content test ***\n"); - abort(); -} - -void -test_invalid_header_field_content_error (int req) -{ - test_invalid_header_content(req, "Foo: F\01ailure"); - test_invalid_header_content(req, "Foo: B\02ar"); -} - -void -test_invalid_header_field (int req, const char* str) -{ - http_parser parser; - http_parser_init(&parser, req ? HTTP_REQUEST : HTTP_RESPONSE); - size_t parsed; - const char *buf; - buf = req ? - "GET / HTTP/1.1\r\n" : - "HTTP/1.1 200 OK\r\n"; - parsed = http_parser_execute(&parser, &settings_null, buf, strlen(buf)); - assert(parsed == strlen(buf)); - - buf = str; - size_t buflen = strlen(buf); - - parsed = http_parser_execute(&parser, &settings_null, buf, buflen); - if (parsed != buflen) { - assert(HTTP_PARSER_ERRNO(&parser) == HPE_INVALID_HEADER_TOKEN); - return; - } - - fprintf(stderr, - "\n*** Error expected but none in invalid header token test ***\n"); - abort(); -} - -void -test_invalid_header_field_token_error (int req) -{ - test_invalid_header_field(req, "Fo@: Failure"); - test_invalid_header_field(req, "Foo\01\test: Bar"); -} - -void -test_double_content_length_error (int req) -{ - http_parser parser; - http_parser_init(&parser, req ? HTTP_REQUEST : HTTP_RESPONSE); - size_t parsed; - const char *buf; - buf = req ? - "GET / HTTP/1.1\r\n" : - "HTTP/1.1 200 OK\r\n"; - parsed = http_parser_execute(&parser, &settings_null, buf, strlen(buf)); - assert(parsed == strlen(buf)); - - buf = "Content-Length: 0\r\nContent-Length: 1\r\n\r\n"; - size_t buflen = strlen(buf); - - parsed = http_parser_execute(&parser, &settings_null, buf, buflen); - if (parsed != buflen) { - assert(HTTP_PARSER_ERRNO(&parser) == HPE_UNEXPECTED_CONTENT_LENGTH); - return; - } - - fprintf(stderr, - "\n*** Error expected but none in double content-length test ***\n"); - abort(); -} - -void -test_chunked_content_length_error (int req) -{ - http_parser parser; - http_parser_init(&parser, req ? HTTP_REQUEST : HTTP_RESPONSE); - size_t parsed; - const char *buf; - buf = req ? - "GET / HTTP/1.1\r\n" : - "HTTP/1.1 200 OK\r\n"; - parsed = http_parser_execute(&parser, &settings_null, buf, strlen(buf)); - assert(parsed == strlen(buf)); - - buf = "Transfer-Encoding: anything\r\nContent-Length: 1\r\n\r\n"; - size_t buflen = strlen(buf); - - parsed = http_parser_execute(&parser, &settings_null, buf, buflen); - if (parsed != buflen) { - assert(HTTP_PARSER_ERRNO(&parser) == HPE_UNEXPECTED_CONTENT_LENGTH); - return; - } - - fprintf(stderr, - "\n*** Error expected but none in chunked content-length test ***\n"); - abort(); -} - -void -test_header_cr_no_lf_error (int req) -{ - http_parser parser; - http_parser_init(&parser, req ? HTTP_REQUEST : HTTP_RESPONSE); - size_t parsed; - const char *buf; - buf = req ? - "GET / HTTP/1.1\r\n" : - "HTTP/1.1 200 OK\r\n"; - parsed = http_parser_execute(&parser, &settings_null, buf, strlen(buf)); - assert(parsed == strlen(buf)); - - buf = "Foo: 1\rBar: 1\r\n\r\n"; - size_t buflen = strlen(buf); - - parsed = http_parser_execute(&parser, &settings_null, buf, buflen); - if (parsed != buflen) { - assert(HTTP_PARSER_ERRNO(&parser) == HPE_LF_EXPECTED); - return; - } - - fprintf(stderr, - "\n*** Error expected but none in header whitespace test ***\n"); - abort(); -} - -void -test_no_overflow_parse_url (void) -{ - int rv; - struct http_parser_url u; - - http_parser_url_init(&u); - rv = http_parser_parse_url("http://example.com:8001", 22, 0, &u); - - if (rv != 0) { - fprintf(stderr, - "\n*** test_no_overflow_parse_url invalid return value=%d\n", - rv); - abort(); - } - - if (u.port != 800) { - fprintf(stderr, - "\n*** test_no_overflow_parse_url invalid port number=%d\n", - u.port); - abort(); - } -} - -void -test_header_overflow_error (int req) -{ - http_parser parser; - http_parser_init(&parser, req ? HTTP_REQUEST : HTTP_RESPONSE); - size_t parsed; - const char *buf; - buf = req ? "GET / HTTP/1.1\r\n" : "HTTP/1.0 200 OK\r\n"; - parsed = http_parser_execute(&parser, &settings_null, buf, strlen(buf)); - assert(parsed == strlen(buf)); - - buf = "header-key: header-value\r\n"; - size_t buflen = strlen(buf); - - int i; - for (i = 0; i < 10000; i++) { - parsed = http_parser_execute(&parser, &settings_null, buf, buflen); - if (parsed != buflen) { - //fprintf(stderr, "error found on iter %d\n", i); - assert(HTTP_PARSER_ERRNO(&parser) == HPE_HEADER_OVERFLOW); - return; - } - } - - fprintf(stderr, "\n*** Error expected but none in header overflow test ***\n"); - abort(); -} - - -void -test_header_nread_value () -{ - http_parser parser; - http_parser_init(&parser, HTTP_REQUEST); - size_t parsed; - const char *buf; - buf = "GET / HTTP/1.1\r\nheader: value\nhdr: value\r\n"; - parsed = http_parser_execute(&parser, &settings_null, buf, strlen(buf)); - assert(parsed == strlen(buf)); - - assert(parser.nread == strlen(buf)); -} - - -static void -test_content_length_overflow (const char *buf, size_t buflen, int expect_ok) -{ - http_parser parser; - http_parser_init(&parser, HTTP_RESPONSE); - http_parser_execute(&parser, &settings_null, buf, buflen); - - if (expect_ok) - assert(HTTP_PARSER_ERRNO(&parser) == HPE_OK); - else - assert(HTTP_PARSER_ERRNO(&parser) == HPE_INVALID_CONTENT_LENGTH); -} - -void -test_header_content_length_overflow_error (void) -{ -#define X(size) \ - "HTTP/1.1 200 OK\r\n" \ - "Content-Length: " #size "\r\n" \ - "\r\n" - const char a[] = X(1844674407370955160); /* 2^64 / 10 - 1 */ - const char b[] = X(18446744073709551615); /* 2^64-1 */ - const char c[] = X(18446744073709551616); /* 2^64 */ -#undef X - test_content_length_overflow(a, sizeof(a) - 1, 1); /* expect ok */ - test_content_length_overflow(b, sizeof(b) - 1, 0); /* expect failure */ - test_content_length_overflow(c, sizeof(c) - 1, 0); /* expect failure */ -} - -void -test_chunk_content_length_overflow_error (void) -{ -#define X(size) \ - "HTTP/1.1 200 OK\r\n" \ - "Transfer-Encoding: chunked\r\n" \ - "\r\n" \ - #size "\r\n" \ - "..." - const char a[] = X(FFFFFFFFFFFFFFE); /* 2^64 / 16 - 1 */ - const char b[] = X(FFFFFFFFFFFFFFFF); /* 2^64-1 */ - const char c[] = X(10000000000000000); /* 2^64 */ -#undef X - test_content_length_overflow(a, sizeof(a) - 1, 1); /* expect ok */ - test_content_length_overflow(b, sizeof(b) - 1, 0); /* expect failure */ - test_content_length_overflow(c, sizeof(c) - 1, 0); /* expect failure */ -} - -void -test_no_overflow_long_body (int req, size_t length) -{ - http_parser parser; - http_parser_init(&parser, req ? HTTP_REQUEST : HTTP_RESPONSE); - size_t parsed; - size_t i; - char buf1[3000]; - size_t buf1len = sprintf(buf1, "%s\r\nConnection: Keep-Alive\r\nContent-Length: %lu\r\n\r\n", - req ? "POST / HTTP/1.0" : "HTTP/1.0 200 OK", (unsigned long)length); - parsed = http_parser_execute(&parser, &settings_null, buf1, buf1len); - if (parsed != buf1len) - goto err; - - for (i = 0; i < length; i++) { - char foo = 'a'; - parsed = http_parser_execute(&parser, &settings_null, &foo, 1); - if (parsed != 1) - goto err; - } - - parsed = http_parser_execute(&parser, &settings_null, buf1, buf1len); - if (parsed != buf1len) goto err; - return; - - err: - fprintf(stderr, - "\n*** error in test_no_overflow_long_body %s of length %lu ***\n", - req ? "REQUEST" : "RESPONSE", - (unsigned long)length); - abort(); -} - -void -test_multiple3 (const struct message *r1, const struct message *r2, const struct message *r3) -{ - int message_count = count_parsed_messages(3, r1, r2, r3); - - char total[ strlen(r1->raw) - + strlen(r2->raw) - + strlen(r3->raw) - + 1 - ]; - total[0] = '\0'; - - strcat(total, r1->raw); - strcat(total, r2->raw); - strcat(total, r3->raw); - - parser_init(r1->type); - - size_t read; - - read = parse(total, strlen(total)); - - if (parser.upgrade) { - upgrade_message_fix(total, read, 3, r1, r2, r3); - goto test; - } - - if (read != strlen(total)) { - print_error(total, read); - abort(); - } - - read = parse(NULL, 0); - - if (read != 0) { - print_error(total, read); - abort(); - } - -test: - - if (message_count != num_messages) { - fprintf(stderr, "\n\n*** Parser didn't see 3 messages only %d *** \n", num_messages); - abort(); - } - - if (!message_eq(0, 0, r1)) abort(); - if (message_count > 1 && !message_eq(1, 0, r2)) abort(); - if (message_count > 2 && !message_eq(2, 0, r3)) abort(); -} - -/* SCAN through every possible breaking to make sure the - * parser can handle getting the content in any chunks that - * might come from the socket - */ -void -test_scan (const struct message *r1, const struct message *r2, const struct message *r3) -{ - char total[80*1024] = "\0"; - char buf1[80*1024] = "\0"; - char buf2[80*1024] = "\0"; - char buf3[80*1024] = "\0"; - - strcat(total, r1->raw); - strcat(total, r2->raw); - strcat(total, r3->raw); - - size_t read; - - int total_len = strlen(total); - - int total_ops = 2 * (total_len - 1) * (total_len - 2) / 2; - int ops = 0 ; - - size_t buf1_len, buf2_len, buf3_len; - int message_count = count_parsed_messages(3, r1, r2, r3); - - int i,j,type_both; - for (type_both = 0; type_both < 2; type_both ++ ) { - for (j = 2; j < total_len; j ++ ) { - for (i = 1; i < j; i ++ ) { - - if (ops % 1000 == 0) { - printf("\b\b\b\b%3.0f%%", 100 * (float)ops /(float)total_ops); - fflush(stdout); - } - ops += 1; - - parser_init(type_both ? HTTP_BOTH : r1->type); - - buf1_len = i; - strlncpy(buf1, sizeof(buf1), total, buf1_len); - buf1[buf1_len] = 0; - - buf2_len = j - i; - strlncpy(buf2, sizeof(buf1), total+i, buf2_len); - buf2[buf2_len] = 0; - - buf3_len = total_len - j; - strlncpy(buf3, sizeof(buf1), total+j, buf3_len); - buf3[buf3_len] = 0; - - assert(num_messages == 0); - messages[0].headers_complete_cb_called = FALSE; - - read = parse(buf1, buf1_len); - - if (!messages[0].headers_complete_cb_called && parser.nread != read) { - print_error(buf1, read); - goto error; - } - - if (parser.upgrade) goto test; - - if (read != buf1_len) { - print_error(buf1, read); - goto error; - } - - read += parse(buf2, buf2_len); - - if (parser.upgrade) goto test; - - if (read != buf1_len + buf2_len) { - print_error(buf2, read); - goto error; - } - - read += parse(buf3, buf3_len); - - if (parser.upgrade) goto test; - - if (read != buf1_len + buf2_len + buf3_len) { - print_error(buf3, read); - goto error; - } - - parse(NULL, 0); - -test: - if (parser.upgrade) { - upgrade_message_fix(total, read, 3, r1, r2, r3); - } - - if (message_count != num_messages) { - fprintf(stderr, "\n\nParser didn't see %d messages only %d\n", - message_count, num_messages); - goto error; - } - - if (!message_eq(0, 0, r1)) { - fprintf(stderr, "\n\nError matching messages[0] in test_scan.\n"); - goto error; - } - - if (message_count > 1 && !message_eq(1, 0, r2)) { - fprintf(stderr, "\n\nError matching messages[1] in test_scan.\n"); - goto error; - } - - if (message_count > 2 && !message_eq(2, 0, r3)) { - fprintf(stderr, "\n\nError matching messages[2] in test_scan.\n"); - goto error; - } - } - } - } - puts("\b\b\b\b100%"); - return; - - error: - fprintf(stderr, "i=%d j=%d\n", i, j); - fprintf(stderr, "buf1 (%u) %s\n\n", (unsigned int)buf1_len, buf1); - fprintf(stderr, "buf2 (%u) %s\n\n", (unsigned int)buf2_len , buf2); - fprintf(stderr, "buf3 (%u) %s\n", (unsigned int)buf3_len, buf3); - abort(); -} - -// user required to free the result -// string terminated by \0 -char * -create_large_chunked_message (int body_size_in_kb, const char* headers) -{ - int i; - size_t wrote = 0; - size_t headers_len = strlen(headers); - size_t bufsize = headers_len + (5+1024+2)*body_size_in_kb + 6; - char * buf = malloc(bufsize); - - memcpy(buf, headers, headers_len); - wrote += headers_len; - - for (i = 0; i < body_size_in_kb; i++) { - // write 1kb chunk into the body. - memcpy(buf + wrote, "400\r\n", 5); - wrote += 5; - memset(buf + wrote, 'C', 1024); - wrote += 1024; - strcpy(buf + wrote, "\r\n"); - wrote += 2; - } - - memcpy(buf + wrote, "0\r\n\r\n", 6); - wrote += 6; - assert(wrote == bufsize); - - return buf; -} - -/* Verify that we can pause parsing at any of the bytes in the - * message and still get the result that we're expecting. */ -void -test_message_pause (const struct message *msg) -{ - char *buf = (char*) msg->raw; - size_t buflen = strlen(msg->raw); - size_t nread; - - parser_init(msg->type); - - do { - nread = parse_pause(buf, buflen); - - // We can only set the upgrade buffer once we've gotten our message - // completion callback. - if (messages[0].message_complete_cb_called && - msg->upgrade && - parser.upgrade) { - messages[0].upgrade = buf + nread; - goto test; - } - - if (nread < buflen) { - - // Not much do to if we failed a strict-mode check - if (HTTP_PARSER_ERRNO(&parser) == HPE_STRICT) { - return; - } - - assert (HTTP_PARSER_ERRNO(&parser) == HPE_PAUSED); - } - - buf += nread; - buflen -= nread; - http_parser_pause(&parser, 0); - } while (buflen > 0); - - nread = parse_pause(NULL, 0); - assert (nread == 0); - -test: - if (num_messages != 1) { - printf("\n*** num_messages != 1 after testing '%s' ***\n\n", msg->name); - abort(); - } - - if(!message_eq(0, 0, msg)) abort(); -} - -/* Verify that body and next message won't be parsed in responses to CONNECT */ -void -test_message_connect (const struct message *msg) -{ - char *buf = (char*) msg->raw; - size_t buflen = strlen(msg->raw); - - parser_init(msg->type); - - parse_connect(buf, buflen); - - if (num_messages != 1) { - printf("\n*** num_messages != 1 after testing '%s' ***\n\n", msg->name); - abort(); - } - - if(!message_eq(0, 1, msg)) abort(); -} - -int -main (void) -{ - unsigned i, j, k; - unsigned long version; - unsigned major; - unsigned minor; - unsigned patch; - - version = http_parser_version(); - major = (version >> 16) & 255; - minor = (version >> 8) & 255; - patch = version & 255; - printf("http_parser v%u.%u.%u (0x%06lx)\n", major, minor, patch, version); - - printf("sizeof(http_parser) = %u\n", (unsigned int)sizeof(http_parser)); - assert(sizeof(http_parser) == 4 + 4 + 8 + 2 + 2 + 4 + sizeof(void *)); - - //// API - test_preserve_data(); - test_parse_url(); - test_method_str(); - test_status_str(); - - //// NREAD - test_header_nread_value(); - - //// OVERFLOW CONDITIONS - test_no_overflow_parse_url(); - - test_header_overflow_error(HTTP_REQUEST); - test_no_overflow_long_body(HTTP_REQUEST, 1000); - test_no_overflow_long_body(HTTP_REQUEST, 100000); - - test_header_overflow_error(HTTP_RESPONSE); - test_no_overflow_long_body(HTTP_RESPONSE, 1000); - test_no_overflow_long_body(HTTP_RESPONSE, 100000); - - test_header_content_length_overflow_error(); - test_chunk_content_length_overflow_error(); - - //// HEADER FIELD CONDITIONS - test_double_content_length_error(HTTP_REQUEST); - test_chunked_content_length_error(HTTP_REQUEST); - test_header_cr_no_lf_error(HTTP_REQUEST); - test_invalid_header_field_token_error(HTTP_REQUEST); - test_invalid_header_field_content_error(HTTP_REQUEST); - test_double_content_length_error(HTTP_RESPONSE); - test_chunked_content_length_error(HTTP_RESPONSE); - test_header_cr_no_lf_error(HTTP_RESPONSE); - test_invalid_header_field_token_error(HTTP_RESPONSE); - test_invalid_header_field_content_error(HTTP_RESPONSE); - - test_simple_type( - "POST / HTTP/1.1\r\n" - "Content-Length:\r\n" // empty - "\r\n", - HPE_INVALID_CONTENT_LENGTH, - HTTP_REQUEST); - - test_simple_type( - "POST / HTTP/1.1\r\n" - "Content-Length: 42 \r\n" // Note the surrounding whitespace. - "\r\n", - HPE_OK, - HTTP_REQUEST); - - test_simple_type( - "POST / HTTP/1.1\r\n" - "Content-Length: 4 2\r\n" - "\r\n", - HPE_INVALID_CONTENT_LENGTH, - HTTP_REQUEST); - - test_simple_type( - "POST / HTTP/1.1\r\n" - "Content-Length: 13 37\r\n" - "\r\n", - HPE_INVALID_CONTENT_LENGTH, - HTTP_REQUEST); - - test_simple_type( - "POST / HTTP/1.1\r\n" - "Content-Length: 42\r\n" - " Hello world!\r\n", - HPE_INVALID_CONTENT_LENGTH, - HTTP_REQUEST); - - test_simple_type( - "POST / HTTP/1.1\r\n" - "Content-Length: 42\r\n" - " \r\n", - HPE_OK, - HTTP_REQUEST); - - //// RESPONSES - - test_simple_type("HTP/1.1 200 OK\r\n\r\n", HPE_INVALID_VERSION, HTTP_RESPONSE); - test_simple_type("HTTP/01.1 200 OK\r\n\r\n", HPE_INVALID_VERSION, HTTP_RESPONSE); - test_simple_type("HTTP/11.1 200 OK\r\n\r\n", HPE_INVALID_VERSION, HTTP_RESPONSE); - test_simple_type("HTTP/1.01 200 OK\r\n\r\n", HPE_INVALID_VERSION, HTTP_RESPONSE); - test_simple_type("HTTP/1.1\t200 OK\r\n\r\n", HPE_INVALID_VERSION, HTTP_RESPONSE); - test_simple_type("\rHTTP/1.1\t200 OK\r\n\r\n", HPE_INVALID_VERSION, HTTP_RESPONSE); - - for (i = 0; i < ARRAY_SIZE(responses); i++) { - test_message(&responses[i]); - } - - for (i = 0; i < ARRAY_SIZE(responses); i++) { - test_message_pause(&responses[i]); - } - - for (i = 0; i < ARRAY_SIZE(responses); i++) { - test_message_connect(&responses[i]); - } - - for (i = 0; i < ARRAY_SIZE(responses); i++) { - if (!responses[i].should_keep_alive) continue; - for (j = 0; j < ARRAY_SIZE(responses); j++) { - if (!responses[j].should_keep_alive) continue; - for (k = 0; k < ARRAY_SIZE(responses); k++) { - test_multiple3(&responses[i], &responses[j], &responses[k]); - } - } - } - - test_message_count_body(&responses[NO_HEADERS_NO_BODY_404]); - test_message_count_body(&responses[TRAILING_SPACE_ON_CHUNKED_BODY]); - - // test very large chunked response - { - char * msg = create_large_chunked_message(31337, - "HTTP/1.0 200 OK\r\n" - "Transfer-Encoding: chunked\r\n" - "Content-Type: text/plain\r\n" - "\r\n"); - struct message large_chunked = - {.name= "large chunked" - ,.type= HTTP_RESPONSE - ,.raw= msg - ,.should_keep_alive= FALSE - ,.message_complete_on_eof= FALSE - ,.http_major= 1 - ,.http_minor= 0 - ,.status_code= 200 - ,.response_status= "OK" - ,.num_headers= 2 - ,.headers= - { { "Transfer-Encoding", "chunked" } - , { "Content-Type", "text/plain" } - } - ,.body_size= 31337*1024 - ,.num_chunks_complete= 31338 - }; - for (i = 0; i < MAX_CHUNKS; i++) { - large_chunked.chunk_lengths[i] = 1024; - } - test_message_count_body(&large_chunked); - free(msg); - } - - - - printf("response scan 1/2 "); - test_scan( &responses[TRAILING_SPACE_ON_CHUNKED_BODY] - , &responses[NO_BODY_HTTP10_KA_204] - , &responses[NO_REASON_PHRASE] - ); - - printf("response scan 2/2 "); - test_scan( &responses[BONJOUR_MADAME_FR] - , &responses[UNDERSTORE_HEADER_KEY] - , &responses[NO_CARRIAGE_RET] - ); - - puts("responses okay"); - - - /// REQUESTS - - test_simple("GET / IHTTP/1.0\r\n\r\n", HPE_INVALID_CONSTANT); - test_simple("GET / ICE/1.0\r\n\r\n", HPE_INVALID_CONSTANT); - test_simple("GET / HTP/1.1\r\n\r\n", HPE_INVALID_VERSION); - test_simple("GET / HTTP/01.1\r\n\r\n", HPE_INVALID_VERSION); - test_simple("GET / HTTP/11.1\r\n\r\n", HPE_INVALID_VERSION); - test_simple("GET / HTTP/1.01\r\n\r\n", HPE_INVALID_VERSION); - - test_simple("GET / HTTP/1.0\r\nHello: w\1rld\r\n\r\n", HPE_INVALID_HEADER_TOKEN); - test_simple("GET / HTTP/1.0\r\nHello: woooo\2rld\r\n\r\n", HPE_INVALID_HEADER_TOKEN); - - // Extended characters - see nodejs/test/parallel/test-http-headers-obstext.js - test_simple("GET / HTTP/1.1\r\n" - "Test: Düsseldorf\r\n", - HPE_OK); - - // Well-formed but incomplete - test_simple("GET / HTTP/1.1\r\n" - "Content-Type: text/plain\r\n" - "Content-Length: 6\r\n" - "\r\n" - "fooba", - HPE_OK); - - // Unknown Transfer-Encoding in request - test_simple("GET / HTTP/1.1\r\n" - "Transfer-Encoding: unknown\r\n" - "\r\n", - HPE_INVALID_TRANSFER_ENCODING); - - static const char *all_methods[] = { - "DELETE", - "GET", - "HEAD", - "POST", - "PUT", - //"CONNECT", //CONNECT can't be tested like other methods, it's a tunnel - "OPTIONS", - "TRACE", - "COPY", - "LOCK", - "MKCOL", - "MOVE", - "PROPFIND", - "PROPPATCH", - "SEARCH", - "UNLOCK", - "BIND", - "REBIND", - "UNBIND", - "ACL", - "REPORT", - "MKACTIVITY", - "CHECKOUT", - "MERGE", - "M-SEARCH", - "NOTIFY", - "SUBSCRIBE", - "UNSUBSCRIBE", - "PATCH", - "PURGE", - "MKCALENDAR", - "LINK", - "UNLINK", - 0 }; - const char **this_method; - for (this_method = all_methods; *this_method; this_method++) { - char buf[200]; - sprintf(buf, "%s / HTTP/1.1\r\n\r\n", *this_method); - test_simple(buf, HPE_OK); - } - - static const char *bad_methods[] = { - "ASDF", - "C******", - "COLA", - "GEM", - "GETA", - "M****", - "MKCOLA", - "PROPPATCHA", - "PUN", - "PX", - "SA", - "hello world", - 0 }; - for (this_method = bad_methods; *this_method; this_method++) { - char buf[200]; - sprintf(buf, "%s / HTTP/1.1\r\n\r\n", *this_method); - test_simple(buf, HPE_INVALID_METHOD); - } - - // illegal header field name line folding - test_simple("GET / HTTP/1.1\r\n" - "name\r\n" - " : value\r\n" - "\r\n", - HPE_INVALID_HEADER_TOKEN); - - const char *dumbluck2 = - "GET / HTTP/1.1\r\n" - "X-SSL-Nonsense: -----BEGIN CERTIFICATE-----\r\n" - "\tMIIFbTCCBFWgAwIBAgICH4cwDQYJKoZIhvcNAQEFBQAwcDELMAkGA1UEBhMCVUsx\r\n" - "\tETAPBgNVBAoTCGVTY2llbmNlMRIwEAYDVQQLEwlBdXRob3JpdHkxCzAJBgNVBAMT\r\n" - "\tAkNBMS0wKwYJKoZIhvcNAQkBFh5jYS1vcGVyYXRvckBncmlkLXN1cHBvcnQuYWMu\r\n" - "\tdWswHhcNMDYwNzI3MTQxMzI4WhcNMDcwNzI3MTQxMzI4WjBbMQswCQYDVQQGEwJV\r\n" - "\tSzERMA8GA1UEChMIZVNjaWVuY2UxEzARBgNVBAsTCk1hbmNoZXN0ZXIxCzAJBgNV\r\n" - "\tBAcTmrsogriqMWLAk1DMRcwFQYDVQQDEw5taWNoYWVsIHBhcmQYJKoZIhvcNAQEB\r\n" - "\tBQADggEPADCCAQoCggEBANPEQBgl1IaKdSS1TbhF3hEXSl72G9J+WC/1R64fAcEF\r\n" - "\tW51rEyFYiIeZGx/BVzwXbeBoNUK41OK65sxGuflMo5gLflbwJtHBRIEKAfVVp3YR\r\n" - "\tgW7cMA/s/XKgL1GEC7rQw8lIZT8RApukCGqOVHSi/F1SiFlPDxuDfmdiNzL31+sL\r\n" - "\t0iwHDdNkGjy5pyBSB8Y79dsSJtCW/iaLB0/n8Sj7HgvvZJ7x0fr+RQjYOUUfrePP\r\n" - "\tu2MSpFyf+9BbC/aXgaZuiCvSR+8Snv3xApQY+fULK/xY8h8Ua51iXoQ5jrgu2SqR\r\n" - "\twgA7BUi3G8LFzMBl8FRCDYGUDy7M6QaHXx1ZWIPWNKsCAwEAAaOCAiQwggIgMAwG\r\n" - "\tA1UdEwEB/wQCMAAwEQYJYIZIAYb4QgHTTPAQDAgWgMA4GA1UdDwEB/wQEAwID6DAs\r\n" - "\tBglghkgBhvhCAQ0EHxYdVUsgZS1TY2llbmNlIFVzZXIgQ2VydGlmaWNhdGUwHQYD\r\n" - "\tVR0OBBYEFDTt/sf9PeMaZDHkUIldrDYMNTBZMIGaBgNVHSMEgZIwgY+AFAI4qxGj\r\n" - "\tloCLDdMVKwiljjDastqooXSkcjBwMQswCQYDVQQGEwJVSzERMA8GA1UEChMIZVNj\r\n" - "\taWVuY2UxEjAQBgNVBAsTCUF1dGhvcml0eTELMAkGA1UEAxMCQ0ExLTArBgkqhkiG\r\n" - "\t9w0BCQEWHmNhLW9wZXJhdG9yQGdyaWQtc3VwcG9ydC5hYy51a4IBADApBgNVHRIE\r\n" - "\tIjAggR5jYS1vcGVyYXRvckBncmlkLXN1cHBvcnQuYWMudWswGQYDVR0gBBIwEDAO\r\n" - "\tBgwrBgEEAdkvAQEBAQYwPQYJYIZIAYb4QgEEBDAWLmh0dHA6Ly9jYS5ncmlkLXN1\r\n" - "\tcHBvcnQuYWMudmT4sopwqlBWsvcHViL2NybC9jYWNybC5jcmwwPQYJYIZIAYb4QgEDBDAWLmh0\r\n" - "\tdHA6Ly9jYS5ncmlkLXN1cHBvcnQuYWMudWsvcHViL2NybC9jYWNybC5jcmwwPwYD\r\n" - "\tVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NhLmdyaWQt5hYy51ay9wdWIv\r\n" - "\tY3JsL2NhY3JsLmNybDANBgkqhkiG9w0BAQUFAAOCAQEAS/U4iiooBENGW/Hwmmd3\r\n" - "\tXCy6Zrt08YjKCzGNjorT98g8uGsqYjSxv/hmi0qlnlHs+k/3Iobc3LjS5AMYr5L8\r\n" - "\tUO7OSkgFFlLHQyC9JzPfmLCAugvzEbyv4Olnsr8hbxF1MbKZoQxUZtMVu29wjfXk\r\n" - "\thTeApBv7eaKCWpSp7MCbvgzm74izKhu3vlDk9w6qVrxePfGgpKPqfHiOoGhFnbTK\r\n" - "\twTC6o2xq5y0qZ03JonF7OJspEd3I5zKY3E+ov7/ZhW6DqT8UFvsAdjvQbXyhV8Eu\r\n" - "\tYhixw1aKEPzNjNowuIseVogKOLXxWI5vAi5HgXdS0/ES5gDGsABo4fqovUKlgop3\r\n" - "\tRA==\r\n" - "\t-----END CERTIFICATE-----\r\n" - "\r\n"; - test_simple(dumbluck2, HPE_OK); - - const char *corrupted_connection = - "GET / HTTP/1.1\r\n" - "Host: www.example.com\r\n" - "Connection\r\033\065\325eep-Alive\r\n" - "Accept-Encoding: gzip\r\n" - "\r\n"; - test_simple(corrupted_connection, HPE_INVALID_HEADER_TOKEN); - - const char *corrupted_header_name = - "GET / HTTP/1.1\r\n" - "Host: www.example.com\r\n" - "X-Some-Header\r\033\065\325eep-Alive\r\n" - "Accept-Encoding: gzip\r\n" - "\r\n"; - test_simple(corrupted_header_name, HPE_INVALID_HEADER_TOKEN); - -#if 0 - // NOTE(Wed Nov 18 11:57:27 CET 2009) this seems okay. we just read body - // until EOF. - // - // no content-length - // error if there is a body without content length - const char *bad_get_no_headers_no_body = "GET /bad_get_no_headers_no_body/world HTTP/1.1\r\n" - "Accept: */*\r\n" - "\r\n" - "HELLO"; - test_simple(bad_get_no_headers_no_body, 0); -#endif - /* TODO sending junk and large headers gets rejected */ - - - /* check to make sure our predefined requests are okay */ - for (i = 0; i < ARRAY_SIZE(requests); i++) { - test_message(&requests[i]); - } - - for (i = 0; i < ARRAY_SIZE(requests); i++) { - test_message_pause(&requests[i]); - } - - for (i = 0; i < ARRAY_SIZE(requests); i++) { - if (!requests[i].should_keep_alive) continue; - for (j = 0; j < ARRAY_SIZE(requests); j++) { - if (!requests[j].should_keep_alive) continue; - for (k = 0; k < ARRAY_SIZE(requests); k++) { - test_multiple3(&requests[i], &requests[j], &requests[k]); - } - } - } - - printf("request scan 1/4 "); - test_scan( &requests[GET_NO_HEADERS_NO_BODY] - , &requests[GET_ONE_HEADER_NO_BODY] - , &requests[GET_NO_HEADERS_NO_BODY] - ); - - printf("request scan 2/4 "); - test_scan( &requests[POST_CHUNKED_ALL_YOUR_BASE] - , &requests[POST_IDENTITY_BODY_WORLD] - , &requests[GET_FUNKY_CONTENT_LENGTH] - ); - - printf("request scan 3/4 "); - test_scan( &requests[TWO_CHUNKS_MULT_ZERO_END] - , &requests[CHUNKED_W_TRAILING_HEADERS] - , &requests[CHUNKED_W_NONSENSE_AFTER_LENGTH] - ); - - printf("request scan 4/4 "); - test_scan( &requests[QUERY_URL_WITH_QUESTION_MARK_GET] - , &requests[PREFIX_NEWLINE_GET ] - , &requests[CONNECT_REQUEST] - ); - - puts("requests okay"); - - return 0; -} diff --git a/vendor/llhttp/.dockerignore b/vendor/llhttp/.dockerignore new file mode 100644 index 0000000..11b226d --- /dev/null +++ b/vendor/llhttp/.dockerignore @@ -0,0 +1,6 @@ +* +!package.json +!package-lock.json +!tsconfig.json +!bin +!src diff --git a/vendor/llhttp/.eslintrc.js b/vendor/llhttp/.eslintrc.js new file mode 100644 index 0000000..595cf53 --- /dev/null +++ b/vendor/llhttp/.eslintrc.js @@ -0,0 +1,31 @@ +module.exports = { + 'env': { + 'browser': false, + 'commonjs': true, + 'es6': true, + 'node': true + }, + 'extends': 'eslint:recommended', + 'rules': { + 'max-len': [ 2, { + 'code': 80, + 'ignoreComments': true + } ], + 'indent': [ + 'error', + 2 + ], + 'linebreak-style': [ + 'error', + 'unix' + ], + 'quotes': [ + 'error', + 'single' + ], + 'semi': [ + 'error', + 'always' + ] + } +}; diff --git a/vendor/llhttp/.github/workflows/aiohttp.yml b/vendor/llhttp/.github/workflows/aiohttp.yml new file mode 100644 index 0000000..8ae8eb3 --- /dev/null +++ b/vendor/llhttp/.github/workflows/aiohttp.yml @@ -0,0 +1,61 @@ +name: Aiohttp +# If you don't understand the reason for a test failure, ping @Dreamsorcerer or open an issue in aio-libs/aiohttp. + +on: + push: + branches: + - 'main' + pull_request: + branches: + - 'main' + +jobs: + test: + permissions: + contents: read # to fetch code (actions/checkout) + + name: Aiohttp regression tests + runs-on: ubuntu-latest + steps: + - name: Checkout aiohttp + uses: actions/checkout@v4 + with: + repository: aio-libs/aiohttp + - name: Checkout llhttp + uses: actions/checkout@v4 + with: + path: vendor/llhttp + - name: Restore node_modules cache + uses: actions/cache@v3 + with: + path: vendor/llhttp/.npm + key: ubuntu-latest-node-${{ hashFiles('vendor/llhttp/**/package-lock.json') }} + restore-keys: ubuntu-latest-node- + - name: Install llhttp dependencies + run: npm install --ignore-scripts + working-directory: vendor/llhttp + - name: Build llhttp + run: make + working-directory: vendor/llhttp + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: 3.x + cache: 'pip' + cache-dependency-path: 'requirements/*.txt' + - name: Provision the dev env + run: >- + PATH="${HOME}/.local/bin:${PATH}" + make .develop + - name: Run tests + env: + COLOR: yes + run: >- + PATH="${HOME}/.local/bin:${PATH}" + pytest tests/test_http_parser.py tests/test_web_functional.py + - name: Run dev_mode tests + env: + COLOR: yes + run: >- + PATH="${HOME}/.local/bin:${PATH}" + python -X dev -m pytest -m dev_mode tests/test_http_parser.py tests/test_web_functional.py diff --git a/vendor/llhttp/.github/workflows/ci.yaml b/vendor/llhttp/.github/workflows/ci.yaml new file mode 100644 index 0000000..d1b3a65 --- /dev/null +++ b/vendor/llhttp/.github/workflows/ci.yaml @@ -0,0 +1,117 @@ +name: CI + +on: [push, pull_request] + +env: + CI: true + +jobs: + build: + name: Build libllhttp.a + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: + - macos-latest + - ubuntu-latest + - windows-latest + steps: + - name: Install clang for Windows + if: runner.os == 'Windows' + run: | + iwr -useb get.scoop.sh -outfile 'install.ps1' + .\install.ps1 -RunAsAdmin + scoop install llvm --global + + # Scoop modifies the PATH so we make the modified PATH global. + echo $env:PATH >> $env:GITHUB_PATH + + - name: Fetch code + uses: actions/checkout@v3 + with: + fetch-depth: 1 + + # Skip macOS & Windows, cache there is slower + - name: Restore node_modules cache for Linux + uses: actions/cache@v3 + if: runner.os == 'Linux' + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install dependencies + run: npm install --ignore-scripts + + - name: Build libllhttp.a + shell: bash + run: | + make build/libllhttp.a + + test: + name: Run tests + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: + - macos-latest + - ubuntu-latest + - windows-latest + steps: + - name: Install clang for Windows + if: runner.os == 'Windows' + run: | + iwr -useb get.scoop.sh -outfile 'install.ps1' + .\install.ps1 -RunAsAdmin + scoop install llvm --global + + # Scoop modifies the PATH so we make the modified PATH global. + echo $env:PATH >> $env:GITHUB_PATH + + - name: Fetch code + uses: actions/checkout@v3 + with: + fetch-depth: 1 + + # Skip macOS & Windows, cache there is slower + - name: Restore node_modules cache for Linux + uses: actions/cache@v3 + if: runner.os == 'Linux' + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install dependencies + run: npm install --ignore-scripts + + # Custom script, because progress looks not good in CI + - name: Run tests + env: + CFLAGS: -O0 + run: npx mocha --timeout 30000 -r ts-node/register/type-check test/*-test.ts + + lint: + name: Run TSLint + runs-on: ubuntu-latest + steps: + - name: Fetch code + uses: actions/checkout@v3 + with: + fetch-depth: 1 + + - name: Restore node_modules cache + uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install dependencies + run: npm install --ignore-scripts + + - name: Run lint command + run: npm run lint diff --git a/vendor/llhttp/.gitignore b/vendor/llhttp/.gitignore new file mode 100644 index 0000000..c2e9902 --- /dev/null +++ b/vendor/llhttp/.gitignore @@ -0,0 +1,6 @@ +node_modules/ +npm-debug.log +test/tmp/ +lib/ +build/ +release/ diff --git a/vendor/llhttp/.npmrc b/vendor/llhttp/.npmrc new file mode 100644 index 0000000..cafe685 --- /dev/null +++ b/vendor/llhttp/.npmrc @@ -0,0 +1 @@ +package-lock=true diff --git a/vendor/llhttp/CMakeLists.txt b/vendor/llhttp/CMakeLists.txt new file mode 100644 index 0000000..97fa408 --- /dev/null +++ b/vendor/llhttp/CMakeLists.txt @@ -0,0 +1,117 @@ +cmake_minimum_required(VERSION 3.5.1) +cmake_policy(SET CMP0069 NEW) + +project(llhttp VERSION _RELEASE_) +include(GNUInstallDirs) + +set(CMAKE_C_STANDARD 99) + +# By default build in relwithdebinfo type, supports both lowercase and uppercase +if(NOT CMAKE_CONFIGURATION_TYPES) + set(allowableBuildTypes DEBUG RELEASE RELWITHDEBINFO MINSIZEREL) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${allowableBuildTypes}") + if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE RELWITHDEBINFO CACHE STRING "" FORCE) + else() + string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE) + if(NOT CMAKE_BUILD_TYPE IN_LIST allowableBuildTypes) + message(FATAL_ERROR "Invalid build type: ${CMAKE_BUILD_TYPE}") + endif() + endif() +endif() + +# +# Options +# +# Generic option +option(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so)" ON) +option(BUILD_STATIC_LIBS "Build static libraries (.lib/.a)" OFF) + +# Source code +set(LLHTTP_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/src/llhttp.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/http.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/api.c +) + +set(LLHTTP_HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/llhttp.h +) + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/libllhttp.pc.in + ${CMAKE_CURRENT_SOURCE_DIR}/libllhttp.pc + @ONLY +) + +function(config_library target) + target_sources(${target} PRIVATE ${LLHTTP_SOURCES} ${LLHTTP_HEADERS}) + + target_include_directories(${target} PUBLIC + $ + $ + ) + + set_target_properties(${target} PROPERTIES + OUTPUT_NAME llhttp + VERSION ${PROJECT_VERSION} + SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} + PUBLIC_HEADER ${LLHTTP_HEADERS} + ) + + install(TARGETS ${target} + EXPORT llhttp + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + ) + + install(FILES + ${CMAKE_CURRENT_SOURCE_DIR}/libllhttp.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + ) + + # This is required to work with FetchContent + install(EXPORT llhttp + FILE llhttp-config.cmake + NAMESPACE llhttp:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/llhttp + ) +endfunction(config_library target) + +if(BUILD_SHARED_LIBS) + add_library(llhttp_shared SHARED + ${llhttp_src} + ) + add_library(llhttp::llhttp ALIAS llhttp_shared) + config_library(llhttp_shared) +endif() + +if(BUILD_STATIC_LIBS) + add_library(llhttp_static STATIC + ${llhttp_src} + ) + if(BUILD_SHARED_LIBS) + add_library(llhttp::llhttp ALIAS llhttp_shared) + else() + add_library(llhttp::llhttp ALIAS llhttp_static) + endif() + config_library(llhttp_static) +endif() + +# On windows with Visual Studio, add a debug postfix so that release +# and debug libraries can coexist. +if(MSVC) + set(CMAKE_DEBUG_POSTFIX "d") +endif() + +# Print project configure summary +message(STATUS "") +message(STATUS "") +message(STATUS "Project configure summary:") +message(STATUS "") +message(STATUS " CMake build type .................: ${CMAKE_BUILD_TYPE}") +message(STATUS " Install prefix ...................: ${CMAKE_INSTALL_PREFIX}") +message(STATUS " Build shared library .............: ${BUILD_SHARED_LIBS}") +message(STATUS " Build static library .............: ${BUILD_STATIC_LIBS}") +message(STATUS "") diff --git a/vendor/llhttp/CNAME b/vendor/llhttp/CNAME new file mode 100644 index 0000000..4c4e078 --- /dev/null +++ b/vendor/llhttp/CNAME @@ -0,0 +1 @@ +llhttp.org \ No newline at end of file diff --git a/vendor/llhttp/CODE_OF_CONDUCT.md b/vendor/llhttp/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..8470ae4 --- /dev/null +++ b/vendor/llhttp/CODE_OF_CONDUCT.md @@ -0,0 +1,4 @@ +# Code of Conduct + +* [Node.js Code of Conduct](https://github.com/nodejs/admin/blob/main/CODE_OF_CONDUCT.md) +* [Node.js Moderation Policy](https://github.com/nodejs/admin/blob/main/Moderation-Policy.md) diff --git a/vendor/llhttp/Dockerfile b/vendor/llhttp/Dockerfile new file mode 100644 index 0000000..2b5bfae --- /dev/null +++ b/vendor/llhttp/Dockerfile @@ -0,0 +1,13 @@ +FROM node:18-alpine +ARG UID=1000 +ARG GID=1000 + +RUN apk add -U clang lld wasi-sdk && mkdir /home/node/llhttp + +WORKDIR /home/node/llhttp + +COPY . . + +RUN npm ci + +USER node diff --git a/vendor/llhttp/LICENSE-MIT b/vendor/llhttp/LICENSE-MIT new file mode 100644 index 0000000..6c1512d --- /dev/null +++ b/vendor/llhttp/LICENSE-MIT @@ -0,0 +1,22 @@ +This software is licensed under the MIT License. + +Copyright Fedor Indutny, 2018. + +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/vendor/llhttp/Makefile b/vendor/llhttp/Makefile new file mode 100644 index 0000000..d9c6d35 --- /dev/null +++ b/vendor/llhttp/Makefile @@ -0,0 +1,93 @@ +CLANG ?= clang +CFLAGS ?= +OS ?= + +CFLAGS += -Os -g3 -Wall -Wextra -Wno-unused-parameter +ifneq ($(OS),Windows_NT) + # NOTE: clang on windows does not support fPIC + CFLAGS += -fPIC +endif + +INCLUDES += -Ibuild/ + +INSTALL ?= install +PREFIX ?= /usr/local +LIBDIR = $(PREFIX)/lib +INCLUDEDIR = $(PREFIX)/include + +all: build/libllhttp.a build/libllhttp.so + +clean: + rm -rf release/ + rm -rf build/ + +build/libllhttp.so: build/c/llhttp.o build/native/api.o \ + build/native/http.o + $(CLANG) -shared $^ -o $@ + +build/libllhttp.a: build/c/llhttp.o build/native/api.o \ + build/native/http.o + $(AR) rcs $@ build/c/llhttp.o build/native/api.o build/native/http.o + +build/c/llhttp.o: build/c/llhttp.c + $(CLANG) $(CFLAGS) $(INCLUDES) -c $< -o $@ + +build/native/%.o: src/native/%.c build/llhttp.h src/native/api.h \ + build/native + $(CLANG) $(CFLAGS) $(INCLUDES) -c $< -o $@ + +build/llhttp.h: generate +build/c/llhttp.c: generate + +build/native: + mkdir -p build/native + +release: clean generate + @echo "${RELEASE}" | grep -q -E ".+" || { echo "Please make sure the RELEASE argument is set."; exit 1; } + rm -rf release + mkdir -p release/src + mkdir -p release/include + cp -rf build/llhttp.h release/include/ + cp -rf build/c/llhttp.c release/src/ + cp -rf src/native/*.c release/src/ + cp -rf src/llhttp.gyp release/ + cp -rf src/common.gypi release/ + sed s/_RELEASE_/$(RELEASE)/ CMakeLists.txt > release/CMakeLists.txt + cp -rf libllhttp.pc.in release/ + cp -rf README.md release/ + cp -rf LICENSE-MIT release/ + +github-release: + @echo "${RELEASE_V}" | grep -q -E "^v" || { echo "Please make sure version starts with \"v\"."; exit 1; } + gh release create -d --generate-notes ${RELEASE_V} + @sleep 5 + gh release view ${RELEASE_V} -t "{{.body}}" --json body > RELEASE_NOTES + gh release delete ${RELEASE_V} -y + gh release create -F RELEASE_NOTES -d --title ${RELEASE_V} --target release release/${RELEASE_V} + @sleep 5 + rm -rf RELEASE_NOTES + open $$(gh release view release/${RELEASE_V} --json url -t "{{.url}}") + +postversion: release + git fetch origin + git push + git checkout release -- + cp -rf release/* ./ + rm -rf release + git add include src *.gyp *.gypi CMakeLists.txt README.md LICENSE-MIT libllhttp.pc.in + git commit -a -m "release: $(RELEASE)" + git tag "release/v$(RELEASE)" + git push && git push --tags + git checkout main + +generate: + npx ts-node bin/generate.ts + +install: build/libllhttp.a build/libllhttp.so + $(INSTALL) -d $(DESTDIR)$(INCLUDEDIR) + $(INSTALL) -d $(DESTDIR)$(LIBDIR) + $(INSTALL) -C build/llhttp.h $(DESTDIR)$(INCLUDEDIR)/llhttp.h + $(INSTALL) -C build/libllhttp.a $(DESTDIR)$(LIBDIR)/libllhttp.a + $(INSTALL) build/libllhttp.so $(DESTDIR)$(LIBDIR)/libllhttp.so + +.PHONY: all generate clean release postversion github-release diff --git a/vendor/llhttp/README.md b/vendor/llhttp/README.md new file mode 100644 index 0000000..4960dbb --- /dev/null +++ b/vendor/llhttp/README.md @@ -0,0 +1,501 @@ +# llhttp +[![CI](https://github.com/nodejs/llhttp/workflows/CI/badge.svg)](https://github.com/nodejs/llhttp/actions?query=workflow%3ACI) + +Port of [http_parser][0] to [llparse][1]. + +## Why? + +Let's face it, [http_parser][0] is practically unmaintainable. Even +introduction of a single new method results in a significant code churn. + +This project aims to: + +* Make it maintainable +* Verifiable +* Improving benchmarks where possible + +More details in [Fedor Indutny's talk at JSConf EU 2019](https://youtu.be/x3k_5Mi66sY) + +## How? + +Over time, different approaches for improving [http_parser][0]'s code base +were tried. However, all of them failed due to resulting significant performance +degradation. + +This project is a port of [http_parser][0] to TypeScript. [llparse][1] is used +to generate the output C source file, which could be compiled and +linked with the embedder's program (like [Node.js][7]). + +## Performance + +So far llhttp outperforms http_parser: + +| | input size | bandwidth | reqs/sec | time | +|:----------------|-----------:|-------------:|-----------:|--------:| +| **llhttp** | 8192.00 mb | 1777.24 mb/s | 3583799.39 req/sec | 4.61 s | +| **http_parser** | 8192.00 mb | 694.66 mb/s | 1406180.33 req/sec | 11.79 s | + +llhttp is faster by approximately **156%**. + +## Maintenance + +llhttp project has about 1400 lines of TypeScript code describing the parser +itself and around 450 lines of C code and headers providing the helper methods. +The whole [http_parser][0] is implemented in approximately 2500 lines of C, and +436 lines of headers. + +All optimizations and multi-character matching in llhttp are generated +automatically, and thus doesn't add any extra maintenance cost. On the contrary, +most of http_parser's code is hand-optimized and unrolled. Instead describing +"how" it should parse the HTTP requests/responses, a maintainer should +implement the new features in [http_parser][0] cautiously, considering +possible performance degradation and manually optimizing the new code. + +## Verification + +The state machine graph is encoded explicitly in llhttp. The [llparse][1] +automatically checks the graph for absence of loops and correct reporting of the +input ranges (spans) like header names and values. In the future, additional +checks could be performed to get even stricter verification of the llhttp. + +## Usage + +```C +#include "stdio.h" +#include "llhttp.h" +#include "string.h" + +int handle_on_message_complete(llhttp_t* parser) { + fprintf(stdout, "Message completed!\n"); + return 0; +} + +int main() { + llhttp_t parser; + llhttp_settings_t settings; + + /*Initialize user callbacks and settings */ + llhttp_settings_init(&settings); + + /*Set user callback */ + settings.on_message_complete = handle_on_message_complete; + + /*Initialize the parser in HTTP_BOTH mode, meaning that it will select between + *HTTP_REQUEST and HTTP_RESPONSE parsing automatically while reading the first + *input. + */ + llhttp_init(&parser, HTTP_BOTH, &settings); + + /*Parse request! */ + const char* request = "GET / HTTP/1.1\r\n\r\n"; + int request_len = strlen(request); + + enum llhttp_errno err = llhttp_execute(&parser, request, request_len); + if (err == HPE_OK) { + fprintf(stdout, "Successfully parsed!\n"); + } else { + fprintf(stderr, "Parse error: %s %s\n", llhttp_errno_name(err), parser.reason); + } +} +``` +For more information on API usage, please refer to [src/native/api.h](https://github.com/nodejs/llhttp/blob/main/src/native/api.h). + +## API + +### llhttp_settings_t + +The settings object contains a list of callbacks that the parser will invoke. + +The following callbacks can return `0` (proceed normally), `-1` (error) or `HPE_PAUSED` (pause the parser): + +* `on_message_begin`: Invoked when a new request/response starts. +* `on_message_complete`: Invoked when a request/response has been completedly parsed. +* `on_url_complete`: Invoked after the URL has been parsed. +* `on_method_complete`: Invoked after the HTTP method has been parsed. +* `on_version_complete`: Invoked after the HTTP version has been parsed. +* `on_status_complete`: Invoked after the status code has been parsed. +* `on_header_field_complete`: Invoked after a header name has been parsed. +* `on_header_value_complete`: Invoked after a header value has been parsed. +* `on_chunk_header`: Invoked after a new chunk is started. The current chunk length is stored in `parser->content_length`. +* `on_chunk_extension_name_complete`: Invoked after a chunk extension name is started. +* `on_chunk_extension_value_complete`: Invoked after a chunk extension value is started. +* `on_chunk_complete`: Invoked after a new chunk is received. +* `on_reset`: Invoked after `on_message_complete` and before `on_message_begin` when a new message + is received on the same parser. This is not invoked for the first message of the parser. + +The following callbacks can return `0` (proceed normally), `-1` (error) or `HPE_USER` (error from the callback): + +* `on_url`: Invoked when another character of the URL is received. +* `on_status`: Invoked when another character of the status is received. +* `on_method`: Invoked when another character of the method is received. + When parser is created with `HTTP_BOTH` and the input is a response, this also invoked for the sequence `HTTP/` + of the first message. +* `on_version`: Invoked when another character of the version is received. +* `on_header_field`: Invoked when another character of a header name is received. +* `on_header_value`: Invoked when another character of a header value is received. +* `on_chunk_extension_name`: Invoked when another character of a chunk extension name is received. +* `on_chunk_extension_value`: Invoked when another character of a extension value is received. + +The callback `on_headers_complete`, invoked when headers are completed, can return: + +* `0`: Proceed normally. +* `1`: Assume that request/response has no body, and proceed to parsing the next message. +* `2`: Assume absence of body (as above) and make `llhttp_execute()` return `HPE_PAUSED_UPGRADE`. +* `-1`: Error +* `HPE_PAUSED`: Pause the parser. + +### `void llhttp_init(llhttp_t* parser, llhttp_type_t type, const llhttp_settings_t* settings)` + +Initialize the parser with specific type and user settings. + +### `uint8_t llhttp_get_type(llhttp_t* parser)` + +Returns the type of the parser. + +### `uint8_t llhttp_get_http_major(llhttp_t* parser)` + +Returns the major version of the HTTP protocol of the current request/response. + +### `uint8_t llhttp_get_http_minor(llhttp_t* parser)` + +Returns the minor version of the HTTP protocol of the current request/response. + +### `uint8_t llhttp_get_method(llhttp_t* parser)` + +Returns the method of the current request. + +### `int llhttp_get_status_code(llhttp_t* parser)` + +Returns the method of the current response. + +### `uint8_t llhttp_get_upgrade(llhttp_t* parser)` + +Returns `1` if request includes the `Connection: upgrade` header. + +### `void llhttp_reset(llhttp_t* parser)` + +Reset an already initialized parser back to the start state, preserving the +existing parser type, callback settings, user data, and lenient flags. + +### `void llhttp_settings_init(llhttp_settings_t* settings)` + +Initialize the settings object. + +### `llhttp_errno_t llhttp_execute(llhttp_t* parser, const char* data, size_t len)` + +Parse full or partial request/response, invoking user callbacks along the way. + +If any of `llhttp_data_cb` returns errno not equal to `HPE_OK` - the parsing interrupts, +and such errno is returned from `llhttp_execute()`. If `HPE_PAUSED` was used as a errno, +the execution can be resumed with `llhttp_resume()` call. + +In a special case of CONNECT/Upgrade request/response `HPE_PAUSED_UPGRADE` is returned +after fully parsing the request/response. If the user wishes to continue parsing, +they need to invoke `llhttp_resume_after_upgrade()`. + +**if this function ever returns a non-pause type error, it will continue to return +the same error upon each successive call up until `llhttp_init()` is called.** + +### `llhttp_errno_t llhttp_finish(llhttp_t* parser)` + +This method should be called when the other side has no further bytes to +send (e.g. shutdown of readable side of the TCP connection.) + +Requests without `Content-Length` and other messages might require treating +all incoming bytes as the part of the body, up to the last byte of the +connection. + +This method will invoke `on_message_complete()` callback if the +request was terminated safely. Otherwise a error code would be returned. + + +### `int llhttp_message_needs_eof(const llhttp_t* parser)` + +Returns `1` if the incoming message is parsed until the last byte, and has to be completed by calling `llhttp_finish()` on EOF. + +### `int llhttp_should_keep_alive(const llhttp_t* parser)` + +Returns `1` if there might be any other messages following the last that was +successfully parsed. + +### `void llhttp_pause(llhttp_t* parser)` + +Make further calls of `llhttp_execute()` return `HPE_PAUSED` and set +appropriate error reason. + +**Do not call this from user callbacks! User callbacks must return +`HPE_PAUSED` if pausing is required.** + +### `void llhttp_resume(llhttp_t* parser)` + +Might be called to resume the execution after the pause in user's callback. + +See `llhttp_execute()` above for details. + +**Call this only if `llhttp_execute()` returns `HPE_PAUSED`.** + +### `void llhttp_resume_after_upgrade(llhttp_t* parser)` + +Might be called to resume the execution after the pause in user's callback. +See `llhttp_execute()` above for details. + +**Call this only if `llhttp_execute()` returns `HPE_PAUSED_UPGRADE`** + +### `llhttp_errno_t llhttp_get_errno(const llhttp_t* parser)` + +Returns the latest error. + +### `const char* llhttp_get_error_reason(const llhttp_t* parser)` + +Returns the verbal explanation of the latest returned error. + +**User callback should set error reason when returning the error. See +`llhttp_set_error_reason()` for details.** + +### `void llhttp_set_error_reason(llhttp_t* parser, const char* reason)` + +Assign verbal description to the returned error. Must be called in user +callbacks right before returning the errno. + +**`HPE_USER` error code might be useful in user callbacks.** + +### `const char* llhttp_get_error_pos(const llhttp_t* parser)` + +Returns the pointer to the last parsed byte before the returned error. The +pointer is relative to the `data` argument of `llhttp_execute()`. + +**This method might be useful for counting the number of parsed bytes.** + +### `const char* llhttp_errno_name(llhttp_errno_t err)` + +Returns textual name of error code. + +### `const char* llhttp_method_name(llhttp_method_t method)` + +Returns textual name of HTTP method. + +### `const char* llhttp_status_name(llhttp_status_t status)` + +Returns textual name of HTTP status. + +### `void llhttp_set_lenient_headers(llhttp_t* parser, int enabled)` + +Enables/disables lenient header value parsing (disabled by default). +Lenient parsing disables header value token checks, extending llhttp's +protocol support to highly non-compliant clients/server. + +No `HPE_INVALID_HEADER_TOKEN` will be raised for incorrect header values when +lenient parsing is "on". + +**Enabling this flag can pose a security issue since you will be exposed to request smuggling attacks. USE WITH CAUTION!** + +### `void llhttp_set_lenient_chunked_length(llhttp_t* parser, int enabled)` + +Enables/disables lenient handling of conflicting `Transfer-Encoding` and +`Content-Length` headers (disabled by default). + +Normally `llhttp` would error when `Transfer-Encoding` is present in +conjunction with `Content-Length`. + +This error is important to prevent HTTP request smuggling, but may be less desirable +for small number of cases involving legacy servers. + +**Enabling this flag can pose a security issue since you will be exposed to request smuggling attacks. USE WITH CAUTION!** + +### `void llhttp_set_lenient_keep_alive(llhttp_t* parser, int enabled)` + +Enables/disables lenient handling of `Connection: close` and HTTP/1.0 +requests responses. + +Normally `llhttp` would error the HTTP request/response +after the request/response with `Connection: close` and `Content-Length`. + +This is important to prevent cache poisoning attacks, +but might interact badly with outdated and insecure clients. + +With this flag the extra request/response will be parsed normally. + +**Enabling this flag can pose a security issue since you will be exposed to poisoning attacks. USE WITH CAUTION!** + +### `void llhttp_set_lenient_transfer_encoding(llhttp_t* parser, int enabled)` + +Enables/disables lenient handling of `Transfer-Encoding` header. + +Normally `llhttp` would error when a `Transfer-Encoding` has `chunked` value +and another value after it (either in a single header or in multiple +headers whose value are internally joined using `, `). + +This is mandated by the spec to reliably determine request body size and thus +avoid request smuggling. + +With this flag the extra value will be parsed normally. + +**Enabling this flag can pose a security issue since you will be exposed to request smuggling attacks. USE WITH CAUTION!** + +### `void llhttp_set_lenient_version(llhttp_t* parser, int enabled)` + +Enables/disables lenient handling of HTTP version. + +Normally `llhttp` would error when the HTTP version in the request or status line +is not `0.9`, `1.0`, `1.1` or `2.0`. +With this flag the extra value will be parsed normally. + +**Enabling this flag can pose a security issue since you will allow unsupported HTTP versions. USE WITH CAUTION!** + +### `void llhttp_set_lenient_data_after_close(llhttp_t* parser, int enabled)` + +Enables/disables lenient handling of additional data received after a message ends +and keep-alive is disabled. + +Normally `llhttp` would error when additional unexpected data is received if the message +contains the `Connection` header with `close` value. +With this flag the extra data will discarded without throwing an error. + +**Enabling this flag can pose a security issue since you will be exposed to poisoning attacks. USE WITH CAUTION!** + +### `void llhttp_set_lenient_optional_lf_after_cr(llhttp_t* parser, int enabled)` + +Enables/disables lenient handling of incomplete CRLF sequences. + +Normally `llhttp` would error when a CR is not followed by LF when terminating the +request line, the status line, the headers or a chunk header. +With this flag only a CR is required to terminate such sections. + +**Enabling this flag can pose a security issue since you will be exposed to request smuggling attacks. USE WITH CAUTION!** + +### `void llhttp_set_lenient_optional_cr_before_lf(llhttp_t* parser, int enabled)` + +Enables/disables lenient handling of line separators. + +Normally `llhttp` would error when a LF is not preceded by CR when terminating the +request line, the status line, the headers, a chunk header or a chunk data. +With this flag only a LF is required to terminate such sections. + +**Enabling this flag can pose a security issue since you will be exposed to request smuggling attacks. USE WITH CAUTION!** + +### `void llhttp_set_lenient_optional_crlf_after_chunk(llhttp_t* parser, int enabled)` + +Enables/disables lenient handling of chunks not separated via CRLF. + +Normally `llhttp` would error when after a chunk data a CRLF is missing before +starting a new chunk. +With this flag the new chunk can start immediately after the previous one. + +**Enabling this flag can pose a security issue since you will be exposed to request smuggling attacks. USE WITH CAUTION!** + +### `void llhttp_set_lenient_spaces_after_chunk_size(llhttp_t* parser, int enabled)` + +Enables/disables lenient handling of spaces after chunk size. + +Normally `llhttp` would error when after a chunk size is followed by one or more spaces are present instead of a CRLF or `;`. +With this flag this check is disabled. + +**Enabling this flag can pose a security issue since you will be exposed to request smuggling attacks. USE WITH CAUTION!** + +## Build Instructions + +Make sure you have [Node.js](https://nodejs.org/), npm and npx installed. Then under project directory run: + +```sh +npm install +make +``` + +--- + +### Bindings to other languages + +* Lua: [MunifTanjim/llhttp.lua][11] +* Python: [pallas/pyllhttp][8] +* Ruby: [metabahn/llhttp][9] +* Rust: [JackLiar/rust-llhttp][10] + +### Using with CMake + +If you want to use this library in a CMake project as a shared library, you can use the snippet below. + +``` +FetchContent_Declare(llhttp + URL "https://github.com/nodejs/llhttp/archive/refs/tags/release/v8.1.0.tar.gz") + +FetchContent_MakeAvailable(llhttp) + +# Link with the llhttp_shared target +target_link_libraries(${EXAMPLE_PROJECT_NAME} ${PROJECT_LIBRARIES} llhttp_shared ${PROJECT_NAME}) +``` + +If you want to use this library in a CMake project as a static library, you can set some cache variables first. + +``` +FetchContent_Declare(llhttp + URL "https://github.com/nodejs/llhttp/archive/refs/tags/release/v8.1.0.tar.gz") + +set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "") +set(BUILD_STATIC_LIBS ON CACHE INTERNAL "") +FetchContent_MakeAvailable(llhttp) + +# Link with the llhttp_static target +target_link_libraries(${EXAMPLE_PROJECT_NAME} ${PROJECT_LIBRARIES} llhttp_static ${PROJECT_NAME}) +``` + +_Note that using the git repo directly (e.g., via a git repo url and tag) will not work with FetchContent_Declare because [CMakeLists.txt](./CMakeLists.txt) requires string replacements (e.g., `_RELEASE_`) before it will build._ + +## Building on Windows + +### Installation + +* `choco install git` +* `choco install node` +* `choco install llvm` (or install the `C++ Clang tools for Windows` optional package from the Visual Studio 2019 installer) +* `choco install make` (or if you have MinGW, it comes bundled) + +1. Ensure that `Clang` and `make` are in your system path. +2. Using Git Bash, clone the repo to your preferred location. +3. Cd into the cloned directory and run `npm install` +5. Run `make` +6. Your `repo/build` directory should now have `libllhttp.a` and `libllhttp.so` static and dynamic libraries. +7. When building your executable, you can link to these libraries. Make sure to set the build folder as an include path when building so you can reference the declarations in `repo/build/llhttp.h`. + +### A simple example on linking with the library: + +Assuming you have an executable `main.cpp` in your current working directory, you would run: `clang++ -Os -g3 -Wall -Wextra -Wno-unused-parameter -I/path/to/llhttp/build main.cpp /path/to/llhttp/build/libllhttp.a -o main.exe`. + +If you are getting `unresolved external symbol` linker errors you are likely attempting to build `llhttp.c` without linking it with object files from `api.c` and `http.c`. + +#### LICENSE + +This software is licensed under the MIT License. + +Copyright Fedor Indutny, 2018. + +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. + +[0]: https://github.com/nodejs/http-parser +[1]: https://github.com/nodejs/llparse +[2]: https://en.wikipedia.org/wiki/Register_allocation#Spilling +[3]: https://en.wikipedia.org/wiki/Tail_call +[4]: https://llvm.org/docs/LangRef.html +[5]: https://llvm.org/docs/LangRef.html#call-instruction +[6]: https://clang.llvm.org/ +[7]: https://github.com/nodejs/node +[8]: https://github.com/pallas/pyllhttp +[9]: https://github.com/metabahn/llhttp +[10]: https://github.com/JackLiar/rust-llhttp +[11]: https://github.com/MunifTanjim/llhttp.lua diff --git a/vendor/llhttp/_config.yml b/vendor/llhttp/_config.yml new file mode 100644 index 0000000..1885487 --- /dev/null +++ b/vendor/llhttp/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-midnight \ No newline at end of file diff --git a/vendor/llhttp/bench/index.ts b/vendor/llhttp/bench/index.ts new file mode 100644 index 0000000..b3ff2e1 --- /dev/null +++ b/vendor/llhttp/bench/index.ts @@ -0,0 +1,71 @@ +import * as assert from "assert"; +import { spawnSync } from "child_process"; +import { existsSync } from "fs"; +import { resolve } from "path"; + +function request(tpl: TemplateStringsArray): string { + return tpl.raw[0].replace(/^\s+/gm, '').replace(/\n/gm, '').replace(/\\r/gm, '\r').replace(/\\n/gm, '\n') +} + +const urlExecutable = resolve(__dirname, "../test/tmp/url-url-c"); +const httpExecutable = resolve(__dirname, "../test/tmp/http-request-c"); + +const httpRequests: Record = { + "seanmonstar/httparse": request` + GET /wp-content/uploads/2010/03/hello-kitty-darth-vader-pink.jpg HTTP/1.1\r\n + Host: www.kittyhell.com\r\n + User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; ja-JP-mac; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 Pathtraq/0.9\r\n + Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n + Accept-Language: ja,en-us;q=0.7,en;q=0.3\r\n + Accept-Encoding: gzip,deflate\r\n + Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7\r\n + Keep-Alive: 115\r\n + Connection: keep-alive\r\n + Cookie: wp_ozh_wsa_visits=2; wp_ozh_wsa_visit_lasttime=xxxxxxxxxx; __utma=xxxxxxxxx.xxxxxxxxxx.xxxxxxxxxx.xxxxxxxxxx.xxxxxxxxxx.x; __utmz=xxxxxxxxx.xxxxxxxxxx.x.x.utmccn=(referral)|utmcsr=reader.livedoor.com|utmcct=/reader/|utmcmd=referral\r\n\r\n + `, + "nodejs/http-parser": request` + POST /joyent/http-parser HTTP/1.1\r\n + Host: github.com\r\n + DNT: 1\r\n + Accept-Encoding: gzip, deflate, sdch\r\n + Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4\r\n + User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/39.0.2171.65 Safari/537.36\r\n + Accept: text/html,application/xhtml+xml,application/xml;q=0.9, + image/webp,*/*;q=0.8\r\n + Referer: https://github.com/joyent/http-parser\r\n + Connection: keep-alive\r\n + Transfer-Encoding: chunked\r\n + Cache-Control: max-age=0\r\n\r\nb\r\nhello world\r\n0\r\n\r\n + ` +} +const urlRequest = "http://example.com/path/to/file?query=value#fragment"; + +if (!existsSync(urlExecutable) || !existsSync(urlExecutable)) { + console.error( + "\x1b[31m\x1b[1mPlease run npm test in order to create required executables." + ); + process.exit(1); +} + +if (process.argv[2] === "loop") { + const reqName = process.argv[3]; + const request = httpRequests[reqName]!; + + assert(request, `Unknown request name: "${reqName}"`); + spawnSync(httpExecutable, ["loop", request], { stdio: "inherit" }); + process.exit(0); +} + +if (!process.argv[2] || process.argv[2] === "url") { + console.log("url (C)"); + spawnSync(urlExecutable, ["bench", urlRequest], { stdio: "inherit" }); +} + +if (!process.argv[2] || process.argv[2] === "http") { + for (const [name, request] of Object.entries(httpRequests)) { + console.log('http: "%s" (C)', name); + spawnSync(httpExecutable, ["bench", request], { stdio: "inherit" }); + } +} diff --git a/vendor/llhttp/bin/build_wasm.ts b/vendor/llhttp/bin/build_wasm.ts new file mode 100644 index 0000000..a885703 --- /dev/null +++ b/vendor/llhttp/bin/build_wasm.ts @@ -0,0 +1,95 @@ +import { execSync } from 'child_process'; +import { copyFileSync, mkdirSync } from 'fs'; +import { join, resolve } from 'path'; + +let platform = process.env.WASM_PLATFORM ?? ''; +const WASM_OUT = resolve(__dirname, '../build/wasm'); +const WASM_SRC = resolve(__dirname, '../'); + +if (!platform && process.argv[2]) { + platform = execSync('docker info -f "{{.OSType}}/{{.Architecture}}"').toString().trim(); +} + +if (process.argv[2] === '--prebuild') { + const cmd = `docker build --platform=${platform.toString().trim()} -t llhttp_wasm_builder .`; + + /* tslint:disable-next-line no-console */ + console.log(`> ${cmd}\n\n`); + execSync(cmd, { stdio: 'inherit' }); + + process.exit(0); +} + +if (process.argv[2] === '--setup') { + try { + mkdirSync(join(WASM_SRC, 'build')); + process.exit(0); + } catch (error) { + if (error.code !== 'EEXIST') { + throw error; + } + process.exit(0); + } +} + +if (process.argv[2] === '--docker') { + let cmd = `docker run --rm -it --platform=${platform.toString().trim()}`; + // Try to avoid root permission problems on compiled assets + // when running on linux. + // It will work flawessly if uid === gid === 1000 + // there will be some warnings otherwise. + if (process.platform === 'linux') { + cmd += ` --user ${process.getuid()}:${process.getegid()}`; + } + cmd += ` --mount type=bind,source=${WASM_SRC}/build,target=/home/node/llhttp/build llhttp_wasm_builder npm run wasm`; + + /* tslint:disable-next-line no-console */ + console.log(`> ${cmd}\n\n`); + execSync(cmd, { cwd: WASM_SRC, stdio: 'inherit' }); + process.exit(0); +} + +try { + mkdirSync(WASM_OUT); +} catch (error) { + if (error.code !== 'EEXIST') { + throw error; + } +} + +// Build ts +execSync('npm run build', { cwd: WASM_SRC, stdio: 'inherit' }); + +// Build wasm binary +execSync( + `clang \ + --sysroot=/usr/share/wasi-sysroot \ + -target wasm32-unknown-wasi \ + -Ofast \ + -fno-exceptions \ + -fvisibility=hidden \ + -mexec-model=reactor \ + -Wl,-error-limit=0 \ + -Wl,-O3 \ + -Wl,--lto-O3 \ + -Wl,--strip-all \ + -Wl,--allow-undefined \ + -Wl,--export-dynamic \ + -Wl,--export-table \ + -Wl,--export=malloc \ + -Wl,--export=free \ + -Wl,--no-entry \ + ${join(WASM_SRC, 'build', 'c')}/*.c \ + ${join(WASM_SRC, 'src', 'native')}/*.c \ + -I${join(WASM_SRC, 'build')} \ + -o ${join(WASM_OUT, 'llhttp.wasm')}`, + { stdio: 'inherit' }, +); + +// Copy constants for `.js` and `.ts` users. +copyFileSync(join(WASM_SRC, 'lib', 'llhttp', 'constants.js'), join(WASM_OUT, 'constants.js')); +copyFileSync(join(WASM_SRC, 'lib', 'llhttp', 'constants.js.map'), join(WASM_OUT, 'constants.js.map')); +copyFileSync(join(WASM_SRC, 'lib', 'llhttp', 'constants.d.ts'), join(WASM_OUT, 'constants.d.ts')); +copyFileSync(join(WASM_SRC, 'lib', 'llhttp', 'utils.js'), join(WASM_OUT, 'utils.js')); +copyFileSync(join(WASM_SRC, 'lib', 'llhttp', 'utils.js.map'), join(WASM_OUT, 'utils.js.map')); +copyFileSync(join(WASM_SRC, 'lib', 'llhttp', 'utils.d.ts'), join(WASM_OUT, 'utils.d.ts')); diff --git a/vendor/llhttp/bin/generate.ts b/vendor/llhttp/bin/generate.ts new file mode 100755 index 0000000..edb7f49 --- /dev/null +++ b/vendor/llhttp/bin/generate.ts @@ -0,0 +1,47 @@ +#!/usr/bin/env -S npx ts-node + +import { mkdirSync, readFileSync, writeFileSync } from 'fs'; +import { LLParse } from 'llparse'; +import { dirname, resolve } from 'path'; +import { parse } from 'semver'; +import { CHeaders, HTTP } from '../src/llhttp'; + +const C_FILE = resolve(__dirname, '../build/c/llhttp.c'); +const HEADER_FILE = resolve(__dirname, '../build/llhttp.h'); + +const pkg = JSON.parse( + readFileSync(resolve(__dirname, '..', 'package.json')).toString(), +); +const version = parse(pkg.version)!; +const llparse = new LLParse('llhttp__internal'); + +const cHeaders = new CHeaders(); +const nativeHeaders = readFileSync(resolve(__dirname, '../src/native/api.h')); +const generated = llparse.build(new HTTP(llparse).build().entry, { + c: { + header: 'llhttp', + }, + debug: process.env.LLPARSE_DEBUG ? 'llhttp__debug' : undefined, + headerGuard: 'INCLUDE_LLHTTP_ITSELF_H_', +}); + +const headers = ` +#ifndef INCLUDE_LLHTTP_H_ +#define INCLUDE_LLHTTP_H_ + +#define LLHTTP_VERSION_MAJOR ${version.major} +#define LLHTTP_VERSION_MINOR ${version.minor} +#define LLHTTP_VERSION_PATCH ${version.patch} + +${generated.header} + +${cHeaders.build()} + +${nativeHeaders} + +#endif /* INCLUDE_LLHTTP_H_ */ +`; + +mkdirSync(dirname(C_FILE), { recursive: true }); +writeFileSync(HEADER_FILE, headers); +writeFileSync(C_FILE, generated.c); diff --git a/vendor/llhttp/build/c/llhttp.c b/vendor/llhttp/build/c/llhttp.c new file mode 100644 index 0000000..af84c42 --- /dev/null +++ b/vendor/llhttp/build/c/llhttp.c @@ -0,0 +1,10102 @@ +#include +#include +#include + +#ifdef __SSE4_2__ + #ifdef _MSC_VER + #include + #else /* !_MSC_VER */ + #include + #endif /* _MSC_VER */ +#endif /* __SSE4_2__ */ + +#ifdef _MSC_VER + #define ALIGN(n) _declspec(align(n)) +#else /* !_MSC_VER */ + #define ALIGN(n) __attribute__((aligned(n))) +#endif /* _MSC_VER */ + +#include "llhttp.h" + +typedef int (*llhttp__internal__span_cb)( + llhttp__internal_t*, const char*, const char*); + +static const unsigned char llparse_blob0[] = { + 'o', 'n' +}; +static const unsigned char llparse_blob1[] = { + 'e', 'c', 't', 'i', 'o', 'n' +}; +static const unsigned char llparse_blob2[] = { + 'l', 'o', 's', 'e' +}; +static const unsigned char llparse_blob3[] = { + 'e', 'e', 'p', '-', 'a', 'l', 'i', 'v', 'e' +}; +static const unsigned char llparse_blob4[] = { + 'p', 'g', 'r', 'a', 'd', 'e' +}; +static const unsigned char llparse_blob5[] = { + 'c', 'h', 'u', 'n', 'k', 'e', 'd' +}; +#ifdef __SSE4_2__ +static const unsigned char ALIGN(16) llparse_blob6[] = { + 0x9, 0x9, ' ', '~', 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0 +}; +#endif /* __SSE4_2__ */ +#ifdef __SSE4_2__ +static const unsigned char ALIGN(16) llparse_blob7[] = { + '!', '!', '#', '\'', '*', '+', '-', '.', '0', '9', 'A', + 'Z', '^', 'z', '|', '|' +}; +#endif /* __SSE4_2__ */ +#ifdef __SSE4_2__ +static const unsigned char ALIGN(16) llparse_blob8[] = { + '~', '~', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0 +}; +#endif /* __SSE4_2__ */ +static const unsigned char llparse_blob9[] = { + 'e', 'n', 't', '-', 'l', 'e', 'n', 'g', 't', 'h' +}; +static const unsigned char llparse_blob10[] = { + 'r', 'o', 'x', 'y', '-', 'c', 'o', 'n', 'n', 'e', 'c', + 't', 'i', 'o', 'n' +}; +static const unsigned char llparse_blob11[] = { + 'r', 'a', 'n', 's', 'f', 'e', 'r', '-', 'e', 'n', 'c', + 'o', 'd', 'i', 'n', 'g' +}; +static const unsigned char llparse_blob12[] = { + 'p', 'g', 'r', 'a', 'd', 'e' +}; +static const unsigned char llparse_blob13[] = { + 'T', 'T', 'P', '/' +}; +static const unsigned char llparse_blob14[] = { + 0xd, 0xa, 0xd, 0xa, 'S', 'M', 0xd, 0xa, 0xd, 0xa +}; +static const unsigned char llparse_blob15[] = { + 'C', 'E', '/' +}; +static const unsigned char llparse_blob16[] = { + 'T', 'S', 'P', '/' +}; +static const unsigned char llparse_blob17[] = { + 'N', 'O', 'U', 'N', 'C', 'E' +}; +static const unsigned char llparse_blob18[] = { + 'I', 'N', 'D' +}; +static const unsigned char llparse_blob19[] = { + 'E', 'C', 'K', 'O', 'U', 'T' +}; +static const unsigned char llparse_blob20[] = { + 'N', 'E', 'C', 'T' +}; +static const unsigned char llparse_blob21[] = { + 'E', 'T', 'E' +}; +static const unsigned char llparse_blob22[] = { + 'C', 'R', 'I', 'B', 'E' +}; +static const unsigned char llparse_blob23[] = { + 'L', 'U', 'S', 'H' +}; +static const unsigned char llparse_blob24[] = { + 'E', 'T' +}; +static const unsigned char llparse_blob25[] = { + 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R' +}; +static const unsigned char llparse_blob26[] = { + 'E', 'A', 'D' +}; +static const unsigned char llparse_blob27[] = { + 'N', 'K' +}; +static const unsigned char llparse_blob28[] = { + 'C', 'K' +}; +static const unsigned char llparse_blob29[] = { + 'S', 'E', 'A', 'R', 'C', 'H' +}; +static const unsigned char llparse_blob30[] = { + 'R', 'G', 'E' +}; +static const unsigned char llparse_blob31[] = { + 'C', 'T', 'I', 'V', 'I', 'T', 'Y' +}; +static const unsigned char llparse_blob32[] = { + 'L', 'E', 'N', 'D', 'A', 'R' +}; +static const unsigned char llparse_blob33[] = { + 'V', 'E' +}; +static const unsigned char llparse_blob34[] = { + 'O', 'T', 'I', 'F', 'Y' +}; +static const unsigned char llparse_blob35[] = { + 'P', 'T', 'I', 'O', 'N', 'S' +}; +static const unsigned char llparse_blob36[] = { + 'C', 'H' +}; +static const unsigned char llparse_blob37[] = { + 'S', 'E' +}; +static const unsigned char llparse_blob38[] = { + 'A', 'Y' +}; +static const unsigned char llparse_blob39[] = { + 'S', 'T' +}; +static const unsigned char llparse_blob40[] = { + 'I', 'N', 'D' +}; +static const unsigned char llparse_blob41[] = { + 'A', 'T', 'C', 'H' +}; +static const unsigned char llparse_blob42[] = { + 'G', 'E' +}; +static const unsigned char llparse_blob43[] = { + 'I', 'N', 'D' +}; +static const unsigned char llparse_blob44[] = { + 'O', 'R', 'D' +}; +static const unsigned char llparse_blob45[] = { + 'I', 'R', 'E', 'C', 'T' +}; +static const unsigned char llparse_blob46[] = { + 'O', 'R', 'T' +}; +static const unsigned char llparse_blob47[] = { + 'R', 'C', 'H' +}; +static const unsigned char llparse_blob48[] = { + 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R' +}; +static const unsigned char llparse_blob49[] = { + 'U', 'R', 'C', 'E' +}; +static const unsigned char llparse_blob50[] = { + 'B', 'S', 'C', 'R', 'I', 'B', 'E' +}; +static const unsigned char llparse_blob51[] = { + 'A', 'R', 'D', 'O', 'W', 'N' +}; +static const unsigned char llparse_blob52[] = { + 'A', 'C', 'E' +}; +static const unsigned char llparse_blob53[] = { + 'I', 'N', 'D' +}; +static const unsigned char llparse_blob54[] = { + 'N', 'K' +}; +static const unsigned char llparse_blob55[] = { + 'C', 'K' +}; +static const unsigned char llparse_blob56[] = { + 'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E' +}; +static const unsigned char llparse_blob57[] = { + 'H', 'T', 'T', 'P', '/' +}; +static const unsigned char llparse_blob58[] = { + 'A', 'D' +}; +static const unsigned char llparse_blob59[] = { + 'T', 'P', '/' +}; + +enum llparse_match_status_e { + kMatchComplete, + kMatchPause, + kMatchMismatch +}; +typedef enum llparse_match_status_e llparse_match_status_t; + +struct llparse_match_s { + llparse_match_status_t status; + const unsigned char* current; +}; +typedef struct llparse_match_s llparse_match_t; + +static llparse_match_t llparse__match_sequence_to_lower( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp, + const unsigned char* seq, uint32_t seq_len) { + uint32_t index; + llparse_match_t res; + + index = s->_index; + for (; p != endp; p++) { + unsigned char current; + + current = ((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p)); + if (current == seq[index]) { + if (++index == seq_len) { + res.status = kMatchComplete; + goto reset; + } + } else { + res.status = kMatchMismatch; + goto reset; + } + } + s->_index = index; + res.status = kMatchPause; + res.current = p; + return res; +reset: + s->_index = 0; + res.current = p; + return res; +} + +static llparse_match_t llparse__match_sequence_to_lower_unsafe( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp, + const unsigned char* seq, uint32_t seq_len) { + uint32_t index; + llparse_match_t res; + + index = s->_index; + for (; p != endp; p++) { + unsigned char current; + + current = ((*p) | 0x20); + if (current == seq[index]) { + if (++index == seq_len) { + res.status = kMatchComplete; + goto reset; + } + } else { + res.status = kMatchMismatch; + goto reset; + } + } + s->_index = index; + res.status = kMatchPause; + res.current = p; + return res; +reset: + s->_index = 0; + res.current = p; + return res; +} + +static llparse_match_t llparse__match_sequence_id( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp, + const unsigned char* seq, uint32_t seq_len) { + uint32_t index; + llparse_match_t res; + + index = s->_index; + for (; p != endp; p++) { + unsigned char current; + + current = *p; + if (current == seq[index]) { + if (++index == seq_len) { + res.status = kMatchComplete; + goto reset; + } + } else { + res.status = kMatchMismatch; + goto reset; + } + } + s->_index = index; + res.status = kMatchPause; + res.current = p; + return res; +reset: + s->_index = 0; + res.current = p; + return res; +} + +enum llparse_state_e { + s_error, + s_n_llhttp__internal__n_closed, + s_n_llhttp__internal__n_invoke_llhttp__after_message_complete, + s_n_llhttp__internal__n_pause_1, + s_n_llhttp__internal__n_invoke_is_equal_upgrade, + s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2, + s_n_llhttp__internal__n_chunk_data_almost_done_1, + s_n_llhttp__internal__n_chunk_data_almost_done, + s_n_llhttp__internal__n_consume_content_length, + s_n_llhttp__internal__n_span_start_llhttp__on_body, + s_n_llhttp__internal__n_invoke_is_equal_content_length, + s_n_llhttp__internal__n_chunk_size_almost_done, + s_n_llhttp__internal__n_invoke_test_lenient_flags_9, + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete, + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1, + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2, + s_n_llhttp__internal__n_invoke_test_lenient_flags_10, + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete, + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1, + s_n_llhttp__internal__n_chunk_extension_quoted_value_done, + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2, + s_n_llhttp__internal__n_error_30, + s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair, + s_n_llhttp__internal__n_error_31, + s_n_llhttp__internal__n_chunk_extension_quoted_value, + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3, + s_n_llhttp__internal__n_error_33, + s_n_llhttp__internal__n_chunk_extension_value, + s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value, + s_n_llhttp__internal__n_error_34, + s_n_llhttp__internal__n_chunk_extension_name, + s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name, + s_n_llhttp__internal__n_chunk_extensions, + s_n_llhttp__internal__n_chunk_size_otherwise, + s_n_llhttp__internal__n_chunk_size, + s_n_llhttp__internal__n_chunk_size_digit, + s_n_llhttp__internal__n_invoke_update_content_length_1, + s_n_llhttp__internal__n_consume_content_length_1, + s_n_llhttp__internal__n_span_start_llhttp__on_body_1, + s_n_llhttp__internal__n_eof, + s_n_llhttp__internal__n_span_start_llhttp__on_body_2, + s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete, + s_n_llhttp__internal__n_error_5, + s_n_llhttp__internal__n_headers_almost_done, + s_n_llhttp__internal__n_header_field_colon_discard_ws, + s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete, + s_n_llhttp__internal__n_span_start_llhttp__on_header_value, + s_n_llhttp__internal__n_header_value_discard_lws, + s_n_llhttp__internal__n_header_value_discard_ws_almost_done, + s_n_llhttp__internal__n_header_value_lws, + s_n_llhttp__internal__n_header_value_almost_done, + s_n_llhttp__internal__n_invoke_test_lenient_flags_17, + s_n_llhttp__internal__n_header_value_lenient, + s_n_llhttp__internal__n_error_52, + s_n_llhttp__internal__n_header_value_otherwise, + s_n_llhttp__internal__n_header_value_connection_token, + s_n_llhttp__internal__n_header_value_connection_ws, + s_n_llhttp__internal__n_header_value_connection_1, + s_n_llhttp__internal__n_header_value_connection_2, + s_n_llhttp__internal__n_header_value_connection_3, + s_n_llhttp__internal__n_header_value_connection, + s_n_llhttp__internal__n_error_54, + s_n_llhttp__internal__n_error_55, + s_n_llhttp__internal__n_header_value_content_length_ws, + s_n_llhttp__internal__n_header_value_content_length, + s_n_llhttp__internal__n_error_57, + s_n_llhttp__internal__n_error_56, + s_n_llhttp__internal__n_header_value_te_token_ows, + s_n_llhttp__internal__n_header_value, + s_n_llhttp__internal__n_header_value_te_token, + s_n_llhttp__internal__n_header_value_te_chunked_last, + s_n_llhttp__internal__n_header_value_te_chunked, + s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1, + s_n_llhttp__internal__n_header_value_discard_ws, + s_n_llhttp__internal__n_invoke_load_header_state, + s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete, + s_n_llhttp__internal__n_header_field_general_otherwise, + s_n_llhttp__internal__n_header_field_general, + s_n_llhttp__internal__n_header_field_colon, + s_n_llhttp__internal__n_header_field_3, + s_n_llhttp__internal__n_header_field_4, + s_n_llhttp__internal__n_header_field_2, + s_n_llhttp__internal__n_header_field_1, + s_n_llhttp__internal__n_header_field_5, + s_n_llhttp__internal__n_header_field_6, + s_n_llhttp__internal__n_header_field_7, + s_n_llhttp__internal__n_header_field, + s_n_llhttp__internal__n_span_start_llhttp__on_header_field, + s_n_llhttp__internal__n_header_field_start, + s_n_llhttp__internal__n_headers_start, + s_n_llhttp__internal__n_url_to_http_09, + s_n_llhttp__internal__n_url_skip_to_http09, + s_n_llhttp__internal__n_url_skip_lf_to_http09_1, + s_n_llhttp__internal__n_url_skip_lf_to_http09, + s_n_llhttp__internal__n_req_pri_upgrade, + s_n_llhttp__internal__n_req_http_complete_crlf, + s_n_llhttp__internal__n_req_http_complete, + s_n_llhttp__internal__n_invoke_load_method_1, + s_n_llhttp__internal__n_invoke_llhttp__on_version_complete, + s_n_llhttp__internal__n_error_64, + s_n_llhttp__internal__n_error_71, + s_n_llhttp__internal__n_req_http_minor, + s_n_llhttp__internal__n_error_72, + s_n_llhttp__internal__n_req_http_dot, + s_n_llhttp__internal__n_error_73, + s_n_llhttp__internal__n_req_http_major, + s_n_llhttp__internal__n_span_start_llhttp__on_version, + s_n_llhttp__internal__n_req_http_start_1, + s_n_llhttp__internal__n_req_http_start_2, + s_n_llhttp__internal__n_req_http_start_3, + s_n_llhttp__internal__n_req_http_start, + s_n_llhttp__internal__n_url_to_http, + s_n_llhttp__internal__n_url_skip_to_http, + s_n_llhttp__internal__n_url_fragment, + s_n_llhttp__internal__n_span_end_stub_query_3, + s_n_llhttp__internal__n_url_query, + s_n_llhttp__internal__n_url_query_or_fragment, + s_n_llhttp__internal__n_url_path, + s_n_llhttp__internal__n_span_start_stub_path_2, + s_n_llhttp__internal__n_span_start_stub_path, + s_n_llhttp__internal__n_span_start_stub_path_1, + s_n_llhttp__internal__n_url_server_with_at, + s_n_llhttp__internal__n_url_server, + s_n_llhttp__internal__n_url_schema_delim_1, + s_n_llhttp__internal__n_url_schema_delim, + s_n_llhttp__internal__n_span_end_stub_schema, + s_n_llhttp__internal__n_url_schema, + s_n_llhttp__internal__n_url_start, + s_n_llhttp__internal__n_span_start_llhttp__on_url_1, + s_n_llhttp__internal__n_url_entry_normal, + s_n_llhttp__internal__n_span_start_llhttp__on_url, + s_n_llhttp__internal__n_url_entry_connect, + s_n_llhttp__internal__n_req_spaces_before_url, + s_n_llhttp__internal__n_req_first_space_before_url, + s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1, + s_n_llhttp__internal__n_after_start_req_2, + s_n_llhttp__internal__n_after_start_req_3, + s_n_llhttp__internal__n_after_start_req_1, + s_n_llhttp__internal__n_after_start_req_4, + s_n_llhttp__internal__n_after_start_req_6, + s_n_llhttp__internal__n_after_start_req_8, + s_n_llhttp__internal__n_after_start_req_9, + s_n_llhttp__internal__n_after_start_req_7, + s_n_llhttp__internal__n_after_start_req_5, + s_n_llhttp__internal__n_after_start_req_12, + s_n_llhttp__internal__n_after_start_req_13, + s_n_llhttp__internal__n_after_start_req_11, + s_n_llhttp__internal__n_after_start_req_10, + s_n_llhttp__internal__n_after_start_req_14, + s_n_llhttp__internal__n_after_start_req_17, + s_n_llhttp__internal__n_after_start_req_16, + s_n_llhttp__internal__n_after_start_req_15, + s_n_llhttp__internal__n_after_start_req_18, + s_n_llhttp__internal__n_after_start_req_20, + s_n_llhttp__internal__n_after_start_req_21, + s_n_llhttp__internal__n_after_start_req_19, + s_n_llhttp__internal__n_after_start_req_23, + s_n_llhttp__internal__n_after_start_req_24, + s_n_llhttp__internal__n_after_start_req_26, + s_n_llhttp__internal__n_after_start_req_28, + s_n_llhttp__internal__n_after_start_req_29, + s_n_llhttp__internal__n_after_start_req_27, + s_n_llhttp__internal__n_after_start_req_25, + s_n_llhttp__internal__n_after_start_req_30, + s_n_llhttp__internal__n_after_start_req_22, + s_n_llhttp__internal__n_after_start_req_31, + s_n_llhttp__internal__n_after_start_req_32, + s_n_llhttp__internal__n_after_start_req_35, + s_n_llhttp__internal__n_after_start_req_36, + s_n_llhttp__internal__n_after_start_req_34, + s_n_llhttp__internal__n_after_start_req_37, + s_n_llhttp__internal__n_after_start_req_38, + s_n_llhttp__internal__n_after_start_req_42, + s_n_llhttp__internal__n_after_start_req_43, + s_n_llhttp__internal__n_after_start_req_41, + s_n_llhttp__internal__n_after_start_req_40, + s_n_llhttp__internal__n_after_start_req_39, + s_n_llhttp__internal__n_after_start_req_45, + s_n_llhttp__internal__n_after_start_req_44, + s_n_llhttp__internal__n_after_start_req_33, + s_n_llhttp__internal__n_after_start_req_48, + s_n_llhttp__internal__n_after_start_req_49, + s_n_llhttp__internal__n_after_start_req_50, + s_n_llhttp__internal__n_after_start_req_51, + s_n_llhttp__internal__n_after_start_req_47, + s_n_llhttp__internal__n_after_start_req_46, + s_n_llhttp__internal__n_after_start_req_54, + s_n_llhttp__internal__n_after_start_req_56, + s_n_llhttp__internal__n_after_start_req_57, + s_n_llhttp__internal__n_after_start_req_55, + s_n_llhttp__internal__n_after_start_req_53, + s_n_llhttp__internal__n_after_start_req_58, + s_n_llhttp__internal__n_after_start_req_59, + s_n_llhttp__internal__n_after_start_req_52, + s_n_llhttp__internal__n_after_start_req_61, + s_n_llhttp__internal__n_after_start_req_62, + s_n_llhttp__internal__n_after_start_req_60, + s_n_llhttp__internal__n_after_start_req_65, + s_n_llhttp__internal__n_after_start_req_67, + s_n_llhttp__internal__n_after_start_req_68, + s_n_llhttp__internal__n_after_start_req_66, + s_n_llhttp__internal__n_after_start_req_69, + s_n_llhttp__internal__n_after_start_req_64, + s_n_llhttp__internal__n_after_start_req_63, + s_n_llhttp__internal__n_after_start_req, + s_n_llhttp__internal__n_span_start_llhttp__on_method_1, + s_n_llhttp__internal__n_res_line_almost_done, + s_n_llhttp__internal__n_invoke_test_lenient_flags_29, + s_n_llhttp__internal__n_res_status, + s_n_llhttp__internal__n_span_start_llhttp__on_status, + s_n_llhttp__internal__n_res_status_code_otherwise, + s_n_llhttp__internal__n_res_status_code_digit_3, + s_n_llhttp__internal__n_res_status_code_digit_2, + s_n_llhttp__internal__n_res_status_code_digit_1, + s_n_llhttp__internal__n_res_after_version, + s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1, + s_n_llhttp__internal__n_error_87, + s_n_llhttp__internal__n_error_101, + s_n_llhttp__internal__n_res_http_minor, + s_n_llhttp__internal__n_error_102, + s_n_llhttp__internal__n_res_http_dot, + s_n_llhttp__internal__n_error_103, + s_n_llhttp__internal__n_res_http_major, + s_n_llhttp__internal__n_span_start_llhttp__on_version_1, + s_n_llhttp__internal__n_start_res, + s_n_llhttp__internal__n_invoke_llhttp__on_method_complete, + s_n_llhttp__internal__n_req_or_res_method_2, + s_n_llhttp__internal__n_invoke_update_type_1, + s_n_llhttp__internal__n_req_or_res_method_3, + s_n_llhttp__internal__n_req_or_res_method_1, + s_n_llhttp__internal__n_req_or_res_method, + s_n_llhttp__internal__n_span_start_llhttp__on_method, + s_n_llhttp__internal__n_start_req_or_res, + s_n_llhttp__internal__n_invoke_load_type, + s_n_llhttp__internal__n_invoke_update_finish, + s_n_llhttp__internal__n_start, +}; +typedef enum llparse_state_e llparse_state_t; + +int llhttp__on_method( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__on_url( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__on_version( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__on_header_field( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__on_header_value( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__on_body( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__on_chunk_extension_name( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__on_chunk_extension_value( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__on_status( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_load_initial_message_completed( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return state->initial_message_completed; +} + +int llhttp__on_reset( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_update_finish( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->finish = 2; + return 0; +} + +int llhttp__on_message_begin( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_load_type( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return state->type; +} + +int llhttp__internal__c_store_method( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp, + int match) { + state->method = match; + return 0; +} + +int llhttp__on_method_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_is_equal_method( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return state->method == 5; +} + +int llhttp__internal__c_update_http_major( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->http_major = 0; + return 0; +} + +int llhttp__internal__c_update_http_minor( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->http_minor = 9; + return 0; +} + +int llhttp__on_url_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_test_lenient_flags( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 1) == 1; +} + +int llhttp__internal__c_test_lenient_flags_1( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 256) == 256; +} + +int llhttp__internal__c_test_flags( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->flags & 128) == 128; +} + +int llhttp__on_chunk_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__on_message_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_is_equal_upgrade( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return state->upgrade == 1; +} + +int llhttp__after_message_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_update_content_length( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->content_length = 0; + return 0; +} + +int llhttp__internal__c_update_initial_message_completed( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->initial_message_completed = 1; + return 0; +} + +int llhttp__internal__c_update_finish_1( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->finish = 0; + return 0; +} + +int llhttp__internal__c_test_lenient_flags_2( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 4) == 4; +} + +int llhttp__internal__c_test_lenient_flags_3( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 32) == 32; +} + +int llhttp__before_headers_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__on_headers_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__after_headers_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_mul_add_content_length( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp, + int match) { + /* Multiplication overflow */ + if (state->content_length > 0xffffffffffffffffULL / 16) { + return 1; + } + + state->content_length *= 16; + + /* Addition overflow */ + if (match >= 0) { + if (state->content_length > 0xffffffffffffffffULL - match) { + return 1; + } + } else { + if (state->content_length < 0ULL - match) { + return 1; + } + } + state->content_length += match; + return 0; +} + +int llhttp__internal__c_test_lenient_flags_4( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 512) == 512; +} + +int llhttp__on_chunk_header( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_is_equal_content_length( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return state->content_length == 0; +} + +int llhttp__internal__c_test_lenient_flags_7( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 128) == 128; +} + +int llhttp__internal__c_or_flags( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->flags |= 128; + return 0; +} + +int llhttp__internal__c_test_lenient_flags_8( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 64) == 64; +} + +int llhttp__on_chunk_extension_name_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__on_chunk_extension_value_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_update_finish_3( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->finish = 1; + return 0; +} + +int llhttp__internal__c_or_flags_1( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->flags |= 64; + return 0; +} + +int llhttp__internal__c_update_upgrade( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->upgrade = 1; + return 0; +} + +int llhttp__internal__c_store_header_state( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp, + int match) { + state->header_state = match; + return 0; +} + +int llhttp__on_header_field_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_load_header_state( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return state->header_state; +} + +int llhttp__internal__c_test_flags_4( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->flags & 512) == 512; +} + +int llhttp__internal__c_test_lenient_flags_21( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 2) == 2; +} + +int llhttp__internal__c_or_flags_5( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->flags |= 1; + return 0; +} + +int llhttp__internal__c_update_header_state( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->header_state = 1; + return 0; +} + +int llhttp__on_header_value_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_or_flags_6( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->flags |= 2; + return 0; +} + +int llhttp__internal__c_or_flags_7( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->flags |= 4; + return 0; +} + +int llhttp__internal__c_or_flags_8( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->flags |= 8; + return 0; +} + +int llhttp__internal__c_update_header_state_3( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->header_state = 6; + return 0; +} + +int llhttp__internal__c_update_header_state_1( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->header_state = 0; + return 0; +} + +int llhttp__internal__c_update_header_state_6( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->header_state = 5; + return 0; +} + +int llhttp__internal__c_update_header_state_7( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->header_state = 7; + return 0; +} + +int llhttp__internal__c_test_flags_2( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->flags & 32) == 32; +} + +int llhttp__internal__c_mul_add_content_length_1( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp, + int match) { + /* Multiplication overflow */ + if (state->content_length > 0xffffffffffffffffULL / 10) { + return 1; + } + + state->content_length *= 10; + + /* Addition overflow */ + if (match >= 0) { + if (state->content_length > 0xffffffffffffffffULL - match) { + return 1; + } + } else { + if (state->content_length < 0ULL - match) { + return 1; + } + } + state->content_length += match; + return 0; +} + +int llhttp__internal__c_or_flags_17( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->flags |= 32; + return 0; +} + +int llhttp__internal__c_test_flags_3( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->flags & 8) == 8; +} + +int llhttp__internal__c_test_lenient_flags_19( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 8) == 8; +} + +int llhttp__internal__c_or_flags_18( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->flags |= 512; + return 0; +} + +int llhttp__internal__c_and_flags( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->flags &= -9; + return 0; +} + +int llhttp__internal__c_update_header_state_8( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->header_state = 8; + return 0; +} + +int llhttp__internal__c_or_flags_20( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->flags |= 16; + return 0; +} + +int llhttp__internal__c_load_method( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return state->method; +} + +int llhttp__internal__c_store_http_major( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp, + int match) { + state->http_major = match; + return 0; +} + +int llhttp__internal__c_store_http_minor( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp, + int match) { + state->http_minor = match; + return 0; +} + +int llhttp__internal__c_test_lenient_flags_23( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 16) == 16; +} + +int llhttp__on_version_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_load_http_major( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return state->http_major; +} + +int llhttp__internal__c_load_http_minor( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return state->http_minor; +} + +int llhttp__internal__c_update_status_code( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->status_code = 0; + return 0; +} + +int llhttp__internal__c_mul_add_status_code( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp, + int match) { + /* Multiplication overflow */ + if (state->status_code > 0xffff / 10) { + return 1; + } + + state->status_code *= 10; + + /* Addition overflow */ + if (match >= 0) { + if (state->status_code > 0xffff - match) { + return 1; + } + } else { + if (state->status_code < 0 - match) { + return 1; + } + } + state->status_code += match; + return 0; +} + +int llhttp__on_status_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_update_type( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->type = 1; + return 0; +} + +int llhttp__internal__c_update_type_1( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + state->type = 2; + return 0; +} + +int llhttp__internal_init(llhttp__internal_t* state) { + memset(state, 0, sizeof(*state)); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_start; + return 0; +} + +static llparse_state_t llhttp__internal__run( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + int match; + switch ((llparse_state_t) (intptr_t) state->_current) { + case s_n_llhttp__internal__n_closed: + s_n_llhttp__internal__n_closed: { + if (p == endp) { + return s_n_llhttp__internal__n_closed; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_closed; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_closed; + } + default: { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_3; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__after_message_complete: + s_n_llhttp__internal__n_invoke_llhttp__after_message_complete: { + switch (llhttp__after_message_complete(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_update_content_length; + default: + goto s_n_llhttp__internal__n_invoke_update_finish_1; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_pause_1: + s_n_llhttp__internal__n_pause_1: { + state->error = 0x16; + state->reason = "Pause on CONNECT/Upgrade"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_is_equal_upgrade: + s_n_llhttp__internal__n_invoke_is_equal_upgrade: { + switch (llhttp__internal__c_is_equal_upgrade(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete; + default: + goto s_n_llhttp__internal__n_pause_1; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2: + s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2: { + switch (llhttp__on_message_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_is_equal_upgrade; + case 21: + goto s_n_llhttp__internal__n_pause_13; + default: + goto s_n_llhttp__internal__n_error_38; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_data_almost_done_1: + s_n_llhttp__internal__n_chunk_data_almost_done_1: { + if (p == endp) { + return s_n_llhttp__internal__n_chunk_data_almost_done_1; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete; + } + default: { + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_data_almost_done: + s_n_llhttp__internal__n_chunk_data_almost_done: { + if (p == endp) { + return s_n_llhttp__internal__n_chunk_data_almost_done; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_6; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_chunk_data_almost_done_1; + } + default: { + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_consume_content_length: + s_n_llhttp__internal__n_consume_content_length: { + size_t avail; + uint64_t need; + + avail = endp - p; + need = state->content_length; + if (avail >= need) { + p += need; + state->content_length = 0; + goto s_n_llhttp__internal__n_span_end_llhttp__on_body; + } + + state->content_length -= avail; + return s_n_llhttp__internal__n_consume_content_length; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_body: + s_n_llhttp__internal__n_span_start_llhttp__on_body: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_body; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_body; + goto s_n_llhttp__internal__n_consume_content_length; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_is_equal_content_length: + s_n_llhttp__internal__n_invoke_is_equal_content_length: { + switch (llhttp__internal__c_is_equal_content_length(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_span_start_llhttp__on_body; + default: + goto s_n_llhttp__internal__n_invoke_or_flags; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_size_almost_done: + s_n_llhttp__internal__n_chunk_size_almost_done: { + if (p == endp) { + return s_n_llhttp__internal__n_chunk_size_almost_done; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header; + } + default: { + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_8; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_test_lenient_flags_9: + s_n_llhttp__internal__n_invoke_test_lenient_flags_9: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_chunk_size_almost_done; + default: + goto s_n_llhttp__internal__n_error_20; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete: + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete: { + switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_9; + case 21: + goto s_n_llhttp__internal__n_pause_5; + default: + goto s_n_llhttp__internal__n_error_19; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1: + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1: { + switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_chunk_size_almost_done; + case 21: + goto s_n_llhttp__internal__n_pause_6; + default: + goto s_n_llhttp__internal__n_error_21; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2: + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2: { + switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_chunk_extensions; + case 21: + goto s_n_llhttp__internal__n_pause_7; + default: + goto s_n_llhttp__internal__n_error_22; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_test_lenient_flags_10: + s_n_llhttp__internal__n_invoke_test_lenient_flags_10: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_chunk_size_almost_done; + default: + goto s_n_llhttp__internal__n_error_25; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete: + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete: { + switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_10; + case 21: + goto s_n_llhttp__internal__n_pause_8; + default: + goto s_n_llhttp__internal__n_error_24; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1: + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1: { + switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_chunk_size_almost_done; + case 21: + goto s_n_llhttp__internal__n_pause_9; + default: + goto s_n_llhttp__internal__n_error_26; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_extension_quoted_value_done: + s_n_llhttp__internal__n_chunk_extension_quoted_value_done: { + if (p == endp) { + return s_n_llhttp__internal__n_chunk_extension_quoted_value_done; + } + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_11; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_chunk_size_almost_done; + } + case ';': { + p++; + goto s_n_llhttp__internal__n_chunk_extensions; + } + default: { + goto s_n_llhttp__internal__n_error_29; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2: + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2: { + switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_chunk_extension_quoted_value_done; + case 21: + goto s_n_llhttp__internal__n_pause_10; + default: + goto s_n_llhttp__internal__n_error_27; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_30: + s_n_llhttp__internal__n_error_30: { + state->error = 0x2; + state->reason = "Invalid quoted-pair in chunk extensions quoted value"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair: + s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; + if (p == endp) { + return s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_chunk_extension_quoted_value; + } + default: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_3; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_31: + s_n_llhttp__internal__n_error_31: { + state->error = 0x2; + state->reason = "Invalid character in chunk extensions quoted value"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_extension_quoted_value: + s_n_llhttp__internal__n_chunk_extension_quoted_value: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; + if (p == endp) { + return s_n_llhttp__internal__n_chunk_extension_quoted_value; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_chunk_extension_quoted_value; + } + case 2: { + p++; + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_2; + } + case 3: { + p++; + goto s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair; + } + default: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_4; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3: + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3: { + switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_chunk_extensions; + case 21: + goto s_n_llhttp__internal__n_pause_11; + default: + goto s_n_llhttp__internal__n_error_32; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_33: + s_n_llhttp__internal__n_error_33: { + state->error = 0x2; + state->reason = "Invalid character in chunk extensions value"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_extension_value: + s_n_llhttp__internal__n_chunk_extension_value: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 4, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 3, 3, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 5, 0, 0, 0, 0, + 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + if (p == endp) { + return s_n_llhttp__internal__n_chunk_extension_value; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value; + } + case 2: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_1; + } + case 3: { + p++; + goto s_n_llhttp__internal__n_chunk_extension_value; + } + case 4: { + p++; + goto s_n_llhttp__internal__n_chunk_extension_quoted_value; + } + case 5: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_5; + } + default: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_6; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value: + s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_chunk_extension_value; + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_3; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_34: + s_n_llhttp__internal__n_error_34: { + state->error = 0x2; + state->reason = "Invalid character in chunk extensions name"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_extension_name: + s_n_llhttp__internal__n_chunk_extension_name: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 3, 3, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 4, 0, 5, 0, 0, + 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + if (p == endp) { + return s_n_llhttp__internal__n_chunk_extension_name; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name; + } + case 2: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_1; + } + case 3: { + p++; + goto s_n_llhttp__internal__n_chunk_extension_name; + } + case 4: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_2; + } + case 5: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_3; + } + default: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_4; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name: + s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_chunk_extension_name; + goto s_n_llhttp__internal__n_chunk_extension_name; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_extensions: + s_n_llhttp__internal__n_chunk_extensions: { + if (p == endp) { + return s_n_llhttp__internal__n_chunk_extensions; + } + switch (*p) { + case 13: { + p++; + goto s_n_llhttp__internal__n_error_17; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_error_18; + } + default: { + goto s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_size_otherwise: + s_n_llhttp__internal__n_chunk_size_otherwise: { + if (p == endp) { + return s_n_llhttp__internal__n_chunk_size_otherwise; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_4; + } + case 10: { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_5; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_chunk_size_almost_done; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_4; + } + case ';': { + p++; + goto s_n_llhttp__internal__n_chunk_extensions; + } + default: { + goto s_n_llhttp__internal__n_error_35; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_size: + s_n_llhttp__internal__n_chunk_size: { + if (p == endp) { + return s_n_llhttp__internal__n_chunk_size; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'A': { + p++; + match = 10; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'B': { + p++; + match = 11; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'C': { + p++; + match = 12; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'D': { + p++; + match = 13; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'E': { + p++; + match = 14; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'F': { + p++; + match = 15; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'a': { + p++; + match = 10; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'b': { + p++; + match = 11; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'c': { + p++; + match = 12; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'd': { + p++; + match = 13; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'e': { + p++; + match = 14; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'f': { + p++; + match = 15; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + default: { + goto s_n_llhttp__internal__n_chunk_size_otherwise; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_chunk_size_digit: + s_n_llhttp__internal__n_chunk_size_digit: { + if (p == endp) { + return s_n_llhttp__internal__n_chunk_size_digit; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'A': { + p++; + match = 10; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'B': { + p++; + match = 11; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'C': { + p++; + match = 12; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'D': { + p++; + match = 13; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'E': { + p++; + match = 14; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'F': { + p++; + match = 15; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'a': { + p++; + match = 10; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'b': { + p++; + match = 11; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'c': { + p++; + match = 12; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'd': { + p++; + match = 13; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'e': { + p++; + match = 14; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + case 'f': { + p++; + match = 15; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length; + } + default: { + goto s_n_llhttp__internal__n_error_37; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_update_content_length_1: + s_n_llhttp__internal__n_invoke_update_content_length_1: { + switch (llhttp__internal__c_update_content_length(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_chunk_size_digit; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_consume_content_length_1: + s_n_llhttp__internal__n_consume_content_length_1: { + size_t avail; + uint64_t need; + + avail = endp - p; + need = state->content_length; + if (avail >= need) { + p += need; + state->content_length = 0; + goto s_n_llhttp__internal__n_span_end_llhttp__on_body_1; + } + + state->content_length -= avail; + return s_n_llhttp__internal__n_consume_content_length_1; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_body_1: + s_n_llhttp__internal__n_span_start_llhttp__on_body_1: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_body_1; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_body; + goto s_n_llhttp__internal__n_consume_content_length_1; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_eof: + s_n_llhttp__internal__n_eof: { + if (p == endp) { + return s_n_llhttp__internal__n_eof; + } + p++; + goto s_n_llhttp__internal__n_eof; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_body_2: + s_n_llhttp__internal__n_span_start_llhttp__on_body_2: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_body_2; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_body; + goto s_n_llhttp__internal__n_eof; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete: + s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete: { + switch (llhttp__after_headers_complete(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1; + case 2: + goto s_n_llhttp__internal__n_invoke_update_content_length_1; + case 3: + goto s_n_llhttp__internal__n_span_start_llhttp__on_body_1; + case 4: + goto s_n_llhttp__internal__n_invoke_update_finish_3; + case 5: + goto s_n_llhttp__internal__n_error_39; + default: + goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_5: + s_n_llhttp__internal__n_error_5: { + state->error = 0xa; + state->reason = "Invalid header field char"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_headers_almost_done: + s_n_llhttp__internal__n_headers_almost_done: { + if (p == endp) { + return s_n_llhttp__internal__n_headers_almost_done; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_invoke_test_flags_1; + } + default: { + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_12; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_colon_discard_ws: + s_n_llhttp__internal__n_header_field_colon_discard_ws: { + if (p == endp) { + return s_n_llhttp__internal__n_header_field_colon_discard_ws; + } + switch (*p) { + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_field_colon_discard_ws; + } + default: { + goto s_n_llhttp__internal__n_header_field_colon; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete: + s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete: { + switch (llhttp__on_header_value_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_header_field_start; + case 21: + goto s_n_llhttp__internal__n_pause_18; + default: + goto s_n_llhttp__internal__n_error_47; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_header_value: + s_n_llhttp__internal__n_span_start_llhttp__on_header_value: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_header_value; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_header_value; + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_discard_lws: + s_n_llhttp__internal__n_header_value_discard_lws: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_discard_lws; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_15; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_15; + } + default: { + goto s_n_llhttp__internal__n_invoke_load_header_state_1; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_discard_ws_almost_done: + s_n_llhttp__internal__n_header_value_discard_ws_almost_done: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_discard_ws_almost_done; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_header_value_discard_lws; + } + default: { + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_16; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_lws: + s_n_llhttp__internal__n_header_value_lws: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_lws; + } + switch (*p) { + case 9: { + goto s_n_llhttp__internal__n_invoke_load_header_state_4; + } + case ' ': { + goto s_n_llhttp__internal__n_invoke_load_header_state_4; + } + default: { + goto s_n_llhttp__internal__n_invoke_load_header_state_5; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_almost_done: + s_n_llhttp__internal__n_header_value_almost_done: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_almost_done; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_header_value_lws; + } + default: { + goto s_n_llhttp__internal__n_error_51; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_test_lenient_flags_17: + s_n_llhttp__internal__n_invoke_test_lenient_flags_17: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_header_value_almost_done; + default: + goto s_n_llhttp__internal__n_error_50; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_lenient: + s_n_llhttp__internal__n_header_value_lenient: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_lenient; + } + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4; + } + case 13: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5; + } + default: { + p++; + goto s_n_llhttp__internal__n_header_value_lenient; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_52: + s_n_llhttp__internal__n_error_52: { + state->error = 0xa; + state->reason = "Invalid header value char"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_otherwise: + s_n_llhttp__internal__n_header_value_otherwise: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_otherwise; + } + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1; + } + case 13: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2; + } + default: { + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_18; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_connection_token: + s_n_llhttp__internal__n_header_value_connection_token: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; + if (p == endp) { + return s_n_llhttp__internal__n_header_value_connection_token; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_header_value_connection_token; + } + case 2: { + p++; + goto s_n_llhttp__internal__n_header_value_connection; + } + default: { + goto s_n_llhttp__internal__n_header_value_otherwise; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_connection_ws: + s_n_llhttp__internal__n_header_value_connection_ws: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_connection_ws; + } + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_header_value_otherwise; + } + case 13: { + goto s_n_llhttp__internal__n_header_value_otherwise; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_value_connection_ws; + } + case ',': { + p++; + goto s_n_llhttp__internal__n_invoke_load_header_state_6; + } + default: { + goto s_n_llhttp__internal__n_invoke_update_header_state_5; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_connection_1: + s_n_llhttp__internal__n_header_value_connection_1: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_value_connection_1; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob2, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_invoke_update_header_state_3; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_value_connection_1; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_header_value_connection_token; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_connection_2: + s_n_llhttp__internal__n_header_value_connection_2: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_value_connection_2; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob3, 9); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_invoke_update_header_state_6; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_value_connection_2; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_header_value_connection_token; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_connection_3: + s_n_llhttp__internal__n_header_value_connection_3: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_value_connection_3; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob4, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_invoke_update_header_state_7; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_value_connection_3; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_header_value_connection_token; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_connection: + s_n_llhttp__internal__n_header_value_connection: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_connection; + } + switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) { + case 9: { + p++; + goto s_n_llhttp__internal__n_header_value_connection; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_value_connection; + } + case 'c': { + p++; + goto s_n_llhttp__internal__n_header_value_connection_1; + } + case 'k': { + p++; + goto s_n_llhttp__internal__n_header_value_connection_2; + } + case 'u': { + p++; + goto s_n_llhttp__internal__n_header_value_connection_3; + } + default: { + goto s_n_llhttp__internal__n_header_value_connection_token; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_54: + s_n_llhttp__internal__n_error_54: { + state->error = 0xb; + state->reason = "Content-Length overflow"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_55: + s_n_llhttp__internal__n_error_55: { + state->error = 0xb; + state->reason = "Invalid character in Content-Length"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_content_length_ws: + s_n_llhttp__internal__n_header_value_content_length_ws: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_content_length_ws; + } + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_invoke_or_flags_17; + } + case 13: { + goto s_n_llhttp__internal__n_invoke_or_flags_17; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_value_content_length_ws; + } + default: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_content_length: + s_n_llhttp__internal__n_header_value_content_length: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_content_length; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + default: { + goto s_n_llhttp__internal__n_header_value_content_length_ws; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_57: + s_n_llhttp__internal__n_error_57: { + state->error = 0xf; + state->reason = "Invalid `Transfer-Encoding` header value"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_56: + s_n_llhttp__internal__n_error_56: { + state->error = 0xf; + state->reason = "Invalid `Transfer-Encoding` header value"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_te_token_ows: + s_n_llhttp__internal__n_header_value_te_token_ows: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_te_token_ows; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_header_value_te_token_ows; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_value_te_token_ows; + } + default: { + goto s_n_llhttp__internal__n_header_value_te_chunked; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value: + s_n_llhttp__internal__n_header_value: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; + if (p == endp) { + return s_n_llhttp__internal__n_header_value; + } + #ifdef __SSE4_2__ + if (endp - p >= 16) { + __m128i ranges; + __m128i input; + int avail; + int match_len; + + /* Load input */ + input = _mm_loadu_si128((__m128i const*) p); + ranges = _mm_loadu_si128((__m128i const*) llparse_blob6); + + /* Find first character that does not match `ranges` */ + match_len = _mm_cmpestri(ranges, 6, + input, 16, + _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES | + _SIDD_NEGATIVE_POLARITY); + + if (match_len != 0) { + p += match_len; + goto s_n_llhttp__internal__n_header_value; + } + goto s_n_llhttp__internal__n_header_value_otherwise; + } + #endif /* __SSE4_2__ */ + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_header_value; + } + default: { + goto s_n_llhttp__internal__n_header_value_otherwise; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_te_token: + s_n_llhttp__internal__n_header_value_te_token: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; + if (p == endp) { + return s_n_llhttp__internal__n_header_value_te_token; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_header_value_te_token; + } + case 2: { + p++; + goto s_n_llhttp__internal__n_header_value_te_token_ows; + } + default: { + goto s_n_llhttp__internal__n_invoke_update_header_state_9; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_te_chunked_last: + s_n_llhttp__internal__n_header_value_te_chunked_last: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_te_chunked_last; + } + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_invoke_update_header_state_8; + } + case 13: { + goto s_n_llhttp__internal__n_invoke_update_header_state_8; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_value_te_chunked_last; + } + case ',': { + goto s_n_llhttp__internal__n_invoke_load_type_1; + } + default: { + goto s_n_llhttp__internal__n_header_value_te_token; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_te_chunked: + s_n_llhttp__internal__n_header_value_te_chunked: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_value_te_chunked; + } + match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob5, 7); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_header_value_te_chunked_last; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_value_te_chunked; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_header_value_te_token; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: + s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_header_value; + goto s_n_llhttp__internal__n_invoke_load_header_state_3; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_discard_ws: + s_n_llhttp__internal__n_header_value_discard_ws: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_discard_ws; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + case 10: { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_14; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_header_value_discard_ws_almost_done; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + default: { + goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_load_header_state: + s_n_llhttp__internal__n_invoke_load_header_state: { + switch (llhttp__internal__c_load_header_state(state, p, endp)) { + case 2: + goto s_n_llhttp__internal__n_invoke_test_flags_4; + case 3: + goto s_n_llhttp__internal__n_invoke_test_flags_5; + default: + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete: + s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete: { + switch (llhttp__on_header_field_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_load_header_state; + case 21: + goto s_n_llhttp__internal__n_pause_19; + default: + goto s_n_llhttp__internal__n_error_44; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_general_otherwise: + s_n_llhttp__internal__n_header_field_general_otherwise: { + if (p == endp) { + return s_n_llhttp__internal__n_header_field_general_otherwise; + } + switch (*p) { + case ':': { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2; + } + default: { + goto s_n_llhttp__internal__n_error_60; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_general: + s_n_llhttp__internal__n_header_field_general: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + if (p == endp) { + return s_n_llhttp__internal__n_header_field_general; + } + #ifdef __SSE4_2__ + if (endp - p >= 16) { + __m128i ranges; + __m128i input; + int avail; + int match_len; + + /* Load input */ + input = _mm_loadu_si128((__m128i const*) p); + ranges = _mm_loadu_si128((__m128i const*) llparse_blob7); + + /* Find first character that does not match `ranges` */ + match_len = _mm_cmpestri(ranges, 16, + input, 16, + _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES | + _SIDD_NEGATIVE_POLARITY); + + if (match_len != 0) { + p += match_len; + goto s_n_llhttp__internal__n_header_field_general; + } + ranges = _mm_loadu_si128((__m128i const*) llparse_blob8); + + /* Find first character that does not match `ranges` */ + match_len = _mm_cmpestri(ranges, 2, + input, 16, + _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES | + _SIDD_NEGATIVE_POLARITY); + + if (match_len != 0) { + p += match_len; + goto s_n_llhttp__internal__n_header_field_general; + } + goto s_n_llhttp__internal__n_header_field_general_otherwise; + } + #endif /* __SSE4_2__ */ + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_header_field_general; + } + default: { + goto s_n_llhttp__internal__n_header_field_general_otherwise; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_colon: + s_n_llhttp__internal__n_header_field_colon: { + if (p == endp) { + return s_n_llhttp__internal__n_header_field_colon; + } + switch (*p) { + case ' ': { + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_13; + } + case ':': { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1; + } + default: { + goto s_n_llhttp__internal__n_invoke_update_header_state_10; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_3: + s_n_llhttp__internal__n_header_field_3: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_field_3; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob1, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_header_state; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_3; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_11; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_4: + s_n_llhttp__internal__n_header_field_4: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_field_4; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob9, 10); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_header_state; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_4; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_11; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_2: + s_n_llhttp__internal__n_header_field_2: { + if (p == endp) { + return s_n_llhttp__internal__n_header_field_2; + } + switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) { + case 'n': { + p++; + goto s_n_llhttp__internal__n_header_field_3; + } + case 't': { + p++; + goto s_n_llhttp__internal__n_header_field_4; + } + default: { + goto s_n_llhttp__internal__n_invoke_update_header_state_11; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_1: + s_n_llhttp__internal__n_header_field_1: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_field_1; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob0, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_header_field_2; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_1; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_11; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_5: + s_n_llhttp__internal__n_header_field_5: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_field_5; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob10, 15); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_header_state; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_5; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_11; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_6: + s_n_llhttp__internal__n_header_field_6: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_field_6; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob11, 16); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_store_header_state; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_6; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_11; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_7: + s_n_llhttp__internal__n_header_field_7: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_field_7; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob12, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_header_state; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_7; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_11; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field: + s_n_llhttp__internal__n_header_field: { + if (p == endp) { + return s_n_llhttp__internal__n_header_field; + } + switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) { + case 'c': { + p++; + goto s_n_llhttp__internal__n_header_field_1; + } + case 'p': { + p++; + goto s_n_llhttp__internal__n_header_field_5; + } + case 't': { + p++; + goto s_n_llhttp__internal__n_header_field_6; + } + case 'u': { + p++; + goto s_n_llhttp__internal__n_header_field_7; + } + default: { + goto s_n_llhttp__internal__n_invoke_update_header_state_11; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_header_field: + s_n_llhttp__internal__n_span_start_llhttp__on_header_field: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_header_field; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_header_field; + goto s_n_llhttp__internal__n_header_field; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_start: + s_n_llhttp__internal__n_header_field_start: { + if (p == endp) { + return s_n_llhttp__internal__n_header_field_start; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_1; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_headers_almost_done; + } + default: { + goto s_n_llhttp__internal__n_span_start_llhttp__on_header_field; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_headers_start: + s_n_llhttp__internal__n_headers_start: { + if (p == endp) { + return s_n_llhttp__internal__n_headers_start; + } + switch (*p) { + case ' ': { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags; + } + default: { + goto s_n_llhttp__internal__n_header_field_start; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_to_http_09: + s_n_llhttp__internal__n_url_to_http_09: { + if (p == endp) { + return s_n_llhttp__internal__n_url_to_http_09; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 12: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + default: { + goto s_n_llhttp__internal__n_invoke_update_http_major; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_skip_to_http09: + s_n_llhttp__internal__n_url_skip_to_http09: { + if (p == endp) { + return s_n_llhttp__internal__n_url_skip_to_http09; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 12: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + default: { + p++; + goto s_n_llhttp__internal__n_url_to_http_09; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_skip_lf_to_http09_1: + s_n_llhttp__internal__n_url_skip_lf_to_http09_1: { + if (p == endp) { + return s_n_llhttp__internal__n_url_skip_lf_to_http09_1; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_url_to_http_09; + } + default: { + goto s_n_llhttp__internal__n_error_61; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_skip_lf_to_http09: + s_n_llhttp__internal__n_url_skip_lf_to_http09: { + if (p == endp) { + return s_n_llhttp__internal__n_url_skip_lf_to_http09; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 12: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_url_skip_lf_to_http09_1; + } + default: { + goto s_n_llhttp__internal__n_error_61; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_pri_upgrade: + s_n_llhttp__internal__n_req_pri_upgrade: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_req_pri_upgrade; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob14, 10); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_error_69; + } + case kMatchPause: { + return s_n_llhttp__internal__n_req_pri_upgrade; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_70; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_http_complete_crlf: + s_n_llhttp__internal__n_req_http_complete_crlf: { + if (p == endp) { + return s_n_llhttp__internal__n_req_http_complete_crlf; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_headers_start; + } + default: { + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_25; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_http_complete: + s_n_llhttp__internal__n_req_http_complete: { + if (p == endp) { + return s_n_llhttp__internal__n_req_http_complete; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_24; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_req_http_complete_crlf; + } + default: { + goto s_n_llhttp__internal__n_error_68; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_load_method_1: + s_n_llhttp__internal__n_invoke_load_method_1: { + switch (llhttp__internal__c_load_method(state, p, endp)) { + case 34: + goto s_n_llhttp__internal__n_req_pri_upgrade; + default: + goto s_n_llhttp__internal__n_req_http_complete; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_version_complete: + s_n_llhttp__internal__n_invoke_llhttp__on_version_complete: { + switch (llhttp__on_version_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_load_method_1; + case 21: + goto s_n_llhttp__internal__n_pause_21; + default: + goto s_n_llhttp__internal__n_error_65; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_64: + s_n_llhttp__internal__n_error_64: { + state->error = 0x9; + state->reason = "Invalid HTTP version"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_71: + s_n_llhttp__internal__n_error_71: { + state->error = 0x9; + state->reason = "Invalid minor version"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_http_minor: + s_n_llhttp__internal__n_req_http_minor: { + if (p == endp) { + return s_n_llhttp__internal__n_req_http_minor; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + default: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_2; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_72: + s_n_llhttp__internal__n_error_72: { + state->error = 0x9; + state->reason = "Expected dot"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_http_dot: + s_n_llhttp__internal__n_req_http_dot: { + if (p == endp) { + return s_n_llhttp__internal__n_req_http_dot; + } + switch (*p) { + case '.': { + p++; + goto s_n_llhttp__internal__n_req_http_minor; + } + default: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_3; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_73: + s_n_llhttp__internal__n_error_73: { + state->error = 0x9; + state->reason = "Invalid major version"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_http_major: + s_n_llhttp__internal__n_req_http_major: { + if (p == endp) { + return s_n_llhttp__internal__n_req_http_major; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + default: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_4; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_version: + s_n_llhttp__internal__n_span_start_llhttp__on_version: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_version; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_version; + goto s_n_llhttp__internal__n_req_http_major; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_http_start_1: + s_n_llhttp__internal__n_req_http_start_1: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_req_http_start_1; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob13, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_invoke_load_method; + } + case kMatchPause: { + return s_n_llhttp__internal__n_req_http_start_1; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_76; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_http_start_2: + s_n_llhttp__internal__n_req_http_start_2: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_req_http_start_2; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_invoke_load_method_2; + } + case kMatchPause: { + return s_n_llhttp__internal__n_req_http_start_2; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_76; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_http_start_3: + s_n_llhttp__internal__n_req_http_start_3: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_req_http_start_3; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_invoke_load_method_3; + } + case kMatchPause: { + return s_n_llhttp__internal__n_req_http_start_3; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_76; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_http_start: + s_n_llhttp__internal__n_req_http_start: { + if (p == endp) { + return s_n_llhttp__internal__n_req_http_start; + } + switch (*p) { + case ' ': { + p++; + goto s_n_llhttp__internal__n_req_http_start; + } + case 'H': { + p++; + goto s_n_llhttp__internal__n_req_http_start_1; + } + case 'I': { + p++; + goto s_n_llhttp__internal__n_req_http_start_2; + } + case 'R': { + p++; + goto s_n_llhttp__internal__n_req_http_start_3; + } + default: { + goto s_n_llhttp__internal__n_error_76; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_to_http: + s_n_llhttp__internal__n_url_to_http: { + if (p == endp) { + return s_n_llhttp__internal__n_url_to_http; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 12: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + default: { + goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_skip_to_http: + s_n_llhttp__internal__n_url_skip_to_http: { + if (p == endp) { + return s_n_llhttp__internal__n_url_skip_to_http; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 12: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + default: { + p++; + goto s_n_llhttp__internal__n_url_to_http; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_fragment: + s_n_llhttp__internal__n_url_fragment: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + if (p == endp) { + return s_n_llhttp__internal__n_url_fragment; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 2: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_6; + } + case 3: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_7; + } + case 4: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8; + } + case 5: { + p++; + goto s_n_llhttp__internal__n_url_fragment; + } + default: { + goto s_n_llhttp__internal__n_error_77; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_end_stub_query_3: + s_n_llhttp__internal__n_span_end_stub_query_3: { + if (p == endp) { + return s_n_llhttp__internal__n_span_end_stub_query_3; + } + p++; + goto s_n_llhttp__internal__n_url_fragment; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_query: + s_n_llhttp__internal__n_url_query: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 5, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + if (p == endp) { + return s_n_llhttp__internal__n_url_query; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 2: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_9; + } + case 3: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_10; + } + case 4: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_11; + } + case 5: { + p++; + goto s_n_llhttp__internal__n_url_query; + } + case 6: { + goto s_n_llhttp__internal__n_span_end_stub_query_3; + } + default: { + goto s_n_llhttp__internal__n_error_78; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_query_or_fragment: + s_n_llhttp__internal__n_url_query_or_fragment: { + if (p == endp) { + return s_n_llhttp__internal__n_url_query_or_fragment; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 10: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_3; + } + case 12: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 13: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_4; + } + case ' ': { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_5; + } + case '#': { + p++; + goto s_n_llhttp__internal__n_url_fragment; + } + case '?': { + p++; + goto s_n_llhttp__internal__n_url_query; + } + default: { + goto s_n_llhttp__internal__n_error_79; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_path: + s_n_llhttp__internal__n_url_path: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + if (p == endp) { + return s_n_llhttp__internal__n_url_path; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 2: { + p++; + goto s_n_llhttp__internal__n_url_path; + } + default: { + goto s_n_llhttp__internal__n_url_query_or_fragment; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_stub_path_2: + s_n_llhttp__internal__n_span_start_stub_path_2: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_stub_path_2; + } + p++; + goto s_n_llhttp__internal__n_url_path; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_stub_path: + s_n_llhttp__internal__n_span_start_stub_path: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_stub_path; + } + p++; + goto s_n_llhttp__internal__n_url_path; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_stub_path_1: + s_n_llhttp__internal__n_span_start_stub_path_1: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_stub_path_1; + } + p++; + goto s_n_llhttp__internal__n_url_path; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_server_with_at: + s_n_llhttp__internal__n_url_server_with_at: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 7, + 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5, + 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + if (p == endp) { + return s_n_llhttp__internal__n_url_server_with_at; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 2: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_12; + } + case 3: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_13; + } + case 4: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_14; + } + case 5: { + p++; + goto s_n_llhttp__internal__n_url_server; + } + case 6: { + goto s_n_llhttp__internal__n_span_start_stub_path_1; + } + case 7: { + p++; + goto s_n_llhttp__internal__n_url_query; + } + case 8: { + p++; + goto s_n_llhttp__internal__n_error_80; + } + default: { + goto s_n_llhttp__internal__n_error_81; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_server: + s_n_llhttp__internal__n_url_server: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 7, + 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5, + 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + if (p == endp) { + return s_n_llhttp__internal__n_url_server; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 2: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url; + } + case 3: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_1; + } + case 4: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_2; + } + case 5: { + p++; + goto s_n_llhttp__internal__n_url_server; + } + case 6: { + goto s_n_llhttp__internal__n_span_start_stub_path; + } + case 7: { + p++; + goto s_n_llhttp__internal__n_url_query; + } + case 8: { + p++; + goto s_n_llhttp__internal__n_url_server_with_at; + } + default: { + goto s_n_llhttp__internal__n_error_82; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_schema_delim_1: + s_n_llhttp__internal__n_url_schema_delim_1: { + if (p == endp) { + return s_n_llhttp__internal__n_url_schema_delim_1; + } + switch (*p) { + case '/': { + p++; + goto s_n_llhttp__internal__n_url_server; + } + default: { + goto s_n_llhttp__internal__n_error_83; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_schema_delim: + s_n_llhttp__internal__n_url_schema_delim: { + if (p == endp) { + return s_n_llhttp__internal__n_url_schema_delim; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 10: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 12: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case '/': { + p++; + goto s_n_llhttp__internal__n_url_schema_delim_1; + } + default: { + goto s_n_llhttp__internal__n_error_83; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_end_stub_schema: + s_n_llhttp__internal__n_span_end_stub_schema: { + if (p == endp) { + return s_n_llhttp__internal__n_span_end_stub_schema; + } + p++; + goto s_n_llhttp__internal__n_url_schema_delim; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_schema: + s_n_llhttp__internal__n_url_schema: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, + 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + if (p == endp) { + return s_n_llhttp__internal__n_url_schema; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 2: { + goto s_n_llhttp__internal__n_span_end_stub_schema; + } + case 3: { + p++; + goto s_n_llhttp__internal__n_url_schema; + } + default: { + goto s_n_llhttp__internal__n_error_84; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_start: + s_n_llhttp__internal__n_url_start: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, + 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + if (p == endp) { + return s_n_llhttp__internal__n_url_start; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 2: { + goto s_n_llhttp__internal__n_span_start_stub_path_2; + } + case 3: { + goto s_n_llhttp__internal__n_url_schema; + } + default: { + goto s_n_llhttp__internal__n_error_85; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_url_1: + s_n_llhttp__internal__n_span_start_llhttp__on_url_1: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_url_1; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_url; + goto s_n_llhttp__internal__n_url_start; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_entry_normal: + s_n_llhttp__internal__n_url_entry_normal: { + if (p == endp) { + return s_n_llhttp__internal__n_url_entry_normal; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 12: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + default: { + goto s_n_llhttp__internal__n_span_start_llhttp__on_url_1; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_url: + s_n_llhttp__internal__n_span_start_llhttp__on_url: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_url; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_url; + goto s_n_llhttp__internal__n_url_server; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_entry_connect: + s_n_llhttp__internal__n_url_entry_connect: { + if (p == endp) { + return s_n_llhttp__internal__n_url_entry_connect; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + case 12: { + p++; + goto s_n_llhttp__internal__n_error_2; + } + default: { + goto s_n_llhttp__internal__n_span_start_llhttp__on_url; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_spaces_before_url: + s_n_llhttp__internal__n_req_spaces_before_url: { + if (p == endp) { + return s_n_llhttp__internal__n_req_spaces_before_url; + } + switch (*p) { + case ' ': { + p++; + goto s_n_llhttp__internal__n_req_spaces_before_url; + } + default: { + goto s_n_llhttp__internal__n_invoke_is_equal_method; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_first_space_before_url: + s_n_llhttp__internal__n_req_first_space_before_url: { + if (p == endp) { + return s_n_llhttp__internal__n_req_first_space_before_url; + } + switch (*p) { + case ' ': { + p++; + goto s_n_llhttp__internal__n_req_spaces_before_url; + } + default: { + goto s_n_llhttp__internal__n_error_86; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1: + s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1: { + switch (llhttp__on_method_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_req_first_space_before_url; + case 21: + goto s_n_llhttp__internal__n_pause_26; + default: + goto s_n_llhttp__internal__n_error_105; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_2: + s_n_llhttp__internal__n_after_start_req_2: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_2; + } + switch (*p) { + case 'L': { + p++; + match = 19; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_3: + s_n_llhttp__internal__n_after_start_req_3: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_3; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 36; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_3; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_1: + s_n_llhttp__internal__n_after_start_req_1: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_1; + } + switch (*p) { + case 'C': { + p++; + goto s_n_llhttp__internal__n_after_start_req_2; + } + case 'N': { + p++; + goto s_n_llhttp__internal__n_after_start_req_3; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_4: + s_n_llhttp__internal__n_after_start_req_4: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_4; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 16; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_4; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_6: + s_n_llhttp__internal__n_after_start_req_6: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_6; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 22; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_6; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_8: + s_n_llhttp__internal__n_after_start_req_8: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_8; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_8; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_9: + s_n_llhttp__internal__n_after_start_req_9: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_9; + } + switch (*p) { + case 'Y': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_7: + s_n_llhttp__internal__n_after_start_req_7: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_7; + } + switch (*p) { + case 'N': { + p++; + goto s_n_llhttp__internal__n_after_start_req_8; + } + case 'P': { + p++; + goto s_n_llhttp__internal__n_after_start_req_9; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_5: + s_n_llhttp__internal__n_after_start_req_5: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_5; + } + switch (*p) { + case 'H': { + p++; + goto s_n_llhttp__internal__n_after_start_req_6; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_after_start_req_7; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_12: + s_n_llhttp__internal__n_after_start_req_12: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_12; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_12; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_13: + s_n_llhttp__internal__n_after_start_req_13: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_13; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 5); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 35; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_13; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_11: + s_n_llhttp__internal__n_after_start_req_11: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_11; + } + switch (*p) { + case 'L': { + p++; + goto s_n_llhttp__internal__n_after_start_req_12; + } + case 'S': { + p++; + goto s_n_llhttp__internal__n_after_start_req_13; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_10: + s_n_llhttp__internal__n_after_start_req_10: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_10; + } + switch (*p) { + case 'E': { + p++; + goto s_n_llhttp__internal__n_after_start_req_11; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_14: + s_n_llhttp__internal__n_after_start_req_14: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_14; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 45; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_14; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_17: + s_n_llhttp__internal__n_after_start_req_17: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_17; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 9); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 41; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_17; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_16: + s_n_llhttp__internal__n_after_start_req_16: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_16; + } + switch (*p) { + case '_': { + p++; + goto s_n_llhttp__internal__n_after_start_req_17; + } + default: { + match = 1; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_15: + s_n_llhttp__internal__n_after_start_req_15: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_15; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_after_start_req_16; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_15; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_18: + s_n_llhttp__internal__n_after_start_req_18: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_18; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_18; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_20: + s_n_llhttp__internal__n_after_start_req_20: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_20; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 31; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_20; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_21: + s_n_llhttp__internal__n_after_start_req_21: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_21; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_21; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_19: + s_n_llhttp__internal__n_after_start_req_19: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_19; + } + switch (*p) { + case 'I': { + p++; + goto s_n_llhttp__internal__n_after_start_req_20; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_after_start_req_21; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_23: + s_n_llhttp__internal__n_after_start_req_23: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_23; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 24; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_23; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_24: + s_n_llhttp__internal__n_after_start_req_24: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_24; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 23; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_24; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_26: + s_n_llhttp__internal__n_after_start_req_26: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_26; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 7); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 21; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_26; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_28: + s_n_llhttp__internal__n_after_start_req_28: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_28; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 30; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_28; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_29: + s_n_llhttp__internal__n_after_start_req_29: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_29; + } + switch (*p) { + case 'L': { + p++; + match = 10; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_27: + s_n_llhttp__internal__n_after_start_req_27: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_27; + } + switch (*p) { + case 'A': { + p++; + goto s_n_llhttp__internal__n_after_start_req_28; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_after_start_req_29; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_25: + s_n_llhttp__internal__n_after_start_req_25: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_25; + } + switch (*p) { + case 'A': { + p++; + goto s_n_llhttp__internal__n_after_start_req_26; + } + case 'C': { + p++; + goto s_n_llhttp__internal__n_after_start_req_27; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_30: + s_n_llhttp__internal__n_after_start_req_30: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_30; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 11; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_30; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_22: + s_n_llhttp__internal__n_after_start_req_22: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_22; + } + switch (*p) { + case '-': { + p++; + goto s_n_llhttp__internal__n_after_start_req_23; + } + case 'E': { + p++; + goto s_n_llhttp__internal__n_after_start_req_24; + } + case 'K': { + p++; + goto s_n_llhttp__internal__n_after_start_req_25; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_after_start_req_30; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_31: + s_n_llhttp__internal__n_after_start_req_31: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_31; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 5); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 25; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_31; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_32: + s_n_llhttp__internal__n_after_start_req_32: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_32; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_32; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_35: + s_n_llhttp__internal__n_after_start_req_35: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_35; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 28; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_35; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_36: + s_n_llhttp__internal__n_after_start_req_36: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_36; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 39; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_36; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_34: + s_n_llhttp__internal__n_after_start_req_34: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_34; + } + switch (*p) { + case 'T': { + p++; + goto s_n_llhttp__internal__n_after_start_req_35; + } + case 'U': { + p++; + goto s_n_llhttp__internal__n_after_start_req_36; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_37: + s_n_llhttp__internal__n_after_start_req_37: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_37; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 38; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_37; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_38: + s_n_llhttp__internal__n_after_start_req_38: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_38; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_38; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_42: + s_n_llhttp__internal__n_after_start_req_42: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_42; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 12; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_42; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_43: + s_n_llhttp__internal__n_after_start_req_43: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_43; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 13; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_43; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_41: + s_n_llhttp__internal__n_after_start_req_41: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_41; + } + switch (*p) { + case 'F': { + p++; + goto s_n_llhttp__internal__n_after_start_req_42; + } + case 'P': { + p++; + goto s_n_llhttp__internal__n_after_start_req_43; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_40: + s_n_llhttp__internal__n_after_start_req_40: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_40; + } + switch (*p) { + case 'P': { + p++; + goto s_n_llhttp__internal__n_after_start_req_41; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_39: + s_n_llhttp__internal__n_after_start_req_39: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_39; + } + switch (*p) { + case 'I': { + p++; + match = 34; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_after_start_req_40; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_45: + s_n_llhttp__internal__n_after_start_req_45: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_45; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 29; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_45; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_44: + s_n_llhttp__internal__n_after_start_req_44: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_44; + } + switch (*p) { + case 'R': { + p++; + goto s_n_llhttp__internal__n_after_start_req_45; + } + case 'T': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_33: + s_n_llhttp__internal__n_after_start_req_33: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_33; + } + switch (*p) { + case 'A': { + p++; + goto s_n_llhttp__internal__n_after_start_req_34; + } + case 'L': { + p++; + goto s_n_llhttp__internal__n_after_start_req_37; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_after_start_req_38; + } + case 'R': { + p++; + goto s_n_llhttp__internal__n_after_start_req_39; + } + case 'U': { + p++; + goto s_n_llhttp__internal__n_after_start_req_44; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_48: + s_n_llhttp__internal__n_after_start_req_48: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_48; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 17; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_48; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_49: + s_n_llhttp__internal__n_after_start_req_49: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_49; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 44; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_49; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_50: + s_n_llhttp__internal__n_after_start_req_50: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_50; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 5); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 43; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_50; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_51: + s_n_llhttp__internal__n_after_start_req_51: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_51; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 20; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_51; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_47: + s_n_llhttp__internal__n_after_start_req_47: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_47; + } + switch (*p) { + case 'B': { + p++; + goto s_n_llhttp__internal__n_after_start_req_48; + } + case 'C': { + p++; + goto s_n_llhttp__internal__n_after_start_req_49; + } + case 'D': { + p++; + goto s_n_llhttp__internal__n_after_start_req_50; + } + case 'P': { + p++; + goto s_n_llhttp__internal__n_after_start_req_51; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_46: + s_n_llhttp__internal__n_after_start_req_46: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_46; + } + switch (*p) { + case 'E': { + p++; + goto s_n_llhttp__internal__n_after_start_req_47; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_54: + s_n_llhttp__internal__n_after_start_req_54: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_54; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 14; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_54; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_56: + s_n_llhttp__internal__n_after_start_req_56: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_56; + } + switch (*p) { + case 'P': { + p++; + match = 37; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_57: + s_n_llhttp__internal__n_after_start_req_57: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_57; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 9); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 42; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_57; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_55: + s_n_llhttp__internal__n_after_start_req_55: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_55; + } + switch (*p) { + case 'U': { + p++; + goto s_n_llhttp__internal__n_after_start_req_56; + } + case '_': { + p++; + goto s_n_llhttp__internal__n_after_start_req_57; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_53: + s_n_llhttp__internal__n_after_start_req_53: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_53; + } + switch (*p) { + case 'A': { + p++; + goto s_n_llhttp__internal__n_after_start_req_54; + } + case 'T': { + p++; + goto s_n_llhttp__internal__n_after_start_req_55; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_58: + s_n_llhttp__internal__n_after_start_req_58: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_58; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 33; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_58; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_59: + s_n_llhttp__internal__n_after_start_req_59: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_59; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob50, 7); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 26; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_59; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_52: + s_n_llhttp__internal__n_after_start_req_52: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_52; + } + switch (*p) { + case 'E': { + p++; + goto s_n_llhttp__internal__n_after_start_req_53; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_after_start_req_58; + } + case 'U': { + p++; + goto s_n_llhttp__internal__n_after_start_req_59; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_61: + s_n_llhttp__internal__n_after_start_req_61: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_61; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob51, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 40; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_61; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_62: + s_n_llhttp__internal__n_after_start_req_62: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_62; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob52, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_62; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_60: + s_n_llhttp__internal__n_after_start_req_60: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_60; + } + switch (*p) { + case 'E': { + p++; + goto s_n_llhttp__internal__n_after_start_req_61; + } + case 'R': { + p++; + goto s_n_llhttp__internal__n_after_start_req_62; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_65: + s_n_llhttp__internal__n_after_start_req_65: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_65; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob53, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 18; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_65; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_67: + s_n_llhttp__internal__n_after_start_req_67: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_67; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob54, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 32; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_67; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_68: + s_n_llhttp__internal__n_after_start_req_68: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_68; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob55, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 15; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_68; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_66: + s_n_llhttp__internal__n_after_start_req_66: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_66; + } + switch (*p) { + case 'I': { + p++; + goto s_n_llhttp__internal__n_after_start_req_67; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_after_start_req_68; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_69: + s_n_llhttp__internal__n_after_start_req_69: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_69; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob56, 8); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 27; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_after_start_req_69; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_64: + s_n_llhttp__internal__n_after_start_req_64: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_64; + } + switch (*p) { + case 'B': { + p++; + goto s_n_llhttp__internal__n_after_start_req_65; + } + case 'L': { + p++; + goto s_n_llhttp__internal__n_after_start_req_66; + } + case 'S': { + p++; + goto s_n_llhttp__internal__n_after_start_req_69; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req_63: + s_n_llhttp__internal__n_after_start_req_63: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req_63; + } + switch (*p) { + case 'N': { + p++; + goto s_n_llhttp__internal__n_after_start_req_64; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_after_start_req: + s_n_llhttp__internal__n_after_start_req: { + if (p == endp) { + return s_n_llhttp__internal__n_after_start_req; + } + switch (*p) { + case 'A': { + p++; + goto s_n_llhttp__internal__n_after_start_req_1; + } + case 'B': { + p++; + goto s_n_llhttp__internal__n_after_start_req_4; + } + case 'C': { + p++; + goto s_n_llhttp__internal__n_after_start_req_5; + } + case 'D': { + p++; + goto s_n_llhttp__internal__n_after_start_req_10; + } + case 'F': { + p++; + goto s_n_llhttp__internal__n_after_start_req_14; + } + case 'G': { + p++; + goto s_n_llhttp__internal__n_after_start_req_15; + } + case 'H': { + p++; + goto s_n_llhttp__internal__n_after_start_req_18; + } + case 'L': { + p++; + goto s_n_llhttp__internal__n_after_start_req_19; + } + case 'M': { + p++; + goto s_n_llhttp__internal__n_after_start_req_22; + } + case 'N': { + p++; + goto s_n_llhttp__internal__n_after_start_req_31; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_after_start_req_32; + } + case 'P': { + p++; + goto s_n_llhttp__internal__n_after_start_req_33; + } + case 'R': { + p++; + goto s_n_llhttp__internal__n_after_start_req_46; + } + case 'S': { + p++; + goto s_n_llhttp__internal__n_after_start_req_52; + } + case 'T': { + p++; + goto s_n_llhttp__internal__n_after_start_req_60; + } + case 'U': { + p++; + goto s_n_llhttp__internal__n_after_start_req_63; + } + default: { + goto s_n_llhttp__internal__n_error_106; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_method_1: + s_n_llhttp__internal__n_span_start_llhttp__on_method_1: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_method_1; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_method; + goto s_n_llhttp__internal__n_after_start_req; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_line_almost_done: + s_n_llhttp__internal__n_res_line_almost_done: { + if (p == endp) { + return s_n_llhttp__internal__n_res_line_almost_done; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; + } + default: { + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_28; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_test_lenient_flags_29: + s_n_llhttp__internal__n_invoke_test_lenient_flags_29: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; + default: + goto s_n_llhttp__internal__n_error_92; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_status: + s_n_llhttp__internal__n_res_status: { + if (p == endp) { + return s_n_llhttp__internal__n_res_status; + } + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_status; + } + case 13: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_status_1; + } + default: { + p++; + goto s_n_llhttp__internal__n_res_status; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_status: + s_n_llhttp__internal__n_span_start_llhttp__on_status: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_status; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_status; + goto s_n_llhttp__internal__n_res_status; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_status_code_otherwise: + s_n_llhttp__internal__n_res_status_code_otherwise: { + if (p == endp) { + return s_n_llhttp__internal__n_res_status_code_otherwise; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_27; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_res_line_almost_done; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_span_start_llhttp__on_status; + } + default: { + goto s_n_llhttp__internal__n_error_93; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_status_code_digit_3: + s_n_llhttp__internal__n_res_status_code_digit_3: { + if (p == endp) { + return s_n_llhttp__internal__n_res_status_code_digit_3; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2; + } + default: { + goto s_n_llhttp__internal__n_error_95; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_status_code_digit_2: + s_n_llhttp__internal__n_res_status_code_digit_2: { + if (p == endp) { + return s_n_llhttp__internal__n_res_status_code_digit_2; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1; + } + default: { + goto s_n_llhttp__internal__n_error_97; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_status_code_digit_1: + s_n_llhttp__internal__n_res_status_code_digit_1: { + if (p == endp) { + return s_n_llhttp__internal__n_res_status_code_digit_1; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + default: { + goto s_n_llhttp__internal__n_error_99; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_after_version: + s_n_llhttp__internal__n_res_after_version: { + if (p == endp) { + return s_n_llhttp__internal__n_res_after_version; + } + switch (*p) { + case ' ': { + p++; + goto s_n_llhttp__internal__n_invoke_update_status_code; + } + default: { + goto s_n_llhttp__internal__n_error_100; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1: + s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1: { + switch (llhttp__on_version_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_res_after_version; + case 21: + goto s_n_llhttp__internal__n_pause_25; + default: + goto s_n_llhttp__internal__n_error_88; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_87: + s_n_llhttp__internal__n_error_87: { + state->error = 0x9; + state->reason = "Invalid HTTP version"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_101: + s_n_llhttp__internal__n_error_101: { + state->error = 0x9; + state->reason = "Invalid minor version"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_http_minor: + s_n_llhttp__internal__n_res_http_minor: { + if (p == endp) { + return s_n_llhttp__internal__n_res_http_minor; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + default: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_7; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_102: + s_n_llhttp__internal__n_error_102: { + state->error = 0x9; + state->reason = "Expected dot"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_http_dot: + s_n_llhttp__internal__n_res_http_dot: { + if (p == endp) { + return s_n_llhttp__internal__n_res_http_dot; + } + switch (*p) { + case '.': { + p++; + goto s_n_llhttp__internal__n_res_http_minor; + } + default: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_8; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_error_103: + s_n_llhttp__internal__n_error_103: { + state->error = 0x9; + state->reason = "Invalid major version"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_http_major: + s_n_llhttp__internal__n_res_http_major: { + if (p == endp) { + return s_n_llhttp__internal__n_res_http_major; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + default: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_9; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_version_1: + s_n_llhttp__internal__n_span_start_llhttp__on_version_1: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_version_1; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_version; + goto s_n_llhttp__internal__n_res_http_major; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_res: + s_n_llhttp__internal__n_start_res: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_start_res; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob57, 5); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_span_start_llhttp__on_version_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_start_res; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_107; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_llhttp__on_method_complete: + s_n_llhttp__internal__n_invoke_llhttp__on_method_complete: { + switch (llhttp__on_method_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_req_first_space_before_url; + case 21: + goto s_n_llhttp__internal__n_pause_23; + default: + goto s_n_llhttp__internal__n_error_1; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_or_res_method_2: + s_n_llhttp__internal__n_req_or_res_method_2: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_req_or_res_method_2; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob58, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_method; + } + case kMatchPause: { + return s_n_llhttp__internal__n_req_or_res_method_2; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_104; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_update_type_1: + s_n_llhttp__internal__n_invoke_update_type_1: { + switch (llhttp__internal__c_update_type_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version_1; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_or_res_method_3: + s_n_llhttp__internal__n_req_or_res_method_3: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_req_or_res_method_3; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob59, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_span_end_llhttp__on_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_req_or_res_method_3; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_104; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_or_res_method_1: + s_n_llhttp__internal__n_req_or_res_method_1: { + if (p == endp) { + return s_n_llhttp__internal__n_req_or_res_method_1; + } + switch (*p) { + case 'E': { + p++; + goto s_n_llhttp__internal__n_req_or_res_method_2; + } + case 'T': { + p++; + goto s_n_llhttp__internal__n_req_or_res_method_3; + } + default: { + goto s_n_llhttp__internal__n_error_104; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_or_res_method: + s_n_llhttp__internal__n_req_or_res_method: { + if (p == endp) { + return s_n_llhttp__internal__n_req_or_res_method; + } + switch (*p) { + case 'H': { + p++; + goto s_n_llhttp__internal__n_req_or_res_method_1; + } + default: { + goto s_n_llhttp__internal__n_error_104; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_method: + s_n_llhttp__internal__n_span_start_llhttp__on_method: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_method; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_method; + goto s_n_llhttp__internal__n_req_or_res_method; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_or_res: + s_n_llhttp__internal__n_start_req_or_res: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_or_res; + } + switch (*p) { + case 'H': { + goto s_n_llhttp__internal__n_span_start_llhttp__on_method; + } + default: { + goto s_n_llhttp__internal__n_invoke_update_type_2; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_load_type: + s_n_llhttp__internal__n_invoke_load_type: { + switch (llhttp__internal__c_load_type(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_span_start_llhttp__on_method_1; + case 2: + goto s_n_llhttp__internal__n_start_res; + default: + goto s_n_llhttp__internal__n_start_req_or_res; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_invoke_update_finish: + s_n_llhttp__internal__n_invoke_update_finish: { + switch (llhttp__internal__c_update_finish(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_llhttp__on_message_begin; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start: + s_n_llhttp__internal__n_start: { + if (p == endp) { + return s_n_llhttp__internal__n_start; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_start; + } + case 13: { + p++; + goto s_n_llhttp__internal__n_start; + } + default: { + goto s_n_llhttp__internal__n_invoke_load_initial_message_completed; + } + } + /* UNREACHABLE */; + abort(); + } + default: + /* UNREACHABLE */ + abort(); + } + s_n_llhttp__internal__n_error_2: { + state->error = 0x7; + state->reason = "Invalid characters in url"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_finish_2: { + switch (llhttp__internal__c_update_finish_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_start; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_initial_message_completed: { + switch (llhttp__internal__c_update_initial_message_completed(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_finish_2; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_content_length: { + switch (llhttp__internal__c_update_content_length(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_initial_message_completed; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_8: { + state->error = 0x5; + state->reason = "Data after `Connection: close`"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_3: { + switch (llhttp__internal__c_test_lenient_flags_3(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_closed; + default: + goto s_n_llhttp__internal__n_error_8; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_2: { + switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_update_initial_message_completed; + default: + goto s_n_llhttp__internal__n_closed; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_finish_1: { + switch (llhttp__internal__c_update_finish_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_2; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_13: { + state->error = 0x15; + state->reason = "on_message_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_upgrade; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_38: { + state->error = 0x12; + state->reason = "`on_message_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_15: { + state->error = 0x15; + state->reason = "on_chunk_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_40: { + state->error = 0x14; + state->reason = "`on_chunk_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1: { + switch (llhttp__on_chunk_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2; + case 21: + goto s_n_llhttp__internal__n_pause_15; + default: + goto s_n_llhttp__internal__n_error_40; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_2: { + state->error = 0x15; + state->reason = "on_message_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_pause_1; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_9: { + state->error = 0x12; + state->reason = "`on_message_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1: { + switch (llhttp__on_message_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_pause_1; + case 21: + goto s_n_llhttp__internal__n_pause_2; + default: + goto s_n_llhttp__internal__n_error_9; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_36: { + state->error = 0xc; + state->reason = "Chunk size overflow"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_10: { + state->error = 0xc; + state->reason = "Invalid character in chunk size"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_4: { + switch (llhttp__internal__c_test_lenient_flags_4(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_chunk_size_otherwise; + default: + goto s_n_llhttp__internal__n_error_10; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_3: { + state->error = 0x15; + state->reason = "on_chunk_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_content_length_1; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_14: { + state->error = 0x14; + state->reason = "`on_chunk_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete: { + switch (llhttp__on_chunk_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_update_content_length_1; + case 21: + goto s_n_llhttp__internal__n_pause_3; + default: + goto s_n_llhttp__internal__n_error_14; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_13: { + state->error = 0x19; + state->reason = "Missing expected CR after chunk data"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_6: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete; + default: + goto s_n_llhttp__internal__n_error_13; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_15: { + state->error = 0x2; + state->reason = "Expected LF after chunk data"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_7: { + switch (llhttp__internal__c_test_lenient_flags_7(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete; + default: + goto s_n_llhttp__internal__n_error_15; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_body: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_body(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_data_almost_done; + return s_error; + } + goto s_n_llhttp__internal__n_chunk_data_almost_done; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags: { + switch (llhttp__internal__c_or_flags(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_field_start; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_4: { + state->error = 0x15; + state->reason = "on_chunk_header pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_content_length; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_12: { + state->error = 0x13; + state->reason = "`on_chunk_header` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header: { + switch (llhttp__on_chunk_header(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_is_equal_content_length; + case 21: + goto s_n_llhttp__internal__n_pause_4; + default: + goto s_n_llhttp__internal__n_error_12; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_16: { + state->error = 0x2; + state->reason = "Expected LF after chunk size"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_8: { + switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header; + default: + goto s_n_llhttp__internal__n_error_16; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_11: { + state->error = 0x19; + state->reason = "Missing expected CR after chunk size"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_5: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_chunk_size_almost_done; + default: + goto s_n_llhttp__internal__n_error_11; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_17: { + state->error = 0x2; + state->reason = "Invalid character in chunk extensions"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_18: { + state->error = 0x2; + state->reason = "Invalid character in chunk extensions"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_20: { + state->error = 0x19; + state->reason = "Missing expected CR after chunk extension name"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_5: { + state->error = 0x15; + state->reason = "on_chunk_extension_name pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_9; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_19: { + state->error = 0x22; + state->reason = "`on_chunk_extension_name` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_name(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete; + return s_error; + } + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_6: { + state->error = 0x15; + state->reason = "on_chunk_extension_name pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_size_almost_done; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_21: { + state->error = 0x22; + state->reason = "`on_chunk_extension_name` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_1: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_name(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_7: { + state->error = 0x15; + state->reason = "on_chunk_extension_name pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extensions; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_22: { + state->error = 0x22; + state->reason = "`on_chunk_extension_name` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_2: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_name(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_25: { + state->error = 0x19; + state->reason = "Missing expected CR after chunk extension value"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_8: { + state->error = 0x15; + state->reason = "on_chunk_extension_value pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_10; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_24: { + state->error = 0x23; + state->reason = "`on_chunk_extension_value` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete; + return s_error; + } + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_9: { + state->error = 0x15; + state->reason = "on_chunk_extension_value pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_size_almost_done; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_26: { + state->error = 0x23; + state->reason = "`on_chunk_extension_value` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_1: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_28: { + state->error = 0x19; + state->reason = "Missing expected CR after chunk extension value"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_11: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_chunk_size_almost_done; + default: + goto s_n_llhttp__internal__n_error_28; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_29: { + state->error = 0x2; + state->reason = "Invalid character in chunk extensions quote value"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_10: { + state->error = 0x15; + state->reason = "on_chunk_extension_value pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extension_quoted_value_done; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_27: { + state->error = 0x23; + state->reason = "`on_chunk_extension_value` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_2: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2; + return s_error; + } + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_3: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_30; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_error_30; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_4: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_31; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_error_31; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_11: { + state->error = 0x15; + state->reason = "on_chunk_extension_value pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extensions; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_32: { + state->error = 0x23; + state->reason = "`on_chunk_extension_value` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_5: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_6: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_33; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_error_33; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_12: { + state->error = 0x15; + state->reason = "on_chunk_extension_name pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extension_value; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_23: { + state->error = 0x22; + state->reason = "`on_chunk_extension_name` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_3: { + switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_chunk_extension_value; + case 21: + goto s_n_llhttp__internal__n_pause_12; + default: + goto s_n_llhttp__internal__n_error_23; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_3: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_name(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_4: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_chunk_extension_name(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_34; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_error_34; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_35: { + state->error = 0xc; + state->reason = "Invalid character in chunk size"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_mul_add_content_length: { + switch (llhttp__internal__c_mul_add_content_length(state, p, endp, match)) { + case 1: + goto s_n_llhttp__internal__n_error_36; + default: + goto s_n_llhttp__internal__n_chunk_size; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_37: { + state->error = 0xc; + state->reason = "Invalid character in chunk size"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_body_1: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_body(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2; + return s_error; + } + goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_finish_3: { + switch (llhttp__internal__c_update_finish_3(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_span_start_llhttp__on_body_2; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_39: { + state->error = 0xf; + state->reason = "Request has invalid `Transfer-Encoding`"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause: { + state->error = 0x15; + state->reason = "on_message_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_7: { + state->error = 0x12; + state->reason = "`on_message_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_message_complete: { + switch (llhttp__on_message_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete; + case 21: + goto s_n_llhttp__internal__n_pause; + default: + goto s_n_llhttp__internal__n_error_7; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_1: { + switch (llhttp__internal__c_or_flags_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_2: { + switch (llhttp__internal__c_or_flags_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_upgrade: { + switch (llhttp__internal__c_update_upgrade(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_or_flags_2; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_14: { + state->error = 0x15; + state->reason = "Paused by on_headers_complete"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_6: { + state->error = 0x11; + state->reason = "User callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete: { + switch (llhttp__on_headers_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete; + case 1: + goto s_n_llhttp__internal__n_invoke_or_flags_1; + case 2: + goto s_n_llhttp__internal__n_invoke_update_upgrade; + case 21: + goto s_n_llhttp__internal__n_pause_14; + default: + goto s_n_llhttp__internal__n_error_6; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete: { + switch (llhttp__before_headers_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_flags: { + switch (llhttp__internal__c_test_flags(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1; + default: + goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_1: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_test_flags; + default: + goto s_n_llhttp__internal__n_error_5; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_17: { + state->error = 0x15; + state->reason = "on_chunk_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_42: { + state->error = 0x14; + state->reason = "`on_chunk_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_2: { + switch (llhttp__on_chunk_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2; + case 21: + goto s_n_llhttp__internal__n_pause_17; + default: + goto s_n_llhttp__internal__n_error_42; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_3: { + switch (llhttp__internal__c_or_flags_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_4: { + switch (llhttp__internal__c_or_flags_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_upgrade_1: { + switch (llhttp__internal__c_update_upgrade(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_or_flags_4; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_16: { + state->error = 0x15; + state->reason = "Paused by on_headers_complete"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_41: { + state->error = 0x11; + state->reason = "User callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete_1: { + switch (llhttp__on_headers_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete; + case 1: + goto s_n_llhttp__internal__n_invoke_or_flags_3; + case 2: + goto s_n_llhttp__internal__n_invoke_update_upgrade_1; + case 21: + goto s_n_llhttp__internal__n_pause_16; + default: + goto s_n_llhttp__internal__n_error_41; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete_1: { + switch (llhttp__before_headers_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete_1; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_flags_1: { + switch (llhttp__internal__c_test_flags(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_2; + default: + goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete_1; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_43: { + state->error = 0x2; + state->reason = "Expected LF after headers"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_12: { + switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_test_flags_1; + default: + goto s_n_llhttp__internal__n_error_43; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_field: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_field(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_5; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_error_5; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_13: { + switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_header_field_colon_discard_ws; + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_58: { + state->error = 0xb; + state->reason = "Content-Length can't be present with Transfer-Encoding"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_46: { + state->error = 0xa; + state->reason = "Invalid header value char"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_15: { + switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_header_value_discard_ws; + default: + goto s_n_llhttp__internal__n_error_46; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_48: { + state->error = 0xb; + state->reason = "Empty Content-Length"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_18: { + state->error = 0x15; + state->reason = "on_header_value_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_field_start; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_47: { + state->error = 0x1d; + state->reason = "`on_header_value_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_value: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete; + return s_error; + } + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state: { + switch (llhttp__internal__c_update_header_state(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_5: { + switch (llhttp__internal__c_or_flags_5(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_header_state; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_6: { + switch (llhttp__internal__c_or_flags_6(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_header_state; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_7: { + switch (llhttp__internal__c_or_flags_7(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_header_state; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_8: { + switch (llhttp__internal__c_or_flags_8(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_header_state_2: { + switch (llhttp__internal__c_load_header_state(state, p, endp)) { + case 5: + goto s_n_llhttp__internal__n_invoke_or_flags_5; + case 6: + goto s_n_llhttp__internal__n_invoke_or_flags_6; + case 7: + goto s_n_llhttp__internal__n_invoke_or_flags_7; + case 8: + goto s_n_llhttp__internal__n_invoke_or_flags_8; + default: + goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_header_state_1: { + switch (llhttp__internal__c_load_header_state(state, p, endp)) { + case 2: + goto s_n_llhttp__internal__n_error_48; + default: + goto s_n_llhttp__internal__n_invoke_load_header_state_2; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_45: { + state->error = 0xa; + state->reason = "Invalid header value char"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_14: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_header_value_discard_lws; + default: + goto s_n_llhttp__internal__n_error_45; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_49: { + state->error = 0x2; + state->reason = "Expected LF after CR"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_16: { + switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_header_value_discard_lws; + default: + goto s_n_llhttp__internal__n_error_49; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state_1: { + switch (llhttp__internal__c_update_header_state_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_header_state_4: { + switch (llhttp__internal__c_load_header_state(state, p, endp)) { + case 8: + goto s_n_llhttp__internal__n_invoke_update_header_state_1; + default: + goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state_2: { + switch (llhttp__internal__c_update_header_state(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_9: { + switch (llhttp__internal__c_or_flags_5(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_header_state_2; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_10: { + switch (llhttp__internal__c_or_flags_6(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_header_state_2; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_11: { + switch (llhttp__internal__c_or_flags_7(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_header_state_2; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_12: { + switch (llhttp__internal__c_or_flags_8(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_header_state_5: { + switch (llhttp__internal__c_load_header_state(state, p, endp)) { + case 5: + goto s_n_llhttp__internal__n_invoke_or_flags_9; + case 6: + goto s_n_llhttp__internal__n_invoke_or_flags_10; + case 7: + goto s_n_llhttp__internal__n_invoke_or_flags_11; + case 8: + goto s_n_llhttp__internal__n_invoke_or_flags_12; + default: + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_51: { + state->error = 0x3; + state->reason = "Missing expected LF after header value"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_50: { + state->error = 0x19; + state->reason = "Missing expected CR after header value"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_17; + return s_error; + } + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_17; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_header_value_almost_done; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done; + return s_error; + } + goto s_n_llhttp__internal__n_header_value_almost_done; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_header_value_almost_done; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_52; + return s_error; + } + goto s_n_llhttp__internal__n_error_52; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_18: { + switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_header_value_lenient; + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state_4: { + switch (llhttp__internal__c_update_header_state(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value_connection; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_13: { + switch (llhttp__internal__c_or_flags_5(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_header_state_4; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_14: { + switch (llhttp__internal__c_or_flags_6(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_header_state_4; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_15: { + switch (llhttp__internal__c_or_flags_7(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_header_state_4; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_16: { + switch (llhttp__internal__c_or_flags_8(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value_connection; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_header_state_6: { + switch (llhttp__internal__c_load_header_state(state, p, endp)) { + case 5: + goto s_n_llhttp__internal__n_invoke_or_flags_13; + case 6: + goto s_n_llhttp__internal__n_invoke_or_flags_14; + case 7: + goto s_n_llhttp__internal__n_invoke_or_flags_15; + case 8: + goto s_n_llhttp__internal__n_invoke_or_flags_16; + default: + goto s_n_llhttp__internal__n_header_value_connection; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state_5: { + switch (llhttp__internal__c_update_header_state_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value_connection_token; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state_3: { + switch (llhttp__internal__c_update_header_state_3(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value_connection_ws; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state_6: { + switch (llhttp__internal__c_update_header_state_6(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value_connection_ws; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state_7: { + switch (llhttp__internal__c_update_header_state_7(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value_connection_ws; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_value_6: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_54; + return s_error; + } + goto s_n_llhttp__internal__n_error_54; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_mul_add_content_length_1: { + switch (llhttp__internal__c_mul_add_content_length_1(state, p, endp, match)) { + case 1: + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_6; + default: + goto s_n_llhttp__internal__n_header_value_content_length; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_17: { + switch (llhttp__internal__c_or_flags_17(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value_otherwise; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_55; + return s_error; + } + goto s_n_llhttp__internal__n_error_55; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_53: { + state->error = 0x4; + state->reason = "Duplicate Content-Length"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_flags_2: { + switch (llhttp__internal__c_test_flags_2(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_header_value_content_length; + default: + goto s_n_llhttp__internal__n_error_53; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_value_9: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_57; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_error_57; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state_8: { + switch (llhttp__internal__c_update_header_state_8(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value_otherwise; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_value(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_56; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_error_56; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_19: { + switch (llhttp__internal__c_test_lenient_flags_19(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8; + default: + goto s_n_llhttp__internal__n_header_value_te_chunked; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_type_1: { + switch (llhttp__internal__c_load_type(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_19; + default: + goto s_n_llhttp__internal__n_header_value_te_chunked; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state_9: { + switch (llhttp__internal__c_update_header_state_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_and_flags: { + switch (llhttp__internal__c_and_flags(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value_te_chunked; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_19: { + switch (llhttp__internal__c_or_flags_18(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_and_flags; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_20: { + switch (llhttp__internal__c_test_lenient_flags_19(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_9; + default: + goto s_n_llhttp__internal__n_invoke_or_flags_19; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_type_2: { + switch (llhttp__internal__c_load_type(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_20; + default: + goto s_n_llhttp__internal__n_invoke_or_flags_19; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_18: { + switch (llhttp__internal__c_or_flags_18(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_and_flags; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_flags_3: { + switch (llhttp__internal__c_test_flags_3(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_load_type_2; + default: + goto s_n_llhttp__internal__n_invoke_or_flags_18; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_or_flags_20: { + switch (llhttp__internal__c_or_flags_20(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_header_state_9; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_header_state_3: { + switch (llhttp__internal__c_load_header_state(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_header_value_connection; + case 2: + goto s_n_llhttp__internal__n_invoke_test_flags_2; + case 3: + goto s_n_llhttp__internal__n_invoke_test_flags_3; + case 4: + goto s_n_llhttp__internal__n_invoke_or_flags_20; + default: + goto s_n_llhttp__internal__n_header_value; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_21: { + switch (llhttp__internal__c_test_lenient_flags_21(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_error_58; + default: + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_flags_4: { + switch (llhttp__internal__c_test_flags_4(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_21; + default: + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_59: { + state->error = 0xf; + state->reason = "Transfer-Encoding can't be present with Content-Length"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_22: { + switch (llhttp__internal__c_test_lenient_flags_21(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_error_59; + default: + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_flags_5: { + switch (llhttp__internal__c_test_flags_2(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_22; + default: + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_19: { + state->error = 0x15; + state->reason = "on_header_field_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_header_state; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_44: { + state->error = 0x1c; + state->reason = "`on_header_field_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_field(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_header_field(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_60: { + state->error = 0xa; + state->reason = "Invalid header token"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state_10: { + switch (llhttp__internal__c_update_header_state_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_field_general; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_store_header_state: { + switch (llhttp__internal__c_store_header_state(state, p, endp, match)) { + default: + goto s_n_llhttp__internal__n_header_field_colon; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_header_state_11: { + switch (llhttp__internal__c_update_header_state_1(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_field_general; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_4: { + state->error = 0x1e; + state->reason = "Unexpected space after start line"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags: { + switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_header_field_start; + default: + goto s_n_llhttp__internal__n_error_4; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_20: { + state->error = 0x15; + state->reason = "on_url_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_headers_start; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_3: { + state->error = 0x1a; + state->reason = "`on_url_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_url_complete: { + switch (llhttp__on_url_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_headers_start; + case 21: + goto s_n_llhttp__internal__n_pause_20; + default: + goto s_n_llhttp__internal__n_error_3; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_http_minor: { + switch (llhttp__internal__c_update_http_minor(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_http_major: { + switch (llhttp__internal__c_update_http_major(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_invoke_update_http_minor; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_3: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_to_http09; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_61: { + state->error = 0x7; + state->reason = "Expected CRLF"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_4: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_lf_to_http09; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_69: { + state->error = 0x17; + state->reason = "Pause on PRI/Upgrade"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_70: { + state->error = 0x9; + state->reason = "Expected HTTP/2 Connection Preface"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_67: { + state->error = 0x2; + state->reason = "Expected CRLF after version"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_25: { + switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_headers_start; + default: + goto s_n_llhttp__internal__n_error_67; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_66: { + state->error = 0x9; + state->reason = "Expected CRLF after version"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_24: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_req_http_complete_crlf; + default: + goto s_n_llhttp__internal__n_error_66; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_68: { + state->error = 0x9; + state->reason = "Expected CRLF after version"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_21: { + state->error = 0x15; + state->reason = "on_version_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_method_1; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_65: { + state->error = 0x21; + state->reason = "`on_version_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_version_1: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_version(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_version_complete; + return s_error; + } + goto s_n_llhttp__internal__n_invoke_llhttp__on_version_complete; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_version: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_version(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_64; + return s_error; + } + goto s_n_llhttp__internal__n_error_64; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_http_minor: { + switch (llhttp__internal__c_load_http_minor(state, p, endp)) { + case 9: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1; + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_http_minor_1: { + switch (llhttp__internal__c_load_http_minor(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1; + case 1: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1; + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_http_minor_2: { + switch (llhttp__internal__c_load_http_minor(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1; + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_http_major: { + switch (llhttp__internal__c_load_http_major(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_load_http_minor; + case 1: + goto s_n_llhttp__internal__n_invoke_load_http_minor_1; + case 2: + goto s_n_llhttp__internal__n_invoke_load_http_minor_2; + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_23: { + switch (llhttp__internal__c_test_lenient_flags_23(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1; + default: + goto s_n_llhttp__internal__n_invoke_load_http_major; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_store_http_minor: { + switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) { + default: + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_23; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_version_2: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_version(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_71; + return s_error; + } + goto s_n_llhttp__internal__n_error_71; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_version_3: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_version(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_72; + return s_error; + } + goto s_n_llhttp__internal__n_error_72; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_store_http_major: { + switch (llhttp__internal__c_store_http_major(state, p, endp, match)) { + default: + goto s_n_llhttp__internal__n_req_http_dot; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_version_4: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_version(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_73; + return s_error; + } + goto s_n_llhttp__internal__n_error_73; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_63: { + state->error = 0x8; + state->reason = "Invalid method for HTTP/x.x request"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_method: { + switch (llhttp__internal__c_load_method(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 1: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 2: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 3: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 4: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 5: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 6: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 7: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 8: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 9: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 10: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 11: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 12: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 13: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 14: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 15: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 16: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 17: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 18: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 19: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 20: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 21: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 22: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 23: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 24: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 25: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 26: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 27: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 28: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 29: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 30: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 31: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 32: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 33: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 34: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + default: + goto s_n_llhttp__internal__n_error_63; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_76: { + state->error = 0x8; + state->reason = "Expected HTTP/"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_74: { + state->error = 0x8; + state->reason = "Expected SOURCE method for ICE/x.x request"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_method_2: { + switch (llhttp__internal__c_load_method(state, p, endp)) { + case 33: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + default: + goto s_n_llhttp__internal__n_error_74; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_75: { + state->error = 0x8; + state->reason = "Invalid method for RTSP/x.x request"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_method_3: { + switch (llhttp__internal__c_load_method(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 3: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 6: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 35: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 36: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 37: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 38: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 39: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 40: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 41: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 42: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 43: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 44: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + case 45: + goto s_n_llhttp__internal__n_span_start_llhttp__on_version; + default: + goto s_n_llhttp__internal__n_error_75; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_22: { + state->error = 0x15; + state->reason = "on_url_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_req_http_start; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_62: { + state->error = 0x1a; + state->reason = "`on_url_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1: { + switch (llhttp__on_url_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_req_http_start; + case 21: + goto s_n_llhttp__internal__n_pause_22; + default: + goto s_n_llhttp__internal__n_error_62; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_5: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_to_http; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_6: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_to_http09; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_7: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_lf_to_http09; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_8: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_to_http; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_77: { + state->error = 0x7; + state->reason = "Invalid char in url fragment start"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_9: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_to_http09; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_10: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_lf_to_http09; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_11: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_to_http; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_78: { + state->error = 0x7; + state->reason = "Invalid char in url query"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_79: { + state->error = 0x7; + state->reason = "Invalid char in url path"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_to_http09; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_1: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_lf_to_http09; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_2: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_to_http; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_12: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_to_http09; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_13: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_lf_to_http09; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_url_14: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_url(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http; + return s_error; + } + goto s_n_llhttp__internal__n_url_skip_to_http; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_80: { + state->error = 0x7; + state->reason = "Double @ in url"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_81: { + state->error = 0x7; + state->reason = "Unexpected char in url server"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_82: { + state->error = 0x7; + state->reason = "Unexpected char in url server"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_83: { + state->error = 0x7; + state->reason = "Unexpected char in url schema"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_84: { + state->error = 0x7; + state->reason = "Unexpected char in url schema"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_85: { + state->error = 0x7; + state->reason = "Unexpected start char in url"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_is_equal_method: { + switch (llhttp__internal__c_is_equal_method(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_url_entry_normal; + default: + goto s_n_llhttp__internal__n_url_entry_connect; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_86: { + state->error = 0x6; + state->reason = "Expected space after method"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_26: { + state->error = 0x15; + state->reason = "on_method_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_req_first_space_before_url; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_105: { + state->error = 0x20; + state->reason = "`on_method_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_method_2: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_method(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1; + return s_error; + } + goto s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_store_method_1: { + switch (llhttp__internal__c_store_method(state, p, endp, match)) { + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_method_2; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_106: { + state->error = 0x6; + state->reason = "Invalid method encountered"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_98: { + state->error = 0xd; + state->reason = "Invalid status code"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_96: { + state->error = 0xd; + state->reason = "Invalid status code"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_94: { + state->error = 0xd; + state->reason = "Invalid status code"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_24: { + state->error = 0x15; + state->reason = "on_status_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_headers_start; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_90: { + state->error = 0x1b; + state->reason = "`on_status_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_status_complete: { + switch (llhttp__on_status_complete(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_headers_start; + case 21: + goto s_n_llhttp__internal__n_pause_24; + default: + goto s_n_llhttp__internal__n_error_90; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_89: { + state->error = 0xd; + state->reason = "Invalid response status"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_27: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; + default: + goto s_n_llhttp__internal__n_error_89; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_91: { + state->error = 0x2; + state->reason = "Expected LF after CR"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_28: { + switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; + default: + goto s_n_llhttp__internal__n_error_91; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_92: { + state->error = 0x19; + state->reason = "Missing expected CR after response line"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_status: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_status(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_29; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_29; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_status_1: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_status(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) (p + 1); + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_res_line_almost_done; + return s_error; + } + p++; + goto s_n_llhttp__internal__n_res_line_almost_done; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_93: { + state->error = 0xd; + state->reason = "Invalid response status"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_mul_add_status_code_2: { + switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) { + case 1: + goto s_n_llhttp__internal__n_error_94; + default: + goto s_n_llhttp__internal__n_res_status_code_otherwise; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_95: { + state->error = 0xd; + state->reason = "Invalid status code"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_mul_add_status_code_1: { + switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) { + case 1: + goto s_n_llhttp__internal__n_error_96; + default: + goto s_n_llhttp__internal__n_res_status_code_digit_3; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_97: { + state->error = 0xd; + state->reason = "Invalid status code"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_mul_add_status_code: { + switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) { + case 1: + goto s_n_llhttp__internal__n_error_98; + default: + goto s_n_llhttp__internal__n_res_status_code_digit_2; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_99: { + state->error = 0xd; + state->reason = "Invalid status code"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_status_code: { + switch (llhttp__internal__c_update_status_code(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_res_status_code_digit_1; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_100: { + state->error = 0x9; + state->reason = "Expected space after version"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_25: { + state->error = 0x15; + state->reason = "on_version_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_res_after_version; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_88: { + state->error = 0x21; + state->reason = "`on_version_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_version_6: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_version(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1; + return s_error; + } + goto s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_version_5: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_version(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_87; + return s_error; + } + goto s_n_llhttp__internal__n_error_87; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_http_minor_3: { + switch (llhttp__internal__c_load_http_minor(state, p, endp)) { + case 9: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6; + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_http_minor_4: { + switch (llhttp__internal__c_load_http_minor(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6; + case 1: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6; + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_http_minor_5: { + switch (llhttp__internal__c_load_http_minor(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6; + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_http_major_1: { + switch (llhttp__internal__c_load_http_major(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_load_http_minor_3; + case 1: + goto s_n_llhttp__internal__n_invoke_load_http_minor_4; + case 2: + goto s_n_llhttp__internal__n_invoke_load_http_minor_5; + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_test_lenient_flags_26: { + switch (llhttp__internal__c_test_lenient_flags_23(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6; + default: + goto s_n_llhttp__internal__n_invoke_load_http_major_1; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_store_http_minor_1: { + switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) { + default: + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_26; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_version_7: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_version(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_101; + return s_error; + } + goto s_n_llhttp__internal__n_error_101; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_version_8: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_version(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_102; + return s_error; + } + goto s_n_llhttp__internal__n_error_102; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_store_http_major_1: { + switch (llhttp__internal__c_store_http_major(state, p, endp, match)) { + default: + goto s_n_llhttp__internal__n_res_http_dot; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_version_9: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_version(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_103; + return s_error; + } + goto s_n_llhttp__internal__n_error_103; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_107: { + state->error = 0x8; + state->reason = "Expected HTTP/"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_23: { + state->error = 0x15; + state->reason = "on_method_complete pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_req_first_space_before_url; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_1: { + state->error = 0x20; + state->reason = "`on_method_complete` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_method: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_method(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_method_complete; + return s_error; + } + goto s_n_llhttp__internal__n_invoke_llhttp__on_method_complete; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_type: { + switch (llhttp__internal__c_update_type(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_span_end_llhttp__on_method; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_store_method: { + switch (llhttp__internal__c_store_method(state, p, endp, match)) { + default: + goto s_n_llhttp__internal__n_invoke_update_type; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_104: { + state->error = 0x8; + state->reason = "Invalid word encountered"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_span_end_llhttp__on_method_1: { + const unsigned char* start; + int err; + + start = state->_span_pos0; + state->_span_pos0 = NULL; + err = llhttp__on_method(state, start, p); + if (err != 0) { + state->error = err; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_type_1; + return s_error; + } + goto s_n_llhttp__internal__n_invoke_update_type_1; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_update_type_2: { + switch (llhttp__internal__c_update_type(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_span_start_llhttp__on_method_1; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_27: { + state->error = 0x15; + state->reason = "on_message_begin pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_type; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error: { + state->error = 0x10; + state->reason = "`on_message_begin` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_message_begin: { + switch (llhttp__on_message_begin(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_load_type; + case 21: + goto s_n_llhttp__internal__n_pause_27; + default: + goto s_n_llhttp__internal__n_error; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_pause_28: { + state->error = 0x15; + state->reason = "on_reset pause"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_finish; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_108: { + state->error = 0x1f; + state->reason = "`on_reset` callback error"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_reset: { + switch (llhttp__on_reset(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_invoke_update_finish; + case 21: + goto s_n_llhttp__internal__n_pause_28; + default: + goto s_n_llhttp__internal__n_error_108; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_initial_message_completed: { + switch (llhttp__internal__c_load_initial_message_completed(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_invoke_llhttp__on_reset; + default: + goto s_n_llhttp__internal__n_invoke_update_finish; + } + /* UNREACHABLE */; + abort(); + } +} + +int llhttp__internal_execute(llhttp__internal_t* state, const char* p, const char* endp) { + llparse_state_t next; + + /* check lingering errors */ + if (state->error != 0) { + return state->error; + } + + /* restart spans */ + if (state->_span_pos0 != NULL) { + state->_span_pos0 = (void*) p; + } + + next = llhttp__internal__run(state, (const unsigned char*) p, (const unsigned char*) endp); + if (next == s_error) { + return state->error; + } + state->_current = (void*) (intptr_t) next; + + /* execute spans */ + if (state->_span_pos0 != NULL) { + int error; + + error = ((llhttp__internal__span_cb) state->_span_cb0)(state, state->_span_pos0, (const char*) endp); + if (error != 0) { + state->error = error; + state->error_pos = endp; + return error; + } + } + + return 0; +} \ No newline at end of file diff --git a/vendor/llhttp/build/llhttp.h b/vendor/llhttp/build/llhttp.h new file mode 100644 index 0000000..46a7213 --- /dev/null +++ b/vendor/llhttp/build/llhttp.h @@ -0,0 +1,898 @@ + +#ifndef INCLUDE_LLHTTP_H_ +#define INCLUDE_LLHTTP_H_ + +#define LLHTTP_VERSION_MAJOR 9 +#define LLHTTP_VERSION_MINOR 1 +#define LLHTTP_VERSION_PATCH 3 + +#ifndef INCLUDE_LLHTTP_ITSELF_H_ +#define INCLUDE_LLHTTP_ITSELF_H_ +#ifdef __cplusplus +extern "C" { +#endif + +#include + +typedef struct llhttp__internal_s llhttp__internal_t; +struct llhttp__internal_s { + int32_t _index; + void* _span_pos0; + void* _span_cb0; + int32_t error; + const char* reason; + const char* error_pos; + void* data; + void* _current; + uint64_t content_length; + uint8_t type; + uint8_t method; + uint8_t http_major; + uint8_t http_minor; + uint8_t header_state; + uint16_t lenient_flags; + uint8_t upgrade; + uint8_t finish; + uint16_t flags; + uint16_t status_code; + uint8_t initial_message_completed; + void* settings; +}; + +int llhttp__internal_init(llhttp__internal_t* s); +int llhttp__internal_execute(llhttp__internal_t* s, const char* p, const char* endp); + +#ifdef __cplusplus +} /* extern "C" */ +#endif +#endif /* INCLUDE_LLHTTP_ITSELF_H_ */ + + +#ifndef LLLLHTTP_C_HEADERS_ +#define LLLLHTTP_C_HEADERS_ +#ifdef __cplusplus +extern "C" { +#endif + +enum llhttp_errno { + HPE_OK = 0, + HPE_INTERNAL = 1, + HPE_STRICT = 2, + HPE_CR_EXPECTED = 25, + HPE_LF_EXPECTED = 3, + HPE_UNEXPECTED_CONTENT_LENGTH = 4, + HPE_UNEXPECTED_SPACE = 30, + HPE_CLOSED_CONNECTION = 5, + HPE_INVALID_METHOD = 6, + HPE_INVALID_URL = 7, + HPE_INVALID_CONSTANT = 8, + HPE_INVALID_VERSION = 9, + HPE_INVALID_HEADER_TOKEN = 10, + HPE_INVALID_CONTENT_LENGTH = 11, + HPE_INVALID_CHUNK_SIZE = 12, + HPE_INVALID_STATUS = 13, + HPE_INVALID_EOF_STATE = 14, + HPE_INVALID_TRANSFER_ENCODING = 15, + HPE_CB_MESSAGE_BEGIN = 16, + HPE_CB_HEADERS_COMPLETE = 17, + HPE_CB_MESSAGE_COMPLETE = 18, + HPE_CB_CHUNK_HEADER = 19, + HPE_CB_CHUNK_COMPLETE = 20, + HPE_PAUSED = 21, + HPE_PAUSED_UPGRADE = 22, + HPE_PAUSED_H2_UPGRADE = 23, + HPE_USER = 24, + HPE_CB_URL_COMPLETE = 26, + HPE_CB_STATUS_COMPLETE = 27, + HPE_CB_METHOD_COMPLETE = 32, + HPE_CB_VERSION_COMPLETE = 33, + HPE_CB_HEADER_FIELD_COMPLETE = 28, + HPE_CB_HEADER_VALUE_COMPLETE = 29, + HPE_CB_CHUNK_EXTENSION_NAME_COMPLETE = 34, + HPE_CB_CHUNK_EXTENSION_VALUE_COMPLETE = 35, + HPE_CB_RESET = 31 +}; +typedef enum llhttp_errno llhttp_errno_t; + +enum llhttp_flags { + F_CONNECTION_KEEP_ALIVE = 0x1, + F_CONNECTION_CLOSE = 0x2, + F_CONNECTION_UPGRADE = 0x4, + F_CHUNKED = 0x8, + F_UPGRADE = 0x10, + F_CONTENT_LENGTH = 0x20, + F_SKIPBODY = 0x40, + F_TRAILING = 0x80, + F_TRANSFER_ENCODING = 0x200 +}; +typedef enum llhttp_flags llhttp_flags_t; + +enum llhttp_lenient_flags { + LENIENT_HEADERS = 0x1, + LENIENT_CHUNKED_LENGTH = 0x2, + LENIENT_KEEP_ALIVE = 0x4, + LENIENT_TRANSFER_ENCODING = 0x8, + LENIENT_VERSION = 0x10, + LENIENT_DATA_AFTER_CLOSE = 0x20, + LENIENT_OPTIONAL_LF_AFTER_CR = 0x40, + LENIENT_OPTIONAL_CRLF_AFTER_CHUNK = 0x80, + LENIENT_OPTIONAL_CR_BEFORE_LF = 0x100, + LENIENT_SPACES_AFTER_CHUNK_SIZE = 0x200 +}; +typedef enum llhttp_lenient_flags llhttp_lenient_flags_t; + +enum llhttp_type { + HTTP_BOTH = 0, + HTTP_REQUEST = 1, + HTTP_RESPONSE = 2 +}; +typedef enum llhttp_type llhttp_type_t; + +enum llhttp_finish { + HTTP_FINISH_SAFE = 0, + HTTP_FINISH_SAFE_WITH_CB = 1, + HTTP_FINISH_UNSAFE = 2 +}; +typedef enum llhttp_finish llhttp_finish_t; + +enum llhttp_method { + HTTP_DELETE = 0, + HTTP_GET = 1, + HTTP_HEAD = 2, + HTTP_POST = 3, + HTTP_PUT = 4, + HTTP_CONNECT = 5, + HTTP_OPTIONS = 6, + HTTP_TRACE = 7, + HTTP_COPY = 8, + HTTP_LOCK = 9, + HTTP_MKCOL = 10, + HTTP_MOVE = 11, + HTTP_PROPFIND = 12, + HTTP_PROPPATCH = 13, + HTTP_SEARCH = 14, + HTTP_UNLOCK = 15, + HTTP_BIND = 16, + HTTP_REBIND = 17, + HTTP_UNBIND = 18, + HTTP_ACL = 19, + HTTP_REPORT = 20, + HTTP_MKACTIVITY = 21, + HTTP_CHECKOUT = 22, + HTTP_MERGE = 23, + HTTP_MSEARCH = 24, + HTTP_NOTIFY = 25, + HTTP_SUBSCRIBE = 26, + HTTP_UNSUBSCRIBE = 27, + HTTP_PATCH = 28, + HTTP_PURGE = 29, + HTTP_MKCALENDAR = 30, + HTTP_LINK = 31, + HTTP_UNLINK = 32, + HTTP_SOURCE = 33, + HTTP_PRI = 34, + HTTP_DESCRIBE = 35, + HTTP_ANNOUNCE = 36, + HTTP_SETUP = 37, + HTTP_PLAY = 38, + HTTP_PAUSE = 39, + HTTP_TEARDOWN = 40, + HTTP_GET_PARAMETER = 41, + HTTP_SET_PARAMETER = 42, + HTTP_REDIRECT = 43, + HTTP_RECORD = 44, + HTTP_FLUSH = 45 +}; +typedef enum llhttp_method llhttp_method_t; + +enum llhttp_status { + HTTP_STATUS_CONTINUE = 100, + HTTP_STATUS_SWITCHING_PROTOCOLS = 101, + HTTP_STATUS_PROCESSING = 102, + HTTP_STATUS_EARLY_HINTS = 103, + HTTP_STATUS_RESPONSE_IS_STALE = 110, + HTTP_STATUS_REVALIDATION_FAILED = 111, + HTTP_STATUS_DISCONNECTED_OPERATION = 112, + HTTP_STATUS_HEURISTIC_EXPIRATION = 113, + HTTP_STATUS_MISCELLANEOUS_WARNING = 199, + HTTP_STATUS_OK = 200, + HTTP_STATUS_CREATED = 201, + HTTP_STATUS_ACCEPTED = 202, + HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION = 203, + HTTP_STATUS_NO_CONTENT = 204, + HTTP_STATUS_RESET_CONTENT = 205, + HTTP_STATUS_PARTIAL_CONTENT = 206, + HTTP_STATUS_MULTI_STATUS = 207, + HTTP_STATUS_ALREADY_REPORTED = 208, + HTTP_STATUS_TRANSFORMATION_APPLIED = 214, + HTTP_STATUS_IM_USED = 226, + HTTP_STATUS_MISCELLANEOUS_PERSISTENT_WARNING = 299, + HTTP_STATUS_MULTIPLE_CHOICES = 300, + HTTP_STATUS_MOVED_PERMANENTLY = 301, + HTTP_STATUS_FOUND = 302, + HTTP_STATUS_SEE_OTHER = 303, + HTTP_STATUS_NOT_MODIFIED = 304, + HTTP_STATUS_USE_PROXY = 305, + HTTP_STATUS_SWITCH_PROXY = 306, + HTTP_STATUS_TEMPORARY_REDIRECT = 307, + HTTP_STATUS_PERMANENT_REDIRECT = 308, + HTTP_STATUS_BAD_REQUEST = 400, + HTTP_STATUS_UNAUTHORIZED = 401, + HTTP_STATUS_PAYMENT_REQUIRED = 402, + HTTP_STATUS_FORBIDDEN = 403, + HTTP_STATUS_NOT_FOUND = 404, + HTTP_STATUS_METHOD_NOT_ALLOWED = 405, + HTTP_STATUS_NOT_ACCEPTABLE = 406, + HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED = 407, + HTTP_STATUS_REQUEST_TIMEOUT = 408, + HTTP_STATUS_CONFLICT = 409, + HTTP_STATUS_GONE = 410, + HTTP_STATUS_LENGTH_REQUIRED = 411, + HTTP_STATUS_PRECONDITION_FAILED = 412, + HTTP_STATUS_PAYLOAD_TOO_LARGE = 413, + HTTP_STATUS_URI_TOO_LONG = 414, + HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE = 415, + HTTP_STATUS_RANGE_NOT_SATISFIABLE = 416, + HTTP_STATUS_EXPECTATION_FAILED = 417, + HTTP_STATUS_IM_A_TEAPOT = 418, + HTTP_STATUS_PAGE_EXPIRED = 419, + HTTP_STATUS_ENHANCE_YOUR_CALM = 420, + HTTP_STATUS_MISDIRECTED_REQUEST = 421, + HTTP_STATUS_UNPROCESSABLE_ENTITY = 422, + HTTP_STATUS_LOCKED = 423, + HTTP_STATUS_FAILED_DEPENDENCY = 424, + HTTP_STATUS_TOO_EARLY = 425, + HTTP_STATUS_UPGRADE_REQUIRED = 426, + HTTP_STATUS_PRECONDITION_REQUIRED = 428, + HTTP_STATUS_TOO_MANY_REQUESTS = 429, + HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL = 430, + HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE = 431, + HTTP_STATUS_LOGIN_TIMEOUT = 440, + HTTP_STATUS_NO_RESPONSE = 444, + HTTP_STATUS_RETRY_WITH = 449, + HTTP_STATUS_BLOCKED_BY_PARENTAL_CONTROL = 450, + HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS = 451, + HTTP_STATUS_CLIENT_CLOSED_LOAD_BALANCED_REQUEST = 460, + HTTP_STATUS_INVALID_X_FORWARDED_FOR = 463, + HTTP_STATUS_REQUEST_HEADER_TOO_LARGE = 494, + HTTP_STATUS_SSL_CERTIFICATE_ERROR = 495, + HTTP_STATUS_SSL_CERTIFICATE_REQUIRED = 496, + HTTP_STATUS_HTTP_REQUEST_SENT_TO_HTTPS_PORT = 497, + HTTP_STATUS_INVALID_TOKEN = 498, + HTTP_STATUS_CLIENT_CLOSED_REQUEST = 499, + HTTP_STATUS_INTERNAL_SERVER_ERROR = 500, + HTTP_STATUS_NOT_IMPLEMENTED = 501, + HTTP_STATUS_BAD_GATEWAY = 502, + HTTP_STATUS_SERVICE_UNAVAILABLE = 503, + HTTP_STATUS_GATEWAY_TIMEOUT = 504, + HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED = 505, + HTTP_STATUS_VARIANT_ALSO_NEGOTIATES = 506, + HTTP_STATUS_INSUFFICIENT_STORAGE = 507, + HTTP_STATUS_LOOP_DETECTED = 508, + HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED = 509, + HTTP_STATUS_NOT_EXTENDED = 510, + HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED = 511, + HTTP_STATUS_WEB_SERVER_UNKNOWN_ERROR = 520, + HTTP_STATUS_WEB_SERVER_IS_DOWN = 521, + HTTP_STATUS_CONNECTION_TIMEOUT = 522, + HTTP_STATUS_ORIGIN_IS_UNREACHABLE = 523, + HTTP_STATUS_TIMEOUT_OCCURED = 524, + HTTP_STATUS_SSL_HANDSHAKE_FAILED = 525, + HTTP_STATUS_INVALID_SSL_CERTIFICATE = 526, + HTTP_STATUS_RAILGUN_ERROR = 527, + HTTP_STATUS_SITE_IS_OVERLOADED = 529, + HTTP_STATUS_SITE_IS_FROZEN = 530, + HTTP_STATUS_IDENTITY_PROVIDER_AUTHENTICATION_ERROR = 561, + HTTP_STATUS_NETWORK_READ_TIMEOUT = 598, + HTTP_STATUS_NETWORK_CONNECT_TIMEOUT = 599 +}; +typedef enum llhttp_status llhttp_status_t; + +#define HTTP_ERRNO_MAP(XX) \ + XX(0, OK, OK) \ + XX(1, INTERNAL, INTERNAL) \ + XX(2, STRICT, STRICT) \ + XX(25, CR_EXPECTED, CR_EXPECTED) \ + XX(3, LF_EXPECTED, LF_EXPECTED) \ + XX(4, UNEXPECTED_CONTENT_LENGTH, UNEXPECTED_CONTENT_LENGTH) \ + XX(30, UNEXPECTED_SPACE, UNEXPECTED_SPACE) \ + XX(5, CLOSED_CONNECTION, CLOSED_CONNECTION) \ + XX(6, INVALID_METHOD, INVALID_METHOD) \ + XX(7, INVALID_URL, INVALID_URL) \ + XX(8, INVALID_CONSTANT, INVALID_CONSTANT) \ + XX(9, INVALID_VERSION, INVALID_VERSION) \ + XX(10, INVALID_HEADER_TOKEN, INVALID_HEADER_TOKEN) \ + XX(11, INVALID_CONTENT_LENGTH, INVALID_CONTENT_LENGTH) \ + XX(12, INVALID_CHUNK_SIZE, INVALID_CHUNK_SIZE) \ + XX(13, INVALID_STATUS, INVALID_STATUS) \ + XX(14, INVALID_EOF_STATE, INVALID_EOF_STATE) \ + XX(15, INVALID_TRANSFER_ENCODING, INVALID_TRANSFER_ENCODING) \ + XX(16, CB_MESSAGE_BEGIN, CB_MESSAGE_BEGIN) \ + XX(17, CB_HEADERS_COMPLETE, CB_HEADERS_COMPLETE) \ + XX(18, CB_MESSAGE_COMPLETE, CB_MESSAGE_COMPLETE) \ + XX(19, CB_CHUNK_HEADER, CB_CHUNK_HEADER) \ + XX(20, CB_CHUNK_COMPLETE, CB_CHUNK_COMPLETE) \ + XX(21, PAUSED, PAUSED) \ + XX(22, PAUSED_UPGRADE, PAUSED_UPGRADE) \ + XX(23, PAUSED_H2_UPGRADE, PAUSED_H2_UPGRADE) \ + XX(24, USER, USER) \ + XX(26, CB_URL_COMPLETE, CB_URL_COMPLETE) \ + XX(27, CB_STATUS_COMPLETE, CB_STATUS_COMPLETE) \ + XX(32, CB_METHOD_COMPLETE, CB_METHOD_COMPLETE) \ + XX(33, CB_VERSION_COMPLETE, CB_VERSION_COMPLETE) \ + XX(28, CB_HEADER_FIELD_COMPLETE, CB_HEADER_FIELD_COMPLETE) \ + XX(29, CB_HEADER_VALUE_COMPLETE, CB_HEADER_VALUE_COMPLETE) \ + XX(34, CB_CHUNK_EXTENSION_NAME_COMPLETE, CB_CHUNK_EXTENSION_NAME_COMPLETE) \ + XX(35, CB_CHUNK_EXTENSION_VALUE_COMPLETE, CB_CHUNK_EXTENSION_VALUE_COMPLETE) \ + XX(31, CB_RESET, CB_RESET) \ + + +#define HTTP_METHOD_MAP(XX) \ + XX(0, DELETE, DELETE) \ + XX(1, GET, GET) \ + XX(2, HEAD, HEAD) \ + XX(3, POST, POST) \ + XX(4, PUT, PUT) \ + XX(5, CONNECT, CONNECT) \ + XX(6, OPTIONS, OPTIONS) \ + XX(7, TRACE, TRACE) \ + XX(8, COPY, COPY) \ + XX(9, LOCK, LOCK) \ + XX(10, MKCOL, MKCOL) \ + XX(11, MOVE, MOVE) \ + XX(12, PROPFIND, PROPFIND) \ + XX(13, PROPPATCH, PROPPATCH) \ + XX(14, SEARCH, SEARCH) \ + XX(15, UNLOCK, UNLOCK) \ + XX(16, BIND, BIND) \ + XX(17, REBIND, REBIND) \ + XX(18, UNBIND, UNBIND) \ + XX(19, ACL, ACL) \ + XX(20, REPORT, REPORT) \ + XX(21, MKACTIVITY, MKACTIVITY) \ + XX(22, CHECKOUT, CHECKOUT) \ + XX(23, MERGE, MERGE) \ + XX(24, MSEARCH, M-SEARCH) \ + XX(25, NOTIFY, NOTIFY) \ + XX(26, SUBSCRIBE, SUBSCRIBE) \ + XX(27, UNSUBSCRIBE, UNSUBSCRIBE) \ + XX(28, PATCH, PATCH) \ + XX(29, PURGE, PURGE) \ + XX(30, MKCALENDAR, MKCALENDAR) \ + XX(31, LINK, LINK) \ + XX(32, UNLINK, UNLINK) \ + XX(33, SOURCE, SOURCE) \ + + +#define RTSP_METHOD_MAP(XX) \ + XX(1, GET, GET) \ + XX(3, POST, POST) \ + XX(6, OPTIONS, OPTIONS) \ + XX(35, DESCRIBE, DESCRIBE) \ + XX(36, ANNOUNCE, ANNOUNCE) \ + XX(37, SETUP, SETUP) \ + XX(38, PLAY, PLAY) \ + XX(39, PAUSE, PAUSE) \ + XX(40, TEARDOWN, TEARDOWN) \ + XX(41, GET_PARAMETER, GET_PARAMETER) \ + XX(42, SET_PARAMETER, SET_PARAMETER) \ + XX(43, REDIRECT, REDIRECT) \ + XX(44, RECORD, RECORD) \ + XX(45, FLUSH, FLUSH) \ + + +#define HTTP_ALL_METHOD_MAP(XX) \ + XX(0, DELETE, DELETE) \ + XX(1, GET, GET) \ + XX(2, HEAD, HEAD) \ + XX(3, POST, POST) \ + XX(4, PUT, PUT) \ + XX(5, CONNECT, CONNECT) \ + XX(6, OPTIONS, OPTIONS) \ + XX(7, TRACE, TRACE) \ + XX(8, COPY, COPY) \ + XX(9, LOCK, LOCK) \ + XX(10, MKCOL, MKCOL) \ + XX(11, MOVE, MOVE) \ + XX(12, PROPFIND, PROPFIND) \ + XX(13, PROPPATCH, PROPPATCH) \ + XX(14, SEARCH, SEARCH) \ + XX(15, UNLOCK, UNLOCK) \ + XX(16, BIND, BIND) \ + XX(17, REBIND, REBIND) \ + XX(18, UNBIND, UNBIND) \ + XX(19, ACL, ACL) \ + XX(20, REPORT, REPORT) \ + XX(21, MKACTIVITY, MKACTIVITY) \ + XX(22, CHECKOUT, CHECKOUT) \ + XX(23, MERGE, MERGE) \ + XX(24, MSEARCH, M-SEARCH) \ + XX(25, NOTIFY, NOTIFY) \ + XX(26, SUBSCRIBE, SUBSCRIBE) \ + XX(27, UNSUBSCRIBE, UNSUBSCRIBE) \ + XX(28, PATCH, PATCH) \ + XX(29, PURGE, PURGE) \ + XX(30, MKCALENDAR, MKCALENDAR) \ + XX(31, LINK, LINK) \ + XX(32, UNLINK, UNLINK) \ + XX(33, SOURCE, SOURCE) \ + XX(34, PRI, PRI) \ + XX(35, DESCRIBE, DESCRIBE) \ + XX(36, ANNOUNCE, ANNOUNCE) \ + XX(37, SETUP, SETUP) \ + XX(38, PLAY, PLAY) \ + XX(39, PAUSE, PAUSE) \ + XX(40, TEARDOWN, TEARDOWN) \ + XX(41, GET_PARAMETER, GET_PARAMETER) \ + XX(42, SET_PARAMETER, SET_PARAMETER) \ + XX(43, REDIRECT, REDIRECT) \ + XX(44, RECORD, RECORD) \ + XX(45, FLUSH, FLUSH) \ + + +#define HTTP_STATUS_MAP(XX) \ + XX(100, CONTINUE, CONTINUE) \ + XX(101, SWITCHING_PROTOCOLS, SWITCHING_PROTOCOLS) \ + XX(102, PROCESSING, PROCESSING) \ + XX(103, EARLY_HINTS, EARLY_HINTS) \ + XX(110, RESPONSE_IS_STALE, RESPONSE_IS_STALE) \ + XX(111, REVALIDATION_FAILED, REVALIDATION_FAILED) \ + XX(112, DISCONNECTED_OPERATION, DISCONNECTED_OPERATION) \ + XX(113, HEURISTIC_EXPIRATION, HEURISTIC_EXPIRATION) \ + XX(199, MISCELLANEOUS_WARNING, MISCELLANEOUS_WARNING) \ + XX(200, OK, OK) \ + XX(201, CREATED, CREATED) \ + XX(202, ACCEPTED, ACCEPTED) \ + XX(203, NON_AUTHORITATIVE_INFORMATION, NON_AUTHORITATIVE_INFORMATION) \ + XX(204, NO_CONTENT, NO_CONTENT) \ + XX(205, RESET_CONTENT, RESET_CONTENT) \ + XX(206, PARTIAL_CONTENT, PARTIAL_CONTENT) \ + XX(207, MULTI_STATUS, MULTI_STATUS) \ + XX(208, ALREADY_REPORTED, ALREADY_REPORTED) \ + XX(214, TRANSFORMATION_APPLIED, TRANSFORMATION_APPLIED) \ + XX(226, IM_USED, IM_USED) \ + XX(299, MISCELLANEOUS_PERSISTENT_WARNING, MISCELLANEOUS_PERSISTENT_WARNING) \ + XX(300, MULTIPLE_CHOICES, MULTIPLE_CHOICES) \ + XX(301, MOVED_PERMANENTLY, MOVED_PERMANENTLY) \ + XX(302, FOUND, FOUND) \ + XX(303, SEE_OTHER, SEE_OTHER) \ + XX(304, NOT_MODIFIED, NOT_MODIFIED) \ + XX(305, USE_PROXY, USE_PROXY) \ + XX(306, SWITCH_PROXY, SWITCH_PROXY) \ + XX(307, TEMPORARY_REDIRECT, TEMPORARY_REDIRECT) \ + XX(308, PERMANENT_REDIRECT, PERMANENT_REDIRECT) \ + XX(400, BAD_REQUEST, BAD_REQUEST) \ + XX(401, UNAUTHORIZED, UNAUTHORIZED) \ + XX(402, PAYMENT_REQUIRED, PAYMENT_REQUIRED) \ + XX(403, FORBIDDEN, FORBIDDEN) \ + XX(404, NOT_FOUND, NOT_FOUND) \ + XX(405, METHOD_NOT_ALLOWED, METHOD_NOT_ALLOWED) \ + XX(406, NOT_ACCEPTABLE, NOT_ACCEPTABLE) \ + XX(407, PROXY_AUTHENTICATION_REQUIRED, PROXY_AUTHENTICATION_REQUIRED) \ + XX(408, REQUEST_TIMEOUT, REQUEST_TIMEOUT) \ + XX(409, CONFLICT, CONFLICT) \ + XX(410, GONE, GONE) \ + XX(411, LENGTH_REQUIRED, LENGTH_REQUIRED) \ + XX(412, PRECONDITION_FAILED, PRECONDITION_FAILED) \ + XX(413, PAYLOAD_TOO_LARGE, PAYLOAD_TOO_LARGE) \ + XX(414, URI_TOO_LONG, URI_TOO_LONG) \ + XX(415, UNSUPPORTED_MEDIA_TYPE, UNSUPPORTED_MEDIA_TYPE) \ + XX(416, RANGE_NOT_SATISFIABLE, RANGE_NOT_SATISFIABLE) \ + XX(417, EXPECTATION_FAILED, EXPECTATION_FAILED) \ + XX(418, IM_A_TEAPOT, IM_A_TEAPOT) \ + XX(419, PAGE_EXPIRED, PAGE_EXPIRED) \ + XX(420, ENHANCE_YOUR_CALM, ENHANCE_YOUR_CALM) \ + XX(421, MISDIRECTED_REQUEST, MISDIRECTED_REQUEST) \ + XX(422, UNPROCESSABLE_ENTITY, UNPROCESSABLE_ENTITY) \ + XX(423, LOCKED, LOCKED) \ + XX(424, FAILED_DEPENDENCY, FAILED_DEPENDENCY) \ + XX(425, TOO_EARLY, TOO_EARLY) \ + XX(426, UPGRADE_REQUIRED, UPGRADE_REQUIRED) \ + XX(428, PRECONDITION_REQUIRED, PRECONDITION_REQUIRED) \ + XX(429, TOO_MANY_REQUESTS, TOO_MANY_REQUESTS) \ + XX(430, REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL, REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL) \ + XX(431, REQUEST_HEADER_FIELDS_TOO_LARGE, REQUEST_HEADER_FIELDS_TOO_LARGE) \ + XX(440, LOGIN_TIMEOUT, LOGIN_TIMEOUT) \ + XX(444, NO_RESPONSE, NO_RESPONSE) \ + XX(449, RETRY_WITH, RETRY_WITH) \ + XX(450, BLOCKED_BY_PARENTAL_CONTROL, BLOCKED_BY_PARENTAL_CONTROL) \ + XX(451, UNAVAILABLE_FOR_LEGAL_REASONS, UNAVAILABLE_FOR_LEGAL_REASONS) \ + XX(460, CLIENT_CLOSED_LOAD_BALANCED_REQUEST, CLIENT_CLOSED_LOAD_BALANCED_REQUEST) \ + XX(463, INVALID_X_FORWARDED_FOR, INVALID_X_FORWARDED_FOR) \ + XX(494, REQUEST_HEADER_TOO_LARGE, REQUEST_HEADER_TOO_LARGE) \ + XX(495, SSL_CERTIFICATE_ERROR, SSL_CERTIFICATE_ERROR) \ + XX(496, SSL_CERTIFICATE_REQUIRED, SSL_CERTIFICATE_REQUIRED) \ + XX(497, HTTP_REQUEST_SENT_TO_HTTPS_PORT, HTTP_REQUEST_SENT_TO_HTTPS_PORT) \ + XX(498, INVALID_TOKEN, INVALID_TOKEN) \ + XX(499, CLIENT_CLOSED_REQUEST, CLIENT_CLOSED_REQUEST) \ + XX(500, INTERNAL_SERVER_ERROR, INTERNAL_SERVER_ERROR) \ + XX(501, NOT_IMPLEMENTED, NOT_IMPLEMENTED) \ + XX(502, BAD_GATEWAY, BAD_GATEWAY) \ + XX(503, SERVICE_UNAVAILABLE, SERVICE_UNAVAILABLE) \ + XX(504, GATEWAY_TIMEOUT, GATEWAY_TIMEOUT) \ + XX(505, HTTP_VERSION_NOT_SUPPORTED, HTTP_VERSION_NOT_SUPPORTED) \ + XX(506, VARIANT_ALSO_NEGOTIATES, VARIANT_ALSO_NEGOTIATES) \ + XX(507, INSUFFICIENT_STORAGE, INSUFFICIENT_STORAGE) \ + XX(508, LOOP_DETECTED, LOOP_DETECTED) \ + XX(509, BANDWIDTH_LIMIT_EXCEEDED, BANDWIDTH_LIMIT_EXCEEDED) \ + XX(510, NOT_EXTENDED, NOT_EXTENDED) \ + XX(511, NETWORK_AUTHENTICATION_REQUIRED, NETWORK_AUTHENTICATION_REQUIRED) \ + XX(520, WEB_SERVER_UNKNOWN_ERROR, WEB_SERVER_UNKNOWN_ERROR) \ + XX(521, WEB_SERVER_IS_DOWN, WEB_SERVER_IS_DOWN) \ + XX(522, CONNECTION_TIMEOUT, CONNECTION_TIMEOUT) \ + XX(523, ORIGIN_IS_UNREACHABLE, ORIGIN_IS_UNREACHABLE) \ + XX(524, TIMEOUT_OCCURED, TIMEOUT_OCCURED) \ + XX(525, SSL_HANDSHAKE_FAILED, SSL_HANDSHAKE_FAILED) \ + XX(526, INVALID_SSL_CERTIFICATE, INVALID_SSL_CERTIFICATE) \ + XX(527, RAILGUN_ERROR, RAILGUN_ERROR) \ + XX(529, SITE_IS_OVERLOADED, SITE_IS_OVERLOADED) \ + XX(530, SITE_IS_FROZEN, SITE_IS_FROZEN) \ + XX(561, IDENTITY_PROVIDER_AUTHENTICATION_ERROR, IDENTITY_PROVIDER_AUTHENTICATION_ERROR) \ + XX(598, NETWORK_READ_TIMEOUT, NETWORK_READ_TIMEOUT) \ + XX(599, NETWORK_CONNECT_TIMEOUT, NETWORK_CONNECT_TIMEOUT) \ + + +#ifdef __cplusplus +} /* extern "C" */ +#endif +#endif /* LLLLHTTP_C_HEADERS_ */ + + +#ifndef INCLUDE_LLHTTP_API_H_ +#define INCLUDE_LLHTTP_API_H_ +#ifdef __cplusplus +extern "C" { +#endif +#include + +#if defined(__wasm__) +#define LLHTTP_EXPORT __attribute__((visibility("default"))) +#else +#define LLHTTP_EXPORT +#endif + +typedef llhttp__internal_t llhttp_t; +typedef struct llhttp_settings_s llhttp_settings_t; + +typedef int (*llhttp_data_cb)(llhttp_t*, const char *at, size_t length); +typedef int (*llhttp_cb)(llhttp_t*); + +struct llhttp_settings_s { + /* Possible return values 0, -1, `HPE_PAUSED` */ + llhttp_cb on_message_begin; + + /* Possible return values 0, -1, HPE_USER */ + llhttp_data_cb on_url; + llhttp_data_cb on_status; + llhttp_data_cb on_method; + llhttp_data_cb on_version; + llhttp_data_cb on_header_field; + llhttp_data_cb on_header_value; + llhttp_data_cb on_chunk_extension_name; + llhttp_data_cb on_chunk_extension_value; + + /* Possible return values: + * 0 - Proceed normally + * 1 - Assume that request/response has no body, and proceed to parsing the + * next message + * 2 - Assume absence of body (as above) and make `llhttp_execute()` return + * `HPE_PAUSED_UPGRADE` + * -1 - Error + * `HPE_PAUSED` + */ + llhttp_cb on_headers_complete; + + /* Possible return values 0, -1, HPE_USER */ + llhttp_data_cb on_body; + + /* Possible return values 0, -1, `HPE_PAUSED` */ + llhttp_cb on_message_complete; + llhttp_cb on_url_complete; + llhttp_cb on_status_complete; + llhttp_cb on_method_complete; + llhttp_cb on_version_complete; + llhttp_cb on_header_field_complete; + llhttp_cb on_header_value_complete; + llhttp_cb on_chunk_extension_name_complete; + llhttp_cb on_chunk_extension_value_complete; + + /* When on_chunk_header is called, the current chunk length is stored + * in parser->content_length. + * Possible return values 0, -1, `HPE_PAUSED` + */ + llhttp_cb on_chunk_header; + llhttp_cb on_chunk_complete; + llhttp_cb on_reset; +}; + +/* Initialize the parser with specific type and user settings. + * + * NOTE: lifetime of `settings` has to be at least the same as the lifetime of + * the `parser` here. In practice, `settings` has to be either a static + * variable or be allocated with `malloc`, `new`, etc. + */ +LLHTTP_EXPORT +void llhttp_init(llhttp_t* parser, llhttp_type_t type, + const llhttp_settings_t* settings); + +LLHTTP_EXPORT +llhttp_t* llhttp_alloc(llhttp_type_t type); + +LLHTTP_EXPORT +void llhttp_free(llhttp_t* parser); + +LLHTTP_EXPORT +uint8_t llhttp_get_type(llhttp_t* parser); + +LLHTTP_EXPORT +uint8_t llhttp_get_http_major(llhttp_t* parser); + +LLHTTP_EXPORT +uint8_t llhttp_get_http_minor(llhttp_t* parser); + +LLHTTP_EXPORT +uint8_t llhttp_get_method(llhttp_t* parser); + +LLHTTP_EXPORT +int llhttp_get_status_code(llhttp_t* parser); + +LLHTTP_EXPORT +uint8_t llhttp_get_upgrade(llhttp_t* parser); + +/* Reset an already initialized parser back to the start state, preserving the + * existing parser type, callback settings, user data, and lenient flags. + */ +LLHTTP_EXPORT +void llhttp_reset(llhttp_t* parser); + +/* Initialize the settings object */ +LLHTTP_EXPORT +void llhttp_settings_init(llhttp_settings_t* settings); + +/* Parse full or partial request/response, invoking user callbacks along the + * way. + * + * If any of `llhttp_data_cb` returns errno not equal to `HPE_OK` - the parsing + * interrupts, and such errno is returned from `llhttp_execute()`. If + * `HPE_PAUSED` was used as a errno, the execution can be resumed with + * `llhttp_resume()` call. + * + * In a special case of CONNECT/Upgrade request/response `HPE_PAUSED_UPGRADE` + * is returned after fully parsing the request/response. If the user wishes to + * continue parsing, they need to invoke `llhttp_resume_after_upgrade()`. + * + * NOTE: if this function ever returns a non-pause type error, it will continue + * to return the same error upon each successive call up until `llhttp_init()` + * is called. + */ +LLHTTP_EXPORT +llhttp_errno_t llhttp_execute(llhttp_t* parser, const char* data, size_t len); + +/* This method should be called when the other side has no further bytes to + * send (e.g. shutdown of readable side of the TCP connection.) + * + * Requests without `Content-Length` and other messages might require treating + * all incoming bytes as the part of the body, up to the last byte of the + * connection. This method will invoke `on_message_complete()` callback if the + * request was terminated safely. Otherwise a error code would be returned. + */ +LLHTTP_EXPORT +llhttp_errno_t llhttp_finish(llhttp_t* parser); + +/* Returns `1` if the incoming message is parsed until the last byte, and has + * to be completed by calling `llhttp_finish()` on EOF + */ +LLHTTP_EXPORT +int llhttp_message_needs_eof(const llhttp_t* parser); + +/* Returns `1` if there might be any other messages following the last that was + * successfully parsed. + */ +LLHTTP_EXPORT +int llhttp_should_keep_alive(const llhttp_t* parser); + +/* Make further calls of `llhttp_execute()` return `HPE_PAUSED` and set + * appropriate error reason. + * + * Important: do not call this from user callbacks! User callbacks must return + * `HPE_PAUSED` if pausing is required. + */ +LLHTTP_EXPORT +void llhttp_pause(llhttp_t* parser); + +/* Might be called to resume the execution after the pause in user's callback. + * See `llhttp_execute()` above for details. + * + * Call this only if `llhttp_execute()` returns `HPE_PAUSED`. + */ +LLHTTP_EXPORT +void llhttp_resume(llhttp_t* parser); + +/* Might be called to resume the execution after the pause in user's callback. + * See `llhttp_execute()` above for details. + * + * Call this only if `llhttp_execute()` returns `HPE_PAUSED_UPGRADE` + */ +LLHTTP_EXPORT +void llhttp_resume_after_upgrade(llhttp_t* parser); + +/* Returns the latest return error */ +LLHTTP_EXPORT +llhttp_errno_t llhttp_get_errno(const llhttp_t* parser); + +/* Returns the verbal explanation of the latest returned error. + * + * Note: User callback should set error reason when returning the error. See + * `llhttp_set_error_reason()` for details. + */ +LLHTTP_EXPORT +const char* llhttp_get_error_reason(const llhttp_t* parser); + +/* Assign verbal description to the returned error. Must be called in user + * callbacks right before returning the errno. + * + * Note: `HPE_USER` error code might be useful in user callbacks. + */ +LLHTTP_EXPORT +void llhttp_set_error_reason(llhttp_t* parser, const char* reason); + +/* Returns the pointer to the last parsed byte before the returned error. The + * pointer is relative to the `data` argument of `llhttp_execute()`. + * + * Note: this method might be useful for counting the number of parsed bytes. + */ +LLHTTP_EXPORT +const char* llhttp_get_error_pos(const llhttp_t* parser); + +/* Returns textual name of error code */ +LLHTTP_EXPORT +const char* llhttp_errno_name(llhttp_errno_t err); + +/* Returns textual name of HTTP method */ +LLHTTP_EXPORT +const char* llhttp_method_name(llhttp_method_t method); + +/* Returns textual name of HTTP status */ +LLHTTP_EXPORT +const char* llhttp_status_name(llhttp_status_t status); + +/* Enables/disables lenient header value parsing (disabled by default). + * + * Lenient parsing disables header value token checks, extending llhttp's + * protocol support to highly non-compliant clients/server. No + * `HPE_INVALID_HEADER_TOKEN` will be raised for incorrect header values when + * lenient parsing is "on". + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_headers(llhttp_t* parser, int enabled); + + +/* Enables/disables lenient handling of conflicting `Transfer-Encoding` and + * `Content-Length` headers (disabled by default). + * + * Normally `llhttp` would error when `Transfer-Encoding` is present in + * conjunction with `Content-Length`. This error is important to prevent HTTP + * request smuggling, but may be less desirable for small number of cases + * involving legacy servers. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_chunked_length(llhttp_t* parser, int enabled); + + +/* Enables/disables lenient handling of `Connection: close` and HTTP/1.0 + * requests responses. + * + * Normally `llhttp` would error on (in strict mode) or discard (in loose mode) + * the HTTP request/response after the request/response with `Connection: close` + * and `Content-Length`. This is important to prevent cache poisoning attacks, + * but might interact badly with outdated and insecure clients. With this flag + * the extra request/response will be parsed normally. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * poisoning attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_keep_alive(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of `Transfer-Encoding` header. + * + * Normally `llhttp` would error when a `Transfer-Encoding` has `chunked` value + * and another value after it (either in a single header or in multiple + * headers whose value are internally joined using `, `). + * This is mandated by the spec to reliably determine request body size and thus + * avoid request smuggling. + * With this flag the extra value will be parsed normally. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_transfer_encoding(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of HTTP version. + * + * Normally `llhttp` would error when the HTTP version in the request or status line + * is not `0.9`, `1.0`, `1.1` or `2.0`. + * With this flag the invalid value will be parsed normally. + * + * **Enabling this flag can pose a security issue since you will allow unsupported + * HTTP versions. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_version(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of additional data received after a message ends + * and keep-alive is disabled. + * + * Normally `llhttp` would error when additional unexpected data is received if the message + * contains the `Connection` header with `close` value. + * With this flag the extra data will discarded without throwing an error. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * poisoning attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_data_after_close(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of incomplete CRLF sequences. + * + * Normally `llhttp` would error when a CR is not followed by LF when terminating the + * request line, the status line, the headers or a chunk header. + * With this flag only a CR is required to terminate such sections. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_optional_lf_after_cr(llhttp_t* parser, int enabled); + +/* + * Enables/disables lenient handling of line separators. + * + * Normally `llhttp` would error when a LF is not preceded by CR when terminating the + * request line, the status line, the headers, a chunk header or a chunk data. + * With this flag only a LF is required to terminate such sections. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_optional_cr_before_lf(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of chunks not separated via CRLF. + * + * Normally `llhttp` would error when after a chunk data a CRLF is missing before + * starting a new chunk. + * With this flag the new chunk can start immediately after the previous one. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_optional_crlf_after_chunk(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of spaces after chunk size. + * + * Normally `llhttp` would error when after a chunk size is followed by one or more + * spaces are present instead of a CRLF or `;`. + * With this flag this check is disabled. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_spaces_after_chunk_size(llhttp_t* parser, int enabled); + +#ifdef __cplusplus +} /* extern "C" */ +#endif +#endif /* INCLUDE_LLHTTP_API_H_ */ + + +#endif /* INCLUDE_LLHTTP_H_ */ diff --git a/vendor/llhttp/docs/releasing.md b/vendor/llhttp/docs/releasing.md new file mode 100644 index 0000000..f83e0f7 --- /dev/null +++ b/vendor/llhttp/docs/releasing.md @@ -0,0 +1,65 @@ +# How to release a new version of llhttp + +## What does releasing involves? + +These are the required steps to release a new version of llhttp: + +1. Increase the version number. +2. Build it locally. +3. Create a new build and push it to GitHub. +4. Create a new release on GitHub release. + +> Do not try to execute the commands in the Makefile manually. This is really error-prone! + +## Which commands to run? + +First of all, make sure you have [GitHub CLI](https://cli.github.com) installed and configured. While this is not strictly necessary, it will make your life way easier. + +As a preliminary check, run the build command and execute the test suite locally: + +``` +npm run build +npm test +``` + +If all goes good, you are ready to go! + +To release a new version of llhttp, first increase the version using `npm` and make sure it also execute the `postversion` script. Unless you have some very specific setup, this should happen automatically, which means the following command will suffice: + +``` +npm version [major|minor|patch] +``` + +The command will increase the version and then will create a new release branch on GitHub. + +> Even thought there is a package on NPM, it is not updated anymore. NEVER RUN `npm publish`! + +It's now time to create the release on GitHub. If you DON'T have GitHub CLI available, skip to the next section, otherwise run the following command: + +``` +npm run github-release +``` + +This command will create a draft release on GitHub and then show it in your browser so you can review and publish it. + +Congratulation, you are all set! + +## Create a GitHub release without GitHub CLI + +> From now on, `$VERSION` will be the new version you are trying to create, including the leading letter, for instance `v6.0.9`. + +If you don't want to or can't use GitHub CLI, you can still create the release on GitHub following this procedure. + +1. Go on GitHub and start creating a new release which targets tag `$VERSION`. Generate the notes using the `Generate release notes` button. + +2. At the bottom of the generated notes, make sure the previous and current version in the notes are correct. + + The last line should be something like this: `**Full Changelog**: https://github.com/nodejs/llhttp/compare/v6.0.8...v6.0.9` + + In this case it says we are creating release `v6.0.9` and we are showing the changes between `v6.0.8` and `v6.0.9`. + +3. Change the target of the release to point to tag `release/$VERSION`. + +4. Review and then publish the release. + +Congratulation, you are all set! \ No newline at end of file diff --git a/vendor/llhttp/examples/wasm.ts b/vendor/llhttp/examples/wasm.ts new file mode 100644 index 0000000..995fed8 --- /dev/null +++ b/vendor/llhttp/examples/wasm.ts @@ -0,0 +1,248 @@ +/** + * A minimal Parser that mimicks a small fraction of the Node.js parser + * API. + * To run: + * - `npm run build-wasm` + * - `npx ts-node examples/wasm.ts` + */ +import { readFileSync } from 'fs'; +import { resolve } from 'path'; +import * as constants from '../build/wasm/constants'; + +const bin = readFileSync(resolve(__dirname, '../build/wasm/llhttp.wasm')); +const mod = new WebAssembly.Module(bin); + +const REQUEST = constants.TYPE.REQUEST; +const RESPONSE = constants.TYPE.RESPONSE; +const kOnMessageBegin = 0; +const kOnHeaders = 1; +const kOnHeadersComplete = 2; +const kOnBody = 3; +const kOnMessageComplete = 4; +const kOnExecute = 5; + +const kPtr = Symbol('kPtr'); +const kUrl = Symbol('kUrl'); +const kStatusMessage = Symbol('kStatusMessage'); +const kHeadersFields = Symbol('kHeadersFields'); +const kHeadersValues = Symbol('kHeadersValues'); +const kBody = Symbol('kBody'); +const kReset = Symbol('kReset'); +const kCheckErr = Symbol('kCheckErr'); + +const cstr = (ptr: number, len: number): string => + Buffer.from(memory.buffer, ptr, len).toString(); + +const wasm_on_message_begin = (p: number) => { + const i = instMap.get(p); + i[kReset](); + return i[kOnMessageBegin](); +}; + +const wasm_on_url = (p: number, at: number, length: number) => { + instMap.get(p)[kUrl] = cstr(at, length); + return 0; +}; + +const wasm_on_status = (p: number, at: number, length: number) => { + instMap.get(p)[kStatusMessage] = cstr(at, length); + return 0; +}; + +const wasm_on_header_field = (p: number, at: number, length: number) => { + const i= instMap.get(p) + i[kHeadersFields].push(cstr(at, length)); + return 0; +}; + +const wasm_on_header_value = (p: number, at: number, length: number) => { + const i = instMap.get(p); + i[kHeadersValues].push(cstr(at, length)); + return 0; +}; + +const wasm_on_headers_complete = (p: number) => { + const i = instMap.get(p); + const type = get_type(p); + const versionMajor = get_version_major(p); + const versionMinor = get_version_minor(p); + const rawHeaders = []; + let method; + let url; + let statusCode; + let statusMessage; + const upgrade = get_upgrade(p); + const shouldKeepAlive = should_keep_alive(p); + + for (let c = 0; c < i[kHeadersFields].length; c++) { + rawHeaders.push(i[kHeadersFields][c], i[kHeadersValues][c]) + } + + if (type === HTTPParser.REQUEST) { + method = constants.METHODS[get_method(p)]; + url = i[kUrl]; + } else if (type === HTTPParser.RESPONSE) { + statusCode = get_status_code(p); + statusMessage = i[kStatusMessage]; + } + return i[kOnHeadersComplete](versionMajor, versionMinor, rawHeaders, method, +url, statusCode, statusMessage, upgrade, shouldKeepAlive); +}; + +const wasm_on_body = (p: number, at: number, length: number) => { + const i = instMap.get(p); + const body = Buffer.from(memory.buffer, at, length); + return i[kOnBody](body); +}; + +const wasm_on_message_complete = (p: number) => { + return instMap.get(p)[kOnMessageComplete](); +}; + +const instMap = new Map(); + +const inst = new WebAssembly.Instance(mod, { + env: { + wasm_on_message_begin, + wasm_on_url, + wasm_on_status, + wasm_on_header_field, + wasm_on_header_value, + wasm_on_headers_complete, + wasm_on_body, + wasm_on_message_complete, + }, +}); + +const memory = inst.exports.memory as any; +const alloc = inst.exports.llhttp_alloc as CallableFunction; +const malloc = inst.exports.malloc as CallableFunction; +const execute = inst.exports.llhttp_execute as CallableFunction; +const get_type = inst.exports.llhttp_get_type as CallableFunction; +const get_upgrade = inst.exports.llhttp_get_upgrade as CallableFunction; +const should_keep_alive = inst.exports.llhttp_should_keep_alive as CallableFunction; +const get_method = inst.exports.llhttp_get_method as CallableFunction; +const get_status_code = inst.exports.llhttp_get_status_code as CallableFunction; +const get_version_minor = inst.exports.llhttp_get_http_minor as CallableFunction; +const get_version_major = inst.exports.llhttp_get_http_major as CallableFunction; +const get_error_reason = inst.exports.llhttp_get_error_reason as CallableFunction; +const free = inst.exports.free as CallableFunction; +const initialize = inst.exports._initialize as CallableFunction; + +initialize(); // wasi reactor + +class HTTPParser { + static REQUEST = REQUEST; + static RESPONSE = RESPONSE; + static kOnMessageBegin = kOnMessageBegin; + static kOnHeaders = kOnHeaders; + static kOnHeadersComplete = kOnHeadersComplete; + static kOnBody = kOnBody; + static kOnMessageComplete = kOnMessageComplete; + static kOnExecute = kOnExecute; + + [kPtr]: number; + [kUrl]: string; + [kStatusMessage]: null|string; + [kHeadersFields]: []|[string]; + [kHeadersValues]: []|[string]; + [kBody]: null|Buffer; + + constructor(type: constants.TYPE) { + this[kPtr] = alloc(constants.TYPE[type]); + instMap.set(this[kPtr], this); + + this[kUrl] = ''; + this[kStatusMessage] = null; + this[kHeadersFields] = []; + this[kHeadersValues] = []; + this[kBody] = null; + } + + [kReset]() { + this[kUrl] = ''; + this[kStatusMessage] = null; + this[kHeadersFields] = []; + this[kHeadersValues] = []; + this[kBody] = null; + } + + [kOnMessageBegin]() { + return 0; + } + + [kOnHeaders](rawHeaders: [string]) {} + + [kOnHeadersComplete](versionMajor: number, versionMinor: number, rawHeaders: [string], method: string, + url: string, statusCode: number, statusMessage: string, upgrade: boolean, shouldKeepAlive: boolean) { + return 0; + } + + [kOnBody](body: Buffer) { + this[kBody] = body; + return 0; + } + + [kOnMessageComplete]() { + return 0; + } + + destroy() { + instMap.delete(this[kPtr]); + free(this[kPtr]); + } + + execute(data: Buffer) { + const ptr = malloc(data.byteLength); + const u8 = new Uint8Array(memory.buffer); + u8.set(data, ptr); + const ret = execute(this[kPtr], ptr, data.length); + free(ptr); + this[kCheckErr](ret); + return ret; + } + + [kCheckErr](n: number) { + if (n === constants.ERROR.OK) { + return; + } + const ptr = get_error_reason(this[kPtr]); + const u8 = new Uint8Array(memory.buffer); + const len = u8.indexOf(0, ptr) - ptr; + throw new Error(cstr(ptr, len)); + } +} + + +{ + const p = new HTTPParser(HTTPParser.REQUEST); + + p.execute(Buffer.from([ + 'POST /owo HTTP/1.1', + 'X: Y', + 'Content-Length: 9', + '', + 'uh, meow?', + '', + ].join('\r\n'))); + + console.log(p); + + p.destroy(); +} + +{ + const p = new HTTPParser(HTTPParser.RESPONSE); + + p.execute(Buffer.from([ + 'HTTP/1.1 200 OK', + 'X: Y', + 'Content-Length: 9', + '', + 'uh, meow?' + ].join('\r\n'))); + + console.log(p); + + p.destroy(); +} diff --git a/vendor/llhttp/images/http-loose-none.png b/vendor/llhttp/images/http-loose-none.png new file mode 100644 index 0000000000000000000000000000000000000000..31877654dd82b40fe2088a8dd3357a1a578656d7 GIT binary patch literal 3571702 zcmcG%byQdH`UR*6ihu%&fHWdq(p@4dE!`z0UD72es30Lomjy^8-JsH`q_nhjcg=JB z&7E~;%~~_RS&Ps2pX+j6^>EJn)ZY8q@9Rej53XR5V4XX6?uzuod&=j|5%`}wM`MV2 z5q^hbTT~eS=e(2hgS+Q)JIUtHofAJNeNRHw?flY+Yph0JHTxf2NqkiT>}wLLOBk~G z&t83u{X|UakFR9>n&TrKJw1v1Se>VM-Vbr`I_-Ep|Z~Mn_nVYr8a_s+kj?3vV zSud9?ETEDm*RnO=Q}`W=`Lk3o;Y?qqT2_(GFmG0Fg{35u0V~SB*glpQt30IB&0F6wTEP1$8F6gmtaFHz=an8V zv1zkfE*?;5i)QWlC>6|YHzq8fz{}c1zRdm}{X=X@8C@s;MvacUtUpziTP~$JP0sbj6y( z(bY7}xLy>6@OdWj?CDR5`O!+(k};1(50R-N ziyp_->fLCGcT&VN^eJ8u7q0SCHBtI{?ffmahiXAkSsjj8J=tB>S`A~T3e6bNsC`cl$IU}{`eRqkt}IXS)$VuT+~mBiq3a-Z@e0X1o6=F?KEf_!@At0B!;4l@bescCZXz&>6XaNWjkM? z5K_KQJ=f7<-5277bd^g5vbJRtfx7N9QTu&)KE+gY<0v{h=h3hUo~Wu=Y?3-pzNVjD z$jbW{pwHp56LczU zOCD|0WnrQR3<=f+(xHM2UlJjGU^_S78&2cE{7)am^AqWp9~)PTd0^e zAZDW}{4&{@iqq2Q=8`>aZ$4r`FHryDdwOC4-~Z&W_Vh5gnK09CCQ75zwPrI3hlHEK zu6kSjU}sq;(8gtFsv<7|dYI#N!y(mBsLMyaVw&vhm_K{NDjF_e^#?ML91 zHqX`S7&zw4zI#6?YkGa07pvC3W6vBdEG&5K44RuBJCE12Q#d;<_8%)Z#N9(posX9E zW5@BYnvJ(=HT=$6^84f1LnJ3pL;cicIqXOj;PPDh`T*vlubTZ?I@3@^I%7GEmC;S% z$6jwFo%6dy(JXO^{M`jy;X6p(A1b!eU^93jwX-@d_UV2|>)ON*BKNkzf&HWD!CKY@ zio&krqlz&UB~(B6e;-H^SLB_Y_oB{ba&c@ea`pwbeo7MQ*iTucCq*Bw){61)@B|lk zI}hmbN!d?9&Lmo_fVre&CdMF{Ld0V_T=J^4nwlCUpqwJRanWjzZJ7jK8&1QzXHsKM za10ZRJLl-TPHdERW4%}A2DTMY^Jy^KbqsT-fERs9j)gwNNe2qrsdDK=bP25-t1u_JDU5;P;WaK(-R|BMk~!zymwl1 zO2-7P=HQr(xD49}tkqpmL6;_6++G^w5<8l}b%L`OGZiW@8+)`7Q=7# zRk%3o^Q+Hx5&YCpY&I$=wPu{BU)@@`1Vbj$ z3+>Ne65EqVlZ%U}2ydE8@f8(2_!YKMIeyGWq-!sM447u!pQUfYw15;QEs6Ms>A``F z;q(>J!_ux*hjH)SsFTzElvAyfTm}A#7X;oh20rcr-aF;ai{+>S1U8A_T{<4^tDM$q;Ub!_!cXLX`u8U{)cC~W0e#O@X!T~CAb<)W5@Wi^1)nzCRxU?>T!jzb*&fGL z*r%?O3JuO6oM$dLyjs*RH4MC+D_mFgJDKlN8^EF37)Fk7G^|~+AyB6HL>JU zTIH6TL1R%`7M);~l;k=lfM6sFV#ixrDO{Ww_bLwHtBi8h7z)-PR$ zh8z3P_36ZmKvpQ6?X2m{?mRucgS^9EpB{ucc0B$IcuPD~u3YY#<&xpnLC9IBZRMyc z>)3ek3O5S7M48jGi@Ig7V=LBD2H>O-P=`sm8J?aTb3yjig;w5)_0bEy{^G|=#$h7S z3Q2;ddutQrP%+vR;jwc`BT8(Bqq~q~1-Ywa+~;sZ|7mAUfA;0zi4XP}T-rEo9mVy% z87f>x-(Qp;V3*!{^ObG-D}rjp0=kmE;;M#zk1%KLm~(m4vv;46`dvo?Uzgxwwu-)i znT->wg3$yr92|h0r~6P^2on_XTiu}fpCKLJyMGafI2?K|e!g+9P2I&Vim~6>T7_Pa zN(LcZ9b0H)OaSIcw(`P1(JX>v(6w!|Q#^aHcSA5JyixE|UVgi9dMKFyCzp9=;^HA- z3@U+l2z@p!4W{qpeKqJk-4~giJCxeoM%8!ypU{9onZf)Gw2w$=EW$6kQ)Od>w|iBP znzT8eo-*4^6V?tb1z!_W;Y+?Tx2cf%!9w$z)8o~-$zb+QvjiL7rr#LV?KS=Wjcl#E zUyYm6I-e-bvM&7wY-a=eB_VZKfYgNY3njMK>Xe==uPbt-QB#hh3H{3bsrZJTe9F%M zjsq5GMX3&vr2+Mo7OGt(Ga-1t`*{FWd}0JCeShZBpHcOhT$!Bh~(h!d;c4S}SvRqL&A@y?x>6iF(ZR=iA`oz+N z^4}V^E|k|B(A`B~UZ^i^Qbc;(Z5s#{#Ipi*oGFD~F7{5Aof4(lxUqgsa7EfWYF^GW z@titciEyc13eTmt!?u;Ikd-v86&kdqo=t}NY<(hg?p4}vQS^y`w^gR=8_ZhL+^=Kz zZ&rdCt0mcUCC=bvBL19fA0-cX}xK$;~)=KhpbpY1-4LTIC7jKU9>3cKLoY#c&K zRMFGZyC@5Db>*Pp^DD|~JmwcoInpqdbYV;~^G*=;_6V|qK9psbrJrF;r|8MoIuiJK zHF66N7P8pwm%d+RKw}BUYrU24xWj8RRD?qz%#W19AB@3u4Ild<-LhV%lZ*BKOV-s; zb$YUT+G*#r2?K8nUHMG34yX0+d`_xOY#&yq_U*f<$t9R9-e?BI=vrjP@c9)Z>Es=| zM0Q!c)3woV)b5UX4nFx5;t2iK?2GFP46bhQE64fNnAw6hwl;_|?Td=Y4AQ?M^=#&| zbfj7JfCy3*$|r-ETk)EqhR;n$Dt6}iY-b^fs(d1l6kVcU0!1y5pQ+sYma5LpMT1j8 zz~H+8kW2z3#!CN3bixUoF`68mQU&M(+t!+Dk7n4B#<&|0dbt$Q>Zh?H=mmdc1)UdI zQg+9E#au_7H2@+E-GENC75@R5QlPkP{X~Vs$l}|C`+V%wTJ0+^IP}DoKj`toxi_m0<0i( z3tE}7+DSBa?SEY1n+5_c*VATgce7K7oj&QQ^7A|uKh$KU_tcnxLKR@Lk3gMt{B87d z#vhyQ3Fdac=M@+>Opzf*F2%>pbd{cIASueqaYnn$rSANt&rWllgV2O_!^c4|w9TYF z$n4OAq`f+H7O%=5o|x&%Uh)z}?y9v+OjXvuu~K_eiar~WWbV^%%OO08xV_>IAZ?timP1R=<+kPwbJLa0ZA^!r_^j-=gOH zqULa01=y>%lz9hDBFkqNQ5Jw=ewhIRjsTQw4Ah?R94?m{cB4N5UTzbMk?a*^eT*4GG$X= zaLD-YctRGxH6ZNn=-5Qgc_o+khSQUJ`NZRYIZMpjV;+58~O%w@sUQ?vyz_a&2tDWZ+J>L`Q zdqflUsAYOKA@ZxSiq@{dhwvMsA!kfd{-@E<3`NhZY1aY>`Y+O6#=#4_8S4fw)^wpa z!@w*f&$|=a$~c76g}zF9b*y?5XkFH5yyi(m`2;!z=UNo3P203>z$ZXwZ4pZ!vCekkmG|M?r`chzudVt*eG@Fd8-Ty{e+se@3nWSAB4!L8;A`0o(?@~_B|{$ z3Ai!Kqk=Lh_s@9?+5C)tZdn zl%;A{ChF*5EBZxLWt(m4{CoaXi&!Zz3d1C+9>_uH_r|XF*hO8>xequE*2I6%7|bg-IZYnA zBPg0X3~p`IK*%`L7OlrGmCyO60rz2g$K?Mm{ONedsM2b+G2Ie($LQ`Dz9@(+ACo_I(=~??_d_B?cD`H*5dQPb zq=P5sfJP8id6*7kfd_MA(;qlWS^TT+OJ7M%xBm7y)t!G3GZ9MZwI+ekYqz$(Vm?cR zdF&>p){DD@6X7}9#Y`7yf`2yuw=4^<`EmP3ujmOsv`Y|7m8%L3Oi}0BKfA6@1NQEq zoy?sWg_<9O+uARW2eaV)%{x@{TEz>Q=pq$kU#KFW)IpGeA76TS7B{#1lr*^7DhVv$Ksf5WLVDEX}y< zlcDvb)9;QOkYWkA*>jr770g6Ky)FJ04wwwT%h!u2YOeCB{PI{aH$DbOoE%5S$NNUP ztyZ^Ccpfc|_DmAR3Ka5sIsJV9xePROgZ4j$#G7vsLq`>PKZNkKM*a4G+K4l5SefE{ zd7{+E@$71otV^^w-8X7o*uG!Ns}YVgI>`MIbIG#$UL5=DVUbOgiaSHh7Cm%Ou&1MSA{bQ`O4%w=gG~FG zO1)Q-Pwg8px*w*%JIu1bR9Nn6-Tj&O$y$W$>`B_(;tjXW4#*5h%6flY&#@ueA5c2i6DV4t;ns`cVKpI+C z=Frl?M}OfG-Ra%~WtGUSze=Q7gIO9N#rct;MvJP)!R(dAoBsQ&#Vmm~#hdq(rqm{( z>Tu<#X>aHbhUorn=;@FGvm%owFAG#KbV56p1Gz^1IZUW&Js+i@ZC?Y?=Y?b^1x{;C zPG?I1w;&WpnskixamUGCJKu4uzBeUX$!Z%&C7 zMQ2I(-;-%962iBB#Bf zV;gJBi_0w~!~KDG3BQHIoVAtm>oST;;diWFs5^Q}Q%&?aI`n*Fu|<|qBd!LHyQ3}5 zZ(FkR=oa$~_`1Edu6@Z>pm2N7OW?TnXZks=<#Q^}-P|jIN3(n}sXc-yf~R72{#af1 z2kFH0vkMUpQxSa{ry5Gv>4E3C-H~vb)zwqLc*n^M`QlF=EpP7(Lql5Z7cO{`$~YRLH z(prqTb*_)0=<{_mtQDh6xGY9nf0c6lB_&G}7avnp$JN#Q@91=iCKTBwk=cvGF{ki^ ze8o18m92=Ho;>=Ec=aU-PzGjKSlVDt<3C`Dlhkq^#CMyC@(s8vdg2Bd66PKlL?LGa zSFn`WCykPqVmL_jWtXb?C8dJPn1K6spUICaG2Vvsx?X6|HXzZDqje<2be9TXEJ#w5 zV+Avl!)-FC$&`lDn7y8O)4sZHp29L8mTw zlH*-PbsZb`xAqDsNs^lJ=nEp48xTlo@{y!=y795SL*W>WVT!ipsn9Krc}CvkiWqgx zyArU}2Q5GvwMHHADRQ-nD~^+PzCQ;Z zs_sJM&hlc`wL{bl$bRMjhO5+=2v}SR#8q?|aaei0g{PT_mf{^f;;aE##c?sGMeH@XG*IGvzVEO=zh_y~Z&1?;1*Dx5vK4xv5Nw z<=!LTa=1#LU>m=+qDP8TKI$S{fwqVeflu8A6Y^s8DsB(kr5x>dwK11E@p1db$4^hZ zjFfn8na4LS*Kbh!Z%kVn;<4!c@^k5GX$}fNMM)Dv}NrphM>Jp`wOLJMV1u7cBk7$etAJK;@z9k0k@T-skMQybCJuSzygG zUNnZvtY@QQP%zZG{-u<@AlTFnO+gKw{kGiHa(m~B9tsqj&OXfK4 z9oe4~`2$z+;uRUu!|Vxcf)7ESs@*K+?XgOPm9R^N(6~?R1Ndx5${ruf=)>xgs#@Q0 zO8UjQ_f#l2EWm1d$ZCUZ)ueJ60HbIZJ6$a$ zsc{7v%6EpQdlX62zWtXzv=EEsE)nTtE70Z9a+gGqWTE68-z0dVY+z2pacj_Z{9vd< z6g@go{BWlw%vaabd(VgyU+z-E=IrIz(Rv@;hE=%iuZ(kJo>IGU$A|c6aHz~XkQ^4BIAr3Ke8ZPxi0`Il20dGr*c4Nphrc`{U=R0GvKTSmoek!UQ+$1UiQ~U{tf+ z`UBNMb3fbagMRC#(!OK?K%M5*+x=~TcIxD+9TDs9(-I84j52r#%VMq72wbW)E`o|G z^!@{;YTpBDXlmK3!lBG~FPY(@ZPWiulXo0(XgNJn1jL8aP+VDU-@y53y@js^=DYov z+S`;~`O}sMvZl{LO&c>2EJZa1GT|u6s{*$HsI@PjKYxiVT%K>V$P1CLGoO!&deJ(l z%`pccy9{s$ZSNay{r!rm%QA#0r;=QTGH_y8&}hZJkRf8WPSY4YbszS|mC|t^Q%qwZ zciPq(fpHMhu_;!g0QR+@mRJRykHSEL@jHnDfc>241)7G)jwHa}%)X>9&B#jP7D%s; z54M?``g(icc@l_S6Ju1IMp{DSyaPns)O}=}5#I@&sLHwSt3%7RL13 zki09GB4iAWV80~TZWu(QIXDi8>R;uBFri;CNU>a8Mx6&>)8)!O2rsk)ZeZ5Zh z=Tu(sm)MR9`W_CCcW0=iZ|IDM!A1r%Y=_800JP?U5+o}-)eYIy)an6gQXHsM%W+;K zRR>w$An-;BLrW4bUX3mhN){*6tkYfNEh$vvfyr{yPiE!u!H)dN$u9J~(9vuUC;~&L z`ke&o(!-OkQ)!T7Wi5-jt^JXMJ`lDH`q00U9 zg#w)fz&M9&eA0FyGJDa$}E9b`h49U@+MGpjRJ4_Q`fF2(o5gR8Tcl431Vf zGgBJ)?9Wu>wu5B4|5>YKBwexZHA_oNWxidA$7X5zB<{m}f#k&X$;zJWLywyOiv;M;k{VlJ7v&bQ|tF?kT=(3pJo8L{ua=#CNEqFsCtybi;q( ziU}hE26b5eLx|**lv$JjomZ6KXNqRRcB9F#&7v{AC*G6aX#cM~beC^3#Mk$vPf#yr z>RwWKJPEzLJXFj)K3rtMmE~*XPi1~3R~S*{%q$ukJZgt9jz$!cI}-+bBelM#1Ro-Z z^qwkpf}l6ixnE0Q@)gYnRHwNSr>+h-J>kox<0sg2{mz6FZ;?$|l_;^>$Uh(Tv@0_29j1ox znm4-?0ehwJ;TQPxYtbcWm~Xr8$(F}`*Q*pk*_!7IgqQ@ z=82D{h0dg|q0z-*>%&fJTV|vVF^gnDM2(yMfs46;z$g@G#+~dM;N`ME>*s0+G_S(K zE+;>Xbhzyxh19qzHuFwJ8C{C)%MHI!q+TOyF1pCp`&PFsGX)pOdH%@MS=)SHV)xx| zY#?GL(`P2TE2B=( zS4aDWR;pqxz-EvOXv!RsZI3ojr5|%Tpsa_YK>5y!;M<#qL!`>sj#j{StvVuK6&0gR z@j0*<;|2ub?7l|aYeF^qeu#L z;-caZa^LoAjIuA~iZPMc9f=(A@nkyhC_U9E>qu{PUDE}A&O;>yQbjdts-|um-&W1b&(l?dt;K%_+*$vL)tzW;8hy+}QvjOIG+_Omj&AXSG~RJFn62VVqKX>{_qi z+1^^{v+DnSYi~W)IFxahQ7~8pw$bg<+&5=$-Z2!<1$j>uBw*9<8CdU(iBu5G7_oz9 ziMi_ljz-iRvp*w}O|7B*EbQMw1#{*XcnjGLk2c|e^_3A%J5I;xh>?aN^k`ha0Rv=Q zx_DJC5I672s}a|6V1rGX$eZRu_>x&ADTJQ>y+hOtk{M+ALN?v zp=bO~O?1oHVP2%F6%`33{~Z>~I#qLVzYJ)1_QOs!Wdh#Gzdw(O7`ps;iQ5Go9a1sU z)6&dBGt(60gAAKp$D|wINR#l$1f6%Q5cw^?^#5%$+i(vu>97apsI z{?njlIWZX(Ji#_={=Mf^pwfbD0EEfnq2UfqeifEnB0mT0-7#=g0U!jlDAM~8fs za)oaxnNh{1!>P-;D?Pct1G462Q%rPVhyQIb!vPwHFvz)tPIYu|Td{^ROL04Fc%EZB@up`mRjRqw-tAPf2 zGS97tyh9A-e?K;;WUFD~?Jb}oFAGW8fT2fEg#QQ>Ndzz|O)9uQs=+nq#XT3;6?>{! z>qE}`AzW?Hq3N^Ir@WfH8z?!9?;}>#;Vfc3UM`MQQIJ*;w2)pl)I&qB$rOilnC!LD z!b!a0cPUWyJ2ho%{cFnfOv~c-#By1H69%@H21T04cRQZ0j+J$vs=0Eb#8ap(ukISQ z|Iu{hXSFOuVPog(xsT!Eh$fp*2l2ZJd-xh?)GvYRr)Z}M6OL_(Y*GvT#n}k~|TvbCc2faEJteE&@Qbb{!hpr>RH$YyF_J45#_k6)WEm5Pdoc)h0 zgXAh&kUy4$5?Mx8uB`gVSn@o!W&K?x zJjNisd!HE?)Pm5i;y9Vxth8gO2DR7WY-V?vcdS@dFAmm*oNWJZ9^}6@G2$5b48>H< z)RMO@;=BS1#k88 zD!#^VHa}%-e`r=-(I>wG;%+&!sRJGJ9hcw!Ce8gfuUH5iN6KDhs?k)qj^kmuH{QhG zUW_TkV2nXUW=dsvWGNATx=xATm-PSubVhZ%Cur!c@9HKS@Nvbes0lXW%x_^~-GZo- zWH344``|Fesh0Z~6@i}LgTWNl|Ax!#UXiVy_9xPqbAAO3`Arn~LME7wh z$dn4r>ce~pz7FW)>s8(dngV}wHmYHv4;79He%(aPj11PP9P&BZq-f*NjdI`TqdSi_ zBmJjGkp_%G9`CKadP_qCT8zoRpJ)!YUh^L=y^3aS>#^*WK>>N?m&f*qNg^Cx1h);z z`cfgh0iW$jVd-aeEA(rF=J<*tH#n>{>uJL7vFMTfsyPmP)J%Zm{!^lIJU-_YDo&3S zTIx0Q{mEebCbH`sR_gUWhd1O+!K2Dg9-}`en3&5TQj{Dw3 z!q_TG9%e@Gy{bReY9;%mKlZKu?AKp(%d4(uq@43hqR#j6uHRe7|MAl9uhZQ9rP|X# zadY9C4xnY~Z6x`jyi(T^FtTSPuOC{mLwVXB2P{`IXqy1Oz1!`qQp8*EyWb z>bbh!Z8bO2h`+yuRkfpCpKnA8J2MZsZOI&Fm-1m7QvTi8-`6)@0Tg`h5<8IBSLcOBTH4Yo?dtns#^6~e)7IpA(MF_rn zZ0{_BTLu272X?1U$*A~vbsG3c;2X?*V-?vf&Xdx0Gpg_Mtx2uag)Xcv^m2RLbq=q+ zKvAQ+_d-bUMLh3s%@-Q!q<2O)8PxhnhEI2=;@2MZ1^N~`I+h&0$wEmH!S}m{>o51s z67n|A&1(*0?n27(=J1vBm(eJ_2{<0#gRhBi+;m?xm+V*0Froz6CSHtpHKc^?UX4 zJoruIM8DD%>+O85f3=@TGgfDM)6~)OdN1Yl^PV3UhRbIDCETIhyW` zILg*PJ3p*1iS^_te~q#pK_>0r?5~3@jcJob!ht^qcF+$>75>RaRt(OxKR-gAUsXBx z7zV!JA9y_uSTfmql`iYN%LAEei%x!F7F7kk%Hh+q=ief5=fBgVcs|BL%qAG^PH+h} z5!)M}FDv<3xG;><)_H9i|8ip7O-pV^fY0nzwb+HYodg~$Lf9WsERm;V<}-%q3Kd$NAit6ZjBg(3?s23S9cXs~Z3@>r?ESe9M} z9J&xfkH_-a>3^>K9&+k#^Ygug1C^1|9U~z0f-YbO`(u;xSiTDopPinz_Vv55_Sz)z zJ5>yemNHp(Ih-wPvFhg^|8#s@2FF$1?00W^gdoFJe*!$`D=-hX-LU9=%JQag@4V32 zmjD^@_w@jK2$)N%;R-)O>$~X>X&{x#ez_PQcFzO-nAL(Fip;RtCRfMay~wxq>gb4| zJ@$HEW=H7A$mZjjRw7=UM|-Y73Nu{2Cgmnhr}Kihb$qTm}Z-(UcY zZz?nxOnN7ybxKMJb|JtF=P-5MP3zm^l!!Zt13rY}TMhVV6EBtBR?pTXqx7w!ie@|h zatFuW2b^T8^50i|(G?IQ;malRTp7FrRIL)|$*cbk7RnIfm4ShdR7X6ItHOjCc$Yw; z3j$k~Cis>bBj$uBhGSsavc%8M&YtxNR?r-NN?dCAc8QYgC7I(x@Zl-3;kN3xPVcq2 zcGeZtZ-ens>gTqTwI2*PGR*TzArGLpCMRm{>I#FX6B;T>B3bO04~Fe`+C|xDmX?cl zyRB*AcqhuQDAu8aU{LR27X+WO87Ob(6VOukJ>AVuDI5m-!>QF{FS@C&RJ zmQ(7lqo1VIK~kFp+Bg`9g5t7TFxhw;6GK#N+1GlPI*fnv6+e*tg<~J3uwBkP5N|ws z4+z>oUf369+Q)x?zRL5hMzhrBJdai>M`b#chF1fd#f^aNKmPvWGKcTU(Rbg-OcSH9 z2e8J1ICly@{fmcK2Y#n=)%r@8dk2jXeFMPKFvP?J96(7BWx?HB1CZX~dCs2Ta+mB^zEQo3qEw=zj1+CLEgHH@bREP55r~JF zj`-#>V8D}Of$B=aV@UuuU7_G!E{eD?upE7bf+&=AdlT<>X5B(xR^g-O*VpMAL5W8+ z)f5&+D;rI4vRi0`I8G>tZ1?`{&(SHe9(2qyF84dD`RhM_&-)zn7 zP_75TlNip8>r{_QF#2=#NI|6#{D9J%`+g|dO)!so1GdH{6YdCA`gD1S=c?e}_suOW zjKkPU`maWR$c#9;p|SU#CIOeRGJEs6TI^qAVvv!K;eE{Jy%zYnA_6? z08lQEt-tu>LN0Fr^@>W3=(}t95*?B^B`|Fvh`T9;@6mcJY@UM;61~Un3OVB9iEOPp zIyt#Mxr%$%agVtq=y&akKN&RiRs*jBuxUv6#+-vWxd2u%FoYNZ+S;`qmVGIqHw{%$ z5TNY@TQdI5b}sBw?{!?cecvDI`8jC8gsef}n#6zq4Kco=*zr@ydo*AvN(xdaBuH!) z@2s3TV9r2;hOEQ>lvE<_C4^oXzr5VkB%l>KjS);1gBoG*#=i#gnIQ20x);NyHwm;; zm?#X<&?>if2olJ=FGBC;LkxGy!0X3Y&gj4q(z7uvXaB18^&Nj`@c|&Ov)zw*^c{I( z_a<^B;)gfBTB=>vu;7O%w(>(9Xb|7yGFS_T>EOTtWQFF{(6>}>SFncGg<`fR3Gp48 zb-NZ?4;CyXAXGN^`FlMG+-5o3Clr4s&WNqb)UuB4^aV?DM8@$Rv~KxA*j`}ku|B%$ z!>3(rc>}?x2`%}++HG%!-S_5QD%UwaI~!W+@S3+uQB|hYJSHTm7r5X_=N=U+vqyjzJ@Ut zH>?)C&UBYT&+V zjEGQWzW#4csD+i9(dz4Tx+7K-a=4AWYvNW*!_qM|;a`cAmb> z(7bdAgHLbas8dwqh52Ebam|DNZoZfrku&GS-&slv?tp*+=$dxiF;6=~&8bB*<{uN#BKqXRe{T5q2e zct{q=S|Ka zFQHS(`_Zxw%MJ@#)edy!bBL2Rv7+#LJsY;49IaZet^hb(;)AzYzXGnG+$JSh$*o7G z9Nk`yUW_JF2{%Q|cYBt#LW}pC-$kpPCTIRdIVwIIoS)-WLhE~Ko5C;(sD98-(-}+Dr z_~c|Geu?RBOQ7qxw_uQJvuZ~h@F2P`x~3Z9Lj~FBy%BYy9k!vmF;<*`z^K?pWL70AG=i>Wo-(!2B z0aO_Ui-@boU3M6~mYMPqe>Va{3c^gavFu zmRH~xd9Ogu$woE-PJ_BRU{#2q8L+sNJ#c5FM2KsO(+ON(;v_-mAb@&+4iUbFE4(I- z2$vi{65pT#JPFcF8^C1}zrb*Ravog8uY>Z*sy&{E`6`%_XjZv7Oixb}7$^!^i~*!% zqTjORIew_0=+Jm`Py{-3#93;Gy=HInp9yHF62MbI&9H*O!MZMgP<`sQgy%1@Cb~GaX{0gm?S(nc*J6gSm zU9?%;$W=O@Tvx|_ReSC(#eEb*(3Wq{FPU$D_C)M<9w3E>ZMDGWz-AQM^1)Sx00+x6 zJ|8f~+<&hut&k8y^fo~!f(8aOzYUf(n11U)Cr1--b!DLhfDo2-#I^`Bgy%Y&vVeYCgZO|A^O2@Eumz z`I->NESCCpL}5n;uk~4mLlr8wMhvcSGOFmiUsAede_2wJ>u&#nN3ZauJu@jm?xm9|Mdug7^hoE66 zL3WeAGgUe-Mjwmz2q}IGX`wD=KgjvKiL^Q{U5MOwX`g^N-bXT_6r^m7hgVX^HL*IY z{(cPRtu>7yPq*Xnj+`GxL3Rs4MhuvXl!_N}wO(mm#$)hAV|)f*mmCsxWmOqiPeOw} zf)CEl47oD^3w5Gh?Ria5&kq*>m4OG~6nqAoY=c_SWZ#qhr7?hyo1g&1E+ZFy45x{K zd2uKK-ESygvEY_-1S;6qh#jR?^8~DFkq#L6dK2E?gIZn>86qf!c}SYtpOG83-O~gT z`0SGP!0AVuP$BL+k&x>OS&Xiuw2J{2h1^_8aq70si1HKTOy{W`WW5EMLYI1xm@0#q zDtKQm{_+r+476f*)riB@-tJ{bL0Hp; z`=jyMGWOmn21Fb%FzZ?dafgZT0fP<)k^UICuvo&fWZ#)6Ft`tZ5f5_xf$1Tx$kro( z*V6b^IfS(K=8Ae0+FV}ZQtCft8diYJkIgP8@x~l10OHCuqu5ycnxDk)#hoa&<4;&2bs5c3nv3pY2 zfTS>XsuoCUoJ8CkCOFtlTJ@qwx|qgY=+i+8qA`hF+Ck?FN1ZWNh?SN~DIhA5*Saf5 z`FlC|`1mSM!F&1*0n;FyY`BDKny%~f^N?hTBh}0m$ih%x4GQqpzHHGawjOtKB;CxsVX!72ECq0EiaSt@u9~u7UIZQPUlB7Vck?*g7gJa$VcRP$u9|aKU6GLMX z0vAA>I*IaF^}j(_A1vvSDyaNcn<}Y}iT=#cU{Hc7XlPYcm31iGykO^$i}-IT2rUjCMHw>00?tllbfvMk1sbE1^ zMk^eJH*+JYwFJ4Qms&{90spgzMr}GGf@SVXPU0Tx@*`H&wY4z<((z z&{ZLeh7Cp6_=kP|k_QhA|sU2=paA7E8n22Y@oDsG{%$PQ^jEEJ(t z7Xt_;VRRRa&dr8H2Ey-B^@vD0zw6cJW6XYcm92WKdk=iy3%094r~THF61=jJA?2MJ z%b-yYUo4XCP|&_8h~rJ?7V>fVVNu(|w&Q&)Or(l_WYD$OVDoASx-qzg&>AI-zuAjJ zeq5VtkBdw?{P?W){Dq76u(*)jt)eHtZdI}$OZ&Y>!WZe~fcsyY+&qPb7s|lSD;QBZ zg-YGlC#@4^WvRm%6WIe8cR=}!xLz*}A!gNI0BeK0Bv>GF36b@&$;0tepF{}kb;$c) z-Ij8e$zX$ZkRKx0bp-lh4(Nf(z$~_)34tZ07FkHKmkK0>DnRtHJpuQW%5uTYn6fW5pii)KDmkUxDMh~wR$X`4cBooY;gYXy;FHRuD& z5C!&ah{1Q(eEoGrmbb-e-{xRK1TGkXs;zUk==-9ye;q0u>Uhin!602~VuR$={G&F5 zlL$Sl-}y$L*Se5($c2Htlq64ZhT|JdgZW^ON=T!qr9W zMvKa0wWj4czJO~@JfG+!V|i~11Q0@)PXVd{Uivz+(F(vaCt^*SRFh4B9((sn6Wk!w zk@WpCDW5GF$mrDw$zs1>00Iatpic&CQNt#ktmJ@}@Khc_88DZ4!)U*O+!BJ^ z6y(sW^uSaij4^f{BDiHi{#!WXInKV6@62#B-uf4quT-YOuXw_k2T|TAHh{ma_dJH^2q&xw-5dO{bM;zWfGwq)A~CT zJ*H)$E4vDJNp^Mkcrt!gIs5Zcj3y9pUJZj*?XFR$YCl$C7Xo^DDHy^eu?{OM{A^`^ z{LA)d6Fz~TUrJ@VaH3|#Qw#1VKdAtKsmUK9@ZW>E&-}a}QdEe>3R&rU#JYepXrGln zA8)`r-ruMVx(Y(CSWAWTuPjDBhBt3nV=>4XMN<0g8D)c4ATS|BjB6Xg+F0#!Msf4W z0oX)l5^<#CrSR`PtOiff!Fg^2!CWXR>o&ne?4bbIOM!$vxGSnxJNObyKoWtOHb7)7 z{M=B_vD;VzEM%;k!7cLk;TUo;*^;O1MCzHNi*>m~cmhbt##y_mq(S~vL@b(X<%Uf*B<~6AD&Q$6 zKfI(En#6&9z!1o-cI(MOF6-cT5Z1|RqN%l7n_|(3 z8!C84V9$7zZ71zciXk`o5A-FYW z{i!^+7jA&f{@|pCRqvOt4U0GCCt;3&Ybp1n;64aa1O_q{;o~d4g|Eqc##s6L_WzOZ zWp0c(@x9@G`b0Y92^rw|=6*=|NA{12h289tTdde%)oJfwpq3(vSz|0IM$fE2Iwd6~ zzyTq$zrq&VU)Xj-?nHe94OLVe$&CVMzby*zx%^fJKY}rUrVhZqnvM4%mr8EG96jsl zg9^01=n^YW9j{-b$}g{jc%tMRv6n<{s8WK{#ge!Nx1od*vT9rVWKCTo)P#j^IvVvn zeG%n>)|xulT`#nw^X8iuNwY(a+pjA3%>sieth4UnZ)l3+nPB+rM=QL~zWo11@MxDW zP{U94Ujz@d(m>EH62o#DEa{K)74(b;UOww*G?0h(M#E{70JI-0ci^%gP>;jM1&!na zKdgREW*2q_A-870Oy~qd!j)s7#W3H3I|c+@mWUC! zRBa|MM*KB40wy3#IAF;4ko8y&xX%}9sJ2!{h2Sc&#J^CGr)OuQ_o^CZ@o# zBN!&6Cdh;zjeZ3FfMfxFItd1_s7D z;3W+JI~v2D90#2BSTSE8fZAw5cu0ikDPV5{Yy_TwAP3Hat?9j(%S&bA`uh4+FrBP- z%d(qJgdw^v(1`GW;^6-ws2~GP$=k@t!l_7-e=-EUXXpaw&WWFsz9*r2mOtBjIc!XS zmY%!^4(OOmul}Vo@qhXVgtG&ND^x8@-IO{U(Yla<6h~`MA1g?%8uqV*IFrno%Mh(g z!JTe`t=PNL1~6j4B~pC10wnrDwKY^~M~U2BN9NSdp>@s#NOGpK*qO6t@R`z{Q8fqc zkLARR2N3+zBEixy;&2g*pmV)3-wzO&&7Iq_mjTgF@WbU6g+71$E+J|pW7t;@22fDr zAy@F2D%Eiya8=}RyU;7}k#9o0?zguphxT0G-Mz1(I1z?iALpY1AgH$BS>Il&stVC@ zW4l8K<6MAy!-o=`O)FxVo-m^6Sz& zUq9p{8HIt5i@x=U%AT=cXIonv;UMsvlOSP-i3l6_|5S!$AJJ%@KjTi|nRv!!I72+z z7eL4|hC#@#PX9LW=)2-#)7qh!z%pK1;eD&!X@xG><1d9?%}H5 znRn(?`PGnTOEub$A&D>$AZ<4xX59A+d@BgfN63QccoD{|#1dL{a2!ug*h1(s(C+Zf zBLfAdyNFl{4OAP=2~jkO%2p|*xkL#irD#%0*(s&L(4;779+gI#q)CI& zBqAC$Xx2PD?`t{d^?L668Gh&d&U*em$8N3l{a)8+d=H`L`iTPv$RLY=Ilbzb`$6OI zMSjX3IAq%%pI?PO!*Y8dAZg^Ffw6A(iE;!8hb^pL>qO9^GYPAl_Jmny>vlDrq!aua zm(DP9t4RN7N!A&@TnISJovY{$pFNrc*m_e_vQ7Yk^qEgtkrjf<7x9WR&^e@FD6{`l z8k!6se>TA@?yu$s*Z%R|bm0j-b;qGjUCeQsHA77qJMeeo0n|0GQ&<*`L4q)IdmHHD znG5(Mh>zys;o&bvpG?xaP61T;xm=J&QGsib}V0V`pRYsA>&(;Qxuio=e+|x1~S_M=FnNd{;Axi!Hd&X)e8>INJ zh+*_JVDQm6*UE_Xk{)F`G)Lia07jRe^qICz);`Yun^xJMph zzLRJ^Sjbq@FBeb8hYG!Ckc>O0iTLG>ny)llL2CNc;rL^%=5DmiUBA{4_YK?yx^rwj zNoJ8_4aFGf)sbrsmR=m|#GGu)7}yS9>05`y+;bw z>Ug=rs~{_KjQScMMpMJGFsqQFrzz7CZ9(fv>@q~Dh2P2ZB&}GN0P^_m5%$K&zG!bFW|Z!)&QFiL~LxR_cm$w{(KzYE}byMDHEEWkj{XJzZz21Z8725%La(^gt>6<4DNN{4;t{$%RXAv#T zYEa(EP5Vz3-GF-=yGMjPNI9nsN0tTR&AR-!!1C~bQk#vElhLi`G|#g3`|ylkd}7b0 z>ateRPk!L-c)f$yb^4X};sUQo;U1G8`qUIeTj-a4DmntA0c(45Kll{ftAlvcie)<7 zSMU(_nR1Bt8d;(8KUS;Kc!>=Ph#;vO>AC>7M}^_$p6({yQO?H8D(X*|A~U@;OAk_L z{-IGWjHtaMhgF+MlzRG*4pb15_ueTfMO@J+i(D#rxIB;c`fGB3ti;DIJA8pjaEJ)KK?y7C7SFb=HzZbLm)k#wJ5D5->HKAz*yu^y9qFz>@ZcLkDnPt(e#LdUwI8*?+}5bl0|y zlI6TWQJIW<^%EKT`!gj|w~GM|tX0UCSWie*m9}U5H}_rJ)MHh&o@}HZUiAuwH!=r0zTV({ zvtKaUw9@LyWr{{c6f=mieWVc&{35HGR6F^98TFpWf2ngY&#!9M+;tyk&(ejLX znK=;a$HO~rv5FXOys=^p6;g}YKxa$wq8-%GvZiOF6?{9?+-5aZFv0*5c|GPJzQn%q zg$!sS1c>+qE0ER#xB1R3R45;2FR;O`8X`J|L^C<9V61x3WxrFKO(m68KxX1ZPx*N4 z(ID6|AIOZV#^@|%=hpF|(x}=MPxw+$kAE8_&_oQ@GB?Auj+0nGSF~$fYhAtguY}rv z=ik_Cx<`1FYHM6LFx9r2H&$Kf*LY&^4V|El;^{n-vL^wG*qA{IC+kNt-~{G`ONS*7 z$G&!#%PG1UJj8U<@&JIw-?1($fWM-iV<*trrr1Sb4d5pMKtd-$z7mKlGt7v|)I3J6 z>Pq3c`bT$4H)?{lt!>}FLC27V2&xjB`}$ILYw$%rKyozmdL>~HA!OY1l!{xp!PFqE zx$+ESkm1u)2lpyI-{&cVjkb9B02rBqC(k4;5m1{2fkj}sFHQE3x=hFM za(KSiO>ura5;GO6YyH*$>D-augh#y@^v9`{F`twO_jH~ME{D3OoMYd7{ zE$O0MS$r#P=ch;CVOugd4}8WZ4C-zHNMcq=)T{Sce%NURzQdqnN7*eZ^95_w4VVOq zGCNoTrcxUrxf>JQh|js?;JYnNxmDV=7_lMty_V-{@H|loJg5l}^6x+}($x#~XvM4u zmgtI&$vUFWdp%D8XqhOn(iTKAgn~6^ry9Y`Cg|HE;>G}SWn|B0E?c1Wc4;tQaIJoosv0(W5FEy57R5HE;f zN8Hw`=-_+XXFQ1L>V`-%D<>;frt>P?enbTeOQv!vQj}61>cNg#-a`h(xZkQ80de6X zBT&k3VOK5qV=`^Ks|jQ9Ol6-MW0)ZZfJCgcHJ`}egUo2eK^JyR8_1X!+7rFd4Sh|w z9jo#YM*zX7n=b%&&Wc;57DbEE90B^`3G&J3(Nz8Q4hNxN0FHD|dVIPwKnbh})>#SQ6bC1cH+Vny84hAduqi#i*BGya-4dne0}QML9vM zjG7|a)R%Gqjb-36RAWzoss#1h85eFeqdgc- zJUw-5+oZ1l<`*pMl^g%8IBeP&8fqFX_F#IGL39S&prYytq2rBP1rqo^@GXl;y1v!! zWWf;}aI8 zWIIFz?X8MtddP(`#gmy?ES2HB&Av}0QhAQD#|efS-M_sya`-GR0CUsc(#sONRY!VL9t!865Y-Ff4kUv~h&dcfQs6_<~p?Xw5 zz_8!`wnR@T(I5oa*;{q*Ero;LzAZ59>m@)8g2f@B!V%HC(}PK*YS}IGNO_(HZGHXC z1oTgk7#RQyi86+`$UH(U;b4|Ty!iltQRfcXnZJlSeWdfn<6~V!8-#4yh;HmC0H{6Z z2>*h5ZVBF!RA_)goI^LF$?Lhd2-XWu5x`oBiVVrRfxGyiw+J8e1o>dbk}*u>u|IL% zXe~4+(4}st_pkT#!mnn1dcoLHlyaPR`dxrpG(j>RebK%kvfr+s@&bDKI?XKrZe(WI z(X_3@A+|dnb^cp)Y7(n`8H=xy{(W<^e=J8?|EP`JVl&yw(qg#Y=8Yr^STRD3+J-8c z8XD`MOB?`S6{(yy+nR)p6`?~%-ThW?-cz;gwr^z8d^;q6D*!$XJ@ltRj-}qrilxiv z9yo(T!S8JK(t|+^wS_LIrMRYAD0L+XTZCgelu z1{KiOsPB%MEzm{YGS_&93ip|Ow!82{gL3RYxzqo<()j5*y4BhpdIA3!0|ZedhVs0D zj@T%@AHAvf%Nv3-QJ-l2KI!}KBW>^hxnKAu2~ieFC3w8R1^fFPf8t{@_#yg(>s&OS z!295{J1>1Lc`&=ViPkPU6tFNnpNPEX*ajfy3A`7caQe;%}LU4gwr5bqT5o^KUSD>QA2+KDCJ0(KjRwcOtJ5jC8?@W*&Sx@6{4=Az8fV*%3)$M z1w1$xwDbbXwRD=4nSIH+;a^Q^|GNwD-~aPQb|k)^Jz55Q)XzWc4xt`yuvX8z%zc_u zH1BfY&qaI}XmsjSo+pRE;z$=T>wO??H?AP7A$H7_wzQrI#0tg=$xDKPtI zP!g@B#Gn3+(6mj0gZjGMn?!+yxsf+gI*y^44#W{NFu*i`Q-y8e7HtspEon3eC6wPmcKVay3 z3l(R74Zw{JqVn=2;F47_Jz%^AYF%6WaT~TT4ln&Kdb!}%`Vgm91)6__CO!;P#XG_u zP#@6=?XP9)*ZAMzZTI)*+y~102QmAPeM{)n--}8w&X2PgSaXWm^@oT^(z>wQs=gd} z+UDyaQS{W`sJ_YFpR*<4-IK`MrvCX-U|YXOQ@zi0tZPX|(#o*xv6rIC1Ip;DEsIkH zT(pcxOdQ2zH*o??O^nY^*>%CAEzKo9S*hmJq8y}6`$V3KW;UdRKq zqRC5-@+bRrCyb|E7kG-MqXo|H{+;FzMhg(V6oJ1$Ny3+O*Ajx;T$yQrFta;moZffu zF0rcXZyp`3gueBB`{k?D?@P;sk!*~uUBBB3fq&kZuRmLOAGz4}1;n4KYG0BusS1oW zcAzf0Xjw&_Y67~|@Mq82Utnx4o}Fe#%MPwk5Hg%@dL@oWKD%D+_L0YdG`GD)M8x&{ zS-gD1uLr(?^~g(qFHTnA#WN3au?cx^+$+=pv&C=xQvdzX{KuzIeKkU3^0KDDU#IRl zgGOHGU@J>(EQ{Y}VdtDH^*~qL<|-VVGyHe8>;I3@_@BQa!4(I-$=dSwU!kCz&fww( zF~>_~3CCG5EHCQ`7kw0M(;2I#rLhizN+Jsnp3(lK5sqcjv%S9xjs#ox)%$KsOtpDC ze7OZ;8Fa9C_kKJ-x~KaPH+c&?w_>@OR6xI+=KH;r>vHc(6+SVx71tUBNSKUvFD`^Q zh5P>cy>jAAt2j49hJz)yor_#Ms17gAdpD=@%FObaq-H1O|MrUJ`(z=lsCOFm`~UiN zuNzmozkmOp4Brp|*vwKdMNGm_>Gj2-wtTaN(tJg~9_Y8$`ihx02Yh>#>oe8fE)u7D zVN>B%=`9A<3zbBt)QU);$cGp63EP@4oKX7fufME3UCXa=8|?p4lS{8BAtE5)Bd^@c zv@kXYCA-65k6jj=5G0JhEWWl(o0tWipDntkethi@AhcX&^Sl}Djad#l3I!V*8>{ZQ zK1p^O$HA`yfGy1Lw|MlcH!9uvM<4cUjvz@QdX zTk=yfOcG8r%Bb{eeEs(Eg6!rOgYW;8S#k*v-D94s@a^u>`hnDaV#b2>0<4qDOgc~* z@C=q`XIjV-bt@=vWegC?qA<_c&GH9kx|}j&OiOVzT$!&jN4XvLMQP^p>ueLpv)?5A ziVK8OpRHZhie1u?RG@O5j5FG?+&K?M#)&qzH`!>sjMct{&^S^>4Ix0L%ng5_5|&Oe zFpxzjLF~E!32OEOiXnmn@#Fl18E@m%B2P9iC4H@+jD>jo#+1624pddB9IPke8%*nk z=o#a#k=N$=_T?4B@A20xAeO+eEA7K%-GT%R9$Y}0f+Gs~=@>>iOQoEljw#dPpd z_Y}XQEoAo0PDgplz1?$+vBdCWaFL&Qi{WmKoo6gOU1w#;Xev{CRKiI4+e2FacKek_ zRwr=|{}n_oB|3cmzpXLV6*GSyQy@A47ue0p7x+`sJA&!hG{2tY{#*11nbd_}%+b?3 zZ_J&S{#5OBfM-c1!Qq^gQD_;lFQb55~WJ z2k2$r*rD$<4gksO z2#f+{d!ZRezw*Sxl2T8|+;zgfwG)dFf3gULZ(8vAK0`*g2*CE&t=|VAz7R!}p*t1R zZ15ukbV0zY@t9y-kRLGxcO`h^t7Y!#yrlByV17U+Upy2{_owF8E=ZT$HDKJWx*(rm z-XDPZCA0|dy77Yhe`{vES5(Xh)Qig!XJ#igiJ-$5HvfhqC`INsZ{xc1&ph(0O8Ad+ zLrNB!l%VZq21lE)8GNu_jwWD=mu4+Ws>2ct_9cpjpD1i?=G&OZCs45^| z;>Qsa`Pg%D79`i&5*M^j4n$bhVJMt^s_^;|BTGXJBdXxy8Z z)p)qwt#vB@m*Gd8O4vGHCI8#lu?GFnEMB`P0V&(tCr+HWe~3eK+R%%clZWBGaOxjV z##LE#o!lpiJ^OOQO0`3pEBrax6R*K#*6d!kdBb)u`M66}WWb@we)0ZPVx&H!c{Yt9 z4@(4}Xv`!{>V^apcXAprS{;cc;(O)LbQ!Z;&A#_GWlVRa-zT_Ej@#gR+U6NPZ^jx@ zAg%Ti{mPWvWI9$YZ@}~|6=(I$%QXJC;+}u8=0I*vbT2%?Acc0JRpzJWg?G^k-}X9F zD->FtH+5^$1BL5cB=WZjTqLui-ot2B^a9x*HX?XF+Hnz^G3M*ar!RTtyi;WF9;u{E zd;nXwpZ`q)zCNovW#R!Hx2E!v4AGl36J}5hzJI^#Inm^W&WCT^-cLfgjqN7B!f3B^ zl4Gsz(X?c7*8=$0R*NtE1}=-;;ZsCV4caS?7?xj#th_E32nWQRCkG)0agZn)c;#Pw z-WO-~&58({KqI)=f2A(E7D2(C&}ukxI*@RYm~RWySH>-nc;KaWFc1rd050jPT{+#s z20hnsg>>w%{+iyY;BLpUFz`CPaVMMI>7!2&1;se|wZfn_>-p8**}K{_E=gQSkkj!14e8R|p6L zB>w({6*?-p&n%$_9IS|p(J0UpUBPr)2}*(3!&-t+W0nfk)^UVT2Ue?Xm{D$Whjv97 z7JvH9L}P+HVjLVI)54Cmi1Hv*1BkfX{%2>IXgNA|e@I8{&fd13q=EmoVqHU&SG@Gna@xRRnB_yum#M z=I4=%IN<)!Y-%nWqpjW3&m)-ZNndRZK6+hlVVy2OEHPWNh+b4K-nJ4FCROHzsOH#% zMyGorHM^h9r)k|*^>ljTA3zx1QV>iU1-hji7@H?*kusyH*4G4ci8cI5CtaFq<~FV( z>(5T<1Omp@+CBoU#xiUuHxSh<0)`^*mPqk)Tq;?X@p^msiB_rKLBNr_xQ>sX{}z!I zhfzgF+s!pwxQNj_p^6f15e1|siw0ZT`c`EV2EDMW(@{)<LPdwmbZlNX-+p z7}3M*9cd#ffAB0GRzx+jwonU0{5b0dT1+=ll*{u-I*BwD5;Gnc_a-elM3=>r(5e?S;;$xLQn>y($bhZ zfmdRKvNH!p=hIE;u0hsBm5(S8k=N1_m49VdVI{#)FvAN6Cf$NXQh~eawdGD>ziNZH zS%J@uoDv-Q-tt_0Aq`@o)?G72&A*9%e+)a*y-TdJSQ1P0MqKVlN>1~E44_1$AU}WN z!61QOAWIrOrhX5+z~>{ZsqTpB+X74JHGez9$WC~zrUVmJXYINhBT0*_SIGP(P-VC? znS2#$f+tDNCkm701hd)1IT$Rz1=4j~L_(bs9FjxOoWRa?5*K80u_EVi2B}1NsQO5u zWe%zr9#A`-GBzdj!*FI`_NUS*@X}`tt^(U*GCA1VR5XH`gkCwyfM%lxgtXKn`w5MNfy3|jyr{0RDKgGBi%fPy(4%R368#-rShF6l;kG zvzR+cGzfsqk;?gO|B1+f+SzWV>5ioTj@*;0S=!2&vB{-w(9OGan#gKN&X1Dx4hzsi z?X*}3MfaY5QYXM^HHs$vjqL+?Zg_X!kNr81w)WyW8%Br8* z7g;eh@KzQr+=EEQMp_g=G54_w>8@2!P#FDT?RLN)J{d<$jWC)LL(f9gLrg$Pe!VRw zu=c=E9snHuO%^~1|^2}t!7RU1Pt@wCNt+|VS}98ut0ch>F;t# zd|`$vYuR>LO(k?Ex7Qo!hT1sAQKoehQsI-<%E$0tODZIV3jvGB>2(m*VWMwH;34M$ z(>*x=&viZFAklhAw;Bf^scqHII?qC|By9+AqkxH(6LmGdl#E@TvEq=tsi9tHHP^9w zSVO5Vo`oMgJJct&2{@Ju>JDuhUwhWT)13fZTHn?*&DmgBzEH2!4vv-30r_OA}NjRL4(mu@rEwJyz zr=!K4fW7p(g}fi0C5lKCdA+c9yP3@v%Cd#^U5@Yn+My5$#Kkps+RkJ~>=-t?d|n|< z#bhNP`$}ZK9@}S&)9>>diPZhB;K3HKMZ~~K8Ytk4aLB)8_kOl8S06u zy3&9?m4dkF!dyWV6vj68xiG#{cE4jT__y3ihtGBy7`P~cquznEMwtem7T!M%&{ORs=>`X-{?Oofp%yQ;WfCFzjldarQpoVbYtA5hzMRVjvWmNx+tOS+iM1y?9*Pcp#BHM> zbovc_e$o52j&j7QireeVQt8L{(uls7IUu*>G(TZ=Om<=7$iY}5)IWZ)Zy`3SYJ!=F ztxn@Qvmv7TUo^H=v36(~yY zEdP_~rFUNkswsA2LQ*sg|gYGfBj159&2+xrsV5U(9^a)nt&mtHbB85_Cfd@%9dh^Cq-eo5{TYYLTm zA6)ty09Kn2|MGLL6l7hdas^Pk&xBzt`c-9FIKg}~x28-pkNF9X#_t+}K8X`4j+}y_ z3tCnTMO%*dq4ErxM>SRv*kO__)_Jdf8Q+9 z>)6ah$rz3cpKALd#y2XT_Tdc9FKW6WE)-aPw} z`UN0|y#Y5X(70R(A)Hn*25U%m^Q^EYm~^LE9L3!$jN+bS(2#%lub>4Z(NT3_$s@(Z z6INeb#_RMoGIr6DrWzFo3`t6&wIU&{PY1}2_tf!bQxtW=b0Ny$k~oh@*?k$|Rq#cy z$8yc-Zd713Zyo|5nC}KJg{}p79o)Gw#rW6@IPOct#!ZMmW8|yM+~BoeIp1l=uDF4h{ES^)djn zyLZ-KaRuzuJS3N7&`VX6M`1aoxpNRu?dhZ@UD>X{L)ArvC!A*|$v|sZ?~W|tW3>KQ z!FffUC@%)!It?E->pA)}?g#oKQT8340dcA7m;2Lehxbbxf65^tDdWr4fu@|yCYnm> ziL0QwTkXtUjmd$W0u>BJM5JIwX2yIV#j!ArGybP`8_AtVxIG~2sK)$kZai{{gQ%#s zUL=}`Lu?)tCN}#oPQ7iyTh4|Ylfu6mg~Vbd^duN_MQqxMz$uZKv?7stkL%_q<_&Sm zZN^3`fZwh@Bx;y<=@!4hO_?}fRG?*te3{A2_t181m$XOUALUF>aGrS`Jo%``*!a%k z`!C7>T92c%VM^`P#N|H!A zRv_p;cqPX4igfAu2Y_-cO)O|Xbz}9IE8>Mg$GmWE+g(nORF?LwnBE}5%Es0^1cwu* z`07dXA&683ai;sfc`v^u#6HdBB7a$CR@NRbcI|?kU6q3UMY}Gi);hWpV2-Qjee_O&Z(5oKIGgj&@i$ z0jRb{fji-fr*A^}8sy;>Hs2q6Rghxx178mH(Xqhs987g915nd?8{#62PUQoe&2;0_f-{?)8kqZdPmno2~4&UL*+ zB{dH+#wJ}=cO(sWGc3ej#H%BUiDe`|;=1rVZ};RQ)?TCNUtbKiB@M-tRG#RCc35@X z$&dM&zTNxbNMR`R5k*eTL!+4?pXcfGx0Sb?hTyw$@kk_jOZ=9kgRmicvLOtk^H5{i zI`*I%;;4BZ9G3@N_1FtZbUx#^vAnIG8?&o}qoxc*ZKztq#0`y%n`CuXjuDXH_--AQxPO7gO91= zV{PzDv^DB}McHvIBD7vLQl>DaN50C8u}-i!_IeR16C?MdZ>l!-ppqXEbmDiMH{~F zIka>zq%b=Dy?cnvQ(WqygddWZd&w1(pqY6zWg#EpZ$Rw3`?BY?{iJVVUa7LolLWT{ z_>3t_hioyN=tUJ)_nC6k5nAep;dT&>{>!sQD>FT1F7wMcIDpUPvq_KEZoC-I?;^-h zbLG%CBR5P?B;~Sp4gW;F?pXw))(Z3nczd#XK!TZ7qxZQ{WQenogt~ha%y{ zGK$f8_s$jyU0A6i5y|eoRCVPQp&*fk9#K)wK&euRmTn8tK_p%sL^QQqOuMTd&1|)m z+W2iQ>HUl7q=@>hptufWu}bl?i5IHech#hSp7`^Ie4fSW5mYK{6^Xaz(0uoVnsyMO z{L^9Xv%U`cc$Mg!kGU&FR9w-zWM#!rLHSlO;0Px$lQHtC54Txl9c0z z{t(UYy2~+$Q2&gGQu;CTDKEQ1+Dl%~u~@n1NM6MF#y093ajQi8=#NE5MLM*Ti45ns zMLTvTz>qHIP0fEw_P=-D#Lo#>kwhP}_I3Mw&%RNj(6+R=FkZ+{FY0+DPW=T`nyn?f z#5`N=z_&d6CSnu0TScOt1+h_;l!B1b&6?irm~BK3v=W*SpdY6Oof)Ny{CNq_;Kc#`Il>41M6dd##}1FZ|WWYC;8)! z{6S5*&)8@`>BvWecA!4&k?OL**SwymW#HaIm@l!-FLvz+>HY!(OpZ5Bn2Mck=z8G6 zkI@?!@l07{mYE-UHSbD>kKMs{=vatKIazM3+9D%GGWm`5q~Ynh+*cS^QakbGeIdxf z3aj8FqQS|3-bQa&yzmB@O}=*sv^aV?yl?IRB2dR_XF4E5D0YU8Yg1<#B^*XXChqxiy{BcT@12u!+T(@`t&?wKIo)N z5pL;d0t0&&2ELJE9kJ?R?T)u!D@};W)Vx%Jb0DjTcITn+b=HmjZ{92z| zjSQ&F9Q#8pjvTyad``I&BxcH)X{}{ZH4g+CF2=oWCGz%OmT@~9&_`Disb(0&n3LVA z;Lo|){TGtnoV#02%sg+1XnOZdezJ~ywH5JcxId!#15HaYHByQ-uvue|*vRP)nw8>` z!XE`dp}LTJ5>D3T2i8 z2(!g|UTq68Tt^tKA#XxtslG7>pVWLxvUr&N($0ys=DF)gMT;@wCtX; zl=`bRL_s4r`;eO}=Vo11z%ny7^s3$Z!CM~dV^;I#tF z1y(krE6164f5H&6)1ZA;oB7JX+sDh(f+&OTfL}~&@Eo3u& zSm^>pnR9CU0EwdjIHKDl-Djee`fP8W2%G7qeH3}|Vi5VL_Rhr87Bas*Uz^6KhwajJ;F3Rr7->>^`HR2tb4+i3B$xziH^2Fg{H2Ghobg!T7Qh zp{8blZ1orYp@Lsa42hqZsGqxN_~Zdi+v^@CiZElDp01V|mrYs6o!P1MBo@Cz1b=9( z6op!xOu6%x7Uw#_aW{xjFM*xyejNJZBi{m1TADHk&hIyMjyua3Gg3tKEgm|22|L7r z*}x_;M~#3!nfSA>S5GvdE$@V)t{<6L5RvdB2g37i-(!y6}LBl7Kgv9^wW@N?=TB0;o~~OSS-2RO$cT#{KJM_MlqAad#u_d$o}O6M!C`OmdgO&QmN9Pb0FhxEVN|V>B&j}yP;#N zHt*rfbzi=s0?{CHxq3sfDgU57nsFZjcYuO~#jCrGG!=*WDMz;Oj<199SKZD2AO?@* z1ho+xm5p%1B$l+;U4$&>CKCKqXa-gqy3Oio$Yo%oXngNPYfc@EwI^c4Lbb&tB?C0j z_s_H^Q_jAq5qVLDH_L`-l9;2vN`;nid;0%*5NfA>3dkeL^A{1@sk?=!Y{X2_qeqY0 zexM>t$Ql+KDd}9Y5A*T$9fmq*+f?D3*SY4g5$- zupCq>>1i5uG@a(qYZJvs#(PfWnfz4yiV?CmED;60X@*?- z{P3~Z?KZR}s3o`)a@bepQVU1~1Y;*_Khh@_e)g~uRcv|(czrp$JdPx$6XtXnX&tb?zW)=CyuCh?t z$+Xo_Kg0MpCZDEX;$49}A+fM36}ysm=$$g>K+{gR>JBv&A;5o(n>DH~FkVwheJe^Y z&AMTO0!ZN|q-K1a);$$&nfX^tdkT%kd%f4v_X(0Aocm_pK>1$mG&EWF=oCfD_ijHH zu@PC{>}ML@zS-kIqz~7aV2|$_g6-DmZd-Tnr|*A3aK5HE_%l=YT{Vg75YYJY)27^A zVqqIFE^9ZKxzvnpMhFVrr{w-LJDeP#EmyJz*v@=I9xA;`PL<^dT&eQX)@tm73t^ku zGJDV9G&hv=cS?sC4KTVP=tku%XwK~062E{c#CphV*?);&gdv}vW8)(^KQ@AiBJgy{ zHnD4S{9R(%7*|7$^V8fK>Nacje z%-4oJr!fY){M4Lrzbbct=hjA_1*h?wq--BhF=LVb}y zj|qqkJwL3x>`wQqDUIT{8e5I8#${zqC<|H>sKrf{Z-I%~aJquKM9>sy9EOa3pg^>R z=}o5z-h-1}(?5yc78 zISGYYIVIxFy1Xj_SWA^^R@`Hq<*&*xQEvC6@n!oj5pQMVC3oPJ6uGPLt^&aeGnvZkse8G`sjZb#1@i%HM?PJ%ZcgT^UzhY)(;~Z(sVsxy9w_ zS@<+$fr{${z@6~;+{tDsQj^fKy2w^TarDFaoB&nBc0a5-e+TRz@9?tVM9qq|+N=Il zsq9|P6w<7=%qwvN9m}~lQdY;;b{fIP?LJ49?&VGFA_5mbD_k@Qx=+-)V}C!by{b-V zOG4Oe-_@Csy0K*uiN@!NGXCQL$O^4p4E5NjbH(8PolOp3HjO@uERR-yS3b98fsd8J zIqmzAA=*YOdW%d{tqYwyrYA zdaI|HDiMZ{p9k~9xIg}KqOjrpGrAeEV>OY2U_gxt8;QC_%<32ys;WF{6H3eL@FPfz zn5~ti1dWa@f!>9-ywQ+Z+!Iq3VQGW#9EDAhzRg@VGu!$~?bWo65bi_(L`$O0B0iL7E10Rp3(pJ5# zkw~-t9Jpp6On{J$yzV<5>2fThzhc3N=!c%;@#AG-=M*8VToxbM{OEad@_RUqIQBj) zA0A72#$(?u4I7^R2X%Qg?I*9x*%30A)#=V(k_b&(NBWZ?TgGBDKgv=(+hoCaYFoUD zU3!LMnek%g-Q`VpDt&!C^6xfM|L7@kM)Ywu6Yp5O zws4Iu45wGfCzaHCXxR;V z>N8V=mMCf)UVq8$(RKsgvP=0^X$v@D55$vS3?x_Q1{d9c7T5F}2i6rg;9IKYZzV*- zZ-R#$B|t8pXS5jgiI-Tcn|`&0=Xd7Yd2>VF!NNM4EKO1uZERrg$kK9>J>%3taW(A~ zH?2SH?09ei!G3>7v@g#wsXGRoj;X;kt!?ZG{etsqSg<^G_MrUrvjguNSvQ*x#`TZv zoPWS77e1;=urv95@|;%M(CytkT+Tur5E^1WAOuy3B#zHC#Y~`WZP~!5pLc%l`5GOU zAu#+R``U{;HdOvP7IIpQ_k$H-m4IPyS&6&vl$NBcD#rlolQK$ zKZ){qddiF)f&G$rwuT)|3qto1F&rN1OtmtQ1=)%5y(L1M5 zFriV#Zrzybp!Yes^|Y5aK$b{{-qKUIrw5<)KYBM!yJJpna7iXkmxyxZFZ*ltmJWgaq;gIO=acpt-Cvxo?Y%8)vlk}QqnH0udb)B$h3Kt zz#ctK?%!i?TE3I7Vy(Vwwrcfm(*?2U)7x8HD2(ej-;N#pE zrSc7sTi%>8H?(bd(DxD08oVE~ZhddM@J_!zS>SD!dD)L#(N(O4<8QP$Q>iLsw9B1O zpVOJ?I7Gpdkb0Xxt|#eyU%TP7zH>6`=O6&y0fd7rFTH8nYhk;=jic|BSmGnOGV1m+ zskWSvF{SB~`OSR;(|!FwLBXLMTj`HEMjz7MmVyS-*?ygS2vNQGF?sgBs4+i4GL=E> z>U38ZCUaRJc+uuy{D*`kH<#Fg^3DbJAx}1*FRlkrGBVkSY0{Y7fBeBeT>aFu7!>_{ zHp&z@pGaq}aJ*Vh5srsRGgJ z9=r2w2ZYJn$orRx9i;LWXX?FuHq>-`%$^l(JrOMn8HMBdwuh}}LNClqgCFLt#C2;U z%&SV7S{(PUr`<84Rt7bYgv#gO_=UkaWyDk)%0hx1*c>8f>lYK%bH-tF*;7h!R>B0D zn9_^f7k?i^K%Q7O90pDK31~V5aA2Gg)Gq>14Uyz9gqStiE*MX|PEJtg?r79x`~Bb> zk*M3X>BWot37EOI1K`nm1B-{nqA=B)Ypt`fFu8zGX^b^!8Rn|!i&m^cg)b6T?X=*xe4bZ(OAmAIOWr0o#Rf4kgkR&)TF z!|i?Kkw$qlp++lPw&L)KG{d5|9$U$VolruyABQRe9b4FbI}1ZB^oSE{IZ*LX)695> z0kP1PT}|=3Y&yz_1U)c?BBO+5!{(B2*LI~rRSYb-6j#0QBqL%B&U5vrzIH%&OT2pd za@!K8WuaKCUL#JrHCwWn^&1LfPSp}C?4uzfZEi(B2R9uryb2FI7T+^x(r#!P(3D8N zlA`8bs=7|#(b;3aBtV;eN*vl1R&jB>E4p?#-?p1kc;zn6?V^S|hYPo^kvLUyT>@)W zDy1qemDm@<>Dbv7NY`gmWYO-BzdX{mntw)FC(Tfj$=wBP8&F?aW_~KmTp3^$v(zmc zNEdC*?5HO!g-!sYs~EUMs)h|Wo(`S4m;UkW^7o7;Z3DB5aAT+*zQ;u< z%Y))ji8+tiogvOUv1uruP5J%`h$#;6GGQ0G}vKhdJ%L$KR@@gh*b77M zM?wi$(nQuW?2)1RWOsRL`EQYxnG=Z_E(0wo;&Uf3l#z8oiz!13-8q{=jJfXc`Yc~_ zTem}htapm0EgGZ`o@1n>wQu(?v_i@Tcf%p$F56{KY`eW}yIFrf7^hxB(B)KRfgd>r zS=dFeH9DLs04eX?pCR57X4UtJfNeAu6nejX!>^4d+rAeL!-T2V+zT8LMl9i#tOk~M zJQ%wv=~fzo*GvC=uVt9-+KihbVsBW5S3 z;1(dFQ5qs1?#*@a@Ii64W3bv#mYdMvK7b-3G8~$ALKp zHp8_9rrUv8PTiZg(7l!bx6=glVM1n-0HE=SNx6@2UAR2Q+|L0vs*i3|Il-&vw7bp` z%s7c=Va^Yx0uM3YA~d!azI%FN?j5U^=LSjprDf5T9Q^vd?>A|TnD*cE5XV{}jA5TW zc!@6pDE*RvDO##Le^qn&uiL2xx&Bv-dn4UkV`el;x;*YP&lbN2>In?&Yi!8+^|PM3-0yP=YzjjM*5{8O7CEuU)}iQp@;Ta04^G(uI+K{-ps!oOci6UYdLcpdU zz>|3<13;<+G2hkuaN1(77;Z=#0T^Jto(IW-!&mKw+9a8F*Z$tMNHEMcKbv&UxqD%$ z{kq2$(4fqxFY&*MGI6MIdkYHSh8kI{J;P|85}}+|fP0?Fzg_K7M4{*=_0TEF^lN$p z-D8}crA)kRvl~Z4iVu@LW|$@*FV8N=+mMSc@^<8>Be>waVKM3zM}q_ufH!{Ws~kN0 zbD;8G{+>7QW0jQ{vsB#uh{!lAeJeP5mbHWlxmsBp$Lx*#e$BOAM57<8UMk|9$x~%& z5}+z2tlv#={zhS2BYxo%F!0ZuG!oA3QtM4QS$LIoF?3cMfNm1Xjx37;Z~r*!k+9r) zicpxx{xvewUsD7Mp?LA7b=+rYm~e=~&xQ^2PmjJi!0RyS4L$M4!@CY#pzWH8URxin z*HO*BU&x;3M9I99q z(1^L08bU`oR~ve#JtxI0Yj|4?s)Y_nmG~|$%qi795P#M~QIteL8C>N%83_#5q}UG! zr&yO6@B6PE2U71aW!)xdW6n*wPly-Piy;bd;DY7BMgDc|2CLy#;??kYd~ zB!d8&-o<22{ApODP^f7BrTu!lr(&F);E9Alw;XW&&iv#b6bmAx!nEi8NkVNI2=aQM z9fBuKu#nF#)l+huz#uux9jNEk7CF`z=zE_sp$DM7kP9(}$^Wgk_%M+9&$tAi7c0c+ z4RtafIE?B09j3wCZ4TTfFMb4nGUBCGGw_clX&t(H9lF2RsA1q~4g;#|gp<-Hm7Hv8 z5%RymW22r3F>)z(kctQj$#kDH^fWOZu!uLC8Rp;F!Qyq1O}(!~E;7tqJ+c z_vdS-L$%IZ0IWfgC;8>*t@|~68w9lt6>Bn+;oHn8Q83$|+!=L)xq3KMezhzDrRCC0 zP(H%@H20h?2*3)-A+xxFL>3<;92Tlm^$v#JBKl)*7U0s|tJC{Xve<-w&Fh^(l$@}A zIlv9sfFLFuJ5`!gkX>`1|Cw$iRQnqj-`OgY;=l+KAv7;ZS zkR3L`GrNZ2)RzaIa$gW}V0c!k8#ZU~rOh|T$nkU;Z@}RQ7h6ze zHjIvmkl8VS5@j9G#4Q`VeA2rM;I>W>CiGM4qqh*$Pw3u@`mB6;=dWGm0z!zG2w`LX ztW<}QuU3#BfLt$Ts@D*}z7KRB77kArm(_p~eLigGY5BBlR3`F~a;nPXyF|eP zSdqPi1zv%-w*>*u2ap&Ujgek}Zzp|ie6|0qC!kM7%&(y3S3i_YuFlt9pCRjaPTCU@ zyLN)`&vP7jYoDtZXgx;y6Vnw1`H$3ouSB1 zubXkv5^k#4-R3h98O4W=a>_hNR7kK zXREM{!PXwg!z7(_F5tT5sID24fgbWYSKI_2IKQ4$^y6_*B1>tASKm#Q`8O`czjPUR zh~`<=#4iHZg@a%3sbRnl|Q(bH ztt1M8`*K`)dyrJ0s3vz)E751?>J!u-%NNY_gp0XMk8~Hke~=hKIETFt9nL z-3%EYq@b`ZI!LluR1GCMbTXt_1 zB}3Wo>`!Y}-FTn-Wu|1W4=@cHWl8PW^CH=CFO)9Na&qH*GGYm_TxTule9M+YEq+z z5eu(cWjATR18;+5+9!~Nf_CqgUXMAEIuE7>XU1DZTZRNbCKr`&UP#k^GxOv1fKN=` z0?JvKxQkJZGeCmyCoukdYBFIA>|fA^={cG%p4I92hC&Su;%IU*X$~s; zvv*LTCCK?F81Lwv>VXDHkl(eL?hsQ@;A?NYeK8{_=8)9SpwL>XSim2QVDHgWZ7;sC z>owC4l_37>Hb!>6Kh$6pcj_%#Zc&5us3B2n-u%IOR0OumVyHvs za#kndFSMPFxoffTWpCBdHY*vM&AIsEsd&hNe-fLL`N8cvEE2jC`{2kOM^3xDRf)%3 zFFjENi2|WBPay;->!9Cd4ixq1H?J)fs1O4g_F18z^vx1+i69cncpk@5VG$=h)^$jk zY{Gq!e?+>@nm12^v$fyZIID2yqlO}+tovK6@{=xf-Rz|k<2|;YpDd_}%@DCRdKOrD zrFok&;}ap6D6*F1o%!S=0|^Lerqe3iclo#4YANf#fMMOtD?*zF{nGSAqQ`M=L8FIluX4_A4rD;A8DMhiO8*#ARYn+R&X!eAN)!Cr7;qfY2q%sB-zmu&RY>+yiq@|gXL;UO38(E;Z--_z~p^s zjZy3IS(+{*m(e-VnT>N5{3BB+9Qyhs0P9cd(Zc(JIwBx<#FOrd&6@9EWRiC3W}wWB zhi-vEyOE4PABgkD9rGh<;R{p7LxJmB^Kfkm?^9=B(2rdy>mobYz%0TBikJymsG3rZ zKWH|s=F32htUTCsK!ViF6b1LN-MkfkzVP@dcL?#=3ZJ!brmr>IMuOhH$L$j8vT>?R z2j!nw42r?*D#c*<3rk+cYc+Wx;IOlhZUgc2u7|_V|wxJV@V-`J0Yoe9??-m;+YFx{aeSr zSU=1kgAW|;v{)J8=1NdoE|YqYm`$yqze%%)N;*>abpqPpv2B! zQG-KEEWF^!Il3@aJ{{#xTLm3PqLR4m#sh!qyG*$y$LNt_0i4dBr@i{?JX1wY$%;c0WvubWYaT*5Sc~p}bG%e!B&!8%8uO7TvRwoc~dhg0$+`yfA6b$)!^ z_pezjA-0B#mZ-n>ew(QGy7&%@c&^%O>7&Y-_K2NJH{bX3n}PC@j#(}gt+>d*{cuEh zk{-_vRfF{MQ(Iuz#3Mhm{dn`!8$a4NRJcdT;q=2aDIaPGunnnmp;b zq&$JXBfE`lxF%ngF2tH0MwTEXrfgbf=g_r@8n{NYFV3Hp6w9dlOPVsjzPvX+A|A_G zL6t$$dnPNUo3V%&iTTsd5EE1&*ra{^4keN(W2IqkbmCX)XA3lshg>owjH64t8BE- zaf|*Z^Vom>zfrupZhtEs^>0q`ruUY$C}gfe#Np%*;cqcTr3<%MbHSvICFd(U!F8Z+ z_7~7eJs!*4o;k+?Y-dD!M!+;?_y5S19t}@wMTpR;QNhI61}hr zH}c8J)c$j#!t7*k3KP;;O<{On+-OMW@IC<4OGFzL=E3XW8S5H>-y=q!Hx;)`5D z72JL#Mk^Kz9$`-&IyKBtxnt|+o|p~tQ)h>}H_>>HX^s_k;n=w_D)q`U_c@~eE_m5@ z?ZJX8ttlfxyY0h?4W&Uo+7gpz-ra#@deL9{Pb!CcnV;CKIh=D2*4Ob0*YEu2=V-QL z`9E>%``d_1cV$)|b<3#M!64nboe*!8#5-q-Gb|`uPN{eJs6}plT78J+%AfoEMafM` z%Nif9FSDsmv!F9A-4p6;0b68Bd2oisiDBAy;=DVJ1yhgke)>>3i;{bKD_&nx&|J1) z)t=DvpT+xX6P_tDRj=M;Jht;T>|J|@xKgd$;lFxUS`;K_(~)+K8D>K(sh={DpZWg}gtTs$KFB4L~}D(mPikoUUaGB~Eus2S>^0ryUyI5EPIJsI%mL8 zXu*?mzl?Mn9*A2VdDt99Eno%^IbHNjDHvuoCzzi_uPl6$ZK9C!_6bjT>e zZQ6s5KOTg^g#!V{cbMgF#cG_=x!g-r>`1YM#0uJdYdk=Htg$E)kwAw7F*^@8 zjdU%h%gRxNH1gt>;Fe7ue|F^&P4-IJCw5P441}1MDu22RSJflGl#bmIy!)L1rVPC* zrG`c>!CZMofCEHO8WESjPpNv3N)D7F2a@q6lJ4w zr=_=S^AG5`@>jxUv6Lm&Ys9^TeUWya^RURMxQ9e^JzM~} z0s!MY3G)H>1Sy}lh-qK?$j{JUwGa}bH{K0imN%q3Tx^Zw6sON7_W1J(VIoM)aj;4& z;Y$TYf&!Vb-6x-kj+bj!y(tq9y4CI@{`3eydkzwL(jTx3nc*FN`(OA1v-peH1%L#| zY?I0(UyXt&rYMQ#$7^)2_3R`_%K3lLMf~IcCV>H+kLCP^<)oaeU1T6m6C%bbBz6E? z1Ch~Gd^0d@_Yygq3fQl&|2s0vZg3c$U(Xy(9Fa(1{9&v#2^r{D+>w|{*`}sO?eoa! z&Te}V^9be|I{Ul3LTuL(lN|ON4Y^K3AK;@{_eOfK9>;9y@wVsgKZ-Z_kYxIYSjbVA zLf8T^Nv+%B_DA3MPYN~$sw*}#C?x!I@l8+Gt40@s5?8#vFc+dE2GG_r9}S?o((6qBZlPeP|j7wr>C;c zlL60dw9IIl8iGXf8kqI1s-r7(m%8cKO%r#0cuH6jTRYU&ke1!ViVlp6GOjek`fiB> z>GO)4RrwC>aLAMQte`EHAjK|__eS#W?3wUi=FU3LiLfh4$_w%Np++eK?kCn2`mhY9 z$kIy~9EM|PJH9|~5~70mj}>H((+}$fA~{|ud-i1N(?YVXfR#=YAupa&0AIt9xR^q8 zw2$N7vSRu?;(HC-Zjwk345|C|;;qfMU6R$GegQ$utI$Bi`3A^(u;cxV|3l(1Z5>IJ zqDg1yG;oM|)8hpQuj#{?qBW0TRisnghGW|f`rJ({U0m4Abw^sZ;&?)~zkAUtX%Xg2 zB48r+!;AR`>X$sOcgDA^Pr2moZg;XHVMM?1|AM8mC~4?ug{@z>lWW;oTV3Tu!|q<3MJz@-2ott6^nd@lTy4x_-4XrpsW;SwNxsln?F zYogvhe<3z-$0#Qh&e2xjSr>qB)`8d7fcke1(vd|xp<2S@iWuOKSdt=afHgZt@?=*L z%SA%sI77_9aQ>FTz0s4iGOH4Fc$!rZ{dY#*y zu&4=bp~%+1{%ZyEiN_i8<^e)PO}g3mxvo*;Wtz3Zq%FU{ADOu#>h;GYsU?|}9&bDw zfB5<1p;#ll1M5g+8Oa(KW6~3@+2Jo{AX|xb8L6cYv81_Ec@Zr;M{jVv+*p4@`XdxA z=&I|Bh+P=5VJ{63PX2b5VxvzM@5YtHnzCUBfbk-VjZb{~gI7y^&i`t-(X6UG+ilV6 z597t&#^kR&=Rc_cMbtvlu?0(6vJ+M+FrU;g$V=)vRV#!j zdI-LZwB%C6XbNU%j{wZ5pIY;Qs(oN(p~l9+5}kuY4IX=St#JMI)#`iBW&X-KoN3kY z^xLyO=qlGz8L-4Qh#0O-tkOANNbDBKHl2_c7I8{!gf&h69-q&{srVjAu+?icxvL2y z7d{+TdGf{;!AR1jh?(GJxJK)jVL8MKdoL~^?~URa763)IY0HXP&)ub4kOgbX&vs9w zWcN+{`brF<|H7Ln$$UlsQ3;drcTV$Af@rxx4HZ%Tl7-p0lt+P5=*dRB-n_t3LhA7v ze}(||F%@z1D~Y<4Z_|O*J8A2AB+x~$r7;FMYOHsHwlSh)$=g$e2a5EqH$gT?Jg>H} z_YC&n6j+D0!`speU%tpFbk_lsA_27A( zRf{Y^ckgUqwo+O_<8D+5-KevJfi%_4%47X$FwTho_h)SRec<20`eu3GRH)#hL6Q!F zAcZ2ZjGxq1NxDvsZbJ}FJIuX2!O%+>9`<^9nM`_wQ%LCIxIA*6F9VNSF3lNOdq+-b z(b`2Ki#hqfM>P*&!U)=nN2i^b=X$S^WB+!%(D)ZCqYUCLNR`!y zRXdg#7KGRG@&@~}OJ zLa^1U!gnp*y)7j4q!5It`rb7OW1?d6uMqc5Mr+Hu&%^SxJubfMu)y2coF+*``p?xF z#zzLY31K7h^lsBmdW-s`H6)RbP|%29j@^~I6fNC&46r2PEb)_a;fYa_n}r_!*sr`W zg#9@?#p?gEV24%ly8693a5*Bq0ExsSaRD1##BNGJh4i$;_uxbH48*3m5M2}V2~K-j zdS*R$CK-x53KW~DPed&TcF9_V&cS?5Z%Rk$V=)fG4rp4|IDT|8f50v8p|S*|l0yhH z*kxqtqT2?ZxhFsi;@tjB-dfHrIeYs%-1i&i5f#ZoHP_*fR74oGgd~6*i0!!Inr(eJ zV)pOwAID;}VSg_Jn(j&XFA`P-Lw?{wTF&yuQ|yEV!qm%X-6R(J*lp%=@Vo7^C+{>p zZbu#o3qczFdeT)5a zTnCV*XV|KnIV)s>sSxiV7B-Ddu1sbZg|pfa(4ukQix8H9{cynW?AE7O*Ujx!k>q93 zy!l;)eQNkG z&R)WJo94u>P+-$3`{$6Qtx)!C_piSRf&yvpz*A8u~qvP>9x4IfBfMDni^M5mmP{!(Sa0SuFM z@B~fLq?$kwq@~>J!Nis}(F=n@B3-FO86dqDAxBa}5n9nL626e+49;c|>dRWF8Qd=7 zsXdH|-7235hukd7f=4hhRSu-fE){&e#bp2_{wu_2^QgI}gRB`K!x00YVpEqlVAJOZ z;9q54M<_7hDw;)utV{(d*O;T@CFbpB3dn}X>s zjvwH!n#{i{*zp4rf*XXH2IfqW2;(3E@;ph=3z;BP@}-yiF_n@)%Z6sswWm7`U0zph zsD9~VfR-UAF=`|dz#s4!q~aEYkN(O}Y;``e0^Wd!6yd?mUVOFe?nV!R>8`B>I(z%# zG-EbBhhk%s7>oe)zqhSFQ^Ff$veQSfjpROh6Iqt}^R6Xw{mTSzY}%oU8p7N}ydcvH zVV}+cILkWH1^O)!0A_B5GLXyT!Kmz-LRbO|2`lPq!Jtj3^FcBL!3%bFWk=?Ta4J5v zkm!qc%&=e??xl33ad9wT2Jy2ehl&u`xk2yunT)E0)BY)rbklfa#p62p_P;>MMEjX8 zx8Frw(M(A2rj*BdAY@yKzLhlCX#q{ha+9_8EfNR zB`~SlQ50?xvbZy(PZ?XmRh0(ZpwDQSC(^Nrp`|lGBkQD~W}HUk{cOrXrT|#)39c3o z_!+)y;}Iu}vqUBA&3amku%ubVJq|~w6tmuR?0p<#HpTQ=l_@U-xWrE7j2iNg-C?i< zOUvQ$*LYnb))7(s{-pX)*)_fx*4IuwQ9*A2^apsHkw!8IGy5b7b%cPhWV{w=E;0Tj zTyXZa&g8`*w!Qe3O6VAm7`Oe!AAWaOWn_{B)DYe^nV{L}oKQR7yzeroof2mgYNFjA_4Poq#N6vdoJpM@{-y}oONZ2-*okMOiSy^^|e_zMclE6i} z6%(QL`8NeMXo;68E+pPQFU6XvMoq>Ko|Ac6KiiI>G!;48rbD7!&3AV#fXJEYr1FE) z)CSBIy>8iM&LU7?J=P?Z?o}TpS3Z5-D^TH!NRG}I*eOdF0u$s0LgIx_aJyS6%G73R z_$UJJhWeO3Ke#wHcxN?pe56Z^Z}&64zDQ#vYyJ6#h+A7I!NM}UK@ek^JE{R}vHFWO zLFd6PkNxv+JMktbs)R`E%n-&eGg~NBrUa#PYDpU*RCuC7gOX2YnaRfwQ588Kp4X1v zwo*6l8rM}{)?uARiHtv_5W&FA-XY%_=ph@utQZ5iaI(pKZ^4xrSPkghury>e>8(a{ z(tp9%RaKC25N}~c{(#^m$>hk^R`g;1ZZpE;haywz0#a3G);JMt7~vcZ(?fL!2T;XJ zVUU|Hwinp~$w=ARssBqL1`J+UIs6 zb$kt&b`^1Iciq%dYQyL8De80y&RQWH!2chK%*x-=9;npEuI~Q`S^5k9e}Ets2fkdQq;_P-75o+1*-~ z8T6jVt5vodw0!Ej*o<9=Sli~~A5w0>qK&9r>>k`!Fmn&{vPrUPNV{W*dz#C&C4S%7d*BFVNbBJP(i ze-4(yR&oQwQ?O5{!nj+?JL8>9508+3rItt_$wTa9z<$B#o#Sz2DG^v(MB3~Ww=Tl; zh=+VGzEYi)9S;j~fSa4_?yXNQc=Di^mdpJ6SDF099(13xBCUi` z_g$HLpqQdccR|q=*}mCBF?x^)3lX}K*8P*;qd962MaX=hN0n*fATNVbv@hKnC_&be zyFxNXnf;WlNrEa-0`=LWF%Xd+0C>$s5(nyzE_2I=!p(}iBz4n4wDu&%#ju^1)UXfO zjkSZT?u{vp-z~p`MA4al3LOg&9!o)-q1le>i#XFhP))Tb$nz+E)aWhupuX?BasA~- zu+QZ6xEF0)#%gzu?$D4DlfqZDJdtW|a|cG>Hwzz4xSP@KB2M7wT*0)FpL(SeYZAZ6 z-FeAZJ#rDNg)$cv7(oDG^R0+*ZS@Ld-5$Kl{K)Be+A>WB;a${q;5>CmUCx_=%+@z} zIXU6wFaF(L0YG;{C|Wr(W|DOZB3xEuKB?^GM)K-@mubkW&DLKB{O(OkdhwkNkI(@g z#?n)yjjXh9x}iu>m9ne0Vwph7LRvSOb^tr4ce6^|Q$ksQ>4$2?8wEUqXWjy2K%_79 zJC!%c!muiQN4hJ+k8Tnsih^Wf$^QCcS?~rALH0ey=CEUU2>r|*I)>^NBNFcoAq7}s z6%TD%p22M=$9(;jQ{3d!70>jeV+^u7_>DS>O$&CQ#BX|zFq=29T)3+#YHelMD&?dq zM*Q2^!=LgECG@3cCtq}3X3|(j+HGsWDYHYeJ(1;`J*3f_B{djCUBJAdF*!Bh<^$VZ zQYPz4aM&&7@9Z}xgE)VG(F~5HgSk(dnRmO z6N7uF_o%1G*5E(!Ej6l;8*DI^6pB&Cqb))5VyQH|BI>39Pws}Yn z4;ZOQ2G5#%vU)2rb;ko}XMZ2KtDWiL6Pp& zw*ho)Ct4h`H78Tn{`qG})+besdtLd3D|#~r{WFDZcj$PC2724%_gCqcayIyEmpFtN zk65^(umvxeqSoJPel6KS&mr{@HgFofPxNGUVZ;%aB>?WXQyIwP)$%TIUR%{c8Y~;=D5U_E$0oCso0gDgy{t_+>d_y#*ee z&XFfEM~HV|B4C#x8M#GHr;)a3UQb;4BXL@;0a)D#WpKtj>^ABB1J{!|+4O-65D4wP zKAQ2B%$FyTIv3*cJnH!y){Re1?m? z;)FU|q^V_)Q6nF(D}zm#$aYDFgGb{uPHA2j&zJ#*unJTmS1W*+cU~$m=aA?hq9-Gn z5?c`Ek`g3bGiF}lslTqB7k)JNR&Ht&AG3@aIL~CG9PQLPHTkA__qYu?#0|E*9?8*a zwNU{;j)W`^78JqVXCIa?ZtoJ;6|4|kbQTC2!2^sE9?>+_gK;B1@BBYWlcIK<;TqQH z1mGabGLBvKX1CT1US4;EvHAVWuDbK?JQ6!GEs}j7v92(pS7U#}e&OdASRnl@xh%RB z433xD$MZtc(SH!&c@I;k$dag|iH4icd}i2eQFDO=f^b~lAVXUctah|wk7?$~Sv09o z-xv-^pnxdI1K!}m`(e~xjU`f6!)jP4Xt!s3_R^ER58(-5TFgGWYn|UK(!G+$10!T+ zY+6FCOCE8C03=gHgrOPFY>tVYYjZb$b8S_f7vh}KHwA5;rBcuSJO8o4`$s~F01?!C zy_WhwPp(peusiCEm@5t+@%1@+ftgG-1UW#~YNC}lbcQm-!=*MnId;h;-o($CLA|i4 z*aOR}`bO!kU<|=A){C0ML)avi)-4a8z6FZ@h&)ugl))#^W6gT1d!f-fO9J#(1rn28 zl@}xwn2e=pV&JWv|Nc+1h2B*IW z!Jo^4Lh2+k;D|r_@RW&7Xpb{nknc+|J;bsjE3uMJ9PvH*M}3HEI#C|6FB>IW5WK#1 zz2g+qRMNYj=?u`qxyxnAfn4cuLmk(^2FEB+uR7>7B5rxIamnN*kM`mX%u4062>3s8l>S4u&;6539XyV#vru0f;V^)T{MQ+HFTtbq z5BEt`V~i+dEO?67mZU%GENg%E66xozeqRYw2`{czLcDc?pF=B-FL`y_@qpX{sCyx- z|G_4X7C6SOId=mlcbl|meXqFaOugPn_s=;C>AB;LCqpS0*jKkQt()F}f3O;EPL0o6 zYGe&j#(K`YT*&_#Y{buG(HbbKm(;$7vf8QR4)IIdL!!9Qd7J_KmOQkB?bm{9-S1ia zTuAc>E}Q3115xj&!;fxcwTgN3+tUOa{XWy*?C7smo2T%tUM=$EO=kwHOH3@n>{j~| zepoVR#tQIh+obTl+mn3Cq9bYJ*7^v;6@DuzJkGT@Vg-UP^PW5LN9u#io;My|{-7AO zu-vxtQ>B0>lk9VIv+(q~d-jCkF!izOT86w^-rr3fJB-(|Q?B!q@B8FSI?D5p5y;C- zNPWX)`nGNN(j6M|9PU?CzOLMAqn|&VXxj;RwV2HL_!J)>XY_`U6%-dah4FVj5-`;Y z#l&(7+?B!_tq2b?qF!HZx1S)f`f$}ag;*1pB}Ru&SZABsRm!kw`qI`$`nfvG$=liybggnr=h`U@^x=0 z>Ss2lvNBx|o5CI+iK)xCV67*yAjDTF9e8agpw&tvbY*r5T!o+IO<4daDTjw*Uleop zEp16xTz`R@vp4O|tfl*~u-a8-d7yr$VE;mpPoVTtfD8?%4yhk|v;)gV(=Y8L!Q z;i9$Mx8Y?d;hz3}9X+-AVvPPkFc2p^(?j21E$xO8k^?9S86st)yX^7R zo^!$mrEFdq&vvraI7gD?#JAK9PM-viK?cui8qmg0vO~he9zlM3Sx$nfv|EvPiB`TZ z<7Iub4nA6L^xZp&Wr)m+kU-K6aCs|&F+rFHKl|#%iJu&?T_Nm1)04+v=@jw{i`JdR z%N=7`FN!sBoYb+PAT#3a2Dcf7hV09F`Ji8$fsQo>J$f*K766EriMx%JDThcWUXGtm zdD7e4%QbVX0mQ>0AavWw2tvZDvG#0#bx5TniSG|!tScHU%Qn(zJ&6}z@d%1XgTG@d z)fmM%l>tPt43fv}gxyR!43j#s$2bG{J4|9_+DS`+BJ?Eon0h)d{jsE&pir<4dd$~0 z=o|d@^-QH{&~RDgfyE;+J28w8VLT7GU=P0@Q*g~HV7P=y+~2b~9HZPi*n1ur`PM?t zH8~TeQYg*s%#5iGVDRK78 z+wJf!%O3qaHTZV7rj+|%j~8xGR#|6KD0(cF*#dwkai$~C*VsEBSASwC(F3Xg=abPY zw`obrvaUgS!t0s@RYG)xJiy2vQyJ{=Q;isY0udMGCUsXYhM&3F+pI{D4dpzz@`Qe{q>foOjNK6umVGTL|30NP> zAl3Oj_Gp8yk2&5c@&P^awRM#QuFw&0WWA0e?Dvli`+swaL>{2L@zPgQmsyM#gB4k1 ziA$>~xY?a!D8o^(5bJ?Iqo*QyM`e*ad<-CMpxZ>2+r*P&fw6gv4=-Z1Bmv-;BuNr8 zuu}Waum9?7-f`hqIi7Go;5s>rV)a8`3}o}m^v2d))s5y;+${6ue&JZ$-~{W$;j0dY z$Xw+FH3&fJJ*?49P;!Ju%mJH=zLJ1->~s|Sk*hZB7sy-(qlvt10C0lTUv;kT&IB%mzFH`ma-##Qq_T9zdm{PR!COFn zp&m|n7zlcc_-t^7wVm~tA2D@xB0GE?5c10$4~}=|jrblpbYQ_^rTnR{9X@W#M|DgO z?0eiijXX+S&PFFym0r^`KuDx1v1Z4N=pB;qHtHZzIjt+$GWtV2rY`>r>it#VSg8e9 zh03J!i43){o?yFhIF$0C0}!T;*hK_??#I?34d6h~3m?k5lbV{Eoewn>O>1ipG-Z}N zcQ0Ytr=hr0>AyKt|NOBZ+zIxZx}wxZ>Xp~_S9DM*Z9#Pk1vDC9&cZ6=G}!UXxCj_V z&Z3nfm)CgBD<*6K54NMR%DV~|h$FAQPHRpTL-kH1*(Bgce#sHk41$VlV|AA~`t zF7guDwZY3C+lDH1V!GjlhBATr#*c3K%Dec^OjhyE)N#;q{8YTZo{{mg6=Tk9sN1@f z)eOj<9Q!!p8=rg#8VH$@W|OFZz!N*8ZEEQ9F2wNFY{~xYxi?SQYs0^JA^ulS^I;{WBK##;4PK9aai(gjE&RqZ5 z-TBAL{#FqfyY%f_b6)(~A3^QjsJbHqZAn&(ub=86vvTc^n)eD)7Xr4#vg3qa!0yZZmEX)%YsX-jpJ?X(Zv`{<@`J(8mop|5xJsBR z4NgxS{C+3tzxa3j{)sw6=tKs`*B zD@`#-j5*HjlgG7OrVLtcz~{NEV&ON|BmHsiD762P z%qVj0xpN<{re?|L53hGRvu=yDI+Jhb;meSIu5v_z`jN$MbRTftiuJO|*9^b#9e&lS zs$J!eBbjR7-==STa-dFM(g`1gMh0y|%btIR7+e3M@Q%4#p~~{5MlgH0u4Ad&{z?Uf zo_8BCdaL#%+qJ|XELSXE=LOHsl+Fsd1NhW5142*lLi=1)EN3zWeM{@GGP5#`#Ax|;R8}@CoRmEp8HZ|av zn5ne)*0_IV@IsMY#$PiSc8Xo5(3I@GWjR3LTP7PsXW=jnUqww#yU%}>_^I-(k=+QI z)8u4#Nq<9tMwG6QCL{+@-)=tpUj^=;FW&!A#_r3bG}T?7iw~OTPGL&Ou^Fs#&`^}MzKt>A4}J84;)6d$o-f)mK9eMtSY6it~lGK=+wBkB3Oef+8l zVOGyhr8U`DdKSx`Io- ze=5<`;;lCbLOQX;@z>-q?4tYH$ZMPX?kc<0V_N)mlu;UqI2=iF^cxgTMWb#}_yD6UrasmCj0|D28PjhhNklm9NbP_#IT7Cq%=kpQ}dxbDJDd z#>+4R>bSbX*T7LF{6f-T-_cJ&E3{o4cHTBR^tPUcpTIh`$5@UDJDAtZp^h~RpPcdo zI0>wzyLCoM;a`E-kS*b(rlfDGF^N^nz2-Mv{baF4l^we!?OMKJIA%= zy3j5A-4{#m|MpCHtUAIM){p?6I=VuHZ3VFbuE27r8ssMe|FLPdL8stPV!(+=n^LRE zdgSUw_M)FX%t_OV4et<&j^zk1E0~u|&|R$Ttqh2i64~z6w0WUOpR`tG2jAwLs4O_`OnGym@DUUr%-4 z+7?<}$Js7zFY#PFZ1spT_hU2Ygp=-0R?Tc&st}qxI(D+MOyT2zr&18AR6Dt+^S3Ll){#r_(t}R%J4( zEoH$W0GGQ!M%xb@yc*g#yB*vvMiC=8MMtW&Xi!@hyUb= z8-I6r$k~DLX4i?J5JY>4mlGupphP@IVh6CZwudY%iqTlaJK(6UAU{SZr-BOUrVgm7 z_G71C+WlGeM+Jay98|q}dQJII@UGHw>&^-6;&dCyY3;mw!dvjwnkpzBtN;$*ld(5z z01JLZ^a@V_*)oFfh7D}9F9}@$RY$0)36DUc1^e_X?&*|8w?%gGdfhIDu+aYqs{^6L z%OKK3{pwEkD&kX9YFyID1$fUk1~fTN*f2oa7Xf$l`ux(X3s<}c_2X>+hs}`dS4jdC zlh`!)$fZ}d{?#o69V>33QZi_DY&AkLZF)8>r{>z?H67-Co9i_Ah?|#mmQRnRO?)eH z%=bfm>X5w2t&qRy%;cepdHc9s&Vun6ijBD(gn37j0AcH&YcTBrjZ>w~MCG$dMJfsz zVDEE+O%~=&K>sCxloBQxbqkM85W>S|gp3rhEHrHb26uRY9Q*p4gy;j&NzlWuSR5VX z+@*6?jBcY55|D1fBOO{-H_i{*SJjA$u2UP3r3}F5vI*e$Il1g^HpvHGitOS8lOzOm z``mAL$pi`D@)_rpFu=D`vDF_B#)BB9|1iPi|x2Nr;zm6|1gp|g-X83W{D#UF+ zK1I_E+W*}s1qLg|94fiBRcxDA!fPJZ!I#XK8adobiBb>y=msJzA3q6@S11CM$Z?NG zuT8*-v41)hET#8-DE_IqH)QVt^<;kmu1Fck(su#RKilqQ{08UD1iWg~h>SYj_}sPN zEO&0B6dcbDuw1?ZHz5SvPdw3KntiH?NRG zQfib-rY!yE!Sw0IM!E`ef>L=v?>071KV5@WMnY0PXg?1Uk{KT)gxNlrU(j)7U9tGW zFZMKTG54dhVapcvoI@W1uRV92AO{j8P`mdB4pfDgJn|9ys7#3R4XM(_slVcr-KP3F zzv4XVHE9@fu+fjbTLMA70Czmz)IJD5OBIVisE_(}5kgD#@(ZxD4{)*Q#-lK{@4C={ zSKFJ*^(K^M;SAFm~PQ%my1W=$Mb`b;_im#af8u>hLrYE}GFqV}0p> zXHrI=9QN9My%(M=NRCZDUynrz<>qK-aAT&5S>>eNiBa16*k}afx+*oX{Ki2KY8n@^ z`OOT>=q;NE?m}9HbO{!6$PqGEZGx9g+AEilmMpa*2t;x&etY}i)vm7*9Q4_0-NDy0 zr5<0$L!ipSIQHWNoVK`a$6pT-8;$fpYdb771G=FBA%fs12|6Y$-*5>zqNPO!S8&f5 zy~2x{hCZMhvh^x391ZL2A#ChI`jJ7RDsb8Vb|E6i6Co%G+xWVPc#~X z=L+8~Na;-;H6HSs^RHmnGOkwfyD*@#V2N_lQ=W#Ck2-=a<)`|-W;P{VbOJ+3q~;XX z)ty5Sx~Umj{;|%yDm+iEpy~qgbtx4?)`&CuufAtk*-ed=sJg0;OzLcxet%(O|@GEviT=7*14 zB;#M(K~5NibT`Nvy1iqdeVXch9R_2nLMwkTfcWRYfnXn@Mi3g74Cqut;5TIU%fVM_ zP`4%}_7USHSTGg@SBA-TBUDZ_hxOC#!oxRP6B=GBOd(;(Fn{9Yjdr{p_L!Ldq^GyF6s8IMF;TShP|t$r=Kaab@ua+SFZRRZ!)OE7ECqbox|E*`xZ2q4?p)d7P|rIv7Ey9xfLE^ncJRE{OS@Z< zdq&b7Cn3EoL5~(>nUu{($bxXa0$Np+)@~7>7>JrKNJJMz8q9jkb4Ew94JNz+@DSRp zDb?dgjt|K3`k8F)Z1Zmu=AaY%2@;+~oe6kGNv324SyV09#s0~+Fbje~qsBVcJY)#E zXzN!Pfb>0tFS3hJ7~p`RmoL1F%S#r;a?&omaVb%OrX`UjTS6b!;RnF8mOvsK2^@6- zjZ6|cl72j?GM)ZMN}oBRP})s`!@P||4v{ToKj}14CCjoci;|N2S{(V?-vEx&`hPwm z+AIV_+}z`OgCFIWeyKKpv0qAO_ma6MM)3-3Y>7@eg@e~T^iIOl<8~jNN{V(Tkt9Z9 zcZWr*63dg(ACDL82wNN6#wIPeF*C>4VcHs@|iWx}J)apB+1o zsJdjIxk%d;fY1RHH{P$;bZ5`CyC=(CSt(Q{-!id-Q2mXybNemcns9e8c+YzCh%o(& zXDlvn4tZ@SN>i`g;2Vlwd})XNX5)z50h&W${M4NAtoQk%wHF$bW@;fPN>jh>Y1R7-3x78}?p5qaD|AUmlhol@ zFkxT0-Chy1(^>TV=HTi1Ri~TxRZV|r5*JbPdv!0{zTkVeJPip>XxZ5W-zMJ+&i%&G4c^7e5Q`^sf?Q<9Og=Y?og-G*Nic?qt@*LF*+6EwPPn&6`AQW z&=QZS0YaMa=rq;i6$fDSqC5Kg%}5$37EazCVc^&zJkmTg0LIl?sZY1FOe;gHW(<7_ zIRp?vQK2_E?Mz$rNx=HMh|7B-neay z!wH|oX`O*F=98m6Y?|h~g`%m4WoVUpp#^On%_GFuF%Ayh`uV#%6bZzpPqR`s-Zolg zRmiI)6Q*n3CSP9sYH0v!t6O=_fNP5Oi7!71gK4Q~GcEmg6x(6K+Hn5Yd!@Om%fxcB z<(cNSMKV$l70d6qu=Wlp{R-Ibgmhe2$d#|HWm7l#L*NlS+;Zgrx0@@LY`R`y=V8?pTCERw^!-cx{en9{CdF|?mqjE>OM9HbvhLN*AkWeZ9_q_ zrb-x;N|=NTXQV3v6~Y8f+PG{a~028rQ)?+dd5y)zDOHz^L(%G@s3EQgh$R zEp_AK+xrId2EqcfTJt3>6CKpV@_uf`*-Dlw&2YU#ap?8WowR$O>!hxk(I)an@SA0F zx;g*U1pk!+~E=o?j|}?O#L*lzE`N zxZO4nzt^Z1q>=0ZC)4+7rV_S>5{@>5FaBh%l(F~yEV65zS9|QEQZEJCzHU3ooxI%? zeRA$ju4e}3wpG$)d__WcWj476a~O^) z!9_%7demg7!mnT|@txS1Bu8DA?fbOOhdJe8A*;{4e%MOmK!(K>bZWaB1Rdti)h*ro zE)yN9Zc5?KLOpe&KnzW~!~Fi_p6oZRx_hTTLkk?nh?e9BxjRPNIuKQ+W1Svsl$htt z8z$#A7{>m)sh~+Ed3&2|OCwv7q{;-ZyTEwZ%J@T1sPlF@~nI_FoDdJNj z1*$gLyttVi@RV$cS)XB(W$^yNtB1n!U3V#2mb5MTi%EC8yHPY_?lV)_YdrDQ@4~kO zNY-Rn55{%yYDaynF}as3hXg_&$sEpoL8QU9z@##CY3tV4IdO53wylw-WghY3;a-Z$ zf70Z``aQIq`~tvv)%cRQId=9*Lc!x#-F{~gmw)p``}Y}^gVhmy1G!}1Ct+E4xw9%P zq}j#M?!&Q?T&Kk$9c@?qzz;pW7)AH`YF~{1*R8+N^6kE)xSK6DE=i_0epKFt{pQ&U zsbQ&yXa4>-STLAX9TI!GZY+65$+NA9Q<8m&vdFkp{9j}8gT*G_+ZvO(K4y$MH0HYu zzFEax2h6d=CdXy8f9{Uc=8`gQ(QprrUHA7Fqquw7$yy;ylpP)%zF5z7Rn3^xQkqPI zcw@rHOB@$RMa2op^rzq}WnfEA-J8~zv^dK7_l=@WO+%Lsf?I?9$KUl|=n%-@zV9CS zISsKJ=sGx%DKgnD@5{*I2gB6waDQ;^r0&;N1;Ll=*U;v7m^-KUHxu^fqMVb9XMe1s z-}2Eyad!HRt{)#(ZQFpwrF^oMX@2XOB9n|--?1UT4c@WkT$;31xa4EF6Cb?uKW$~8 z&+`wdC7nV1wY6SbXGRJl64I3HMn8GgyB)Yd#HUzEI!a)>MC^abE(CD?kH0Lfn+Qk< zDf3{coTE*Pi?!ZY2Uiukj=1=>esOUQLj>eU1YWWnM3bp+T|%U-2@n2aW5)Tc&z{0{ z+Y;2nA&W44Z`uo^5gOj(UKNy>yu(~K=6)zp8`p`ZrMuU~$N2_|`UP(z20EU-{=-@limOmM1meySi6TGb&dL-sB!riQ+2t? zGU>6U-QN$gS`}S&G%vKrpJZ(GCCrquktiv@$INH>al2q;aOi7Rg%OK1HsovhnAB=U zloO^lbpZj_0x7~pC;s?pM%Ir-Etm6I{=wpP`ZdqSACDgV<@L1q(-g%?b*Bf4|pjNAKIEE*o{ zzAnLP7v@lR;LJJLz~!EU3pd=#3{_5da=qjUI{WA+G3KDriBViZC}#9qTYTq+#5erk zv1F>fx?4Wv&IY3-nV8Od=3SNDd!uC4Et4lLO8%Zc_Qx|3`b@dqA=yxh#M8m=Es(Kb6{L~mZV;1v6@U|{2qnQvOb z#FZ@4fWRt1UXmzR@GB!Zz*^LE%b~xkCoTTUElz|hG958*-tX>mA$9~goRVhB#KD57 zIHcTts{GAal(bi4{xU5-VZH1aixRP1t9#;b$cx>;qVimWb6?!GCmo(i4oG!2-P8eF zkGqZbaAYCCVc8JeVZ{23j(M<^8W-P^ZWJiY?uiaDgMblXK~`$%{B%6R&VFpOiJpHy zSpVi9+?`R>b*k=P`^_+@33~1?cw`V-NfW5bI>&%f2OPUnTU!gWL={efr-1m(VTO_* zmjgmMS^H`&d^6@tN47m!J8Ff)j!5MU`_6C(^NS$_tA;Gwj+8t#4I(vEYTuZIokQw}V3khDxY_==2N-bpXB%f?F z<3%g%4gDl6l)d2Yx;GsDpxcovAxI~WSd(`|$$n4X#TnbrJ6L;*5GxNS*Qq`uRVb5I zRSzc8GOQ7rNuS=Jv#*|g9GF1)bks4*0ypd z0$}`W%Shw`QJ0Y;Otv{QBQw)R#E7pSgoU2w?4jd6F&o_B7-NbLIU6P|&~Ik>&%Z-y z!WR|s$C7R92x|mBF?62)=Wi^xbVG7ydv0hX45Ye(O)937suj=jO`iM|u*UqVL=j#fhCTVP_Gc9C00iCA=?K zWmzA)HZOBmT|q*zId?hZjrU(4>Bp~H2?4Y3^wdPRUhDW#7#~iZim;&JOE%BlQ~*q6 z&f_6--`>fKbi}%`63d@vd|o;bJKDo1p#vpSnbd*S7wibKlzIPU8VnWq`cFhi=M>AZVaw0JUhijn0JiVOQRM(}ejaC}0~ zzCX}ePz&+odhz_xfPh~%nq^Yxgb)tVPSX7L%9XLM8 zN2?Ez{2X@%jMP&HfB(pf-p`4>n2L16M!d>p@COSfOLH8x$&!%J_n!)*J6(UJM?9cqLWp~mz}w@3-qv#{=Orw21?ZUY%MFyHJ6O8ory4A$v&!o> zBWqq6R>Xx4POFJW?ONDKlG4=ES}>z7dJMiOq(RtwbLAaU-X2#-#=p^d&!rcoan86+bw5>Pp`QRKYIv zTIC>}kS9~>={Oq=eLmckI8GkzVTk*kN0uVOV3RjoH`yufRsw!l;6X-{)VfYiI-T-X z8;2XNU?I2(@ z;2|O;*}YU?jmnQy$4)Ja3K&ZAAn@(PxHt5fv@ zU64-^FyEW7X$j*d?HVXt&lV|)&*?u4FcY&)nv>h#Om+c~5|pok)_>9w~s z>D7rLhN<=^!sZVA6i8y8S|)_SRD%#Lo$tG%9j;4`c{lq*-4}>#f^SSYcv>wvjz(hf#8Ip4 z?Q@?)gi{m4xJAU9CvlXG)373i|qh0g|kCv3*smz#ki7ZT~4Panv3R zuMPwx9vIV481O%G2=wEjFjn_#2(A8rjiaDbB!2zpFQuFeuh(tWNBZ}*pV7J!a>IQZ-A>3BxA{Gndo|B5-wmcC6Fe$ zMI`MF)&R<%p1fGFs)J<0#JC~?vh02#Px<$d)=4wY=jXwRGKH_3;pg`#(m5A9g^dLN z*ytt2QALJZV)JR2z_Tpvmw-hhW~(85|9Oj=35Bjyi{e7rZ_bjh(|-)Uc=iZmFbA3L zU~O7vlDM7dG&i}{Mjc05X;26M{_>ui18tsMv^x3s0VvbGk93!ayTmQiRFCB)x@qCS z5lV{j88UTsW{eJ@@h`~b-ges9N%ZocUMa=Eb@DH+mA`l%9k}L*zI5GW1GJu{O~maj z^KmY_yDzc*ASDec11X3tg0Tu|dx^o4AM? z)YIQVa79`$s{%~|?~cNZ>pq^R#=*xIb6R@Ztjd#9q+%T7D-ksZnP+2)nylC9knx!vUmQH#XG zPDNhuc#xh%2eB+M-rQ(9vS%>$sO*p~kds`nlYQ6~cDylobF;s{WUhug5cx=S%A@&%qE&B%?4GY{d&Y`wnboHiMePN`Pe6{J{U1R~~vqMOQe4#{)y6XG$edxU*Xc(%YPMjDQH zjFbBmmqjMi&HYGYE_c!sqJSy`;~Ip5N!dQy>>SAlwtIN$6)U>=uY(_oxZSpA{Dtl> zv3UmYaP(T?bHp|Yg(7DAIW(Gw9Bts=Q~?71U6u`dBN^30(^}A9>wsXaesv#v69LTf zIfmHQ-=3Nn5r4IUSV)uXFVnZ6DvVc4tUQBfRE34>JlyR~ux6MmOd)62eZQ(AJKB&QRU#Hv!wEMvIw`)(yq-PiOrV>&$5=LA>A}EMv{P={X z)UaWuEphZCp&ACf!uO;*e?{~^=oO0p&D_7gm%(#WF)_%cd@*8)`vBT7*S#5HOG;e4 ziI=hy%+`k9?c)YV^%po7SJbcavL}O(o!j3HHJU&b$NcM*(e`VrY_??-u^rWZu!u7G z)z(dJ_=A5KRF+YUnxv~60t4S1Lr3QaSVrx@YE5)E8?k`oxkykYp$jl}v!;T%MNEFs zx^x1W5}6?RQPf2OOnEDbK2EZ7+XjH8AN+gFCZ=Ic+X0sN{=<(xkhY&_&d_F6?pHZnTg<1GIpZ2ykf&64C|h&T*=p{&bC(tUj*1oZ!j-6^IK8PGvd6q64MHGG008KL)n?wBM$g&>urx2`{9 znM}H3rKJi@`Jucv;eOU=gfJ<4v5Q9MSio(V zT$r`+qDg@HSasMcfHs`ls7e(GN?kakb#4mwmOmBUU&h%T+|bPvJ4iZe(jrL+oHaYK z`u9*plgD9<!XUGgpDy#QA7br6-7WAlLqMqMM*(H zKpK>(Q$a<#K}EU*>9hq=6bS(dm5`QhIM-vWv(MUNoO8xn-|vsT$JlG^HRs3szR&&K z_jO-E%tuLo{}8uZBVcDcsIG_Ky2^smu@4Rus--X(M?G8>E8B-31gW0RFL; zq!belQRc(>3EB0Q0Ks!!+_>a7a8xC0bb~GUHOYM=icVqt06QF}P9j-_ltnN_4&6CV z$ykjr_B7pQAE2!jzOC)I%mJqhPK?I6s&H<%itk<=2`Pi=%d9rpF%iHVksRSY`4EXC z^9Dz`YHaSQ_+_Yq1KS2j+}n@#Cj?a5JCE&>gMI1y~&CH zs)P=-#Sl9Y2@o0M;_&)~d*T8J=cDOEB%g&|d$6u`1ptf)NQ+^qG<9UUCG^pauSM`I zm}AAfAh&Lhwyy*RHt;UrFkP>o>PCD<7vOYtf>F=m0q{)X+zf9Sdge`;{`2R1PrO3} z@Za?F&iw)fjiPA?%mT9IekLT_kT!(G_mO_9t00=8FTETr$S^eI4{<#m(0`7fboZ;k zKyDTP8~NEs$0vQ}Ch>izt$eTzI4p62BqOR^k;8z+<23;kyqIE384jinEvf%Qo|)pJ zBF?n1V-LeDdRR$pT&*5LF0%TYhR^9;&^O$IPQ9$Z=*6xOUd2zHrKN*1qDn2HIIHuQ z92UlR?6AoXX{$r`BnF+StpQ|zB%nf?W%J8b`#C6gNX88aL1&SE$?vLBnkrvVT{0JJgb3O#`Qg zD?LeeUe3FOzbN-hscEZ9B(GKkogchj?QSwTsNTI|W$3(+>7V5_5(U-I4KSwIy%ukBqILEtdrOGpTreq5znUVYfZ%!Py7WowY=X&G9&f_ZxIu@4 zeY@m52{v1V+r@7o1A}tx>rZ@7r)I|cG_MVpzzk6vnEFQyldjz&Z55~?k%-dcD_gntfnM4R5EHUelLf00Q+wqPT`(? zaO{S|)KxOY+LFnS7(%1Vf$@1Eu?(#wTWf+V@bM{BGsqahg_QK3b{MU?(C$>Bya#^O zLLy%_3BG~o?j+>Un@>5$QHm1;H9d4TS?Dj% zl4jnJDC{m)<$h-%;qK_^t1+BM1IpW#p38n%Z!|~)XR$p&26RXwG(9OLAod1K(8ejB`J}X zS+ps&X%F3yu0~=WiBLN!1HJc7l8lRV%1Rfk4J^+Bzz(0`dMX~Gb^1nOj&chnaj$Yc zhJ(?4cbEU`pIMtI2_FHBgGF)YoApN;O_RK(H5A|}5@VWCqVamO;YyxoG>E5J_=z-D z;6pb-w<5oeR=b!WKBiT@j$`t@p*1*x~lr(4z4S)lj_Enk_K zezW(_(d$hpx6ELJVg-(!Q2VAnK2`JJ1nfJwc3xSu9MNXuB%|3c2ky0-hK{j(!KLbt zZ;PAELVGRHtP)~Vpz+;fMkd2Lpw86*_8%$vv=KRt}asrLEF0Lyfl^kRP4K*t^PF^O?Ye!2t2&HTMlYa!XB9lyOTj8I08d4368 z`|N88?I9lN)jsc^ae7^Q!Glp$D;ObVBRQb9oy98YE&m&y11**>&ww^uye!MqSQ~W<<-l_e!tS#0WhikfL+!!q@K~9*p85!~D}4w&fo!>RqLVGKpvw z)*JvB+jC_DA}qdP8-7uPO|?pw`iSDz)s4Wx4_bc~LM#iH;m1KGVU6O=JN=IhFd2gQ z6*~CI*Xxezl^v!Hn)uM-m+L5QJy(FNg*lEX+v%~MY!5aTyCeij=mL!B3Q~TzNqW1f zQ$iF4FP0@<8L+(?Nik!R`%TkLT<#?sY&=+yz%_@hP{7{OlZBUL!24))n>49lOELD( z&^rA{ma6k6ce++-*F+7rYu)hkh}g1PINskvnC+j7m9xIDN)ve;UhaEk{%m_fB)5eU z-Hpf*1L~vV!_NnUgoD#BuiA5Uw@+yVGEqy`kFbdz>kr$ocumKB`j}}HgDsoK+?kQ)HjQb4bgz@65jKje#f7vT z8k1cbl0IJ1i)y08FZ@HCR^CCqrT+Rcon5~xgpn~_@ziPCr*v>ns@SBvd)W$hOq=|t zkMdu>04;ztOIc+JL`~D*A7C?9TB$xNo*Oz8W{SN|a-j#r`10WghsO1O^H%fP*4CA=v^{>G6k&4c2V~J5jN=s zG$cEF=ZXQv>82+yqx08>EtQi7Gj;AX$a^`mpgt(5zB7$sQ%X$UI+}mK2VTF zdu7{xR`9#SBK69z1O~51&9!t^3D%9duUy`Xn=B zY1kFz2MaieJGw@i|NMlU`20bz0&&M=6tI)pfnMMe$9UdCe1t|LJRqL#H)}2C>d2;@ znwfODrs{6D=Z0qLj|U=0F>#gmw}Zm{31aP74G|$$nfWT|1XaY zZIvFr%_{wEe`cMI&XAO++Z*%_5Ld+9W`Ddx17}V^#2wud8T3n!s*mEURBySO*OoqA zkP!8Vb~&@qJ^(l!`QQB0^#ib5a`1Me-lR3wy?;o!afW`9E+k>fdK83ViuHWx<1Zn!;W)9G` z)}C_f`BUKje=xWHzdu`x1pLM(C&NpBW{uc#j+otuKka|4n)UT2DJ*@d0nh-B%=A@& zy93h4szWBp!t@6%gNc9p=v%vOI%k&M9D1#)#D>>jlctMeTJh$LW2yhJ3z!rl!QDCRrVfRhiK);??`$1V@O0&c=hE5>>|ErRa>) z_2=r^R*O}H?yu9dbLZwQFsXA)nA$$x7jmgL5Tt}T4g23?3Pm0$Esrb;(&mRn=DfcT zkQEKPg6v?Kgm8yn9Lz&9O8gz$6lTVf=sk+RTr(Le3BU$H_hp3+>yH5&4q$C~*u3Uu z;fE$#1f9CVI-qGd)N&9JN+u&6=F30*`P~2Kv-wZI2rp-Da70^Mof&>XsN*NvdlCX3 z+);$3AROB|hF=93&T}yd^CO?6V}-=YVD0#Y%RF4%=j*t@GC{DHMfc67oRk@4`!3_oSkj0FVQwjFAF92BMo@n8hVp zH>iGTFj92>Qr1UBl!o1CPewXJa*9k_{!Ap4I8fzRfaeq#>8bzzk}P1UP#wUXkxJiS z`H>wceH=92I~Gs2x*jNKzXG+nWg^qZ+I-1%Q-G-|>>KK)Y7L#9J`9!xy=%H`QI4;O zhg96ZH<#KnZKmi0WhOc8uWVu`em+o1w+(+uh=T}hvN#_And6Y#Uh~>LJcRn?h+hzkT!I^rtKQHXxN8$hE_^aJP z`Ru)@_FHbGRZbPa!LdeM%UirOYg;`s`F1NsdS~Cn%}W&RoDaZ0BvR$M z>F?j{MK2#2`q{}8yl0s=!Nf6hYPjOXW)58an)*RN`_-i`AKOLvI-n)%(oGc|0vb_A zHJ~tD$eTIYiXz4qz|k;Z|JWu*bWC|AbXWSRCL9usHD5T&%af#O=e)?R--(vrI z+@dpP#AM-o({6~QU_3}X#4#Oxc6Wh;4Z9qlu-h`z$cx7TXrvO?St8Dhm*`>iVxqpu z@>=DA|Euj0Uyd@*eagQ$Qq;zVG9kKf8SZ;^?#y~OgDE))7%hi9=z!vD!!<>0A)c?R0Cb6wzs~(l@PU{iqG&V6&Kj$GdI!oJ0HXIO3cETXkaP7xL?ORl^pVo8K7ub|a^DtQd5a(0gy@h+o<>|xg zA7W^be`_9*kUTMEtC4=KucojGZ7|ve=|F$IoIB z`;OjqOvQHiMa627-RGOx;Rg-dWBv<9aMHJ}*RD9e^=-?@at*#F_=1i;*fGC{BkEF( z{N8Y|(;g1KCZ8W6_k2V^Z`kdKn5#f-&2#Yvu`yl-cE*Vs5ZkO^+I@CO=UlD*z?F@k zOk*&roT3}h%N*tL?L}q-f=sxcB&b(wuFKL1XnyRK^1@D2)B_BPGK;Lgh2N>q9TJ`V zZ09u7lc3t)Ou^euc`IRYzbv}{OEIUsg1U5ywP3K2wBPV8w}=AGi%YGyE2C2P#MBiC1RPNcZZCi+_uEBMYBM5ZzcP0O-r zXMVRN0fEE4(Mlz~jGqt^FAvvx^!0so}llZM#VL(q{~p^XPfaPb#IC9_B2~@cEki=`^_y z$uRl;ND?(aJDjjS1ueilwGvM}1emB&l$n%wrXsKS4v{xJ+48|U7D>~I?WZU>mGfwM zy=2HO?)^QR-DmmnoUtNElO6X)@wi4!lIloA+ivWCv7U_76avZbXPheZHT>XOy7uX| z$r80L_!}c%aT+*5C{tX=Bbemh>iG2rM;CEl$KF1k+nvbUhX9ljC9M_swNBXCE^zD{ z0r%i7+(ts6=QvDUmI+hewzP--?Uy6K?+KsYtx#p_`Nt|wM33^3dGg)_om#05AeXoi z`wGD_?b(@>^xF=fb|T`H*zpYHDUndUp18PS&AH7BgsTBQFAEXV5h)*%6cs1uK#e3< zO5?{2~OYfyfv}fhF7f;f1o48Ie+pBeMZv%yLMy>vH{z^aID_n#R zS2{w`1S+J~aC_gAW^t zOaG9>+?O?@Bxd>LNAU)JugZqB^_#+FFPQOKS}n~{b!GDy_ECGfAw^oZIWMN@hB$Zx z#L8bAc?NGX>%SI63{Sg|NM^}84|R81FeFPswBms;f%bH23-tU%F_nc^A5ZJe^KJ-x z&9i@<`S7Ga8mGaaVCCg)kn$bA^j-Oy=%!f+A{?NA^On7hEnTXLFR%2Dyo}ujo9x6; zyHz)9jV*%ES=9ds>GMHtY3^s+`=^G#z43hgRWL!waISuXRQihrB)01e&%Cgjon4qL zldxYcLXmFv*KCuhh)$(0Dd|@XPvSSKpsF0SwCaAJ&)i{4(_xz((A>BLt`eiU`K(qy z-SkjN03}>{aNMHXQx8#jSx2D%?9k~!H$V&47!lMi8j*B!L~OkiJFexXRiUnmSnF@Tz6EN z>Su;LI5z9~A#XR5gZGMpPi!q&IwC2QdvECQv~Dp~eg%6(2NW4(J08D@S6b7D2ym0|y9xmfsN!|}0t}hRUE~+N+ zL-AfS2!)A(g2uJOd@36jsx_!zZTxZzr@)12tu}R`0-YDnH7lHFb3~^web%6sf*M6= zhsWH-TclL@pX z5f`^2@Rum0R{ph564XqgoUzf;S@sh_dUSHm{xfXI}v-4N~Kfy|L3r$q0(I80xjgAi_){L_l>qnP=S+e@${z z!y)q;6WJRhC9r`$`_}*{B%!2ZCppkr5QbF^3qA-<`CdW6RgzclCNr%Tn!4Zb&Z4Y5 z{~{SOk7*gCXvnbHq^(a49UF@A-5#aqpbhkEbTgIq9zwP}+kR%PlucnPeA` zpH#g+y#1>b)6X{&J>JPi^wW^S=nQ7y2KyK+qhcy6q`yD?6X`>UEW=d{w;B`lT{rEH z#p4z_I0Dg}c>gj9MKH zxxB8+usPbtHxs(@wVj)!l0I4=5cg1hr{Gi{?;73ca`F75jn(6yMFUj3qK6B(Egqk5 zK16)Yi5hrBcmY?Z%C#aseVN>15W; zCH*CiS^ZgcWxkwC?|{SSLb9A8Ye|jlxE|C|L9V^^$DLG}#wKR^GD7a%dGm~sLs7muT8yZ>JN=HV4!f9Goug;8IImjJU11u-Cda4!CL*nCqR>Gh+U*co zmO;;PTcVU!CQAIXePiVjLu$cyJ<}02O`oZy6q$63t9!!c@M;s7#Xruob_^3*E-_jF z-RodNq^;}%#KfexCmtI$asIB2DEDCoBAx9J7+1ExW?eFp_~3RWhO;1|L4g4EWmT`> zgYOwr^N%P9#KsoVY|(I(8vix)cr~&8KxWqdSG%!RZ9X3&8>(ab`C`TEyA|`396|Cg zY1ZRJfEK|{*yp2YGvX0E|Kc7Y?jk;!o19x1>S=Jd`Fy*2GqBP;cju97NQ{P(2rXc+ zDIxrtAK!hfyqU14&I~l?Wq8l?hFNlPhJZ&~TYK@vG?6#1EOLP!^Z<;18cRt-G162K z)KSGccX1%6flT%yIR@*@gxU7k_DYH5oQkCtN^?C1my(>U5}MZ9kvAMzqD8t`+rDH{ zf0BVH@HTUw*!r)+Jh_cx9xtX@sk3O0^F|jGv~-Qh-{x`m?#e_(J|@|Z5TXF6lL>(_ zbY^a28QU@Cj>uf(+=wD@z=0?WWre!3JHvhURj|_9Ig~NkeQb;Da`+XG_utRV8R3C#0BXuD5WK zzqV#abgA2H7hxub?muHogzv@y67xMuZ!!zd=d~QdSbj>|1==OPZeq_e0>`6HT=t;@ zDWTb)oFS8ex-4$xt)G4US9R)&jrRf}w@?#)8Pmjz%sTjba_x-EDXOMvX;E_b2VjIk zs$RBYesZFVt~1Ly2ZE2zuB14)lh^ z*Mvwzgx#P2vrbi3ezG;w_!+-n4(&Z+m=N}L6sT3eS0}#cXNanj7c8CnA@k^c zNL3n~mDpZ*Tt&bTlc*5nEOApdc7P5y=~kT&>fIp-E-o5wkCW?Yg)#Q=U|7Y%h|w19 zV93%-FMRVp+sfUHeQg6hHwiO(Q@vu_1xev_T6gYTc;n=*Jk3MJx>dj;klFF`{$oZR zgxqzy9}V8T?ILKRZ@`obKi$gOK6qVX&iEbrW;ElesRsl-06vt3G`zLwhy8X292U1^ zA0D{OyMB-K8lSbbd9BIL>=r7P0DdCk5pEZj@Zc>tu1KP#n>+CE>!2kFN24O`T*2(OF0I`iRhMW+!K8lM2!R0 z@@zjcTKVPkel%Olu?Y!i+g8N+4~4!xB-hn7?ULbtNS8W0*X+aTLT9^CWA~Vf(}S#P zwv~qngkVrm@M5SuGIuW*T_{BA3d7Bh(3&f0npWl@SSIjrD+M9keS%m;cOS3#>nDJs z>_g2pZOSRVBcnKriyEzbK)ODV9>-?hAiw82wN?*Ib*C1d0BTEYTX&Y42@qc2W9Q&lBQbT{#{@=ty ziEUJSi~R`f;5=Su0{Rvr-?xkT2Wh6a93sPKF7o7v_iRql2d94Pl(gJR+{XLvXcnci z6N-?A-hR9hh(RoEyPAX>MzO2g1zr;g&>XPJ++?pV`t3!wH3emFlJ@im)8C!8_zg*BtTkW7J26}AD)bT*N%>AWJN0|Xnq^zL7fy3PoV2oh*fz2 z`K5oUTR?!K?3RO}d53)})p0#q6DUFtF0noE(;zXB@O-Q{ukX)Xx$Tn>^bYWUlKB|# zQ+c!7jhXrIrO-(qeF~E9ytHW#hUzt*yEw?bW3aWP*MI4<(vgRJzlbv9I_=Nafba`y z#w08x?)77d36 zGO@hcQKp~!IqO7c-uGL;4A8?>#L3uOYj2^TAA)2Wu{2Gwxzj~TxRDBDsL=j`zH}(* zlHb1qP+U64kCC1DR;Oer7TU{gGIUiz==WN!DXJCBfqE|I!MbNC3u&r23)n5ajy09)?&ey}DhoO0f1M13Lw~p?{OVFvy{)oqKEJU#F=A$JBz+cO5^T z1$=oHaALcR`^?8U^_0KsqMYbzCA>EA`pdpE<||5FNSjYd&4;cIu>;>mvE9>fFRHKJ zYSZt}7SbOqHo5KYPom^BSDi0KX-Q0EMZM?ifuDsqbd8r_oBYDmt2osJ>|i>uN5`je zZKVtZm5M?;&D-3?*)MP|r5a_s@LsASRto9#RhnVW7cWAQXbWpfg2*LNOD%}p+L{qn z>ZbJi+Sc0@s!DYXR6djx?NAX`jilB_@*uoscK;ZDMRtuKmUifZ_L?5tau2UdsaDNviGKQ<%?>y<7}cUwQ;S z6x+tL<973Pk9y%gA$sJxc(h%02}=NnVf6fjZuZFRC&4o><F}jQdf%d+c(Qi_i*Dx;fB396Jq~N=P2VMHWXu2>-tQV+ z6i_JQfxY2qb_{bkYBZ;QVgFs1p?L#9F)5-m-$M(F_C!%|tr@!xkvEP=Fz35F`c95rDSA8y0w~w%&eUoVN4FA5U$~2+@ z6&!@SIKwg&Fn_k-lM|nIHF_+XykZVGerr?zTrwj|<_~H(8c$=91tP*_F&>KpN|B+F z4m#==tV8%J9)_@|=_r&{Dv8U~>kA@NyW_K6fv0;>M!f4%pr~UwRf}E(Boee|3ESK!O+ai|D-~>#M}Qj;XZ2KN5g%Cm~vAgJ#}^ zdNuFv=nK+dNby@~fyZJyJMeLm1deRA+1(wbxv^YiUOVQ0|EvGw|0MG}2`U>KdbE+y zE+mf`jdUa%Wr6x&-f|d>d(t=ARi`1)$sbPGr=$P8svN&yCfw%b&zG)zj=a^G%$Bc&w2Msd{_b^eyq{ONy<(JXC_Q zMiGl`2oF0V?ZAIf-0r%MX+NtlkijVX-gW;xT+gyklL}!tE<;g>|JGY2XttdOv{+8} z1fTX-VdudrgO_vFJ0VK0QjRG>_i*1)DUHN`j2}0u3XStv>}YONY=`zB86s`HW4_aOAYTE6r8Zity-w%(=?F zDmBC5kJjh+75iV^EB11vYc4b_L{}tPvN?3$PB=CA!;=R+&uYejO;yHSxUmtiZbE2Qz&0e{nQ2V65J^L4UM)z7Ofnf9%gHmIlewqK$x1CfbWAc% zW^>#MzxaPn9o?{@^PiI{)lx^-O5Np(d_c>3(^Ks(d&%+*N8>j4c(d;wlk|72?@(BI zQhL3AzeBbCt?bFF@SKG{LF0_!H+K5>?%i|jH#Rnw4dMzqm7wVMDw)H} zwjZG`Ba@SwrLNQc4`O0s+%gW_NYm#o84up@*B&RQ7a9CMa&2xLZnJ4)%{Hf6i)*s0 zW!dHXKb-j1up(`(jB zJSqCWqB&ss)-7gt&UXow%xg2qlHtmnjH{jA$UeKtwB9M>eM)RBOO&WnjkV>=(TNF-Xi+D%WVIxb3I4N{ zd*p(7RM;MVx;S^aXS{)pTTYIBZPvNBpRVWf^9#5*m`r^O7dTa)dMe`3-7j}?EM7<) z<)2uWe+7T#XT$Qjh1#TD=iB&#_IfN%JidHksbxiW!#_@=*5-qHJ+++N>qZvyJUwq{ zy#HzuC2aSy6?@1Oxe&g_FSk_ASABRRyX7{${5uO?78NgF6)E5Sce=9a3=i(Sqq6jl z%B#@ss&HpV<&GAwyIr&M(i{pxkLi*R7SVZ@y2u5v-^wzrPS-22ZFv-Np*yrlyG_B( ziqa3CmZg0=6}431D?5`-v@CvAR3Uo}>j7Usb{aiLvwV5eE3Eh%A9THo(q)qie*A3n z+eeaKR1Q-Q%E~;lR_wc`%jv_;^2Ynrb_sXA>#Lcwj&M%)H}1-gSi;5Vr(S&dqI%M) zWAIbWnFQgDT{pJ&ZA1-s#!1!qqv9L5+fL~h$ue@ZPWxGZ_S?i47_StvX>YLlo!V4w zlc_V`US>)24_Q?UQm>U{VWXA}^y{q;5?>T$J3bn@Uq10G4tu|SWvcqQMWC7XW8YO= zBw%vBcxFRRecCyVlixnpPd?T7=YmaVb&S-xG&fKT2bof>p6<}!xqJ9p&W|w3*Wm2- z-F`rqFX}e)SiU@4`1k-j^MNb@pysE5k;vxTk+JoETz1>Az|ze#R1t{x7`~ zo-8LDoHW#KE}`PwV?>pbYu%EJl40Ic^AHbM7%xIxMEQd^mqxmtc4uW!09~x@OI}vi zr>n1jE_Ex?FQdymXvcpqSUbz)1Bhoy3DM4#tqhxZLU*eQIh~@X^>gU=<4OO{Yj>`~ z#MQ|~j$8BiHHmjo-1;T(=1V%VqQ{(jlv_3ayY3V@&O%3xs{S%>m#mnJ)|LpeqT8^~ z_&V(K>Og3@r(fhij6o(G8R!1mvc+N&oR#CpXqb-EYz_ZmlHFYqaDwg9_7qy7o1y@Fqn9SZ^-jpe2@j;q? zb?`>{@oGMK$&O&&Ea^0pzs>NJ#YcSuxf>*!ZI|PVxezF+_M^T1Nln>8XCjy0na>QH z`3TRI-|LymEVz(qEbaS5UOzf{mz7I9D~?&&Oq%|!LH-3}k?$V_&VB!^zQq((uDyJz z$c2yI*5PiGgDr=V46E;YZ6%XhygZY7qVi5>!9LgC+N3BKTPW!%T%SE77}iqvbgc>P z+38t6Pot4xkOsE94$4A~^vbL14`nyz0MAzlKd5qJJ=@2oXy~6?Is~xGWR!9pJ9<*1zC+@WpYlr~$)Q;1yeBWh!m2>8w!N2;yzVLDQF^cckSVC~L-(m1`5=?>`t6z9aY2=;?OHogW zhs!u?Yu`Nc)gLqzJ=s4i#d=7+)pyy<9BVFvN?8Sp$3=scT3;WfCY}4vwn5XrAcyQfqY+_>JM4QI#IOZkOFE%gc zkKJK3uQ}OWEyr|V;oEu+@^4F6|EWlmOI=ncU)iFmHc3|Q(P`q038x_oR1SWxiU>iQ z`nnX&AU3&8>S;RacO(`rk41|(4sJ;C@mjxktu>oKgyZ&6J&)RX_*g9q zoFhBFw>~Y!dAv7?_Qu;A*Si!cUIxGJ#B&n$GsA5=xNGf(4RJ8C>BH7LLq78!orfzN zt<>&G(@ch$tgm`b?fEuF!VsPvH8(eMt7RHVtpZUFeoLot(f6<8k)@$N*_cOi&Abw#{c{vg$^{D*`Uh@Zgx7t&YlzwK*B1^`--5U``#sBX ztP&A`k!(;>C>z4ZyLa^JyRJ=CAXR5y-6?4G$w*@K)>gqLuNd|XMaIvrIjp@jKQkT# zWAwbxy#W-y8`eseYg5x+xfIMH#f)1yl}cr)AN!|$*!cH?cmt|vynGlxTVMX*`)N1; zjzLFaiSzHk@(H$7>d9)Gb1XVjd^SI9&if`P$CxYG-d9@q3tCH+4)nfI`M9kMhw z_74fUH1jy{KzCdBv^Tl#9!Or!PhER7N&A3#)nBHm`-TPP;afU`)#AZ3FIO@P+a5jU zvq^ol>+Qz1YhzI;p3a=lbN}49Hj|o9=SDU9$q%S+{b$fxgX?q;WbfnP(yHFxCVWAf zvTXt$tJhK5wbWs>2d#05HLTTwF*NxCKt5>1S3%7WPs4PT;s6b&smz1MPic5{#vV)z zwmd+`m59HgGEz8zdBp6>_Mz6dYNw+uYmRcMy_VrPsf|uja;2A&_}x|y!^2LeDg!xR z(riY9T*KxD3KtTjGRRhMBezD?>JiK4+_cId?(QoG?so)kqFuGB4)(ktxSlgd?nj}+ zKsYlCaT^z~{``sl+U;FThadW!6{YkSK^>`wj)}uVG7y&>-R6AzzTj53N&Q>fgik4? z);N$m$(h%yj z$IJ2&)jKr$|WStv_vS1Yt_=kk;AaEF!V(O0*bKSC{$+L&#ca^cHU=gAhwjqBHcy~icL zmC^;xE1!n;if{Av6kJBER7H+M8Ymb+f;I-|0%R~-UAkM@@<5)ka2n%Gv&)-cUb?H7 z?!2nxLB(FbNA-BJuI3hz`T}A3b^|=2@$V1r^p14CY0AI&Aecw{be;9a>T8npv~hAF ziW$WtH#bHWDj_H#4A;c{(=TqCI%IaNAHAxyV&OLng2`l}8y3_O``FdVpg^(E@)i%og*k)YQG5Rw!@%c)j|PkZwkv0(Ssqb=A=Q9*oE*1V z2mSmDQfSqPdTM<$^W;v-LM(Vw8srbE`)0yVdpVj!L?$d-vDysP8}~zY_fnxRzGyCz zR302}{G#OL<)x^#la2faI>sNvcMUxBXTCDvm3p^C=%v}9v4pv)IRY}n#awbXo)T6h zLAmK)zHjzA$`FVyw67tf0l9x?t_LfkOZnh-aTmqw;~;DMM&t7`0!-XKFI&&OlTY5> zvjQjfAAKXhFI<}Gk>H(Yz;pdos~`93bx0HO;?v8Ih0CS7fq}v5BrmCTxK`uV=eufG zhA8#6N!ThSyEA@N($We=PON!YW(!VaqU-d?jh<^RYfoNW%Ba_rptOTqZJYrmN%+Mp zQ%TC-Zs1mH)8AW-e=y5Es;ev3XjJ&K)uDy=Zk;I~2-pXCA6wF_OFJFA)CzL8k>_}? zz^jzr!vmUw8Wf=+45kk z7xXwsz)Q?qR*am9HS`pJIor80biWdJX20!e$q*^#q9HN&<7%t>?0F}bgnp$)ROEwr zBfFQ$_b&LSX0GT@1mK9vHwo5!KRm@Qir@#eZ==$<7WFPBBwoo;PYnI(M^KHD5oMZa z)tGggyCeN>fHSXL@4_HgNXF_7-#;eYL5X{S8LJ1a;p$ZHdw9Q;t>70TB`f0-gsr1} z0aIGDXI}UsJv}p%Y~NSUc{m&Ci^)*;(lao~`CkkuEZfb=MJM9)Z%fEQ0 z1l^zxOgbPxj|&&D>_s6Y^8y;bWPG1Z%%QQ*kRwy(JXp{@2AAySNr09wN*!h=&d=lj zw5UrClFzS$&ha5U!7HkE<}M8C*R`3R=^K51gVAA^s$uuLsDYU_r*3AN6)P6qvd4Q2 zMvERut#?ZzlSp_0y8PX}cdbd|@rqtc;!9JGoKDv6&c07b@;PMnDHbgGxViTFe9pdXG_a(gR$@9sRZT)?tko^%V-Bb{{*POMqAP3Zk<7gu~*9YaGl4Mx(t*6a|s z`uplY4F*BAG#vr`Qde!%xg1QhaZo?hTRS4Q0=LVP)!tSB@lxkoY)(HKH^0J(U>~?i z)%QRqK|qPxY*VFqcxpBQTV#%8YMz4+@Z~aNMprT2Tq|e5r&a;fZB?sqYkM-%2l8@< z#mI5*eNW%4&`9;x#s!VW*mFjuxc>5bvqx#ngIR~df1G1%GOJI+%WJ$>jfBP;ju_Yb zkhXHXo<)nJi7rOq;@6|&1I-Pq{aulO(4TX;t13*V!1f{YmCJKe7lZbwNV9v^xUQzB zuYra5#kNO!oy_g-jQhWYu$zqnH>?a7=$j9>W2Wpm$48d8{)a!*s=PAh zyB4(!12IT!s>MwUZ=H9aWa9r2qL8n8;lhRcL*2)5L6kRAw>ry#j@*>XdzM=S05*o4 zGZ`wJBDVdO*NakbAqz~!$S4-cg%5C8Q%oxS9sF#iqt@U6gH5AK+A!dsCiR^dnqf+; zgHs)hcX&GE%{ksf5l%7tch+>Zw4*ilZMcv=wt8)Y_ej@UOG9yBr+RPmDGte5dY zcBY1IzGz^wwd zaZ{B8^sy5dT5_p4G=dmB1O`*so{&Sy#IKM&=mP_^II03*aL-#+B4cv3_#QE0NyApZg z;^K~xcV=uIJyg2C9d1pjMoJH-U02l%Oxf>GVh;X}7M8$LE&8rqn;Y`!3N~%ol8hJk zx~)xOXWoZRIG-1smvTF5W}C{LxD&6J#2zcOXV0F-`m+3U>tk}h4dzs-*S|z8IbNxp zgPE<~^5KGW^}5-|(mtq6VxRkLAs?l2_Ah&}+{r76v!_K```k@kP@g9fM*%deVMP`Q zC^J!Y8^tgE|2dk<#h!X7%fD2*;!#Vfo35eTco2rto%jMsAR_#eOU@*Q8f#()Y|)S& zg`w;|P{m~YRe%)6nFod@+0J=PT5fF^M;+kaz56Kp%HBabec>_F}efEkqm9Cx6u@(J8Jws_)Zb<;XKUb~!}5At?c zCQO8nv*Zigbv?F$s&AgTC3KQ5JFNX#M^oegGfTSDwd>a{2@C?b?DRs*bNe+76rbWR zaA1mW=`rWuOf7mc7L;FHKx$duQZU?3p{J)m<-*78?y;P6Z?_O5s1L@+Fva`U zM;|b~%}mvZ$q~53TXB!^UiD)b67y~h98sH6saiN~xiw}qUL%_%GC2C$NFSIT?=v;@ zv2=I1x_hn~^-UcKXD&)lt$XOnx0a7dv9>5LRrxqRs6b8*;5ZXD(~!jh()bd{gok&- zav;A!r%TrIj5YU%kKTI>3T%&+&5g)Cwme+j1|qH zzpq`hz`WN~V3z>-m1$mqNPeHeeB-Kb!!a)7jU_IQXDb6`NT(j{+{>vDDWrmtMC=6C%7jMKClU0W&rCZ4}ERsWClV+QN$gVnMD zAY~Z`8-Go!VgAJ|j=Cmg6KA=Txy8mT7M}cmjWd-jVVdnT7_#H#2DgHSr2z;Y!h> zNdQ>-h?5H4R{033Wv_A^K3kHKG7MzNfi{lr(xHe)=Ua;luxTWXnaVfTEpH-&{w z|Go-``b8F|9iy$-OYj8oXrIDj^YPWSSWsHh+?Ywk+CO}s@fF*yDyO#nXx&(HZ}g*c zAMdSG#jiJ^daOXpLGVq=A|26tFne-{+jseTZlw#|cMnT`Ip7(xSQ`0P^#d|;NDQVs zB@dVv2^beol(BpFpy%gb>eJfV`k_HuS~?I_RIBWSVSe8ctNE5X9w|eGmqYiCT<`aM zDE&8m%eu#x%BI=OVzsu|H0LUyw0yvSy$)!Vmd?d3r24pd#j+$BNtr*V1-yL9S{&lP z>}5U-I#(l%+OO|$7t&r)*4DJHS*MH3^2~;4I*&tNd|!T~J`^6??Y&&;__+O-r!@1} z=Qvz=?4-zpGUc+r(Y9P;}Jr z`vstl42c=Qm=p_3p%=ny7!R304UDuu@FWt8#C-WBow&G%Xy06_4^LviGq}9gtHCg2 zyqTBVQ&TpmSISxTQwh$!DnL#9t|}&l7;$~{$}(Cj_-dL|EYDQ2yvCi#F+0EgTQyCoJ?@S&0VgGrlxGINZ8y%hakJXIO|%D>d!x&C#nWV<^RyA`Q18fXvI za3--_YgbL27wbb2t0R;lGV&EPfDPCS5vD+3RdaLm-Ohc7@YDQQsoZ8O z>30RkD+WPga(Cx|)ZF}hj`6eQC5WVOhGu#ks!2;Mu2HltD>vSy+9hmpUev^2ENuX| zg#|A1tc>d0;ik6YPtl@(hvv5i2QSTIhw3;&SlGHRjNPL6BX~o5`IwgODfQ-beG{bv zrtIo>#;)RD@?43e1@$&&Cm@&UNXVM2zHPoy8FlEu>r%B33_u1+QNVYLqox21iDlVcBs|2wFgyQX#=WCLut!H}mTwDZ@F1@P zDzdmP!KaleNtRgXKj^%CBW__ALfOA|I}a+@3JKTv+nyrykF6R{q4XDC9=?xVgynVV z!f&Ec#)><4?j&C|EDBGr5Ig@lUj-eh-L;y;rKEcQQ(o?cO;VQh4Q77Vu~=c-j`sw% zAow134rs-z1F^EP@BgHNEx87o)JwYJEPh&EWY35VYO+RJcxA}m3?z~qLF-=!-<-OK za+{~8rgrCA4iah$MZe?n0h;1emeAdDSIisuYAn0t^Bm7y0eIR$1z=ZmabX?{Ss}6E z=Zq7NfXFEtd5Z= zZ|~nLzl|2teQ=z&es7rx(w954uDCv{Ep>AdIVk*u+4kxy`p+nIZ$kDq5Y`H=&QGh+ zC*@qdhX>OCh);eSh5zCuUf%TBg)8rG+U4mfM`zVq+_;*9^jURiV1bP(ixvqBa%0Z9P+Twz5vintriX3E8H03NC zWb3Q*-bDx1B&^Z=@>Jx~fQ~LC#3x_)Y}Nz_4K4r+V@G#qXJ`I>rbbShbb}JY*wgm- zI65GPnJ&kot_E$P>Gd1uDg!Gx`{MUd_I=~0M{1*PnYtgY1qLI-x_0~abb?JF;O9L| zL~8M^jSsaM($H@>>AxU$F96lL*&RPz6>!x-c(I{hsbGwMM+RjtYKF&VJ85WSyu9d2 z1wIIB$wj4Boe}x*!CO51$18@-aXi{_TLj{oa&}GL+{k9w_S%^66UoXS7{}oY?Vbet z0-l=$E(}3b(dUJIch3KiL*p>inue0uG;6`FFg7vJT;Ha$3QtBBABH+uxq2>F)F^+E zU&VIy(vM|Em#NpD6!tsuCJa9I9*pRTe9KECzxMkUZmC*t zarAPPtKS`}ZuXXdW5`iJSLze}jV-o=@??0W>@9Z!ypbMS`j4w>3MnUb?nPHF6SYGp6-~38@WyX9+!FYxw$`2Jvmo=Pdpeb(|H*D}VVp6a0KE{B zze^LNXnWHU`6lDiGI?9+rrFJE&!rScc`mpCy3k)_;$Mc|b;(jj>$6ll5u^z@K{{&z0uxU;L9D*>2ja#H?59N!*xc`RcBa&kV;Pg414w?4{@=12GFMJ zZf1I)?~taJeeUbc!)`M}?I#$QIE};w3TLY&+*T_qP0bY7Huk;IC$iJ=Cq&P1@Jj_? z!ptMo8HQ!)=!#P?b0lj$x{pi6W(bE$1J~C28nN>MD&?X@q(y|sR`w*>Yr3Qz{eXT{ z47pf@KY^XQ@euJtf*K*px9+_F#XAeyqjYPjnb@9y;3%ro4mJs)%a$%KxRCWddLAy- zcwacZ8V#XY&Rv%AnWiT$i2Yob^PTgVPvn~Vg9iJnYg2ee@vzhKB74fd|xk8hKyR>Hc~S%{_h6s0CjIjUZjS zpLpaT!Fd{i=e3a`JS>)LYioJ;82*a_-*83l;-_9XlUBILS}7l&;xB-E-V20t2aQqR z7XXRcVUJ)M02utESJLMS3fH@6fr9#Do=l#+*4#0#a;hO>DR%$)`6I7zP^qEgGak4^ z0T74ONJok?@)kl5Yx43sfL+R@a^b+!@J5 zHnlq9FauMhWu}Gf9f4e#Q`xGfn{)ty|2A_yH-}Wg)^BZP;eOw5b5yCZJ5S1b) zzGUYK+qBPBP(5^E*swlf-?THv@3a^#54hqlnhO^$?C+1)hupz#rZX@w%)5M*i|X2m zVljJZ9x2)cuXN97;3Rb|fv~HKOUXM@a-^R*()Y7k7r9EinH$Q1h@eTpsb85s+nF{8 zj}c)bQ$MAkC^pOd$N>T&N3xKrsw#KxPY(ssRkC0)KlAA&O|H|L0BoNemsNq0N>Q-8 zwKWa3ftZA(z-g`5&kUy_Z3u_414CGu}pU}4O5%t#;6O?iOUw0r^f`{~1;Db~6vhWAnw88yW`Sd{(q z-WhfAlbzT(>~3#ASelGs03>eH+9$d9NWY1H-)waO@^vgsNp1kX;DfrBoeKRs0^-6;o(OdM zft#g7*?mu#+#cX=M<(>j#dkt0GT+MlM{+(Y!lC|GALI8c#+FaSGagQ>!keFPf;jpA`Zto;zO8=G*#7rNI~cvCs^-=lXJQ*x$g03x+S5pQk$%kJSI4A9g2es% zJ(gyV9t8n24=YLcT;+pNV*-(Uz@<88r&lI2jUrH!+Kz`_^ScF|ch?%HDWUhKa>%tm zu%>pG3^Iit$FzpJ$y%KAKkfcx&$E-B0W|V#1cqYiQ)8>^iLbhAMPRuYNrC$PQHF^;%v3iHCx; z#Oot3TRPyO9H78HJoX=~hA=V!$=$PgDB7Tzm*}{V`05qGzfl0~i1P9S;TGnWbNr4EQ?*oCl_hR@e^Lv$ zdh~eiY3Jl)D~vQdBOd`^tJODvA)D%!$*an})dmx^_ghb%e57B83)PG0Irq0fptjF- zJy0`5(PpF@@Yrxtu$;%5E>&>}?Id$!3p)y}<`;_pR-z6La#2Z1S_O$9m#hyNbjoZz zbHr5?KGa_f-RWD_w3!TEUN6zoXrHnPcl$ZX)?d9BYkWOc~7BSBp=uF;Sy!o zAs}y6A2*aT7R#=!kD)A#1(wVtR96eEIb5*6mV~uRB1C_@X>a_fBb6{mF+2(!I>>oqfZ+DYEK2Z6IyL z-hL8>Be6v|#G*6UjePs0l{lSjM0n-4gzG4wLWpUlB1$e&YV4=9kgF6Su~dr)tpo1p zS%IgW--t38KfQ~4=>iY^D{-`lryeq3!C;0AH7@WkR>Cz2_-+RD=(tt1a>RE=U)CL~ zgK0O{G^sfzDV!te4MoU{YAvOXB>(j#PuYcjSpdJ~s@DIyqO!^vs0A1*wmy$fF?Xg- zx!T1W9qrAFyvS1JUQT~)CJ>!XwGbg9;(^WndiY|61rh3!rM`(2 z;>IJVHy>|7^cuJ01oHqkJmCBCHQyoDCBf54O4D>gaKti_3ggB}J#Cj;{UB z*O;outpCpZkJNcWsCITbx}D%8w3UtCCRPQ2|i^=Us9cWOBc&O?OuZ7D=u% zOf&B#6DOPCT}k@p%Xp8jJ2OlV%dr~C2zyMa*S&)VX;X>YdN4W0-do%Z*J0?3oM@x_m_a=(d_WAE-;_pT2q*bvSGmQ@0#w1 z%Yu)u!!%vk_0jvdAyt{a{PuV;L=0_Hc}WwmE4MXkhzetq9rj=o+RsB4KHiozm%Byz?+%B>7{Mu7eK-2fR3-{e zc5v(Bv1YgGWuWG#BcYiefa+2lBPjd8UuLPC+~GySR|HE0PBOQF7q{_?ua-AFkGwJt zs8@HpfBo4A9k%x_`pjkChlnBvks$$1d+_k2*1v0z|2`f2L#F1$Po{O!;g+{v1+2DsJ2O@g*)EE7llcj(5~- zfX@zl(z-NL+@ni~)oKV=dPmhBWg`(Y`pS#@xykr&;r4D%5$U-jf7)cWdT#nLbDr}zQ;a23^hIVSo3KTr=~G0BvdmCdK0d00;%V7^x5euc^1U7D`!bS==rra+ zO!ZFFk)>4w@%0m+u;ws6A?l^{h2npIVbC7v(XOv@)YHE{ID#^ zWr>rcOrA^u)P~cKW*RSnyzy7px9Mi4AjX&Z&N=qeK^>obFVHONY$%c(?MFvG*;RRn zv#c$7MhO>Day3v*jR^zfIsnd4P1m^j-!FP5*D~0g;1`t^2jFFvG5vl2h3H}*)5ao) zX~X1>-NU*wtCL|n>+gm49^LU2rgv)Z8YFy!3B#}lg>$~!D;ix~Gxa#qhmL%5XCJtO zVwXcdLR;E{LaYzivdWDJ11eIW0ZTxR)Mp8lLVpxS% z?h{jvn|$AxV@^`wf(5p`+QkWeo$9@)?Hx<=0e;9CeHn4@_>q5Tx@9j^C8@JW5%L~# z(%X*xBtf)s02FsYR>Amr9_6d>xkorrzXD~+uSw~9u;`XwFL=rVYx>TNInLV;BVA1D z=twRxRP5!h_gN~{2TT9qssP4le<5Lp`#8C?FjpdE6a4 ziRu%C;6ZPNW2WweVFR`TtfUtVe#6re{f&OwL-&q`qv<2##BZjJc@~Ey&WZYv)q>*R zuiyeQ{w48ZA3XP1Rh6H}5Pcx4W0Xt`pk_RzR!s|6V!VC!Kk$Mlc{wRLO6bFf^SVvk z7|8=ZEpqLMDiid;cZ^?mAnM}cccNy=+*Xk)DZwg$ppfa!%w;itpF2syK(OjT+Sl(Y zc(|^N82J3~U+RvWi@k18qk5S;2!%@YJtd^*C2;grWe2G$2e(a5LREQLt;ps*58M(Z z&`NcJl$c-ZInlocON_wBH)-^Hl1>RGRW>4oRZ9i5iNt3@@7M<^CAkI-3C#_aIwbL0 zCGrggJSg}qGziZi zXHHa1FtYhh(Lx~=r?;~rIn%`fP~yx_l9mF4$s<3W#h;N6zSWTo{p(+*8&7*~SV4k3 zgp_0e1@Cee)(m-B=*UF8g|La4y1*|>ocWXFG#s|MSdsebRX?l74cWarpH$NUuYeG; z_8@ww@j1L>KBv&*znS*eLre}hgb&NpJ+U-zzX8f~q^A=u$eYMoY~EXu6JZ0jY;Ns;>k5QTtlZsD{!ulbHz zu#31bFL>du+g!i;?~ls2Bqg6R%SX4uExu6j!;g)5%5ilZrh!gb@SuM3{Op*cdjva6 zQw*D?tX1w|4F6o2gkPAKCWt9`tok|@V!6nVTAXjIkF-hn-dnc`?y8LdPCna{lR!;u z;`3v`<@TuLW5kLq-=dQh*!EJ751R8oKFWfX$@#^Jhom?yGATbVBCq`1$Eqc{_LFb9 zp9JJ%i`M`8D}j)N`sAro{j{L*Go%#+I1_U8EFt}7Q?FenBMr9g?im1VI`)hK`FX(- zsGfO&ce2fLh*uA)X^CZOt5CMgCWyrcfGEE5((XduTAW{oQHEVc2tia;c z-ZMM^sVcv2$#W*npUzJD)(4etJCzs;?< zqX#Q(36WQAltmFP->XvbU=rl0(FSV!@rjABc&u&;qT&Y4AYIuwY>?Anb0V)Ccz<$AiEc1!h*ZWJQZ!r7oNK82k%AzaD0YpE$Q`CQcpa zdEl~ZXTip?`hbn+mhsQGn@%=1Ho%OKhE-a26`xtFD7?J|A^`2P07-W9iNc|RKL%z9 zr7S(ATc$UE%IM@6J*Zf&L2o+H(#C1@3)SI(>yrY^a9F&~`r41J;2o#w+_yf#MB45{ zDE-|~oFWcZ*mFyqw+K4mVKxp=f>B9ZyWYspf0Q676nNNUS+5Xrh_>lBYeeV0nMTo|zfX?Kg ztxH+qEe*%Q5Qn9^tc!QDK}E8$k~+Mtgde@cV)4EWXD`yRJymtx)HI*#I<;goQtb^w z{V-T{eHOIqa(V}@60DOpQug26j=G+SR!bAQ#pHATMvB0Bb^}zMUjF$Yz|<1JzT?_A zyx<=a#SjKk% zx5D$6gI!#23oKgTm7N71yBcuX?Li6o5sN4cAP?#Zm7rrfu)|47sJNvVCEh-Ab}ptK z@2c|j%+Sn}0BpEmS1y7x27C)oP;lyKAVw3vV0y`*Rx_Wx;l5-4(V!SIH|woEK_ll5 zw1Ylae#2rrd2f5oa=h++8xQ#U$R}is=fOQAckOB>yqmX9f~*N<20=%urE*5F8&yra zHpeGs(R0IN3^^Ml=nL1$sxBLuoBGg!<;mp+)fPdkiL0qjHZv7?WJ3@wuw-T6q1?v7VzW%%7-54K?_1rb-f(dVdPH>n|yRcxLD@()n zv&dEs93AAwL2It#e>Bg42n*hXX&(&7{kEEKdlQ$qq#MO)I6`wk=gB#e18l9_WiG)& zTm+5js1%0ov9}EPP1%170EUKRKgW7o4dbqJiV3FD{Fjyx24((ZXB*-hQ-H`%CE`)O zdjOhLbD-!Pa3;e@ia4bp@F+M-S^!!)x(h7czqppp=f^)_?r(t7Ck-?}?*oWLK9E9j z=Jsxinjrio6UNq1wlqGtySg}0eUC1Kk(b$|Ia(7muH~OSbf=hT!Cq|t&8(C)Gbz^0~lV#+n%u2LM#au zh)I3kS_T}zi=~sDh1>mE7!5?%&W5-VV&~phk=)X(DpEsv%6FV^?Cgw{(pW=ASg*TT z5;QY_qdNx4hKOWi5R0QWrcd0gG+w#{R9^tsyIx0GmrC#Amm(@o z^z!tBb{0uQUF45zp&V-I8R9X*QW9r*!EgR=TtB*h)Fwbjx$;W36V9_O3Ul3zUV~9G zKm~T@=QBs+i}LGn{Eo}*J?zf);z5XP12}Ci-{eCOhp03#ZiIEHk0sEugE`6S3%6xU zo=@aEE@)Lia17O5=WO;1GobjiFH_IZnkWPYDCU$}=_7j+;(LFe$hlPfJdS^KP% zrMaq}c}Mbl>+%%|eDA?s5Ib8x6mng+?YBCkcJl0%>8?GoW8Ndg;20E2{Db(zKo%hzShNoD zC`th7EJt^gDN~?Nd>3ePlyj>fYc5_MU6$D@j{CnYauNw)uA-k!go3PY=T6lYzZV@uk#0ME+&KnH?VA(tKT{m zP6N+gqSbP3nb5L8Pzq(QZjymj&tPd7loom;$F~{4D$0a3C`k~Hw}FY~;LR>|Hq5O3 z&bm1yUN_@ZcYLFt>cboQltS+fB^M{!CC@-|caXgY;U_vll34T|hg4+AyL=!7S@D^k z81We!uJT*LbY9h_=pGK6?bM+KF0L{KMhU5^{c8p0#$s6!>I+~IHlTBEuov;fgmcTK zrB!52JvjQ*Ut*+LFln-h$wuq#g+)G(J!j3<$9DbO!|kAD;LF0#b~fy~R}oM5t^&0^ z1*{lL!6#t9GZ~K0VxEu<>SF@vJyn4&&(O?d{*w3Qn&12>Y^Wzbrkw84Oy%x4PW&({ z&0CMuQNn)dQlZcnr+1>6=LALI-(iEt0?Y``fwq7=qZSWr)kRB|WWAh`S&)*kN(Nk6 zEZZ*$h5z{wu7+*$#F5X=D_4VfV`r1Vo=24K8^Osl7vq6zGY4&nd^Yb`!Y5cNx^~7o zs%kGA)dEqF8ovR8o>#>JKfSIUikbg;A-7g}cumx*C;J;NpF_WLz_adwrDs2;_CkS% z?HK5RM#A9N-I=gtf9&BgZ7K`~N4pk&Q{FoWvei&=voqO(kFGH6Z zz7kh0!2#9Tzx4G|4#YDAs1&BJdmd6^#?4162gZA1UWI4v1LUE*I<)V4eceE_RWCC)lKXvTsf_DHSavhPbD^!W zg~R>*;RJ0-x9-#HR4e-aio-lmBffwL2r&p-EG^h!ukM=+1G}+lsH*tMEd0RK^v>Vm z$NK>@x{N_i^qxZLM?QI<-o;23m7zZ`!gLWAz%PJxASC*Q@e2fGpl?w|0ifm zb@F4t4uY&0U|uQAS$r+IQjvB0WRqc>?>UrtMfNrmm}hu9y<+6jjK5Db)B7YTLO-0> zidawxsAG%YA+gp$(H+w~<0<@e^C{4E-U>Rwi*v{Q4tprSh3V#*ob&xxgdFEJfGf<} z{A1_AYfo=&n=r~Db`l!)cT^NzdUV~sRZqML#C8G;9O$~GYR3|GpDvxl7zq8I%O;dZ z@~V;62+-TFAm3vJP8y777WQ9X*!a)sj>*7*yF7aI2Tq+1%=IZop0UCpo9Ts9b65** z1kUbfz%`kzpZE;yKrv+OEOy&|j^F=z*~Z?|^M>+6L*4iC0n15nhc5O*$F(3HzE|e4 zGs6sA{^3KOt^z`C&12(W17m~uU4k7#I~?Fl(D;^m)x&G~)3uUNUKlRZ-*F;U!n^ag zA<|W{)OOT|y*eF+G(;ba2ton0dC_gW%RyiPGtFo};`-~2PS;`@eC}V4RZZ2=+}U@U z=~PdO7C4c`7{tgizy;;${n>)u?l**G57hT|_vfYq47E+Xfo0I1l%!WtQ#fq9 zUn(9uyD{DNJ*EpN()=gBE>uIi<+H+hq5ERbk;@81bpSX0$yDn>Kz3TwyIT+2M0g_L z;!OsVU1tGmOK_FqwHZnW0ft|kFpPl{O;PF!cUS!S)xf^D=m2h66Z-d}aLdU8CmLD77I*AoCs_4kn6+|Mzsdr(eSzNF|Uutwb2($i}UJisc zMS`_8^cfoaDaw)_`A|)37yK{&t;N?n(tXFI|*bZ|-0m(FQv zXdyMntLD|3SC#dlPPX;nox^Kg&rT=GvDqAiKW;g@E3}077zbaI8ECQ`=sgh)fmXiR zsCY1ft@Pf#T$lIb@GXe%{b62Nn#DpYrj8AJdbiKjvB(5k_jSb#jU0yNAL7i6n8N}? zvEa}V$RA0EwNyu8hDx!mLAP&(rG{4;Aup&uwHyO?hHvg!&Y9Q3Eg3hKQ(@VI^{Y_O zIGu!3>BoZzB?ZRu-?2hvU_KP<@5MQR)ZkD4R0c4wU6SD-IxQ!HB%or+^eXWgCxXcb#H40(XpT-a;tM8Rk+lnJ59Z%vkIIq zDev?4%iaN()z{FvF<3^yTI?A*`VN!L+4toGY74!L6}y?-ZpGySR~PNF#!r_`frKIh z#?BIpd7eL$GXQ;-E+OVb=;vuVCAsKwWDRaAR)pbwvIfR_=z(Z!J5nac2G z94_9KGY(TRa;9rvgecjwZvwM)QNZx{do{$3uQ-+iey3H`J%!obr79=8Jlx6t+tsmb zynHafbfU@U$vOmf!1cs&G?=%$-@#z?C$`*w6MpdkYOjh2c7u|JA&yC*v?K))s~Mpv zW6$nvCvVVDl{(?zd8at9{GI*tRUvwb3h_#Q+bsn}9Oc@b?NZxE10lWhSJ*JO%$Gzq z4@S8#bhD(K1y+uvJ$u2>6>>V^v8W$%;IB>BS0b&~LQP3Sk|)7op*$ArKK4z@SH2ZX)Kd=nvOPvO2hR zheFq%TxPs)t$YaAh|cogPIdi-uAEph(H1{ zg{yX+OLMnv;}E2soEMvGzOvT_!>iy;o%5{Mw+b(N88BlQH zyNP(2xxahGgynB_!&r>z1KUs0`cd1AR`RwW9ZMfEGSExI7}f@gJ=2z0I4i|Z?swSA zPfnY;-1A7lZ-M^ZaBzJ!wqokp{1VmX)1oK&gg5joO4=>2&SG&Df>$7f02G_A^4Pq~ zEp=wf9!1BD96Q=^3dS=dgeZo&;z;i$YDNr+UJ;0^3iv<8L#ci7n3*d<9cn070I zvKQF14Sm<^7!k^5nPa_M^U1|=@&HF z)dAE>O_9M7{i!p5CUAF7xv`!?`o5!u6GVdu+E1p?AlCQ<=kFuh3D^0YUmeganNXlE zowEr}a#j3HQ3q~7P~6Wg2=g)oDG>%xhv>N}QVHK>@39&ccUd$3Ylb)lfR$RA4^N9gj zN2%9pnN{%x5${5i^``vxYtOlUr{EVPyG!>YYk!^BALIh1GsqjM^*fchP}1@Sd(H?w zWV}B6MqR8>5=gV2T%2l&1D@u$ri)dxsc9E5jvx4qi8s^~;)F9Mo1*5RQjuNy_5 zbsaVzi;sBs49C3KU!>qP&L!jb*ej;uu}B>D=uiFr(z8`TBuu3#vfjw-3&Y7EVz6c9}LaAnuZ3PypG%8Rqq ztmvDckpsaZXYlh(ikr(!j1$6@4d)C?Rg*I(e#>{q8`?uNkm9mxafk3)KOG_5-6tP3 ze0q;gCmyEY$Xljw0N|NwVtVJWyYRB3v;e%3M_(=@+V>;=HvTFC6UezX$pTvESWz&g zLOkublBYLERAuCl>*_pNPl2pOznVq+{hjWr#ErQmnEN}*e=vFLbB&gM0GU09&Q`_h zxImiWcdFT!v}c)g#_~h25<-VGq01~X9Vo(U))X1Zs{A-1k|*S8^QWV(6!01Mh{@q2l-?Jv*#glM86puaHsZw7GkpoR`-v*vJeJ_>ne>Y$1Sr5-Woi}! z{7Du!7G=*BgMY{RLXn-r&iW&v!@Z>F`WzP3YSev7PMu`PPX_)XPsd~vt;>>bFrHZA zf3kD=-yM2y=kxIKV+~TkM$U&3LUCy=|9p`HwA$8|H4%frT7HD`apB;<4>}Z?2zi9y zylo1t3)v#KE?U6*B#8|8t?apOsKQqfG)F^CEav?X3L6YhTyAAmKw3x@u-i#_(t@V% zQ7-+*$2iK1R&*6P$u4^VZ&BVREVkf&QvtXH0!ll8u$sBy<}Jh`pqguWED*ZR_T|y` zxhz?cJ-RTCx#0#XZ&`BZk>fL6+DQS_N#x9&3pxSvA5kDCe7>X`=dqLGR#~*sCYb?# zTfda9olH1-@HiIkinmV;QYDXhH&AYYJ7@tct-)qtd6jMSA@cBR2?J=t;FSS;a#l^H zodv!WCmR+X8*}=D2Al_8A~1Y&F>D73I3oq$bIHR{w^De5~?AVF}L zm742*>8>zh-Ks-OX4WllF{m{=pn1oQpYY5F`jc|;_g|my%b#HmSjw6iMg=%<;}1gxN5h*!FT#5!C<&IqDhfUTY~%!K6WgMQY@%FFGy~sT*S(crV=1`Sd02leu-v}zg% zW$q7u1(61JDNL(?7_F!cb-9au$GG>6=ncZvNfPwjWkK**qyNC8tS&=V_dzlDSik*D z;tP@_i_SzGI%#d{J7gllUQ@}3!1&0!6gp?X#!j{bM?x7m4fmikOG^Dq&$o-aQ1Fz@G0(G{Gjdtc|i+v1t{d?K;Lj%gR3 z3OGo-4;;OWT48A|FIgY)1*18`ZgaQ72ZQwrbP6=)JvTu7n$2XiJXYy$xTdvwnTPSH z8C{^2L^ft3+7=*WY9RZ-Z5~W{D_V`-~Csju?V=kC#2-Nl&gFP2F=n5_S=$OHeAD&t*yPHJLJCOgu)pEv!>YjR&z z#tmq1WXO{Nto^rt^Lt1%F|EjAqX#h`bqNKJk{&lDW>p20$JoFN>596{D@DO3^Ho7| zvEQFdW~qX?H>#`dy^=rXJ${V@>d_WdehXD(7{XDWPdJtTv4a4Lf2jjHs=;Wd<)$jD zc>^Zp{_8~EJ3B|;;ruc!6`Q7&i<$S?9f{Q%3g zFJPzn^?Kl0>O{LK22ufIi4>Q$y8bN?Dt}^bt*TnzU7{TRj``p?8=CKw1#Y<08&Nb# zPrXmkoW}m_S(_U97Haiv+L$t%tnQmHEZ1skXpHad%xjvD*ZEJ?dF)CkTik0b;pf=bhR@O&O+KJ_f>(k-bIC#66%NG&LnqV(g+=@Oeb zZY!!(fcY> z_LD%s^EIw(J*CEPC&Ipj z1ZHaKODPF^%pb3jd@GWkQ%@>7TD%9ixGZE$m5evb#QUKsP$F!0secKOY!@sMmT>e3 zd?Yt^Y#;XopkN_FOx~xdr!rNSeGkW{E>j}sIBbYso+GT+Po;47L#$2C_L47Ya2?$=-0w#`e!jjQ^m{7IpkTPrN<)sE`DB{JEL@+V zbghZfNEYLA5!RfAcCNq3bevIgFLItP3JNv-*wa6Fl zWg_oKnC09Lz-tCg9k;2>b$n?IXlvRyurjaUwu-_hH1BWjKcC!x#Qjy_sGqd7KAlxNEs7Bu z>qPc!$l_^2R2|F;^1r{^ib)`pP=HKKjr+jHPR`M%Q-a4J`$F5;Jlm%`okRwG0@ zI=UR)`}=C-Vbw)dS=a*X_S2;9`NwXcMM-c*Vrd7Dq_hDN*9554P8LL9-@6^FCK^Bf z>5o(JJz222h-a4x`#ptf$*j_|=)Dz2#S?7N9ZoqwMa-B$dRiyaOXybR76W_T`a3=- zLtG1P0rDOw-r@e}#kjTowQ_jA6A*-GU0LKZ6h4>P@YSlH=1--2LHY7*z|a+e&Zhl? z<)KH9R$F!tf~2B$_t!jX9e_+QP;O&a<(VV8c-LjM_($xy3r7wfW!|R?YhhDY5~~Gs zbCO-&XGXOd|F}^`7-xvS;5Mo~4M|GM$ck~hnye48FhT$oFdggw6nSV?iyuT8kWlH0tU zApc?v&Yv(B7*DK9WJx&1orqVvAaHS1e3e8Pv%OT|zN-hGE*ur%Pp}R4HXkPl#TTEA z6&a|Z4LAUf*4`DNWKp^g=QuoL;REdZU8WStPRn`I-%Ip9kpv0hmu=283Ad*;P-Z(3 zNByzN9In6?Y4_i?St5sz`HOqFfA7jox|@ID2;!|O94s}hdX;3T@9h1ZbU56jd1e)N z+oXoWhL0NeJ?%421!wm@u-i(~vMRN}GOi1vVaYRS zb9kP*>r}WF0P_A73~!1}!3uFP6o8hJpa*E3^_QG_PJ<4)%Vo9KyVTK+T2&qu+U$w# z!iNC#A@*P((n%wxU`>VvCc*uRB$I&uK0yFIX=Lzks+6t}u2b}sJ`{S~; zrjx5Q_#<>FF^?&p<#@57%U4h7_dY>iDG>b=`lvkp#*#PomZBVU=By}fTPe>WrP`uWK!(Mmu`Lz*Xx=|Rb8zK zm>67p-AUe8apicF|2*{%k#23Ne9xTi16aVnzA$O|=^gLz?!7aNnO2#B#XW8|zfNhD zH%hp;1k``-vFi}0x2g;*-MYuU-*QY_yXSH3RBF>c=JchTR|h6{(=tncHyv(Xkz#3S zH+d#@M+S&hg(xpOKdzS3q-h7+!{ zGCX>rqXx2>ff&t+Bo$ca3^V>U`WF3FAx5@Gxz zltt(Zu+e{yOU~3Tk_Qbz#QqmGaAhAAPuw%~Ns1sByXxQ^GWP>J%IOnK1R>@2`S~ zF0$WfjcqFIxoaa<#oJ8_JQ|W~z;sJ9#^&gb?!X<;XLlVA$5ubA8+UYxy=ycQ#Ne&`jXCoDaub`5EeeVnG zi>YoJ`9ULhUcaeUYYCWN+@`-TfIQ_ljseIbnoUuB-MUVLNkH?etNa>jQfIyK_^tin{wgYX zf{;Mp+$x$jq#8QS0e8fAYagK3+=9U|AecP=+7qo;>E^;$r4MzNldM(zILDPBgW(S< zAqS3F$pTR+^sx=DgDE6Oa^RRhCD$U#8@P&pQ4LnQ=^8nSBF+*=iOs{NC6Nr?cI7(K zrW@x@^LRtu0GeW4C*%e~P7S=1bKY3n;YbDp@HJqUNaHu=IIAPGNXkiXat9&^q zSXFG%-ho8>Xq*}rLr?;#C`B61(Hvj^+6wQR4nK74JRrW{D1s0iUo2m~N9EN&Q9~6> zXutJU?+O>@dV9e{!BU9!;QPg;TiVgIjoEVsJ)~(}5E3P6_bn5%==z<6ulSf08ks6}zcKbWhRn*}YHiz%^Gx5Q8+xU%fCF|>__$`o*XbztfOLK^ot^na>zhdz z6ik4)Falq=MD(X06&{{O3dp84ktjpBWI_L02AX3|R;5HKaR>VPg0+x{0}$k0r#$nK zLz`C!1XCbuRQGx5bWNc6*qx_{)fZ<6Xr2aLq3k1Oi2!5K&Vs5J0MT47|FtlLH{$sLufH%b824XT;Hh%sggvR>Pbe+SexP$){MZ zkUcN}_!)_~!+^Lv92o1R*mfTp$c)ES_Fxqe$yjugIsuBDAJ`^n0=>z>FLLDG7*H42VW*poc@Hg(e*7BL%qcuPU-yok)5P)*SLksD!PU31pEz0^$5;!K=yr z!1MhKhQ|M_etEie5@1Q71ZiT-wln8LA)O-)$$vzWN+3LI1Vv8^x=7Q;4=d*_MqA+t z&y_7z{s9r534Ig{9*Us3PysR_WxI)(9ME%55PQcHX^cpn`QT-qi|rNv27M^@V}YI4a|#WB ziFCDRdx4S_rz7dIJ%+fQLPeSN@c`0W61!$@v6nu&KM$JQ|>N0{r$N$C+_Y3;z` zR96%{!aTF|J+^-kx@uo^fIHkClon-9p>#ZwJV$+rJp=FQOQ*=n;1VlFfl$hc{`L~k z_JOBLHSn9U2}LicA14Y$}ZYh`)&+?pYpH^d-XtE28cqiVLn zH@1{pz0q@P+d5lgPvYFaWPwTkj0EdfjeQ&J=FfHBRpg3)PiEQzO;Bt3`4%Ge^wNo968Jv1AtUD&(cnA^b zgq*f(&>kV~2s*8XG6lWBKt<%Fpr=>E5I+_(z$BU+57O~v*+`Yr8iS02A~aWlZ5jM7 zC1lw!d8R`1!>aiCemm8fig%R9xemLrnKE`$G6fbtWXb7uXF$4w1oCONX1N!(mV*yz zu}dZ7W6%#e-FYec6a{0S)7k;h2f3jI>0OHl2@F`lhAdX@E;_qB3Cs|gKjI(+CBz?s zWmNs~+tYqQ)ehadUm2* z@W$H1z@e-4;7Uw70jEw7rR(+my}W#r*DARtxm0@jz9l0hJ5e^3Z4gMx4N-uaBMBAy z8m%_Mo3URDuq0s zhw2_M6FF|!4BbVNh9C^%Nh@`s&2T0V>=ogw->69mFAn+=&nJ#+BL?pH1JKB~!SIv? zHBb@m!Y**dP7vZPdAbe_#1&v8$XEa&_|}u=bT~YvbJ%LH<9?#oB53ar27dQ>xS&-i z(4T2l_H#ii3pl@Jn+r7YiFdtW>3TNKlaqpjmB;cLwQ#f>3D_Sm)X-*CY-;WA4j-z0 z634+FkpZd03PKwf=!5FrJr-WnkgYvnzDhlFmxm|j0L#d6ez zOdV2@#=|Zv0iT@Ux`7xlWx9|^O4MD(?C(ehGpGdF;0bXOwEI|GC*o=a)t@_*RnDuK z5a0_k4DlK#hT~e%!tSN$@6a5Clr18n0T9QQv=Fu4m7@z9LGf1g@mP1eLP)AkYbK$1 zUxlc&3rcS@>tKy`rtaKKW*KaKf+M~O*oY$6HWDfdB~WeiZXW(^j`6S3>X~sKEeT)I zc@&_uh+=&ML?q^LTO)~q)@2L4_-5m8$w!US0V9O&^y=yYKlyP2PB8=6Ye#}+4~!pO zh@Sj#pN1Q;6QF9C`{aNVuM8`bG2z#Yf92w#%Z}u=iUe_=?8aO-*HEAI+cyw-nhI6r zU$8i$XCHD~lcV6$yL+?rUexKU#a_B|j!pdqHh8Z?k8G@Oa4x}{3q)vNopKG=5%2Na zoA3sgWzYWCJ@Sul59vZ6uVji7yLBEQ*LZkjh=dsl3qH>zQ+%Tinw);ZB)!LB(MOzR znrMbh6zeT5Bj=>}y}{sw4Mtof*y+*b1wbp$Ug3|2wDju$GKghF{pM5{fj+SdiI_o} zGJUs|9}}wQjh;Xd(N6%00N#iHH&Q&n?e!bk9Mhl}ogu+|UlF!?k+6&z=;d@}lGj;e z&O*v|?goxnQQ?J)pQ z(O1ppd2-#N@&H zs2VpbPh$&Y;fEZ6u3x?nok!WIuZ$m zN32<43M0%I8dqw|HvGO0qw6d*hJoCP0GK6%<0hEm(&~(KLfeQ;pOg$>>PP36Gg6CC zOF`fzmdr7l#t(u$U}6I8=8HMVO@O(53dWCAzopY0*EGFfdB26`%=Xi3M4kfoEltNw z&7MWjz-=G|K0slKTx0r#Rv=KQ1Y5gEQTAkh=u_eqZ(;XwLhs+`i{bdE(pqDMBa+yY zu&&aCcp-HNLm;<5=D38wN$~fE&D)7nM)5Toyovbh0$;nIwXoTO?#z{o&oa+yeLc`t zbnBv?uhf%w-#nAuiUenrTBg8AbO+$236&p5Z1E`i2BBE~*dK@GuOFrJ;XdBsj~rhL zOfzDZ1L9}l;ipc;VmZwmu0^~7gM$n>?yH|iuiUY(v(g8@B=oyHTY0pVpyz>G{x5x% zZ%o#8Al``uDHWxB5ttIl-W6OST|%Uc5UB;gz%^%njlY4hG&(6>gdu~ja~X>Vxuuz9 zi+6y~IVY3$ZgUT|3djc3I-sECwIaJ{3-W{!h4)3>_@?_8oOi8K%#~A2Wz84*?$6gT zaqsurR3V`0Z0jdqqzeWX|HS#`v(29zt018)4#CCY)NXk;ATt^Wf=)iU@mixHtkGL> zYS!SaG4Q-uCWQ*1-g1)lh|@&@NCL>%$&ldEBOK7+M*)E{X!$i`eeioR&|W-5VUF=z z^>J^^_ul?;kJEA&4DZ0Iq>lykun`U(&xL@NAHvyzSe;XnJOkTs&gB%n3Ri1=$fa0s zyxmgVVmZcAG8c*r~h`ET7M8+z8|4rK)-^=Nh5 zZB*#(Qji2XSoZA=fx}}9dfO1cIbeh*gQB7FVsvXo>Bk$Tv7f6oFYaOIq0qI*I1SCz zXbo>Fu`9#qVMg8j@%GnTz^cs_Al8Amt?#Vk_lVo4B>2=%CFsK?VYifmDU4B)fgXNi z&}q2D_Rln`Uir<5u_I=0p(vz;>uJ3MK8(SzAx6l4h8|3q(B8^X>(84_V21**yMBV#)$W#kWvWZwIw965MQkt*+0tRs%y?Y6aZ4f6KfOG0< zE=GasRg%W#KIYCwv*6M+D6ztEJbec+Zlu|c)@07~%z`PFS;yj!tqSlrK`g|q0k!uJ zKpY}=IT#kRb9$FT0ET-N<+~{WlHpP?pV|PxVHS+@&T3VxXtu%PiN|(C6dx6(U=&)M z`4TDiHkI375L6R(bqE}-w-p&txj78sRF{f8p-$Za|4W2U16@F!&uQ$&?1Tt=yn{}6 zCQkQ<{ot?8>ac)6HF6N`J^s@f2)b!-@#N0kZG8??1md-G$9Xyaj^q6F;uK&Pxu0ts5jFN5CmN{TjbphiC^KpjUj zpmDX?Iw)@3Kh+#3GTbDDlxaZiz`n6kYJZJ3B4`dlSQm$Ku!!3V$ocHVc@?yQ6+rJ> zzN}N9`(lB2{R{2VcJM3eH%T)^L#_>jT$}Uqjbu_-+U%)+GcvFO$^=}Y58Q#PK8(jw z4VjYRHtYbOo{kc`C)-o6VaH(!s|;&D41)kHRh`N`%PO+mfQe`A8Nc>A&JvDB<~|^8 z#d5rqJ0}v2BiHt(eik0USD+)ZpbHX6UgWaV19JrYmAo}Xe2QQ}P-b6MZckq3E2>)g zc^NSO=*KOw3quj?<$XhOdrUzBt$i?Br>@;nMqjgO`;1FtC@k5L`B@4SjX}4yroJ+# zEcDMo=uK#V{_GC*R8Pu6Lnf8bw(oWlfZ@$QhL{%iSD-YJI`2KJKySsIe{MxTw&~Fh zzzt}F??JtnubVVSvPh2*&6LtYRnmci-Az~<(c5_uMFZVpif~}7JU%Mk$Jtw0n5($n zX}%{XzH2V45q)C~9Fm5oaMRo6bh7#Y-n#)tAF~ABb(Qd%Y?o^eap+0Kx1hW2;^MH2 z0&$ccW5N-DJWS!*OV(J`(x>}j1-S$cG|LE9R0(58u`7a!H$Vy5eY)^dC5zI2YDq16 z4zA$sax&gHO4KyW9m6{M<;y=bTGqr-F{Xg_84E4SIJz3D2y+e8P2mo7rFn=P7yXFH z2W+Nr1lKg86feJ7aP28~$;*P>aV7Kt!+1!`+bM5Vz-wbi6Eh=$A+!U|OQUPzQto;; z;%xvKt%UiyliDr?Z=}<`2ydoQ`C>uszFb;#<)B3?rs)nOkLA=BmqDP>a)^vsu7lq-7@2PFa0YKnI#=-Q{?`Fc(?tVA*D~ zNy{R%6eUY~kMgtN78B;$YilBh>apoE8kl(r8w+>#AT=LkM=gJ;AbWs+s9*9tsUK74 zwhA?^)D;k|+2$2-wEJejDj+WKJtp1;CkBLlvCJrcm@O? zgMz+RY_QsGL4RI%5er?s%az~vq(zj?yV09>Dl)3#CCrL__z_>yopMo=ILh>y*;nS7 zmF+nPz|*Q!*K_%?u?+at%qPd!$O zc3$X5COz>Hvy(&{Q7IKcB*>2?<3b&7w|FA6xQm#DSjI5=8bXhoAVd)s=%qb{wheI> zLhuckH5$+o!IUG{xwz}Bb|Ff09CyFe5!?;0a=nrSto6_Bmb;8xp>3B-)H|D`UlJ!U&jgQ2+L-jQ*3~qvnnnOyMj#T6p#`6F2udQ&7=p#Sj; zy`Dty%uIoZ#xkn|2c0!P%32n#L`A*ogx!pJY^_qJjsPFCvtjHaeogNW{M6EWe{U6S z*Pxx0Vbty{cd>(t04=7e5@@RiDz4LP>iQS}JL8MPw%uQj}7msl5voX-InuO?8s?{M?_{`~CTT|A9U~ zTsOCyAFk^<=e%Ce=i_mo@SFlTt}${s)>G;K*q5U)7Le5&jCnVklkt@IJyesmpSV@9 z9ao$a+_Y^&+eKrmE0T?4U*=XTxfNX>QV*Rl_L*~|&7+FeZ9|#exdBce$D2wxk{h@5(ck*a0QianC6JvceiS=^G0AJk zBbb_aRr1ZVL?`-PQCn1;;Wp~F%gFiY!(+})}ZTas)@ zu_yg@`cE>O%?wrnR@Z`!s%hW;z`re$c-kBH+|>IsKO)z#<~>*HBDW-8OObC@AKKyt z+$>7ilu?$(WX5x#NQfq2QDpx2l#uc_MZclUpZA9Qg#9-~d3`{C?MqtxnH=~Gl4)Xgy-oK96&+Lzv0jQX%%oPvLKqOr?e^I0`|=w(Af!Hd<2Gx9A-KWBSP z`VR>2{Mx;NT9wlI4&0aFx}7u~x!E&!yGd)kOQxRw?kMJ$Q;AoJN~G;OnOIAi_Nq1d z(k|1CFnQm7anZ^hytv8k;&mB5Is_nz?eSg#LV0{Hhr7B+RFBh5vl@jce;O z$MyS=250nYgmV8kGv}9_?zQP`d(tlOeAS+v@H}41S3AC9<6b4JFAHB&CCj*62ieq9 z*;Rd#s|x|jx<`cWJMVBBHg>YWzQIgA6e!#oVo z+aFzVGd1ZaAekJ=A*4*PS*%KRK#)LRvAA$+L-GBl~@diDWS@0jWH7}GlQ=?8S{QaBN4s;L$Jnh8^ zb(a8YV-@{(y*p1lO;bQLs($F^M|!G%RdcQxeHSh2$vTze{|3;E8w)<4{Hc!af>if0 ztNnKEtt)p`PkofTk*N2+B+UHGZCcmXWG1Pe!w2~rUkLZscuP<@RyeLYjyx6V_U>)e z;EMpbA^3Ja)v&EHw20ICV|M%*>a-`2s5S>r6o0#S-Q*WTHYd3yIK~9Kt_S?QKVZb& z<#uxn=T^l7O7+^eT&aufe88!s`%G`=L|{JF;h=RJ5KBQiNPtE$=Pe+sCVmx{tPnMi z>ioYMP+flQk@Yr37ee%*mibNj$S|zD5Tp!-SDF>9NBN6k{d`E5eN7B{O#egx~8WQKX{IIEJDnxwrp;Gb%kPd zhqITy9%$&pMpE`&*8n1LWz2!>{|16UM5i1n|eTdwoaDZ+4u@w@WmDT zkz{k(H)c=W#;=3Em22@hboC#4*$p1rUW=e__F7MO&J4CE?@q%&!LKqSwn>VT(S~QA zS2Rhh|2x0f^!YQ%KtaA^zEym6NT-_W@wn&f)6=we3%U_Dj?45d+UK#?6iks)XmT=% zoI12@N!Y(xr%$EL?dBqenJ;UiRRyahFOh64&i>}Kx72bWXoOOYZXeKL@p!j-U|hmB zB8=qA0YZL@tR6$exLzuF<>TWx5b%@j*T#)TTbHFF-pDLvq8g9P4$X(DNWorAQiAsw zAm)d^s*c30X0>6Y_9kCJGxL8ba|-l}`1HYGjXgpu z{h}V6!`!*S0C(QNOZlVY>eLxXk_lV5`|X{EY?Qgi1w_kr)GcG0mKD?5lMFF0J4+n@$YK& zB8ie)4_xAYZMCGG^Kbk8A>IXILc7MaJe(lH&k@p%ogv%LJi*a~TM5@T|>}3Y==wS_Ax@;hbYtM{AZtPREzxP%bRB z6Prs;g>Abh7ifOYaO_jhJTClpW}{}0WvHK8%$-%9`vM*ov-C5_xPZz4keCzDQe|JI z5IwEb7!uckp^)$oYX;{9n=E*4LTLV-v>D)n>Bq2!S@-{orqZ%0lF=rj*ZO(6JvKgI zrO)}w<9tYm5aRbL_!L4(#wCaN6Qsju2*3U}H^yRS^W!9On1DES#5|t;i4r8FxeL>J zk;OKRtz>G4(u7F1m0J$Ym9vT_e^nd@_fw%XVCC3wmDxitGlqEug1$_uWG0^fnNE3G z0si}oqK5F5Iu#)3VsLSLK`i0k9~UEHy~Wos=iAsnjZL?QW;09lfY_T419{4PEu{Gt z+#tF22o7}V9}XvO-H+-i(D?Ub9UtQSt8?zhne?{q{n)|Q;;nFY^1+Ha6pkm`$TiG) zVd^$>rvBf=C41081&TUQlk5ZKCueA!Cvggmpv3MY^TF-kbJ!;LaU8+rdO%s2Pr9AZV?s2G~ zOHXXrx1!{$i<{B?Qu};|N~Z(|qbmGy&!>IasXtGX&CQ`QS!VBE*%w2(yXlx&iLzZD zpW8mFjqfDPQ(W1L~SoyE|Yr{yX}{ zJQqG*kd=h2?X7Lkd-k$rYjv`BMAmiQE14oT4rm_<@%N=Q>tTkZk$7mN+I zG;H0An{KM4&)SUSA;we`ndNToO>eP1jkMQwEt1t72baGG+o|gK_nyHIUYZ;gvgVogu}mT;teG9766GRU_U(CzW%TD>%XPlTQ`1FKDdx% zw`#^X-P*ciV9~kDC(J>vJQ|{2KryBK`T%# zA~wJQliiun+r8|q-KUa?PaGy?-R#y4l;&`+aXpS-7i@Gdh1L;&N6Q693!3bOo(xI8 z*Hgv!R3B{f@2`&^NGM?T*XxaBj&2&u`1eRiPlNUt!|j(R*L@D9w`@6Ebw`Hotfs*p zAY^*~`uU%3ZXZXC!`cnkyV=byqW#QztGr?4_mT4*%f(rm4%&X|9>sY? zE;n1*6v@xw*3|Fsd-{n(hBJj-ccx@yy@#EsVWv8bRS!b0jtd$2HCt>uM4+bp@o?Pc z?7#3lvx_-4@3{>^*@SmXy|&xl@!aLxO|!`l-8%(wYdS03A!yJ!;LsvvjeeZM^7e>Y z8)_-){I0H zhh0c$huMbq!=b`28@qdeWAtMnA<%%)mBd61#IqR|{E-&#_n1=onIWDqD%>fp=9yrV z3#K=A^IQKL8jE_%K#V6M8dyfnu>;%g26$t^KGDRK571V!G(!y;wtmB)X;XFiwu8@WVJs3Gq!#h8ka#BEI*V-g^+6p?$&PXEzYshYfKRZiGq{PbMmA{@o_xW1- z4IDn1)v8n*5zSb2C6hm;b$5_7{Oj<__D;F4Uy5Ue|J1ZI!vvXIWFFG8D~P}cUHj_B=ul3O1RtM8vU(wo zuahude5Z=$cINNWK)?G-ujNq>I|3vdIIc}%Vg*JaMZE-mAfvIrIv(->F30dy4M3@`g|F{?kz|o3l)Q*{n(5Hlq5IsObik)d@7Y} zy%IUa&r`Mago~f^cfh5&>;*1k&DM!=SQ&>lf>2Vcz8B*ADPA7!Z5nhRo^~wW5{>?f zC4(E!c0lR=nFNWodC>ESc4LQH_&dl6;&6c_+woqrZV!;0fI-eV5`*909PYB2p&T`& z`L~=;bcL%RvP}-c3a7rB!-sFJ`$jZ|C{?!@nEE&AwN)0UK|2B=C$`!abwCnx3T&)b zj@}|eFRULGxlcXOIeSV}TkDzFvc&G+G3ww)nV4l~hYvYnDgbjw>O3G~g0zdsD@pkW z#)0kamE|`hIsUUInievUkyJ!!&$Pa8mJ`Cy`iJq?`qqy;a6&toTT{}FXMOYegrKiS_Jp*r{-kT zzD76PGFq5_8zQX!A^uS5!BEM|%dY)3V2EPY*JnM4oXgf{)wN|h4>}feX+_$^9}*^% zw|@U>`Of7Om><+3@iDqmwf;>>pDnf05>RRWWEYjVi?C7$d>^+Ia;7+M4If{VN4lkk z7^%|BOV08r(;TNT)$c@}Gg;3$v7<$+y=WJ`;qj|%_2Ej-lh4HBfO`*wctxL{7rZpu zd+IJyWHG>n{|R?TMr>%vR|!h>%oGBIYGN_RmTCgXGiQX+-tYs5q6OoAvW#RSY8c1H zr@wj@B0GGqvan?bz9SgG+8xJPZ|<%Eo zg)7(M6J90hoM4gKlN>(2{z04(0N8ba2a%gb0Ebbsw|5?;(3mERsiGwB=?gR)CZm5Q|Ney5I)>D;;5WAd4)aDgInrcQxLVr& zM=`S(urGIvO^*)PpUuP7DB`-Wx^#WWoE+w1$S2}=8NYezKL9LD{`{9m-ynQ`i%mYq zV-HRudpDJ4#m+ZOe>ja`HiIKD4l2VJhU zChJ2)O%jMA8bTGvB5~R(J*X`vrM%R`O8tJ4Ap~If32YIX@PO5!7#-i=uGo@|4Ob;y zhMtq0{Sz-_+l28@YXFJXdUa$aj?!{}|MkN9VhL)h9;}AjlDy~K|C4{>z#ujqlKue6 z&D)`Z1@8<5TZRpns@66JvQygMwoogBm#+&1GO*YDWPq_@n@X*zPlS&5Z;BSD*z+dg{*j=!wAz)!Q0@o;VOF&XH8vlLZ_wD|2c$Mv zEONpK>qlaGYTS8>1);|4lCB)4N)WFiRK@IOdDq(aKwQV6KMCEE>ko~Ier)KP_+Hj# z8!+0>Ls>=CyNH>eL-bI=TaX-Z=Y>!MsR4|Wdi+TKC14b3Eq=Do{2ngPci5}5XTA*` z^9UDu2Vcl9?|O&qwaOHnqTg^;y#ZK26k^Wh$XodBSAa#KuebnP`YV`vnQM}Ity!13 zKFu1jJr#XY*lQx}k%V36iuP_NSe>f1s3t~OF{yfKoqtFy1F2Cku8t0IJf^^XkNM)f z2~G(rZyMdvgH4zH92gQ!@WveSHVU=lZQ)Q#9*~u;SnSN8kJ{v$RXN4R$P~Gr+=oQ= zxn59PDW{`D+#BE*>Q55MeFEjB5gsOW+=NC4o)wJkkC=InXAPi^21d*}DBQ*x&F&+f zGMuUO(+_`1oCQ$C#sQ$o`9zt4n!HnyTNQo)%mHse>XYS*2>v;EX*XhG;<#5Q%~%lY zIj3>@#i!Knw3#o(g&5Mi6px?=NyOk!K6d3}fp?ytVah3N&(mnj9-%mV_`rR8J@xBq zdPjlWw!pe>HxF3|0N-MQ%#zGE%(`qFp3$=pqd6YsQ>LpP8JFf1B8}$1c=1{5j;`@l zlc4!pXMM;M+jzY3C^p`j`T`6f!VEhr^Zsm>H3pH zASYX!DFuHfU~T(JQ5px zGF-~(3-g4qUdqRcf8!@`MbIW>g3xyt;FgaxdXdy-zqi6-L2I%pII5eGKSA{}g!AQM za#n|8PF0vR$KSiA5s|cQHgxo)PV2^8H-1~yPh_C?uQQ$ z%zX_a@`>60-=R}HO~VbqzF!bIY0Kc%Pp++S9Iw*>}yGADCv2tj5I!`A(6 zM?j2-_GsRh*-`O?=k6xHw2K=Z+T`0D047P4k^m44vu^F(-YvGDil5vDt%|VQ3Ssdo z4s^#6X$sB}ic{mL^sOuYbNV}Dg$YP?+bgCirxP4YLb`ua%d8z^g!lr)pUrJ+aYx^* z+2pgR(*{Vz$@lm@<~^NyH&eVtOp6?VF*g9MoXd?#9%v`Te=)lp`d~N$EY4h{C7AgJ zrW0qI=@QZHR1D-tF=Txwj!-O}))?POW(GmJ-(Z>rs=^te@t|mS*hN?O3BhYIKW7KZ zQ1?PRW#phzybN*hjs7ytPObk-2xXu%`mF)1 za?MVa6fWV}if)4rja*mzCa2>#L5f#i*|(j&iqf7M!zmM$(H`VJ7KG~ei4`9m_`9YY z^RwE!U8qY^ck3Fo82Uhk+pw8xT?t!L=zxv!u&{WK0e6!B(j7?72=}P$JG&;yw8|*Q z*%BB1kc=&zA#}ked1?U#7poiU5?(O-=r_K%v-#%(B5P6mpg$!Ve7e z19%x7tDec&(ekaVsYYoGN!V#oo@BOqB~*{!{2lc##R!8JtB=oU@2@8n3$dl>iVc*V zRY%OF`{WtRuN!uq|5B})yjyQZJb9|UK7Y3Ym6qz(jfZ1ZNxsoV*^I1q%61#?Du`DN z{$y0_NteTKHq^o`wm;FQmR~L0(V?JXLA=8tGgElHg_g4;9V-uS*ExLZteu(PB^L1B zmE}=`_|-U1g>WtQ4_8DiGs8xwk6e?_WhJ$QBA#WGrH3MPuY~&VoPLZSr(DrT$dp(M z{`UlW4JDP*wE?}}AphCc-VyZR9A;Xf$54xrye$QVIeP3->#1It@6Ucb%kvlt-Mnu` zue{{eCNaE0vQs9vB6YiA&UoO3DiOL&`Tj?{zPF&Nq@mSoaKJfI>E<~e|9o|2>hf~< zK&UI;cK{^1JY$FVGazj)-J|^8%3o_xf)0&Fd2#*4WcCvs(|E*(no@cO2)tI{_2a&F z)xEJ`=pA!9(?C0y(?U6HA;=E+4esd_77))mU}y3|Ox<4}K%w6*tux&(=oXQdd|>Cb zH_y?}$6P&K%;IHjvNK*Zs@l)m>r?l|(C@+w2LQd{`k!jgXp{}@*e)vWq8EEUc>?5T7*}J8S zTJ`=)CQPnb41Cm6DSSAnQ%qkIfc?`%i{eco(@GjO;(Z!3o1Xk{z@ghJ%^6S9j#x%K z%D?ml;=LU1$N-gDRySX{g-7k4r#FcoH*O3Wtx>J{dA~e|<#%x+BvvtUc`E6X-UhvA zetqg@%wZcezN;^!{#7wai2EyTCJcB>Mihptt_-_SJIG=;22`BwN$uG!ep_ZcAak`; z)n8t;Uu2-kXr!0<-pk+9>|j-8|4aTj^;4?6sK-1>%<;kz~{1?2(AEh39PL{aNV|kHYkpjE5D24|>qic%H{&=AH*V z{?+Q4KcT`Sxpp>(g`I6Thj_B{+qB} zv5Ss<5lke@whCl_sZNS+ul)H)L>xHj%jKXbw-s;p;<=YE&qw|C54V#YmHXC~Reduy zj7q1j@(N!oQ`~`-`2s+R24Px?k^=V*M$vz&;MVgN@*nYBC8g{)Rt1H8a;o@EY(?xN zxMoF^Mgl@o&qwIfjQgn#DKCXh*v)>Kigbu~AQ|cV(8i>nLaybM;%zLRhv#j!jx%37 zoN;dp_k}ZN`AMH+txa}6waFNM4?d`$Naag&U`RcoW%^!j&sN%VCchIZB+o^)J-TfgIvneB;Q4*7Pr_fa#MQBj|tB|9?9 z*(UDcq7*)16R!4jZ!k?{OBeHgTa7fUhobKMN~@Ab=k6VxXt9&#U+j01!8daq+;AfM zEvdfjt9N2xBel(t9s8FBY}`Td74AI$uphM*zDuC8R*`X64wL#!Egq?|*URi%t9CE~ z{-9E87MSl{>fY&n_m{;LWk5?;L2&2-?SO}Nf4%U*&ieYf>CaTnak}jHoNKF}95`iF zfBc#F37CPe^(`?!ytvUINa5uVY@E1Cg3sAE`w{>Z2|eoAHqM?7lR}W{70S{3Dqhpd zQ~%1Tw!xTR(ru`0C;m0CmtoZa=V|l?2U2eN?}?Wrhwc^Ua|HNdw`!j$Tm~q-pGj!c ze%REq^?>C^R%9rDE_aOPzI3zj)qNF2L*JJZfk&S&r)iO2AHeas1guJIeZIoCkYf^V z12P{6ix^1_vwUD>XVvgs%OB-ESGd|ci@ySjY(y2Ni;n&GvGh{|v3yB+=?iG7Oi%uND;?e(!DAW`v2mYDy#BE> zXCn4oIC67w4+ZYd7f6?z?s1CHVV#UFM2Qv2$&&f|ajkcgoRq(OEY-Ei-<>WKC(qcI z)(~|vjF)=lPn!X9fp$9zv8F(tLH1!krvu2jLL&!mPEuxw7_3lJuOA=r^LzMiI~>KQ zN-ELQZAg6l5|*<*2lrn^f~dabtgD+t?r6P1k(}|7fW`h`1>}R#(<01SC&LP{%^JRd z(|O3n>(wFFYbk|K_tjKKXcYNrBpPcB)Ys4pR1@&VB%RY@b-93Hps}el7>{mSc(lBdy;#Hn# zh$vf_{XUJwWs~trquisWAb}-Mp)iqIc7D=K29O?tVDd~R9#-jJ8RtgM>@DxHw+M^_P?7q)W8Gl7VDVLPblen&oFd8=1O z>V>73EZ2+p&PvH4`1Gf;uXPZ>xN`p?c;_h}^xrBGJH| z55%0`!R9zR`u+dOljuX9#E$(DN69OeY5(&PwR7@?<05qQV;R@+}~(s86oJFPytGgL1}r`Z==# zemBFLYxmhq4*Ex$DG2X&c&(Z69NtvTTvylFrcy3d=H*PKNmVc860sR&zdY=-g-q6B zXsOqVRaYS8Ao%HKlS4<*1#*^MIatO0-wDg9%byjU${z=ZdudC#i(OyRxMdB6?I5?z z*dsg&HRFRkd(JIg^h1%K!kazy+5hEc00xCv_5S$(yr}b5JAO7R6fT38>n7)C_6g{Z zQrkQb9iM?lsG6u_H8vT{4VM62#{q{Vc>&(iNt(t%t;jEkCcHhOJ6s_BeDAn|K%6`E zH1w0?H|9~WE4hiUgP=0Mjo-Mp+! z>4n%>wQ5vP5+gIkgL{T>{zDfUtKt zbbp1}vQcZx`UNf6jl2Czz1{$T??>6@gNpn3A7&NuMR5U6{JWdUiO(M%D4-SeSY+ip z`|6g=)yhvbp6yn^fQAC;Ov{Jbi!G~S&kO>_qqF9$9EC@O@L4CG?mY}izzX|i*YC^E zvc5AGmYFnl-Pv?+>(AVWtLi@9eC0&XlkAFFvdr=E|LXWu&MmX?Hip{j9mcRYkBK3Y z#JP0Umfjwj*B-dl!sK5cubH9WU}1QzvR;;+ZoxCyyxzzro%ub)CN3&#kYDbD$v}!mXRB`!6f?g!)Pw=1Me7@aGru`8}8wPmq&rk-ADEzTd=5! zY-fp;LKvY1&chsAR0Xf+5ooNw2#k#Vij&`+&}7!d+tAC?6I)N%A@?VJO~D;26H^{ z7&@;3r1355*yWBZx`8+FVAikSIaUMOecz5oix@>o4+Z8=_dk2~^CiRDvgdk;b9*MW ze>QK6XR9kRN?<8WLX&4&t0KV7-YC&Ou-OZH7L?on8uE>sbUzs*S-#Ws)V4aIi~1sj8vvAyXEyWP70h-v}#mue=l6|!spcfc~(W=9QtEpSDu4Rwe3}lf2`VG zBX6c+u=r}$HNL=u$qn!Y^K{^yfHT~ImnaLf+sEi!oD7oZ0&3req&mH=&3ganpqp!f z5W@%&H$edw1J;Az(ER7rSA16B!>+Q{tuGS5WauMo4@#OiB9(yE;O5N3>TRHP-^v&H z1x-jsMXRDnGb(2&2)B%W)?VYBqR(A=FYQb|ht|}+d+OMI{NRh{-xr&(yGA}QkNwk) zyc8YLOZ~OGKnWY2cqW!LeN_@of7_TU!-KE0g$Nygr^Xd`njb-m(SWOKycShH1o zZkB8rDe z;G`j~IfRVzbJcgmkmV?%Jn`))R~<3jF)mrkRMEJBl@cLxsY<3M<$TSfU8qXa_}it? zl8z}SLS(Jy&kTm1iH?wV4>i0SotwE9y~s&f7en~k`WNrFW2A$DG8oTe3|6`s8?L?$ z;IDRjWoy29RGSj5nf3b>ij6b(9m+=$kCiy)<_7v4c+ZD~B!oV732$j@dJ zOE3D@;tf=1CRkc}H;~fV#auh&6|v7h4V-?ynNe;%E0y{km~=b~muIz_hjIq{u$nLO zS5U>v=_)UvtFE6Xb&&VZV}r9piT-HtlhMaHb{dI$XA?F=d61YP&_jZlj1(k`iFxw2 zXnr-QIg<8G8s`-xPcHSB-?^N3e4f89(m(agRk4dt#H=4{W+venNcC{pd5fv%$zZeo z5rdn6=fsDV%!?#OTi4yVzgYmC;g{T*X4N`BE<=ueoT-9k4XD4h0A$WcR2NO+q4U<n}H0pqVT76l%Fp&ZV%2cd73pBY1)G6rGJG z!SZ>(Qt{~7QHb`TXBt{NG4!hdC_ahC@5ksC_d3M|^-~-PsHJ{r>7opZH22MYL)^z* zE;-r$Zi@wxp=h3Xqa5*OuTv8B_$6W5Du|LpdMp8r#sK6Jr`jnt2OqQyncQIG(#BJf zhDZd7bPK_h)xHZHtW;1WglBiD@@J9D9}RlMSDv=orY##GhiSN=ZR+y9JO~hlNuC6K zrDAKewjN!&WqtR`Tx4ruZVMi0S$V+Uy5?Yz`>|&ilAt^a47J1G|1N1uIj`CVcoC+L z7Z95}AIfAyO(_em9dR}h-K5SS$x#&tcigK0O5O>M57rylX(3R|?49| z`-csA#X)A@qg7*Y6O}iodqc)I8!7dmR2u@E+v9&(DD%95yfoQOno!Qg7TDSkvFZVn28cEAL`nyjSFK5tg3( z#*aSe1B_JG_bFC&0ze}h=HSXsgV8(&0++04i*J#{PuH4HVP0OQ_!Sa_u5m;=v`|aj zikU_9y{O|~x}v)wi$}@qol8zc!me0I_F;VcNXf`|XfZqOf}e8869cD1=^e}y6hj`YpC#Gk3Q@SY9GIh4fWJSP1%z%b(jS1k&cEAw-avAl3Fn+n@?7pAiEc z)B&A2#{F~Lo^?4ff4noqBL&B8liANuxzi^~A?#^=9tOoPsjVOt$t1FjEKeL;Io&RD z40f_H&1x2wCuqMqGBRXu*?qik(jJ%GFt@TO$CEV-lyRBB?MGdc%nkE)2w!W`QJkA8 z>?vI2Mg!IhzDmZO9~ai}Cpbi%cy>)~%CedJN4ze{1Z`Pd zlL0H!J^8M}J^`7-SgeFidCn2?Att%H1leUrp4V_J4S_^NRgpVh17c)DBNG|xQpJJ< zO`$EK#Bh)hiaec$D7xo^7BxtM5zhHbT<^dy{9@ak;ZW29e0+Hh5~78}X18NM-VdZT z<{KF&g=xONid+7h`@G7rSX4$FD^Cu+Q91o#RHaGue zQ*2d~9p|#Nsn?JbiJbepO4JPjC}b+UPsSkrj3W@;q4Xs^Ad7Bw*DEZ*c4%zyec)*- zd5s%0qy2% zME5wOetQg%dMqUAL*XsSW;YNA_ePqYdz$o`SZ4x^9OCq>I61p;eqnx2q}3M76>1-@ zkis>cgrJW{?fv7+VQ#b^Xe5!@E0 z9?riP4Td{Gxx|1fB0d80UJ&+-LsRmDYSAo?Pov>*x?W08S&3Eb}&D;_0ZQlEbar;>^XK4`FmCGI%4l9BpU0MyE_jg+w-$ry)qLGDJGY zXaT&uHC#^Lv^UGRr&52~Ag>d5PZwo7Fe@&bwsM=Vk9Iwj9*01_9-nEeeg0<2^zyMA zUaTL}u1NTMRORNnTp1m28R@?G*>9<|%j0l&6_gnyR4IEjY_E>Ko$ID=)o$26qi1|& zBs%`ns8=9pC7q^x8yHMaOoY;}s?If{BX%*bZl<^LU8Y+%{8VJ{ean%=U4|sR%q7A* zzfH{a8>nP%#|riPq-}%?j3o{Q!WV7vm63Rowhky{mX#%ERsK_ZzRXqcuKUlGpUby7 zMHtZY1>+4|Yk-xn)JZX8qG`n{r$7N zb){*o=4V0>IqolR+uG~qW@?;exM1kNVLthikf87M@%FN*5A8cVG*EC)_@CaOxkkQq%RG+>_0FpeJ;k z=@?!kG^jTS4+hiH24V&&*tk6Ic~zO=l&>SvsDmv!(2AZWVqIxu&3*?WmgckI z-5~05Pv}WicqmjIWr{4=pga9o+m_||{Mj;o9FjOCTy3>@!nS-XEguuT{4zRG*x-e< z%SjrO8;R^Ycx2-E^=VHB$l)!3|+2CIt=twVx>0L-hA z7kJ(`=36k-RwXhlYrNH7*sSB&!D5#C zOPT7E?$+k_MbMq&0sZR2)4z)x3Cp_Pclc4N`bJ>{H2ZE~CT&raY^>d#{kjJX9QgpQ zq-388K?*W&cE5yY3w#p$!FzLDN0FhHUS}h@?u#eiEx~0nMtPX~kyoXR>Y8yw}ovMLi)$Cx};Cp!u4{Z_GWAETrb|?xQzoXmPTSv?B5iYDz(N_KZikqE6Y3~UM z_m-N?Lr6Ek;~)uPkBGLB?sINcI;`B2f7yi@Qml3Q;t=h*_lAquYx)u@e@0eAzK$?! zjn1U(@Uf&Liz^6IJj88jvEt#WZC46|nTQ()PwG*oB0XIl$4`n@hzIidoPatUqZDCT zaZ;axY=Yl zl2W=#Yn~)SFxE!m;wSqA@t)4@VU{_(<Bnegnh}1E(~hpYzt_gub5Ja0zCPLWit5yib|umh z1NUy3;$O`9QCJ7F6wbj?b#{01GQT^q_%Xwz(q7YfDWD4UHnf~kl-PZz^ z5yZ{;dKxJe0ADO&$21OTY*B$rUCHDX=fF&h--M9RWh{wbP;`Y;KN_J_CJqap3V}Fp zhr_mYHb}VVCl?y!T&KOWI1>OVQUd})+tN;0yqZ|i`6^wv?W`*qFF<8=d{$@qZi(0X}fr5jHHNS&aN^=}i5etXf&JZR{W zRMg`8Q4)4AD>txxc;H*kM05ws1CI;zQ-YpcO4>gp7IlE*X4eO~e!YI|LMrRWo$UKr zM<6lcs2gKGr2oXw@l!@eM!sR#ljZ==JBeXW`i(6M6652H`#VUo-ONL$0M^+#7guiW zZ;?SE_HU2}%I5n{gKvm2$m6pbK&Hzp4Gu)M+2Jw!euZ&Ks^`>Y{H4Iz0)P4D_va&S zB@2^$BiJs+!0Ni0{ayNR;Zryx)d2)kjNR!w16Z^AAhstdfdhWqF$~3G0?VEj%^mg= z+Bu>Ea=y|ysZkb*?6v;v%};tNLVNrs6QX^5=Eg#()dvUp9K$6Yx+A}v^i7QqPQ;5! zO)e}958k$1b<^`}@c(?4$!B)x)UqWts;E3BjUu@WnK_2BF^OEsdM1{~^XKx@5-SAV z#(@LkMR%wJ68Ee45NSe_K6n{YZP>HzY|dPOdu5q4%BajB?NLL;=s2Yz z_v3zKJeRdQ86SB!AsZO(tv}tl#LXc;mtDIrql4j=8l#>5_d;LDD*Ag~EKGRqhAr@R zcF}~wpL`P$#hyRqXoZzemNozAT5u_RplS={H4AkI`Np>VfCTPtB@JJZE^wz_Z<0B?BTocB@y?s zbW9z|%##-BC*ZBKuP;r}(krz95$_4`5DLI<4IEgn_RzL)L6hpJtuyE$&2fhl1SHRT zqs=%ia?UP@Shlv9R>g$1sMMM_PI&I?I1p~Ja16%@4t^QZh%RofzZ>+Vj8W3rR2HQs zSK$(8dIHke(?D@P4xkNsVN_g2=EB6>kz3Fz502}Znh}pI$iRT?e6I0aG1L{#Nmi?# zcyB!@h*A+J@`b8p$o`gTguy(}|A8#zwJ5&|C!x|)tIi+~CtSY%U5(FzAl>cJ^%V~u z3qO>QP&Rgcmp`xHKEv{Ql70B~F41-RR!ubtM<*wWFbJG?c)C7RbV`JA&i`t9lShHOi?9$PzT2VKaX zLqJy_pFzI=v4iJMt=fPP2=IgN5apG9qW-bJ+hLuvryHjKAqXb>L;MTc-U~(Ur^-_; zziUF;k)hO9+EK)3`a}C?$>*HcJc5hLF6xPjVZD$hns?$;@91k^rId=mZYoqn6> zSv{Ph4E+Tp0brX{HKHImHZ*-6c;ertcZI-0ZS&}&_3&zs#By->+Mr%27P*OB8#&^= zZ}tFJO{mPbkdqi^HZ-^+2FqwO&C}|KJMGBEG~F;@&aqe%SLcxOiusek|38XTy)Qz| zh%4oHx(qB&(~xZ#UWsPbllc>Epl9-~9RyO_bNj6M!(v;0mtt(+?#F$9i{zT*hUT;R zH#;-C?qeRYfDLxYc$1W4Y$$!l$>*+3KNCK=0!J3W;_|W8b|T#WAaRF!lmum~mjFS? znaRNoHMEHwN!XHW53$Mo8fq&GOUar?pqzcE(D1ir)Wx;0rv+a4bT7jLH_&t2%8bHl zKng~{1D)tRIyZe#9lpl*(XQWK=Kd@^Ej>>sV*86&K6E^wv2WbvG8Sak#4bT;A2@X^ zNSVu1{RE-@VPG8UM#)(AP5RYgdPwF2QuMi~XVWF-HU4gV3EA}D23dREE*qvPli>l# zQ}>0U%d`|HDEByq#_%1xM<^IusWXIt^63W(F978P!+pO5lVhgi7vnr!+=~21iZ}fB z-~NSqFQ?{|eGX2GDG`RW#1KWxqF6xxB=OoXz^HZ~V7Wqn{tL)5=uZ%w_i9z8rzDl3 zb({Pfb>4BM`GrYi0bLymYj6)`S}1o!PRlxeGrZMcBkc=EEd1&Ub7ensG_-p@(_9TA2^ajy=j{ z*STo>s8CJrn6XF#IC3fHgLK7kEa>U(G09JY7zQ^;jXU=h+} zCIx3aQn25^q(w6By=x9-`xZu1-s;?7kw*uWV~1A_7^+XVP4wwU?2=8Ds4Z}0-}11v z9i8%vo=Z2j0tqGE)(Vd-Oq)7MD};+mlP@;yC2>?Zk?YOw%e*Ej60jUQ_)Xki1-zh` zy5-??q2q)J#Bv`DcxJ$2|L#>@2msSUeRg55P@W^jV_cc`PVB-R z&1^^4LXC=N%dR?L-m4ounUA2|x_AQ}?5Ju_?oCeV&5ZWFg6VlM(pbOxBDR42X!8U^ zsD-g4*TQG_{OXQ>6@-ID!dD-VVr;#EIZJnGM6n)e4%h?i--Naot{rIA(XZ?^pM~_B zREq~t+(4JE@vnO%f0?L{kVm4>Zq&}q;reWMNfR@_cdk9n>e#U$!>LB~H>=ww6n5Ty zk-Vs`X?Y7O@2bHc``nq>cN4We=^|RS9c8ChSbLSP$zL8@qS`t6cbK8fz%H00f%ooK zLDWKv2JHD!vIo*`e6i&+`>x3ww>cd^%0DT+MDLUsuOfHiNq$?a35ZK7=xBwoC#@`S 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

akyF8 zxQqGc8nhi`BzuLjk1FK7L<5LzB@x0V8orD}wHIczJP_~ac~Lx(;ckt*%;qvhfB(-e zy(ixOQf>CvcQQsCkiXd(BFlW9gJCZYaH*PqF5dkx<)>l41abn_tV#noNX9pL4U!nn zxxtK8d~i?ZQ4LOfsXTWlXB{Nql>@Wz#o_ed2FCiP?*H%wsZ9u(Bqcm1 zeXtIha)vU#nVL2okKLYagd7THX0uxAj_)H?q&?#;4E4 zxsRXnh~GQCLvZBb>zl{seFt^)mNn%rGd>F1Jc&e_W0L)kEzpFsXZZ$xwZpldM+%sR zE$`i8Q0dNdGivB+5a)iZLX6&51e&I6p6L|M9+uf{tBvwK6BaL}(As1!r^Yy@lO)FI z)1ioimWS}zFOu(BwhYf*bgzEi=R+?wEX-T?Xjd|+MprNr;v?Zd-mrc&P{cwmN}p;nV;T&c92mg_=d*q@OF*L zj&3)`bK0%d;%mtP#5ljWi)YX&YCDJ6Is|sRYOm|9vwDX&K&QE;4k)woim0?o`v%)n zwOYk|lwDkK{G8^X@`0?}yEZ57@Y*EyY{A|6Eb^C^O{*m$sugQp#0wSX6i34k`mX$y zG_1C)aQe8&!TagIH0;w8G-!ucb?x6WyF@KLryS%|_;qxOHC|}Al&9mcqbyffdELfY z!@#ct)ehnufu(0V&Q0;JJ;=CQT361?$=sNJCMxsV(5I+-2A{9!x;>SPxo5C*aVbML zuhN{f)-S`zR<8T`=(6Sx7&%yXRsyI866 zP&cUegx>7keNtl(zF1o*Cum=5sONMZ0}A zsXGOeI`vj)v-ITS$3;#|2&|jdYBHI#Gko{2WRRMQQo^wxVfyjW+lPN@CqIPMT{0>(0=(u1+tE>F}6`PQKnJVxOWe0Wqpxm_=x`(hAeegbRm;UOm+9t9Jn}%RMs{L7%45%fT zPpv$kE}dx&-i=H(u_6{Pq!+%QO&ttyfl*lQQ1OO!LAXa3=~|0J^u{#U61 zJ2Wn>{|vS%3lWjY6}X~Po6zRRsto^+?J6DmcgIu;aI~qiSJqwq5Lxmsj*U1Ieb00o z+e?GiFb-ghvY5{NOMkQ#I@3CbOqFY<|1cc3Dq{eYG!HBqKj45HeIgI@R}uALz}w#< zpIX1|W@E~?ANZ!e#LS<47g;8NWC6L>os0YlO_BwIQVd^+WBbFe;&nhMqK^jGfEFcQ z4$37m#ePJfA;9uEz-VYz$`}pHBL8y_omjkR#Gb6&m}N?&C%Zu9AavYlgit|vT``i? zS;@i2yQV?siQKgfB4qtoPqgSPtG!o$wg-;7Pbi42H4Pmked1bh)lHpD@iW2!ZQ|2H45t_PAS1?FX;)PAsA$AfFYaY3hxrs z*Ht4?Rom0QKivQ4C-c95e)=uA($0yGP)tUS7(fU+Xid?Dpr2TSNp1g~|Itkmk7}Ix zj-y!@Rd$)RA5p$^578k^LwrLXOl)L?umFe>O*Q}M{bygJGm$W*Ie+|kh=ECmzZInA zNY#JEB~AJk%xMGTmn$*L+~fBjxu$owD|>~VNo4vbOvh~rkESk?A#n!-p(_MV*Pow( zD9RCzmig^r`2#R&>v`mGI`4Y)`9DeC%z!pk<106;H=FEn50C^_c@yZ=hgYHvonYk!W96o3`Tsj7<)uldadGVzmvd3R4PYE$euNY|05vqFH3 z5Mc44F@_k9fUQ)?_K`okgqY+HH=kT%_xDjIg10Xq3*`49GS&#<2j_JgqOeD*KDp)i z_20Iu zF>M^H>18^jq3CN7Y1)N!iGW;Z#=8$ahnCJ~0D=!RYX$PHe|um_iJ!6!2SzebRV$H2 zPS@Lr)eyHuwUphAMiew+;8^kmW~RQW+5NX~`U4l9q>JGFnOjIvdBXq^0{M`H*!wSY zB<)$412@za9tRRkt?_Z;v;XzbB9E`ejk{xw_P1O=$c5HBf+S!X&VV8)QQc-fG^{a{ z5h@%E1rQf}v2O-_+5N;F6= zbRIVg0ga$iaa;ij=*AC)fc+m40v)6{S?*#1fAm^+_#QiY=8$=iW&zLcL+SpXK-6P7 zTpLn^NNdVwD{T-igcG2q6}Z10_m{JG{pTa`6%!J6PBk2;#K@cyZTW;F93D^_4IW( zJis>0UgMGjAH&on>OkS_vH6)5cNd62n>ezrw zEcq@NKc*42EFxO~xg!SQYat%8?O{to-`K(pzd!mkCt;A%i=hf>L4Y#*Zh*-j_-rpG zB6xXWn-YHyq6dTg&mxfA5x;2tUV)QnOpS5ts%9H27+H@@H#I#I$D3t9#!-OjvKu39`7T&&~#09e)csbNvTp*6tz(eq=sFN4dN{wENK7t;ZWr-n1S@MtD@! z^!3rTwQmSH>FmA&)cyj-PJ;{ZX#mg|w zrxudOP9>gB-jTBRw1ZsO4|LlS1Z@8>1E=@-h8#khQl%FP7!(=V`LBpZ6*>*BkbFoM zY3OM72H_wTj+u`j2wEtSxuGZEZ}tQk92wk^rd#-(;WaSQ_Jtt8H`NDZay4v|VTn*IV(ROC&dc1%xaCoo}h*0{qB!1EDkv z{nM%%2?QYk>>nc2-PYS;yoO;&n*YuA4nueXeWLnS+as#rv-YkWR>#Iqy`^vD(idv8 z_0~WkvMy0vcdIuNDL@4KjtsL32+pJBZD&Ixxh)>tpdU9-Y_{I)R;itjx53+K#dFvH z<5+!ekIpxU`&n2YJAhSndTo9}RgHB(q2x!Uws&|c`CcGrxvukK0Jc^w^FhOjZ_BfA z`rLy?J{}oRwx!Y*Nw7a~OXkP*X^@@dL7rg$RCLRw(F&dG`!`d$#(jU9Ve_Yc0V^!X zMGb6-e-g_diC&FvrlZLxN88>MNhgWLkPg?WVV^I!kgvNb{Lzp_1oTarNnN3c&zpOFD&AQjfG@#1}Qh+X;cduFXkU!Q}s zxd$vqMyD%C)>%D}NV7P!s-= z=Ay)0%Q38&S|Zds3zWYNv?h0bF6!#`F2(a=D-IWOtajpYW3Xb$MiScRb{%za z=kg~YzN%~5J^TBFeAbmWp&rxp!zU3*D@q}7GC9{K0JPL+ymEf($LMfj6P`)Z=EyC$ zl`FDS@C+=|2ZGWd^WaCN^pPUzVX<4if~sb@AXu#8_2}PEq4&+=EWvB|aLpPy5~>9G zg4bM=N;a+~$g1|ewq*?*jpe_RGS$?2a36(<=7hZ)#kG;l$&p*u-#vYgT!+h{EEU^Y z89SCdr-b`Jkx|7v7evHXACzp|o~3W+PL-ae09-*ycOTfZ=rnq(oxh}}JyW`Wq!8i+ z0{%{^6aq=Ar8&OZ#ny&fwA+7}N07VJ^`cvXTH)*VexX((dZMlHLW8Nz)8(%;rSToa zD{Ur`nN%E=*!?YQx!N!{tD&c+`>By5X~AUbQFe#7?iRkCK(ka^Ec5 zcR3|j zKYXe_K165lhl<1`$~4}z%ERPxQ_07E>Xg>1Q=9vTzS+;0o3I+kY7u4&bm@t3|_w_j||gP+ph29q|gj zK6ac=zvQiNG)z(Lqqu`ib6oP8<@NK4U@!I=P@#{vViRUgP4%YQh>p%ffZYPUj2D~3 z-FAG#kbJ|i-Xouyj_KO;QJ$B1MRr>d7}cEYSIii`T3q8DzX}EzpF#>f=i#!laZBJr zf_w%!KTD~r(Itna%-7XInJ{_E6e&SMhK;2Mu?L&|XF19>) zy5wJp=hSmqWm>9w4P2Z5j~ZMT&G^;56q-(Ea2u`5Y$npHKuSMsc}=a1{zdf0Vf>fJ zQv#iab)LINr@k_0S-&1nRKm!R)OkLRDJogHz2L6q`Dy^fIVu+KbUaNb zZK#y^TX`L#>iKaIWkrTIwU6i_M$3v@bbYEbY;@*v;hu&=dHdn5)oYmO#vucf^`c$q zmgspW^wh6MTe4D>f-S?b<+qeKtB%k@l<5>D=Su6k#k7?>&Y0%x%^Z_cf48hJrpeMK zy;@%INsp2kI}>Dw%SB%PFWm+q^RcH#{=>dt$z#kLtw?wCiq`?4#A7BqzWZglu*{s> z{sKpmX%v7cXU~UU7=4xe3_>1(yJ%z{yBpBX<3 z6?1UYTup=<{5&7$J3x0|hKq9S&mCl#TC?cgHR})3&}LLvT^HjbKb`_s0e-=> zo$v;Kt~jLWASBMw8)VJMF;@i(S>pUyZW$T?U_^6*dxw+9TXWA$*r{Etnz>o<#olL= ze4g@RF=^lE0>`noLgK-k7U}QMhy*du@XYzKyfbhRsyx=7O#>yK{rXme0yhV5?jTpx za#kBLjb&)OJr_N5&fkwETYO-<2PC)5f=qAd#et7l1RsYF%)lBUTIk=iuf~lCXnWx*36iHaSJ}Am3A?ZYWsPf_-Js!Y6D4|{R!;~Z3$GY?*|!%*?Sd|7&+KF zA~iXVXAYX3>Bz2h_BHl0e7Ts5eX15AIFT|C;^gKlN~`SH0$#%L7l<>LDg|$c45WHK zE*Uhl6DpQ_!?-GE_X`XP_F8+0W+%`d9C6N-=$HfxIvR&niu9bU$OFp%n8}$-D7A1q z4wKq61q)M(ZW;|xMIF>w_`%gVyU&d2^X*@_JI@Io_ft;`*5%ymQD4qd*gj%_#~M2B z%w?YOr~7#x@8u@X+;mEO*eCk~8@!O?l;vezRr**KhYIleR;%R{Gj_+=(tmmMqR))K zXrjz&tE+ssIp5|C<4eD(I~=zQ1{t{4y~q5#)@WJf6N{i<3uxNd2A0LpL1=3o&F3aK z*XcFN-)wJ^n{GRj5!)M7%*bKYVXr;Dqth~3P{TAI)@QDJ70Z40cQ;EJs2~`xK|>ld z!sB%(VOI?QHN$$}sW)p|ZM~%rE~Mnf-Md|er|E7J=sFxFJK}Mkf>BN%XY{>u@d@jV zTK&dTQiopNK#d;_XAEE0GVOPYc1=7-<0pz*_i?qBOeY6&@gZr5r;6p089BrW?k(LF zb2GJNa_s(yMbIB2DhG~sp0)qz9pQY(KoBFH;jAvOa5_;TJV3+EhC9QoqeNp=iK@hL zRpxK!N}M>#$}FD$hUA0F6Ymda&bru^eHy8xWx6J@^iCF~6$X_SL&IhEQqT0X?M$&o zNheNA;;k$3GotAEBEOeY$6;p`O`Mq0Ii})@UJVCPZ`+-FA8U>+Qrb(tGl~o0)jXu9 z(%)}gO_5)Y^}L6vbXF_R9m+Qj@(!;lIa%@5 z4QDQ-v0NdSHl@#`mK>}fO1D8#efku%^n++Qn-P#Y8;{DxzsJ7%u-FR9 zn$cQs&?_x>i}R=_CoXS=t+=adD^hSNc;d-a=bZe7HcZWU)BA zWMk;YTY)AkddzfQY)Y=&KN&)PF;5_HmEwO8!|)a^y_t@6+unPSY3;q3zhWs{EkdvSyZT25@o8oG9 zb;%8Kt4!`PJz~iFbE@UA;2HBU&uMh~@X?v=4+61DLBWfc=(4iFRq}Smy&$~$<`|0nSoe%JYNLh#kJrH*-NVrn%gbu-m&q~ol?nJaZjT59Q zOK&weH~Q0^MM>*dRAaADa9N}4+7@S&%aTZomf!jRH~K7z$S4wUH#5$p!fl;e78!17 z&IiC$>kEcQXC4J|y7CsID*3YuN!But1GjmUfw~j85Goo<2DPx)nc&bHtNd@af8lSj z?9Ny!LCqbg`w+5&0edKEJAD^lmaRSm1#j#i#FWx-WW3u&?Wjr3`%eMPOz%13vnJWn zm01({&fLmSW7RH0`K&JT9#Sb$+i4DVEwfhTl1KB`dM0BOcUmqj*iEph@R!T6e+!?w z(0*LDJT@+MuOv~;dq^xafL%jvcv;S)chZ96RX0nDW7=b`d#3fVe&^3iGTtBqjTiIs zAS;cZ$)fk-&y>v+w<@)Y-CSJRDr3o7+l0zK(?d5>Y+wqO8N5?|Am_?%z8||1r`V_q`+V7mosSUj5;Q*QIl5qZtJYZ)HLKAj~g^0YYaVdquy z7yvwa_(w+j8_~o%5zaK}>jL<_6fBq38}#bU@mt~XDG^4QNgPe}Si=U32=7!(Kz>pr zF_r>H7!x)ic(rwMjXtUFGxbE6axLZ$~Q%Vs> zYov73dv%dKy9^69CX>bB6IW8}%sU&bjlXX4bzmJUxP;icgXY~2q)7`R{-{JQMqSqU z=5El5$0I7Ey9plv#1X9Q7-REbZ^e2Z)r9*TJ**9A!lctraV|l@yEH zedaXBJxQey5)<k6@N%?JjTjhz4yz^W6Lo92*L0n;gs&>@x*=e2GTqJ>sSU zv4rO0UP>H0Lo{VC-w?iSotJ`jO>ll7p4O3N8sBxc1*h)G`L<>r*)y{#w3W*vlbYEB z!3diJv`5Ql!2EBq<2~QB6Z#0FQvK=z^HnMCi4jU}U7p-c#N;7Q14qg1ifwz* zEEH)WO(c9Ys=*njmH*Sb;H%Ge*RYYXjr}WEvvVy3s&I<5 zdUTzU4_b06pX-8$NqaU{2xCh|XA2)WlqW9y!u zr**k|kxHw&Hic{|&J7c=_kVKN;Zj`hO4%oPhjm?0ro|RDj+K0C(LVp>+FXGP*gj-jgI|nLyLaT1;z;7Db_3SnD2WlHV!(w@%}K@@6OHlL|J| zcsY^spS&Bk(%eU^5+$fYF%Fe#lS9nTRczJ>>0A<7De;yu`eu>ds%%OfCkXm^)ZTk#zaSja%Ckv*}uII_cnbRaqzQ zbHxYDOtKgm*0N#1sV>5?`-_P%VQA^nF0g}M<ImGMq3@zAY5enF*ZF?U} zaqOKjE(Zb<1;BE{3ZNitl+H9IW*oprvDH>1$2gX?@j%nomqW!`yTaR|;!?4$Qyu8a z&UEP|gfI_D6vG&WO(G^^I@iYhKOETuZ(T>5q|0q*e$~0>m+a6lTpJ3yc4FLb-_>=l zO2n0fFBvS|>GrZh6rFLS*8z764X#!kk9a?vGskKw%X z4lWjdx(M-NMefTu@##QeR20uk)`8(lPq{WEiF#zL4>?NA zmtHT`|?0y(H#=xpCLjY>7~U%P$Oc@kt`w-#M@_0&~V zZ^m?{a>Rg?MWvaA1p@Mdze8MY#j9G04y+)il*?JjJ2IzX2<=QC~G6}V?*m#P4ISY z1g**LwN^y10AXvwbkRn#Njz7?fyKaCM_K%X{D@sS7pSGm*Zp1oPRp>A}M>{g6U)4bvOiVQiaFv^=r8H|_3n=%moZyE6@rn%1WTnat0~jPJMRwYykqQ>npUP`RX4B$<;2sjh*#YtAGj%d{o>q#=HP0OOll^u=6QVS~_Cw7+Ho zPkeb-iJJ6!J1Sv39wxO~q(C#|>zgkYMx6`MY9GQreR)B8VP-Xt9#e)4LrZ!aD20BS zX}vs`;F_PM=865Q-B;fw)Y|-1E4hl^-0*pUH|+F(aCM3H-JVYPM>18Xgc;2%nxj+s z#zL(jGDdw^nHpAZLFjdDOTA#&9pIg|+?6?_At__Cd7I3Ny%FJwts7RP>@#&T%AjdC zpZ#!dsairoc5C48CDF=`4fwO&y#{l1J4zeEo~mKp-j_EG6kIWBc)p_3iTpz%3(XR4 zWS`;0u5$91k8-_phKqjbs-`tA=Yq?81$)yed`-2>GP!}S7apm_Ih@?5kw zhq4+=LKCriAtE|7m9VUT+a@ko7~kvorkmIy_N8!W;q_IP#q`9uh%W7hG2+F}i1v*y zjuW`){I%1nq@|9wyk4BvNeiy2HF55F_a=@~C9F@*Dyr*|GWt?vK%UT>?maxHWK;&{ z@v)52%6*iV4Q>&T@D|5LS~}I3svhBtg(FSA!sq$ug)8;xf1N_Xto|nB5PE~mmi$~Qh zkMG=F&!XX@;qz9AlhgTyBoXW;LM4HY!;~`5tR}3p_bD(4R29O^ATz(8H+oM4R zdi4rYRD>>Q0KibtVpsp>=F_ zDd;+nhECPG^`Y6)R4~p8sgA!la;5?tDM?;hpM2e)&?E55aQFOJ!q$K-ol~Q{Q*(_zUv+Gsn zdv>`sfG`#;?g$k|PVuEw!C6gV9)`JVp(E^`XEG{Riau>AyZAYl{gR?Daae6<4;!y1 zEM}aaco^8Z=LgGiX6BEGL-teIz2pH%4}#!`!8zjnDy<5Gpy9uEf7mZX=Dke(sn33e zT{T;0kFsi3ZKakI-*v^hUn;R_rWMeo9vEJ)iA&GEP+%tdbPGUUah-|dFefk!!2dSG0Mz32H*FE zm65kKWvaEfouz(*=b31i!C5X-CvjDpF{bZzVdGnsyUnjhN!*_r!WM~F;C4Dy>LrZ4W&*?kPz2gG3An| zA&WaI5q}DqjRJGeh13Xt)LGx(K7=clWgAdH&-{B#`8u?ltm-@aNRFgwCGe}VG-Ppm zj`YoZK%`fw(>XL{n(XzD#R(Zin~a6SvFF;^ z)RigGCWG+VKA(Me;Rb_HrJtim)*^ zMNXAdMATILrC<9Qf!Pp39%U=WA0?~Jff*7S{{qNSpDpf zoF?nhN=UoF)j4^zeswp>GXsAIzn$jJk@^Y^eaFv7jsj!vJTRj})<$=+9((Fyvtr%; zfujbN1KEJrJ`tI7&S}jx@lqABk0w5vaMUOIjZYR^WeD~w)?vQEapEsU`I)iQivC_? zW~A=QoSm^_S>(r)PM*hJPL*q({UWH@{3B@}JMwTBy&uXFp*GIltDg;21WW6uywVg9%j^u2^)RHhws zJNuj__OT4Cm8#6u2hD*OUAi%>XuzbTuFOmz@?l?i+!q3(v$~+Lx(oa|CHZ&S8oq4& zdZuL>LwIY1?=2>bR`f0yezUw&HWdRYZXq??8KIF=!=Tm|XgD9V7{M2LuZqp`#U4J@ zpoa~jQAKtgjs+kl`-ub>k`ISZy;hpcy_%yHaDx^;YVsy6;bprJ@aUqHevK?2W zb7pOffA7au6a_Bv`zZX)I-95+h*y| zI(x5nDj?$jGM|M~`j0^2D!dK0<+5rhnXqh6#43_RjxL0zC8p3`ubws)H2o!Y1XU2| zK`~6z=etJ2Wt6@@28@uJvD?%9u$6>=tO9kc=}#$!J!2)oxg&aZMrK9U3)-rj5o7MW zx-ta&&hXfX6`cHcw}_RIYsPr$K(Q&Zs5EBVCsQo8Uahy2QYsT`ZsSBg&)98{eL@93n z4S|M=ccH=AG$pR^RDbH<$S5S$Ezffxd?S28qiI{sPFvO}#ZshWa<9vf=daHn&INaC zDEfe#eY@6M9l|oTIl~KWp1Z1~cx$1JzANN6`p?(lO1zJ(D2igW%X0{mKSWZdNJd?p zq+98-ZG|BOl>~g-JoG8$Ia*xvOV$AmR3Fn^f4S`qp9d*wt1dcfZ%oCTT`IJvd~{-} zv<&fA1#J11OPCuv-k~mH;2JTJWvho%v$%_r+j`0NA#~$c(nG(l;?VV|@@98&k4FEE zykp~OPPHcGw6TELEXg5}sKP!D`zt}F(z!$h>Au_4asoBaC?eW@!2E=uTbvFhCe`b! zg>dwkyOB}Lh{S?dH~s9=1Dpi+q@vMsZ_W(Mw-)gas_Mi5$BhPRntOs$wIOBOXr@YO zQb|$(6CYK`X+W(+HzQD9S5mK+A%1=s3#86`{=9>6asTsnW3+g#MG7`GKBD_F6%Ll* zVl&m$tTw_(d6Rc;Rz648t7 zg+0CN@{64d?kwaK;8}i?@Sgc^iKvdiAlHse!=ho>tt#`cebxAw1M4WeiCmGN=X&}e zUk_*=2!m#}0*&DK6tD~;oNd)$IC{SLLMY}|GQ{yPuI9^y5lT=pOSS!=H=C**0BCNz zjHSaU&K@$aaB-U{B)`pZJU8$(OT)cEliOvUKZ*y<`8A7q`?OKE)J`IBTTJ~TN77VQ-v4y!pFA-D9mK(?E zeDM&^=R|Qt9(k;nC8uT^naAEC?GzHPfYa6RVAygB`%MXLN>`y*7O0V^pAC%Wo#rfkjW%E2SmwSh8^EFpf`ZxKqoR1ZB zrMJgQCMc8%*!MJ(3e{#>9-&ri$ja^bgVb#;>IV%mowR_J!fzn-D>C;G&@Zx7)s8}8 zM5rwqMP=MdOksR0{NcXE2XNnc0@tvtC$FZv3w9F6!7)AB?E?`w8pdB zQU$KW$W9kLA{>4oiQ%_X=%&O}Bw$My4!JE0UNfWwXLl1iO%yEzt_l2tk>|$7jmoyJ zd&vUEla(q4ZoTTB30)%S8IBRO`nSn_)gCQ7KMUCTlyJ|(GgH2ZeK%tmF*PK?L&ajR zmszj)^lvgWd4x;U>K5eQ@cbtNU4K*9P4<|!SHR89+n75XCekVixu|CG#&jFSoLbsl zm0!@lUOEjxNzKZfJ#H~pICj?ZIyc%^sk_Ic<<+vCe%gHc!>WdJP1w*e7SnUJ!s-*< z);@ujf4R_xa4H2!-nnA$S+))SU6@(XoYxc~VW!;qBQsYQXS!oHG;YZIwNal96G#>4 zTt*KPb+m7_pWgMQS*yD%f95+$hMDo~Y(;5a`9?VDg`rdozc!L1C)7Pp^SxC2A>mb< zV{*vmXQDU@&Y=BTzxx9pb=_6nKGt@27gkf#jNwbY1x)n!3s=r>cVxx|(mJ&0#+d~5 z@S01jGFN>v#B@qLH)CW?f{KdhIehk0`5P7&ebB)r*3IgM!6o)in~7CT#EbMRmZOhu zE~a2sEk3f4bH|CUHpImk$<**wC2F2^y-NQEe**w-qU!6Ry3SZn=Y$x%V6JNMb{p1e zOLlksz!&Gw1Gc|pefX)Urtogz1{`z7KCIUQ&gOVx;Y{xMHVYbq@6SwCQz0L0EVEzO z(8&~9i0CQrUNda?M_laW=%X~vOA3;gsM7OBk`HM<^5WY!s@}XGt8+f^I!z@N+vwTc z=$WlgA@^Pv2(j;{hgb~6p@Xs~N0MThQ*5ReGf-s)sm z@Bzet?gqU531@4}@wZYDKP8%YEqX0OSd#%#94{SfJu+s#@F zo?Xa5qb2hC`mF%(*DK#r#dM_z)B7 z+SFQGE#pmL4liO|IZ;VDEd1e?R>-29$UX_hiG-({iedJ$#oRH%ecdj;a?{|pQEl#@ zUR4^+@A0QxRp=_!q(aySsjiom7R6$20~zk>@mhM1h#t-73@LRZ5tMk#)xVOUEwRHD z2p-CsEsF#iYPB6OMU_m`Q!*zx+#olgSQ>Jt5U^L)Xth?yGK&^A4daSO2n)yGiv=Bpnxa|e49hQYFX)9-lFS9qswrusD5mtRa`c_BF{i~5w4{Z!VkFr$Wkpe%vg9<0w(}ywY@)91_SEV9 zdb^2o=a7UFIa5EfGv^q>*^FN2YAa1CL4~GCN4stsjs=k!t+`7g{V)(d##{En$V|Wc zKHaiHNJH!a`}q!QRLVsTo)a7YA8YR!6=k|@jVe+N7AmxYs7Nr9K~X@-D2M`*b1IRX z5h!vH6j4z?Ng`RvIU_|9P{|;%$U#7I4n-=s>$T50eZMny-#hmH{O9N{psL>ISz)fZ z=8VnHdb9_m(rq_d82!eVFftV&WJLWi9go7sb)8oW_evSFmkFs@FMfwY5k_ADuKUE3 z?No%>!K|!t#d*(GJ9_HLlCYZ46(MQh7v@NGD$ z^nJSVX{`_R!IyLk2bjCU6cYulT;Hc#%&I!EympzP4Ao6!-7;J7;_K6UpLH|v`fSQ| z`S%7&tv7uq)1(KryX*tEhl8^Gu$V5?S3)b#*Z$Xm`Q!U3KeqCYC3C84;IqG#ZKS3C&VKCYUv~u0Y@%(aCr>rv)k2X5zcxN*jLj&Xgbfvo!+mWuV(I z+fcqMV^7S$dI@h}?9F85TD6#s&B)YBZO&9NZ#3AwW(;f8x?F8Hfy_sgxuTn2w;J>g z2;|GQ&b-^$M`^Yz_`6ulzavCx&gTxLRP;${Hb~n~rfbcua!j`V?2GDJDAtM*%^#Nu zc|Iyu9Zj}@Qxy>d3N*~Dp*+|3~^H6Dj7e%ze4mP;=Ou7 z%XJQ8*j!?M@^;*9iZbFxBiDXMnK=3QDY3QoVjS!PiM(1NE`7EOe$z&a5>%koew=4yf<2|=s=CT{MZIZNGZ7|$;?-d7nJHy4uis0Tg zz?t)^BnpDsGhA;|Dq%q2cu&%fGo5Q(p1bqu8seBG;_<$_+|5ap(F;T~0Ae9qm+ClP zRje`cm3IHc71pS+YKNBWYr7@I-IMC5&JO?LeVAv+&L2U&!Iy|yIKhVUmKetMvDR$o zBvdAA=_MdH`qDd#_g23`vY7ul@>s^U176fqlH7g!Klv-K68xL?jD!kPsb8_mC;P2X zKbG=7x7MEOV{S5!7`HHf)}GHBt?^6N(-D_iQ;HHm1vU1Wxw$^z*{VPDK(6Y_V7BT` zvwGy^Oo@Xv)V8|Zi|LGHyn(By8Z^oC800BxmIE(7WpX{o@_56=G~93NHinz&*;e%@ zEyAh>Yh9TD%0cyenw@T)6VDA5p~_uqQq>8u+NIRwm^1QRf;#sjvay=1k#(<5z&ZuM zNJe>Kl|cnS$7;aGBU-?_l&+Q)TR&-@(3pw(h9@+lHjm6^sfx-BCah%4-if|oKKOMa zNwGWgvGR-qw>2pFT?$TQbXG_Xk5tz*3Vpl!<-%-4tFz#8PJ`;o*|^27D6${xvoU^p z1Bi5szZDrOyCYC7WltFL=~%DwQ4`kiR5gu{5qX`jksa^K@bqx;wY+Iyn;JE!%U~hg z#gsPFx`qnD+Z@$=IuP@NEUVh<`INnL>X&}tzWkh@@h^u>MsmZ?okczx7`yoGe> zNY=@-VfPHWr?9StdSF$95>db!jeGKsri)4POeb!mMckFe1t zdRm^FYb~3MEvrqRiN1a8<`+bs{6=r8-)wKdz3AsQCK(eVsgkDwasRoYn>iaGH2={V z(>bH33((7_o0QFTd)yxmI3@}JLAO;n6bDNtvNL2A)Xx=k6Zs6^NwrGw;k(i}J9SFX ze3`_`#007LZjALtKNgz@wcE<(r@hi24e{z^ViH&I16S4Ow^*C6hBw({R;qU_u$!na zTFj3OrOcN>IUKZ+VfEg8Hv4+*y}R0ac*9-}b&w9CRr@aCrL&W6At=Vpd?v~d=B1w#ONa# zrX8+VaT=VZkiB}4WH5=AB0c1JrW@`-Iud5fUlD~mA; zv(O8m);s+lywBp3&J+;7E}&oiR4X&t>8kpy50+0Iqz_ zu`V;IiG#J?o!*IdEph(!**@0@ZL2nbotw?yBq1IEWUcFu6G*}tu$_vlxliY1BY2D| z%=Ev&3}TiH@LS2*!O~*JZi=U_x%a0z@julB`AG*UX49lZ$Is30Deqv+@K=**?@D9Y z$U2fdPJ9<3o#Nn){f79Lh&abSE2Qjj=nC0#4GFz&W^ElKgjMTt(rko$Y?d&sIeS?+ zB;&CkOcumuEF@9a(B3kQ6T+I-4b9;u?nBsY7%PZ4M+NYsBH6l9_kemYB0f|Q(&s1> z$R572Z?Xs`QYjmJ0sCer6~t9S(#|un5MTP9XXB%qJI{i~+tK7cv{@{FsLs*Dev*S+ zLo8QGLWT5CMX^M3l9LkDq~Zw^(UZ>d3zj{G!IpWEgT&^^;OP3!Yr_#Y?cd&yNwJDs zy)}Pu*iiu^s`F6}bETb9God}vRWB*e8tiDaFLdD)7yDC)aR;Vo*wsEc_JTA_r1>M| z_rr_Y0))2?Gxa^yMsBe*0V#}kl#+`Uz#w^Gi&p#Cz7FB8ulO@YS8m!-^8f<`{xuP7my8M01xjK)1ck{w6s2uZMdR8iXHhpP3?`qUcE?dfxt($(~taTjt z*)>_`OC3dFnptHF6pWRI&p?mFkoJ$nZI#hJ+%d$Ot?9$1hYb5q6wRGt5Y3P(6s<(1 zVR+NAi^}^++D-|sEfxkAGMV@6ZV2wFF}7YTUhV=-sSf(Q$!z!zTg){q4j1!fwq#y8tNBCzZk>3 zn`h3qObS%}uzJgz8U2vb3CB3=)io2wq4^L2f}HKXJ6@LWC>5 z%JUD&t2A z3>VRcwa6V+PWV&MYi`wNNc(W>qSyDVi~BabWuj-eUSafGL@^lZjdewFyw2R-$qkpJ zK9A+OJffB$ZNE!>QBAwB36G)|jYG6yAMeoCo2ISEjO6an!;!WTD%Om5dA;`B`B{5c z46AeE#;Cb0*lJR{iM}^IQ$yG*U4m0jC|i*k|LA$zsC6nuhjN>D=4!yfiDT zC#r?&<$Wd~5U^);*hBCH4F9MvK% z=U8aH*MVCYSu`dbolydk^kbZ1CS^VhG!HvIN>P@=F2By_*A<(4AY1Z|v)KU9h!001KDHV0}{c2(NEUZZNu9~$o^?ts27aRZC9Vz{F*UTTKwr+KS6a?Pvh8XE^ z(`Ya(e3Y)_QX_uO^Yk#GUpZ0+WBHOEldi@|TQ}yl+}FCeV=nl07O~?oK@i>^P%l1Z zQ}k&JoGR1^s6{TO;m^E7a>A?Y$ZPS zRJgTBH(ty=9kaTX*=QqAtd3$IT{oP$k)Ujn=(b0b)a2QlBd-7KL?*Z1pvw1L)f5bT ziL!W2@l`+{vXf>9_78}QukNf~c8n!@Uepq4yPnBCgfl3fh@CA&RO6>&^gs*p(W1TQ zo~`I$-o^ab(fNyKxJ-3Daf>_HM5T?1#_)b+dEp6?t=*N1>?`J|NLFedKCzpQk)Eg5 z$D+eWUC{7y#%imhqS^2h$=dwe9;+T6L0+Kg)^aPJ1+Bde6Z&0arG?tCYmO+-;r5d7 z1Z8>i9Z!shXvfZ3H=EVb`{*uY;xG_?r+VUhj#GOe^R%BrHKm7{Wb~^Qio4x`xhd&t zneS(312Gr}i6*g6dK`1uQTlaBrQssQox7vQE7<398*IFG9SdJC_&SG6Z&21f}?QUFj>iG~?RQQuK4ev4Pv0=nHb;=^bd3DO`;U0Dx z0JDh2@>-jY>>2`b(^fQ;$Lyx4movTZ>45Uq0@Jo?RHu0~4)fG&v))F~(QDUvm^)?f ze(}QH^{6(HFJY=<)w=q9&vP9;%X^)h^{BBpZZ95Uj|X>?%g6aG`{X#>g)V%-bVY#l zdfB~iva8hHoP)%};oQ*z9A)m#H@fh=o|-okRy@T8=I>Qz+78E>py)B2Ct{dGC#w59 zaxi?3?gFhH!h01*Mm?mBcTk*@_{kkD6a4_yv`OC~{_dS7`^lE(d_j=B;`eCN(fvdp zZIVPPkM6VKeBVO6+jvRK2}k%QF}v1L-QR7?7LAeGyiv;)yYNVU0;}L0Ss%hG|H z5I-@w>XE5D87txzAB01!e98kCi&d%d>7th_7K`co2^}88@`2^dTg$zswVPPx4#KzG ziPyT_t&=B=hTqPwu**C5I`rSF7(iu;hVK<85H}_^ zh!Tq)rh7gc+`B{4A6#T=_SN!7X+`#TuihI^;i2Bx8!!Hdy@dODebC7>!l&WqWNUV; zd1-c>mGAt^ABB!wMXPVE{1V+-612UxR=*NXbX}XqCE0n7JBj?{=hBqt)YgdXnV+pa z>v14qZ}KBo?@EHjRAAsDvw&Rg#L*o;KZ8m3l!d_PVNpuVu%}L%M$VpC?* z705ov;~|$;reEu@5HYPcJJdz6|H|Lh%759d@+}sJ59DtbsMh_jBqCrvJtSJlm^v5! zGqAjfmun!=-iw^O^~%4VnKA`oy+>ZRyuva^Q@@z{rS=_i$$P}V>kTYeN%>G3upQ*d z1KANNAMOk(aDv~-`|`Qse9+s^m%@+O;~Qb`c4iyAP3#=DM)2P+RAmpq&s5_ciQoMY zISIl*QWwdCUyvS@dBbE``%}6-u;0>!uxc>ob^ZoqC zN&6(STSwGS4z4kAu;XHu#Fi#9?slcAUZ@K1x=@(P~E%hEYL4F*JX!@xYM17!DO$C|)67#;Zc=g6C@7<$%Hl0K^I^Y>H%Wpl< z^STnGItJ_`P?!(?QILUJFjl!t&R1G_Mwwr1$giSCMc*)$2_7e9xKl7My0=-wSpmM3 zbwDP)0Qi%!gw=ie6If5tf<+2iE{CydF9D~8xdyu3K34~a&CT86eImxeovP^67SJ%x zn>)>HB7;F|tu&*Rd9zSf_bgK*WQxiz?^(;X$xFDqq~CdWsfO$g(-e;u*Sy7&FQ!;$ z>EQ5`vuNCkYKlS?C*9K=sRFMVp95KUml~JeAf|DxI897;Ht{BRqYsXWygBs3(Cng0 zrePNT#0oiy`UTt_cLF4>Qv4rPv`^to$nKir)#>(N%f9Jai|7`>0T)1X^U+??)5qtt z!{n2#(bbx|ryVfl6+yI|&-B8<juUOH9QjaMYvbKgsj;g}Plb)als9O?$g(YsVF^jjd(_OYpowmmAlWlO?} zt5R&~31^mW;;M?;%o;=7kejj_bJ;Nr{*p3xlAG>SMOGfdbEtTpmF@WW8<{um4Y<-t zCMViw7y|E6xV1-aJu+z;xXhR@a*nO}9vMoH)V!5=*=GcV+txEyXg3DrlC5-AvUdu+ zDrAy$GYJ{QEn1OQqJTSQ{&@N2b`QzyCqJ;uGmfHOJVq<4+j|t;Wg`tK7FRdpSwsc& zMcZzUEOw0Yee$XVvyj%-e7$n(H-UN`ex(jG!z!}@4y~uXgiSuaeiy6Tb168x*FQ~; zGF-HO^1cApuOWQKqR#=w+jc`wo3BS%6+3J&7rm+LKOtQ^bpf zp+;vb{I+HZh*_UWNO74m(Y%FcUC_)NLtY@K5%j)}68ar!Jl zMUQN2J_QqG;5<~#U{jejB6VrNB_7{Cx)DA^pd^tREEuV^UoEqFKR?S${?4iYsAt?~ z+H1p}Wfp}j{Z~hQXz*9>O`cUP2`>Kwoo11*>68+cS`@gutllruOPDE$whd2dRt}PK z7T(?u-Dg~YDGq%(enyMJ^C?>%L_gg; zH&Rrc<9AH*IYZ`L5`CyA_QQ_TD~Dd{B8cn?-;5ySG*s`aDKE>c@5)TPmzmrPY2i(_ zzZ}7r_;Xda%>GKKBPPvJa$T$RMxV>F&_uMfAV;+Qo&LMYd(smEZG1}D`|G>k`P{=( zjt0L>?hX%VhO@Z1pp3xUur5uRwojLGG;IeD&a}sg!|H4k_qr75mFC1K`J2->5a z_B=IJI``X|L*{803XWmZ=%^VIxED=tqK?4s*S;Mi753T^sE_iUh}(zPYyjN#)OPL{;yn=mjNhDgAEqC!2DZpDR^5=3|?2rlPux#|ipw=FBV(%x8U4 zHh!T^B2!t@=%?^UyJ8f`-?kjWqS-CG(n1CKug5Z=+j^iET7A_)E4Z$|*drG&w1pC% z@n2>u#v~V|6IC`7`=qy-^lrRTVSKEz8NYG6anp`1NPC`h|B{l&4SqhM_V9c0LqlSW zuZFz#i68q3JBjOH_jI`(GzV#2OCEkjS2|Y^op)$sG%PR$CV-2D1u%n!{-9qRM|s_MdeybYoL9;V$Bgu(d)Mfw7|xi2iz(OHIDMp#4N zhX*!(Dp)gJKca%+P)Ui3O{!=KHS0){bi!Ea(etCip^@sl$ugb~|BcI%OTeJ%amDjQ zB3@wKx8^;s1#XoHhE)yr^iOG(Ben7V+<_cjYI2>(5WsrRxk^uqPcwbV5otLIed3rh z6*|4if@&LB91UlFpnyqP6Gg|5C64Ykd|=`!*b>Dv<6XW5uCZ`pQXo3}S9+jX79pLyc8(=MoT zn+{WpByzLP4qe!XPLKD47(I46>{0~Lf$sU%iN#IYuO4EH(VGSt+#;KgA7UiB5&=Eb zc3?pHzB+r8C!Nr=ySpmr)zz(#V|%&(P#UHbJ9|=iA6uz1l~d8fP3JOwX4x1Qi|n1) zOYSTOn6d4g><^IM(ECC0#!@&U)g!=(^1g!&qS1J5-Kaa%-KZc2go-LK4MCzZkCsL56}HBdB}N77K~IG_6h{`!mcqat)6qdTcu#-^b5V&t*v0z z;8=AJUFPlFOXVVK_~&|oQ>UmqzY3BaFRWTWqm)h8InD3^|6^}2-tjIJt>?#{a7WSp zj0v_Je6!$&%EjAX?tlJbuDbTZ3CMjoIl@G1x68*>)@a;?U7Qefim7D*(i3INYNMWf zgS(DOy^NKzmZFOEVHh{=2z;L>-Sj{*F>j`}0z(xOX6~lccv*S)TPfL;$jG8*n%g=~ z3nRdlB16Dpg-Vw;ly2@#mvJiusq+wSg!1lWy?MvO00s+OYq51YinHa{zy9CdWhS@p8#n-*o>da$rVr}wjbsI152-Mjy z(@0gy>IW2K{ALc8htKw7wg;Z+k--Du-XvtKzqba_Q_r_Ma}s%r7nt43XLz6Y=~oE3 zRw~Ws_OxOy;ne)|=udpzToil67;M z2j8X^D`lRDg{U^=hL$95B})*FRkl{drc^AgUUX|o+BqZIWq)2BvpDW!WGTqe241d? zO`ZD|!H;A&cqMR?hHTJLDvE|WhGDpRU2iBO$+1GVe%pM{VaVXSUFuMFfovXDQGg(y zDH_3-{8Kr6?os17@md#=ZH~CQC_KUa4;`e!F3E%nIF}`!p2j)tyYbdMGcv?xkb->oRRJpg5JCx|sJO159A)=%9S~w4O7*ZF;)fA(L+LoL{ZYqO;X#_a^J-h5 z2&T0pPC+3;YFH&2&fhP)ByUJjam7SD=p%}8q0iFw!=HV3sLBkg{H!=PzdxO2elO~% zwUnq#QK9mn%J1XHU?0l++DixXr&gU0u@S&XoP*pW5BL{VR-%5QQRu_TX2lS?!2OZ4zp z#miQh78vRmGELR_Tv-;f`qHj*xzJ>?DZ;><4)KG(SFHJjNsfYKor65i!D{Qrm6d+k z$xT$%de*MM&~#bYQoov4l@IFV)BMCW*NefE?gBfETwa&`lr!_&h4*7<@qOtMram_^==2>&Rq`x<*_tsoklX~Y(suj#d3{E}ejMQuO1j5xx($}8| zhn_IC%33AWbt}IQR4t-P?dS;SY+1dJ&%!Y|ixTM{)Tf9&VrVoymv=>>eW6X0scwc% z+2g)?pPm$rv6o%>G4{X42%5sD{q-k&Z|+HI4#+a3_pIJpY@GJM5Qnup)`lvFA~`q- zKi|6B$o~8kUW6Bak(K_|uKe4=Z8PiIi}nHETth-8q0Y54t6bAOzb_gNPB|s57md>0 z#l`%aV?~FFv6s8{6%Es6QJL!N##y^Isd0Hfx7XTrDia@K-Y&=|W)7+k%$GUz>rcmA zlT`Jh3Aez-;PmqKmEWyUhwHOpLD+;}J>dT3*4`fcrlg0Zf2pv77KeZT)nI^ET;!76 zTAM;auP88L?X|EvNIo=-ua6N_i4OfyC5{8tJ74|@K~XqEO76pPRO*d~7!X8GDp1KU z`P-e`?ZZ*HQh0vt_rdfQLelI)I=m<@LEqa<+9bK+*1dhlW+e}Jw=;_o6}JOe-9k=# zYvwn-=c8xLn4{_-%X)j5qopZKQznlDT`n^A>e?JwofVAG4k7ZWIV1SGVBM&#f1nut zXTs%i)Q3a3C3mW`kP7%Fs{+)eFu$9%1h&HlG!lJ?!8l^924e*cD10nIG`+}izAuVH z(D!e>eU{TC;v3H2iPLE961$1Fic>sl4d8p+2bxI(7T$;5BPj*Z>wl=W z|C9f5Jcaxa^83Wv4i{M9Th>m&N-pTfT5N#5SPyG*)I-%YmE03@H>%`>*HsYD>r8hS zJ6HdOl$^vL)GX>*I*+VHl8eh>nYl+^lo--slweCvoqS+j%H3loaFZ|5<)sf3yZT;7 zcg9tG5l8cm);kaOfLR0JY$9giw8!?rm0HSQ)T-~g1pr%XHxKzb|i8_=obvN$_u!+P?R$bjtpv!=pZ(pOKGK083-LYgAFV!K4@ zo$`4)Ig+>$*-K|5A$2wABME?f(Ym1N3QCk^pBZ<{yBoM2`=az0v|ClGmeIn(v;@R1A%XeLWnNDiS zuj_3$(a;Ofur*91b79EX^T*LMhA@yRgoED-!b3m$h~RD{%5B{t+SkaDo z^!L}7D9==fE?%EK?88wnRRo{pm%crCpJzgsjA);0ff$%2h=~`1Yj0=E&B?Qn1&r-)dIHg4CZm_AK6LQWW0)V&yIyBmiVVv`T zQai?9g)vt#(1vjw({fC6ATV z69~%P@wdt7u0DJUqS&2?#Z?shHPqj!?*CMf`j0M;cPEP6M|SYlCFIISolsyI|5NI$ zK3Ft=0{3HiKI?%Sf=izd{c>c5YDg2Pr}LnPPz*2VfsuYoXe`O!0Vshx$MlWn)<~Df zeBX5TlS}q8aWF*xmAMfoUVooMWsdV&=~{(p*y;AKh_^*!ICpC%iSn8M`9}Veko~_u z_uYGsnd(A5y*mxRtj@z5O~cj$UM!XfG)06xWUk%iPh$c3piH4v>NuaFmZ|m25eYbq zR*L7Bt6^NckymRnl#|QG zoC_*2K{sV@DU7XI(QjJP8dRHT~E zC`C%)E*oh-SpM;q&%Bd`?sURoBr`(DFoYE?r}!ZBvjLa}H}Fxp#a=xqDThxr*yxZq zo@lJaWZuf)D(|!$`MkM$1qJ#lVNhN53JlFz*^!`?p*k*GWn0SCxtYH{+q^3;JhfF$ zc(3cMKjeZu@`}wL6tlyXl}J7(C(X2kO_oGqa0}>$b?>*8_Hze+XDw+Y!6bfG`ShO; z_(8D1n}=57c@#h2~v(5Lh%Ioo2wm#BpmPydOw|59s(TSw2e7 zIbJ5EmcVXL8`H4AXPvt`bh}?*B1G2m4HimNvp=EG;*@$ztVn1%yIQ`$wum9VG33MJakCJ-Y)PW5j;5lmw&CJ=0laSFHLczFO zLS5lrf62Hj?Q1NYW6a1qgMeHRaqn9wTa`;!N_<%k`LqaJuX;wRo}5@105H`O3V_3t z`saV=VBRL#zbINqh@?3(lGpN-S3f#qW>9d?AqgIDFD&S?l-9-w2XcQevf4F!{~@T( zpIc6dQd!1NEKxet=X^kovOF0$&8CYK?j>6EsK~ ze=($vj@3Pg5@uVvT4`PLM}Ca(YGm~d`07R$<1}U{TS!UwnB$o0UeoOpgoF|-CU#ew z9S5!og^jjz{i0MMK7;wj&3OoEJ4r6u9PD=dj)J%#q%sErGuZmUP0B;aL@$_QPDM#Q zl1rF6e&k<|WB$WxLX3~J0p)#QUxt)r{3L=^p=zGd*hzBys!oDdNpK$Sz~$Tk2@ga& z4XHWRD%@Qx=q{e12c4sZwmc&lcIXsa7Aa61XS}yoIms_JcxgAkkMP(s+Uq!lG_(p{ zw#S%))Wv!|!0o2U(Q0VfRW0>xFVy6vb9r0WzlG3yBc}B&H^z?8j_W1M(RZvu($au7 z(hATWt^-O|1cX+%09i8cP)*G5eEvZfNG9wP&Qkv}MT>iSm}MjvJKK#Yl=MP-ZV4`W zNcjW$*MpV_gH0<_s}S)p;sen{+FQ!ij&FV#Ys7haP_$4`REw`>eR?QK(GvVu@*;nV zN)fF-bL7GUwRoRi&mAkSc(<9#JxTKMpFBo3vItyI|Mrq2qEraYwITdwJMVcBQl;~e zd{%jg*c&vDsvD1c41Q-V@=`NS=i(HP>a&HxeZ7tx{RpiKv*JiVWO+e?D}>E}!6A63 zZcxDMC?xn8Q=fGKRfm400z)K=0WL_rxWHh<_4Km`A!2>ers&bwzS@Tebzl9P&GCD~ zH=ZFy8zSzh@n=jp)_XRazjW+aJ_K>*_{Vi9il&)vBJv^)NXyun&iV?FvTD9Uy`YyU zO~Y>m8~wwU0vG;u9R9b0_TMjN5+s?(&)4dHiQEo_FcdXQN17^oDeS$^KcN)K!FUn7 zz*))2q9f^bIq17|=Nd>sd4fYq6{L3WgF3#EM?Ip?$@dOfL|j{z`}gB!{b5vfEaZS? zP(gWef$QjrhLpz(v7=OXCoJ|?W1otJwRM~uwN}s6>gvwM*wBPfpXp%z3>9eMFE2*; zlQh>tlmD*he#5_lIHCB@ztrgZOH1ej38L4IICpJ;?p$w~%jy7#k}lZlU&rg%zvcx> z4A3M^5aGvifSr)sEfH=M=Wuu~&mScoXN-Qlrn@-g`5fsysW9*fD~>8RBz@l7nH*ev zO~*+-+9DWWLVkAyoF)p9Y;Y&~;+6v>_#8xtt_AXfdlC=&KTEcMKezwmUwP;L0yrKa z0Ebymj%?;m&u({$&NP-f<5yUUGz_~8tw%;)|$S>`3 zipCp@smV`MwV|G zKMH+14?O65FveyvlX|sctUdDTS`&4UR#p_s>T>?K*ZJj=-I#V#5Zln8yJ=@gRY9L% zLpJ#BHQkAYY7qM|14?@Y(*7QvH2A#*2DMzA`{+p%v%kJL9`+mfed(yOjV^Q_2m(aN&-)|g=?9Na!T5insBH~Z|_n4y%1?LNb`#V-9 z8l`H^)s$w%)foib{Dv@)mrQ@JM<-Ja$;5f_@Kmhh;vV7sv!jijXEZ7QD%)I8Kbs>> zpy0p;B8D6QvC$%|UF=*>+p(MDRKHMJ=%Rp6S5ii?!eQhMHAo*!d5tT9s%%VzH4WrC zkBI>D!T{>=;-hqY??`;BJ&xM+*y>P?Y#CCCsWh^wYEAk)XH&}nk@Hc+t{MXQaYAl0 zU;n2E-x0U!H1%xj(F&5=>?$ciE1vlfEyuaz!jGc=fGQ`^Z5NJQ5irTsDNV~5(r96r zvIJe0^~NU5rDOvkVV3wYZeXAKc&M6OoJrq%F7b!<)(UUt!>^S-d&Bz1sC9PLG(&C6 zT;Ei^!-V2Kb9Tfjo8K*EL6LrJ$I}@Axog5{f24-YShxs~qA%oF_VQ@wJn(jNhm?Q- zOC2``y@loQ{x@%j(WlQ)1YEo^3lvsI{sbPdrjyPMob*3u& zxf$pmQ)AV11hAe@znTg>S+(%>}@^D%;4YYPVFsw7=Ufod)-fdrLb`l^rgs~_DQc9MTbzmK>sHza^JF3 zKF|*OIn*9=Ff==T^jW8)jNSKyTdpU$^(=wX_z^)F+B}^#4o0FEU(8d#`uKp=m*X

Fe#)fr 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%0DVf{(n}Xsm2N|E=M7K)@XnRTi4et%oR*-gna}7Fm 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%0AXnLz(uy@^%zDV4QPEX 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

5E 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ΝEjTN0lOnoa09yg0lT#QA+wx5O@^dA);s(Hb6@Wu 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

ID=Tz_6Tm9XrDuAk3GHdlSGe? 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 z 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

) z{68;h1*H0nv8BA*&qSpHda^g#pH4X0=VxpTdTAZLb%$mpf$gyrV#uiZ)r|;fm{zXQW?> zG*%qRpNcASi3UmZVTg8`e8y+v&12@{xbXCtLKvm(ONs4AhoVm|IoEJQzeeocyEK=e z+YM>|^=KkI#o)~pM{yLly&>*vri;-lbBug+k8YG1seIP4vn7mQ{OVtNiXNw_aWDHZ zntQVJ(DDen*x8H$Lbiv8i%YI(9=hZ`&30R!yVdD9R7;b+ykKV1z~{7(=w`B#rRD0t zVAi)z>asL=aH8XEJMqJ(N)i$h1?L0WM}k^{`R&aIt9-8?KYo0@b+I$cVRp#Y7k zenGeo)ZDI5f-=P0|L|){Nwt4d z-#VjN2R+FV#$KnCmV|(o^ys;-pPHaY(2;#>eeRvxuRSV@BDJv$aA3Vj2M!$IbDVnx zbm?~WZJx)3T~|Zrfplg1v9MaCt{4@u?i>M2If=SNj>S!nBJXS3mb&2rPPU!;5e~1t zRx~xqiJc`5?W4KC*0exD9GKZJs-8r0dl$1y#6%#0YD|nrkxnJlHQgW}rcyxT5qwOt zOO$zjiA5u4npd6QF73j7=>rz!wE15DwYgFg2gIqnCUSmbBQ?p=a{;ne5fA@aBp@x7MDSsA)8x?OH4sO3^^q!PJw9Tf!Waow>w9+l;Qmk*DqY(5hUO5|XNzh0si=WytHY|=x~~NRkt2d4pdfHCP}(F^;DAMlq;#nu-3<~4#Q-G*6cCV39|*~dLL)H2SpnjvI;j>sWNVJGDsAH^W}ICv_5~R&*Hmd3 z1JOgmuV24z58fC^kIwP+_02F7)f{~9?zQfAvm;443L?20%m9(GvdVIN?2hZUO@j$D zqe*uXzq-JQ9>d*8@PqC>5o(0szo`W^Q2Cyi@s^krb=Z4;yr+4W zrcFC;s}!pgY?#FB%jpk`>NjFpVZ^YICwhumZ9;hV?Ah-0`%jTENiXSn4S=EnW3@AT zW?*)wO+O9hbD~muB&Nl1prp7bRr;M94By>VO-M|p%}du!y6+$-`tNOJuy#oni-Tbr@+oV_EWW&5zCPU#^LE zFs#X&8iJ5qu+uS9%azX zEf$kgD71#@cU+r4fQHxv5%{R^k8hvUDZ_}r!Q3p_oa}6iky;q#E`9rM5rEF5X5Y5oNr^0{4I5=qZBfx@7=hw%9_-qNFgK^q;GOUCL-g

I-pX=pRkuEPMDpAP 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

G%r8a;={Mx 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�?= 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 z zhYZJ=qLJ4gy|c`Oq>0@nPI>fpfm`vbzO!N7l#g|nRF8cCF{kkdEd4O5ME`OLsE%>? zN7*%UZy?Da(j7wNR1Z(GOGHz96FZ>wO9dy&B(Wz)konTf`k%>N zKyux+0HDfd7#B!^7Wf1R7%%s{0++i5y^vfj6RbBSxccaaZA{$jK3ivA^hHH(j~jx3 zLeit*wq8lUy_#=!TciKBJR4bk?o1X7uWzGq>3zDsytLja zHSDGpaL@X@L-1S&>K=zxv!>Bs5O^6^n0XstnQb~9PDP=2 z&3zj2T7$7UBfwr(0@XoT2X5x@%kaak4Shh3jSD zIx0z7$+9}}bCE6B1zqYgGZ|Tq$dkn!fBec}{aC9IsbJ!f{Tppr7@V z7M@Dx{8lk#U)pvlOIjN3C@T;4I^8oFA+^~xU$mpc{rBu)XMUHr|L(XGK1i6K{`g%8 zpY0}|ofD`R@1weP1SXX(S`N@-i9`<3=zsG#zMa|Y|NH@{ptO)iavCY1j&Ftc_N8NDbTvL^a{=fKOO0j@ zVE$?PO_XnY2~_0qE*rPa`%`gfPruF4@38@VIopkH=icXYZ}HF!%$7_mc>DGrBGhD# zi#CVSen7&*kCuNwTD%5h&m@8u!m1*3VhzZBm(%%@F`xlNsM+KgX@d3j)qV9~qdHSO{HvXg}S&38IZtlgt$P0SyB6 zI&zl^EInc*Ls+mm9iChGK)Z6Bhhi2FeWQQQsjD<(hN@uR<6EEH>)dOVqMtW)ti7jC07{r~)U2IS=QQ(2sLU)x2GLlWSyb zq0n|}du#+ooG9yF@V2_WDcYk|MwepotowTRekbDYDYjxa^XLh;jar@U^ZYXNu=nuo zp1yx$)SaE668WSJn)8w+ zRolE7C<+qJmX*mx9#tW-Pr8t97Ou!*mp_|##V(<3=HaZ#eJB1{evzS@3Nczm4EY0( zUNy`f}OEVMo2EXAC>EZvA(mqm5|$6x0+yfA5*2RB7qW zrFZNPoiB1x;2%AfGMAdgXKFXyW4c4R%=hM~k z){Z~-=IKgSU!gnX>$64WI67v_etvzLqZ{|WZ_Py&qMMYt!YS$^mNkr?U%lJZU0LYT zWK%BRus}$p>qowA<*lpJXYcHs6+srKu9$sgL;T0p;x0H~;0!h^6n2SU7~8 zK2jvJcPYQUX;i^Pse0@^aB#NYL8`K`!Pfg;a;~rB0jR}nRvZi*I8@1S0DB z@n0}D<4yCYMF5D~9-3%@3@qXNVT)jHi_PxsY3nhfJ;U8lPm|aPj|&m*Jd{E)yQ2rqX|mCbQrdFk$|ol zDh-W`NNT5gdg^R%o?)*J7_z$RxB)J2^u-1KSYMr}u>DLoMb3&TQ99A3PQHT#BHiip zCTE@B6B4cF7_sTLiQbr5G2~`-Aof_kw7Xg@BwINUWXI@(cs}9A^PNqr)hnp74f_Nv zU9Gz6M2&)-5`c2eyvWAMje7Ao^aT4GU#7kM56vC6b7?6**%J=nI9I8LjM!T!kv)-t z7k5F#i-c-8KiatDvuQLR4W1Dd(;+G%i)7V|TkA%C)qApfn0(vqJGyAIo>bosHo7nH zIKo|PDponAVaJ~QnYoGnYJ~rAr}OEwgk-<^>r4hD6~?<}BzCwuzK^gSvV{(`su zb7IL%hJA%T#F(gG?MKmFaPKXcx!Vhupg&Y#K$q9F+mb3EV3h~=0P(rF>hmbVz(0je zrxa3N)8>4up=Cg#KSw?PW`S7Cy}srvDTU~)S5{+E~gn^cb%)SDR$rFz;FGlfTt)TO6Q3}TbB<#4-Epk?DUj-9&)*y z{(kT%zmpSz+W8BDW5U3`s;yDav)9-CLy68U^?0ELG|`>4{&|>!uCq^ViY})tq8yum ze^DUJg%C8XMMkX$^zpNYhqddzs7UF!(H5S$Cu>IE=&6JtU(LY!9~Pwtr9G7mbQr5j zLw}xW*TorJZ=A$YKqDMncM&HSmYZ*$f~3Mwe;L|c2eDhBWK(6JstNmO(5jlCk(XLw z%Vp8mOPYmC6_+|4efSw$t>?%D*i{9=KIrvCZCBO_KFo%q&0|pheM5;e7>`9pZO=eI`DKhHSZ!QAx)h{+{7Tpe>$$#^ zzKb-&#~ulSx6gLv#?qJP=pr{01u11nq#VDFTe>(ph=< zI!!D{qt!MpA})Xxo)t4$TQC!}G4d701iF-Jd4BCsh6%ii9{mA7{ak6op-et3yMWH7 zndk}1Ph2YZyN>4_Fx#15?SuK)=>!vVUl-fEme%kvv~e)1<7eiWmEun>3`l^5Lk%lsTY`E=`8TUe$=l#3p#C#vyuX zAn>2dHthz$MwcDJ`CA*}Ht!vuOHxToMT%%-4w!Vw0?xGDrJkC)zDnMDa){RkwsAV4 z__C?@B(B;Wc3(cT?Lbi~i$N>aMB zs$1-j+a=eRE(oBVqx*ye*wohsRzFxDZ*Par{>E93>}5|Lj#Y=F+DxHkprraD?R*5% za6J7)n1`^%Z%pIBu0M&rKdx$D*%)Dw<#%dn00s-T+;qzrrX*aO_-aDy+-t8jtE{bA zzU^If*59iUqc!SBu-D#K(!N+GQD^tOn^k?UsY%t~Ws9?FC9|(rBJ%8(oP6)!UuoWd zG(GxEm+jrLhLA@j^-%}rR9tmJic}8Wq{?;In%jJOX}DAhJsq0v{Od9P#Vz@#6h!SUv7DH-TIbD_lH>#7+l7+!f;hQ{WQIWeF8pMqfCiZ zULr|vq9+R32H%94eQvX*TjnruRgPnJN<~U)`f_VH5AVL1aUa|2?IMSUVC&Q4mz(}_&n7%QH8fS7@!$8)1=6qt>-zr2w?Q3CSn zJGuA9WRMb+1==GREN7tQ{EOTJDLNZn<~bX;mB0iU0X;X$7s0mIXsTWAxl?jz*ufQT zmmFx;T5p{$n45`3AFf`N*jey*%RiqxQ;-(pKH6DipGMl`2AIU1EqkQCL#%ygTG+|^ zy*9;>#o;sVg;BZ{Iz*=98;p5^+Z4SI|Ut-Pl^YXn%PrpA}r1~)AwI3f#s?$;xm5w3M z;Sn2k7ycPJDU$G1tFQFb-+S5tJg7)+w?V&3omfb7Hm+rrJztySJ#sgtRRIZo^Z4H6 z=cpH4jpMf32DGbc?K{-qP`|cS;W8rRiVpKU z^0{1zqb))|YZP32kxV>P?XLm>1vd?SRxi>QhdL1U-BhTC`2ozx?^!eP1K$_d$vj4r z=FZW~86hI~VwfBQo>yL?a*8@%PgKbzFqomA{0b8grXBK7^)+{z*V_%qA9Db;j;-@G z5U6W&pWUX|Z`AXtplj4$wBumBw<`|m8WYgh^$fBH_jwSolUe&m70`N(fcH@gB-lug z#01V=*Z#YogU_kMg@vXd3>QdD-ooB91Wyqmyv3)N8Z4DbYD0i(Pn+H!tbetD=CE($ zW6(EUx0|&*;4pE;yCUtblNpu4CrItG^we@L;0iw(NA!~9={Baj7)0*^#w2kfx~DKJ zqR)dV1=P{bnFUs;U$;xHIK-yQtzCQ4-fj|f9H#tTY-W4AxLYrG;pqK3C|kdCRIqoB zFw5V1Q1rN^3^)#~{V8?1RHkB^b7a%JTRv}uzeAEWNy0hC#M{Z?xPFPU=!i&{NlT4a zR)^021U}H60sV9BmERX2CHhcKic%6^ce>t{)ZCo)l55+kD(a#4QFa;cfd0k*kz?)a z%{wy|J-I2-=d*U@xlZCr56^Yf+z3C2RV8}ioT-=)xZJLhp?&1n_~Cy8^?#ke!ij`% z!e-h`sArzvOGK3(<8SEzUUN!0#!3iU=qd-%$mN@tC$k@@wcHzP_yTSX+xhb)f@;v= zqBmHhd}j$>ott|;-R$Lf2VMbXTL{X|p9lq)G0Z|l+rf#t)7Kr4LC&tOh?K+5w3Ky* zjsAR-%uzNi5{YuL9-yQUX+>#oJ!ybpb7>j|S>(wpa;9QPIkgT@W^;#Dsj~wT%J_ia zvr>1daU38)MNHVCCFt&NPOSf?(1R9G9ORJ;FpTrrqmn(DznJ}4Y2Ly_-hr6{v&NC^ z`jD?&v0wD|2EZ;~W*ne2y?ch{p!rIV-L1{Q$nWQHYlqG;|443&*-8dC&={iEG>CO> zW~2OQfDOt`p-YPSWSGm1u?<19Q*EP(Pn@OViQbAZ)fonwWgFCGZ=p-S8I*fZN6K_8 z{irlTiY+4}vd#`tG}B28j9OULfJrC+*7h9FLEPkdq_?~_lI#ytnIja^&(Dh>UE8@d zd|kg2+%iD1lkBOMq@T>Y^XUji#||6h>S5z{a^q>boD^#pJ8SVSpXE1UX}j3a_G?rA z6h&n2DOtV2(Dtg5rQ31NWIFEUiP@@H%;YX-d(VCMbdT z!u{@7QXzpvucVzm@B4A?-a6ZqtaeYuJ_fLq>)W&*mmdLcpK^o+iJ=Oj-`Z|+G+1H2 zFhCJWG8gGJXI8kpHU5ldU!8e$+oaFO?-4x1hx*zg@K_%N=0o>+!u2IIWJ#Bz(up#~ z98HA?QEtsru4&Kmr=mlv{oVObCyqtu4V73|m!2{S!?izNV=YVbp8isyxNuUp<4tDt zfg^awIZPhf{UPxDo1X&kP_xxIc~;xW6J=bLn-#()Ez>n0Ec@HvX-EB5xd0Z15uSfW2O zKdMfPSn+-nt(=bK$QA5>fuC~x2c85QPE@XAdGuyI4W3>2Xc~02S;cg&2I)Hil9zSi zmzXS>9uc5v*evw|+n<_4(&8o@U6XEOPpaaRe$BU z9t9iNF}~6-IDfOBglhU*kM3L$5l8WPOOfpNKvBEfKPpZ=EP4_}H9s+xUitz)5KF|# zXV?k3|H++0b@{Sp(K_M8K6k!~wRrX381fK$09gt?^kr7JKIf**p@+Y%b)Cv-tY4hY zQOq^%in+fqxO3T{davmQx|iGXeXs~97nQg`tHlH8`P`PV{-usoz2km*Z3{!D^!=Ve z*NQu}OB~}XdktLpI#0fs2hv*{?YlOljzL{zMwF}>`$p~>@Aq-a}U(%t%Imwd4Z z*Jhb?Y4+yZU7<}-UYV~(&DFK>WT8dDJlVKm>sLO8?>~M{8~7+ z;T_8ERNr5ePF4R>Py^j|9bG&Gvx8bi%CmQl7g#=j@NtAw7ZN1E|D)T0GE_k3_u?$Z zu$a9F9-C36R=JnvxUXiucz1d-UA{YU*D|_Bj8!=~fGA`cCypt}D0C+(h>^tf&7S*x z&ax05qT4Q{b6FPfd9(1f-YBvuH$`(#p62~kksd`}hY|Zo6Bs$M9vHC}88q_woFDa^ z>ty8v$nMQTx6ShmR88w%f_ShLSouXD!=1=c+joYV=pNIB&6&~Vp1$UH+}cz3r!P$8 z_QYNFiHo?r)Gpc6cpo4@Ad}dGEWT_9jOxAv1@PgNOy-6hC=UwcWD5fJ6$lsXTYamk zTdMi^HNqbQWKb450)a%kwabELbNp2ABHA;bHnv_98xV2DoT`wvj6Gnj2aW*kS`W+T z#tOc@pC1=3YJ@CnD7`m1($MaMb~Q3Q0|b>}51|qCI$8ZBX<}{Y?X3woC05sRXItHJ z={c_m5vbyTdb=9EV5fPq9an2|uiBrUgDR1Q$|C_8wMNgc#Uvt{UL86hy)0;`C`poD z$(>eEsqV5FC$rW_MBA{0lZn!1vXj+u)5=^~?HRSZW&f!CZE*S1QeS47hj9_lYi+=g>Ti0Hn{#C4GX1BF4MSS0r)8IAe2$33 z*jr3&&Bcdb8gXqTSMzZwTii;l(LQ&Bf)q77MYu*A-kU*eRPKJ?P<}C&k;1=&X|6l& zE-Vn?ZK8Rc#&+5%bwo|#znwY4nFl{`5?%z|ei)Mf`C{RA)bR%lSuX=GESx=Gc_vHs z*f5~EAn$&)GNbjE7Jy@|*G`qjiJ=lfG;6abm*m|SjDl;LJL*M1Af#e(h}5<( z88-xJ_HbIuvHB<>(|Onde$5JT0Gen}nucj*1bl+?U7uT`?IQy7LC32$qZEji??5Aw zSBA>xfVDdJv*+r2-g!z6E57>DSYgecJTf{Q(X&AL=sa{-5!t&Y4#<>DVEQsGcMs~|Dzu= zMcC&=aiktkH!4*3pgd1E#bAN66zkL4iOn|IXgmk|=4xY*uOH>nRf*CKz;<^Ll#AWniE zY@YqNI#cT`Cy_lR9l8lUC_;qdtX6mh^Q#8Lvf;B8`vn%bdnT@AU)nR2oDD=vgci|O zaPMx^y#`){^$)$SklU;e7@81&J>L`DqdaE!Js_qhKy!THt;D@Kbjz+axv6y(EPfCocH9t?|6j@#K!U!hzckYGZ8~Y{v;)1t&?fNJ z%qHK5=jzJF&Heyf-IdA+Dxh!hSt(iM*{ctlyhf1>AKCce2%?)6aVH_t~022dFt>F*aD-ZC5`|mvPmK0acDiOVzBMj_D z$yE70)4_&Ux-N2GyI8iiPb`c&S6LQmRPm1QD>uu-6%_mKLlNsmU}J?VKxDqwV;N3gKxN!37rGGI?ThR#Vx&1Do(Pfee~XX%-%SMP@^yjRcKh-17=Ajr z8()7(29e6dyKM_`OopvdP#rsrsDI3j(#+kc7=C}{o^*O6Seq<_5 z==Fvd5%<#KJ8+2N?(r)Q^55OI7o_I<`F97iV84EJFBei*`oge6_OzmlE(a8Qj!LA3Y?+dd5n%=SZq z3j@Up1I5-ohCzZ~X$6W;ehwW$zD7p~lFd3`d^xVebjWj*{XpY7lm5VnJH=U4tLu4ui3S!ty z>%P1cwbvR6P)gDBd%^u4%!67mza;nkDbI(Lguj2({u2G~{}89asBZm?Z-V9@FT@lH z140NQL5tso8v!9vf?u_f@Bk=MKr`_>2VwfWMQ=_{^zq{6svmppQoTJolx55}83u22 z+jgP^pnA^)-&SoA;%S)6`IZoj(8Cb&ECCs_35bB@n&Y1bD!(e;9N#(sV5@Jlfc*3c z7z~*trzA>(`wY*)Y5Cy}ZHTFlnOYaaS(O;|njJ4yv8!?F-Qd~R`@unxz=-B?UUITu zx%nl+mROGS)^X!TvQSQVvyNn?rM$`t&8ob~y}7*c2)5+=t5LvySv=qjp_|}z`@Ug% zXKO6MM~f5x#2Dev#k6Hsywci#&HnEj7(w+J0@2WBO9vWb#`PdNGoY&;V}LyOCQTua zd$e+H;#v!za$8&{9;M`+Sn`1)wJdE-B$5@oarey+SXX_7j2pDHp&}@BTGT}}7V;Do z$~4=jK;o8eKtf3Xbii11?zGXl0etoyLc#gFUsc_pO>py#T?*&)H`uaWh%b2Sg8wq4 z*%KP-y39Es0;$c+bjIPQ3`FoDWB|ppp7ZZ#EldH{fKmqz8u5m{g%EfV<=DaMWJ!61 zh7|@-(lrasKCU$UFm8>>kdI)#4#)fwwC;Wp}qX533CDa8=xW0BR+SA}zyfDP6ZLnKgxy~X{6 zIqxu9S-DyirlXgy(|3P|-(?O>DyqZSQ5J^+d`AuAh!kN7th~O1V zHAE+P^gV%=6koOXEql4Y8?cnBz0+Xi>@XSLIo;viRSsm9*=`kuZx_w6-W?xoo1Rh} zH7y3t{xyW%4ou`5fZ;o#oXu(NTX^@xx{=oYbvox{;4y0Q2i(bkVWets@6$ z9-Mdk?f~ekjDX{u;v2ik9hVj_dh5~|=0eMXPteAaPD`Q8`|p3d-Q$a?SLcm;!K}&jOJ!JfcF-NIc`uCpu~iRFO4GE8ijI3>aTF z;Ie@s?_{Z5UBZ8jLZ3w@x?9YjRsKQOBL>RcnQ}$Ib3TIWeFC(GX2Hze&tSeuE8Kgi zd^52-Q)?RC243$=+c#fp@b*ciI&L@X?Tt~x#qX%80R&RFG??;IBV&>8uG03Mgn3w1 zNO0*7nkEFp!mJhpLWH1|dBIYIs0_}W))dWM=%K;}i>oRQzCq-v4H)+w;PLr-WFzx? zi1&%Zpl!p}h6)7QaWBg$`3%{p5);CJ{hp2_F7Chu-6|ox%hHs87Y|q}qLNv;bi3Ob zx)oGso_vL?)(qvb9lh2n&{;>>j3@kF?};g}eD-SO99!ZbkM?1Kz&Gf2@t){PqM0Mk3{*f_x!E8N{*aC#M1> z%g$R3_FgR-g%M7C^*TWm0auRmsxg;#i6R(2FBQLV|K2qG1EBAlWsaGPT9=$6((sZI z?nFgTwmgxRAV@Zkl`aZ6N|Lifd0@J)^dd}3ph2A6teE=y1Wu?_>$HhyYE9*n8p9wJ zikwwb8K@}0%}zN)|FqP>G$nR{oy+m?XYOj?gkx*TAR-95B)19WZ#awiq`Rzx8~G@O|EGag%hoSSoys!67=Q>qy*zPbMVie{_K_Z688)r=Z5 zsflJTaMC+gn6F>9HtP&My1j{RAQ3cqEpgHy9eE)pJD9z5$E6_EOp~Xj1xC0TLid8I z`aZ(7=A>!+n#MqU42A4}hzz@yz??$rv;GfW3O&0K8aI+9N#OqNc^nIXp)xpEWf3_F zc2+6O6Cx!~zz`}^J`aCaaCk(ENDwwU;MYbWvp>TgQhILU(Am#C@%&fY<&Wk0y-@%2 zGvONi;L;GDSH6#aWdv}eT}Ax>pt|68GX==F3_lhD)(xNg3Cc7sHYHKex4!&^$`q8a zGt$Ni5=hRydMcA^G1{t8s8yfmIDZq_UKDYZm3^zAv?B@V8;pr=?{HFJG|L<V6VHsC4^=1IPp7uZ*!K( z3H=WG!gT2Mg>bkLv#NxS@$nI%@G+&;au=n3?8026KATfWRB9eW;~J#_``W=y7*=i! zuO?t=)Zye(&*$O&htol(2 zYVc17TjD~yN)KNG_xEozrzm+?D3haH4+94%d=8F7#-!E0!u}D4&Mpx%si^qeV#9kuG}%Gyx6`hH}N9p*?Vn4BPlS_|!TcuCC{!id_cafYb3>Q`R3 zeFG0xS;&KkR9@Wvd!OdvL)tyxf4a~rmQyg19zQw4vrHmX*HsDX7_;{H6i9)hZsM#_ zV428Fx+Lx|y=9uk4E;H@{@+*~fA!{^JQWu`EHq(FD#Z;(mhAhn!Y; z@6b;bM6?O2pExU4x?_h}4j2YDnFdZAw?64QT3zw_{_O-e3W_aAd^UNi*0ApD_gZ5v z3GGc2h z#;lv<%bYAwyk6FKN2)#=@4+K$=)uUj#PpROJM;h~)l}dPRs~%Q*Xbm@C;gd@^Zi1K z1?jP-a#Ccy1yXj_2macZc#Oe9_<6zPWcFSveJJdU-z%QP z$-nUO)y+5KLqTbh*)zyxT{v-Lq2`YAP-#=&_4~gJDgX1X{6CI=E+Qi7Sk(P1 ztAJ#qlSm`Jf4U>-V}*;;-TD3-DrxdJP6<2+3C*l_+mPx?lL3+Uu2iXyukHvqO9yc3 zloog#nOwU}=vDpr;NI8PESO9xeehb&w-ogoDpY+AqFWrZ~UT`cAmJUDK=d`f!hUOS4CD+au?9p_gzAXjP! zuKcl*z8olCw+23CYTYh|72e!lG9+><7+`*O#bo1xf^nV2JCRsN>$h=W45|dhSZ9qO z*90HUj>$%mJgYOAjWy953)NpMKeAU?W_jw3%@j(LhUnM63{@U^m7NS4a)am9LBSxn z8uj3yRGZL%@~~TR4PIlWJ+9qjW*cjh%cu+vo4MQsL)vvWdXeCa?aT2~|0p#4dI%FY zJXH>?us8fvR{QIdkpO%o)r>BOSRcL}O55H~Id6=#h7~9#a^U0CM#t zLMu^>fc~iIBDqV<^5;i=nUOBH9$ME8MeU3>I9l(1_-dRGIT~Haw$rGfA~f9?ZGck{GF0<6$kF<)5~+gz zhv$mX1YWY`cdz>)JrXero2_;zf>sEV|3*I)(@_g2Sf2A;FI{aFwLA#YY*@e`_6bMF|71Y>@7`u~0q|9co_C`K`zpHTCk`8$E$uiRCz zzzg~c?W=YKQ$tu54HOjDn{JMzCm|A~(4YakFFLn#v!=(%JW!)KwIG|&pfk=a7b-6x zx8Qa!@x;ZzvM(L+{3IF`m%E9*7{-mf+Ycj{fH=r-%7&23UHt3!F)*WsT~EE4^-0$$ zi&Rxe0SzmBkQ|j7ua|nJ&G_N@=^L*#@B{Qi;JBW_CGslR$SrfEq;zY3#>DsU(#zoc zC~=kS<~6E6*TmqoVz#azNFXU8OdIE^*fc=$>&=v;R2Gllkp!7fm{4%|u`AWZby>L) z1uDlBc}6UB%EXP*`gMdE=>lg}^NrP1cz)6YvC{|ysZ-`bmsBO&n5bwKOQ?l0r`EAWms9z+EJ`3CTBO9fUFV^8PeTzezB_Ndl^L)_5`2FnqH;(1<{Q!@=(Cg>MY1ooF0R@h{>z+94MFsz zBkupbBZ;;Hw^xN0&*{gyQ3?X>Z;h`tahkj|5o6v1{ z{NpYClPAM^7|Eut#oqoSoCTv$I;9RB07$39c$q3Bi;{$E{6BQc#|UTo?xZAKOA&dH zT;Z~+$8tV7t2*kA^zCM8>x%HwgKJk@uyuYZ2an{vc$E8dxx};p9x(A!rvEE%O7^Yx z!UG~-rxZ(ybkGb7DuZPy+rv9><|Y*rfHi=>JKKZwi+MoD&42foj9r6Yw5f5d;7fK)F zHh8xPxv_=e18H`JSsX$$zyLZ9-(`(fk$I9=0FT>Zq^>mV4mt=`$8gfo6 zxT8?{(&!5Y14$cOF0AJ!49*{VukX2f9L6El8z#jkcHJ&3FjMkE(|3Q@zi;kn}Tl7f4#>4 z=T~d}0M}d2V@8VPpDzsdM7eA{suAFb$CUY95wfJ6b*Us+jN0dfCPgSI!}Vt%r8aW&vzz+&wXO$` z`2a2@RERfKX>y}|`Np0o`v~XXQiT5`x**jPsRA6#TCF<;zb>;U)YxycDKBrNu-|a6 z(y^0Dcb<9NH*VkR6K&iTEK14>i8lz=Wy3WMEMaJN)3t{(;Dh;t6Qb92S)X4a8R8EJ zyn&!VAZ<#eTM8agun5Ch?B|MW*hB$Gu?vDKDUUqytUqR)($rx63j)?4D3NmoZ2az5 zCO}nH^HaOCbWBW(bOr#`_?pp4|AQ5*S77(&nh|{4kA+NSuyQT;u5^C4XkhO;R%{sM zC>!P_oJioh;$!p{dfm)7n@z!|cH+he%>P&Ng;>22e}46m1`3Tj{~S>$XMQc zn@U3s_2D@*4<6D@C0sU^I*GfX*3}vdUD#yBv>CHNa2q&NXcqpn9Rt5xxDsulmunZ&6b|4TXsVbE>n;dV6tZWq z62Q&Oh+zmp>m(5Ezg1gqo1wdxF50xw0sL(j7s&SWgfvQ52MYG{HqQCdzH@k-$coRD zTz#G1oBRFK;DEFaxF_!5ZVz8Dc(?|}C^Kn~7d94-+$c5)DR6a;du0s5X-}}8cp|OQ zln;C}{!st=Gco*+CoxnFj$X1(p~JpMBC_dNso<2P7}VwIMg+|EL&e56Yf2S%ABBvO zb1rpQf%?^5?4x0`;Yv3;Mtl??TkPKy?K%uy^mOjsVkNfgWXia84N$iXH7>-0u52*^ zOYa^W!5v=eAXO02r3(O9cD2*6)YJ=lLQe<1 zSd$-n!{(e{-Iu?CM8saqb;!XtQLwEkI;DTr&i`>i{>K*>$pLy$W=s9W-XLyNjTgm( z4&ZBryrQtq?;C9nY6nwGgn6Be-2wM11l*cZzWActJJd;lt!E0Rt~BZb6*-01F!{WB zvbtXQ(W~0uH>wb8zW2|L;Z^9^2dwR^c7mewK+$bIdc!c4YA^0j+0RmCrCRqoUJVks zZlxHp_!e76mu*F!_<7>X2?y^bX)n2avZr@>t(t4_Y5e$4Fjbfd<#_n4o3PqbTqQC$h?*Ko?E0i<(!^jIVSPLQbGN`fJa# z3znf5to&bG=pg-f=@s!4YwXza(3P9NH6nxYQI4VCHkYG{3sl)aKK(3xLwh$l)p#h; zp~F-o@~y***2hm%aBHV$sHBzhTzh6L=_46$p*b^Xf9+!Qt+%Kdzcb0%RY!;7T;%(6 zujPeZoBad^tjcDcVrGMz8(Qxkg;v~QYhuyIO#t73>s_xmf~g6JmYtA(hapFf3j z+R03I-#9Fo9?PvGikQb-w zNrcT}9V>9hjW@M+8ZQ&7{z3e;d5(%@iFNzl9~ZV=@x9t@f6S#Ba{@T~Q24>Ygp{2f z`)PqFFAe6OIzNBL=>L8cv9%Dvdq1Ro`yI}f8QLq#j7~Znm$9W3aBsa771Yen)uwWN z1Vpu!s@!)G0Ug=eJUe<##mcs zuvUeJj_oJbpE!MRH;O_+$mogcxiD)ci-B6NfWI^|C)BG0&3kht1(>69d-(+(?MHRT z`A`V#wAnHRMf=CItojLwa<=ZJwkq4CbA}SFUA%a(Z2rO(_Y)>LHI;dq4gXK-$FFwD ze=NI#H&IbBj!~PjiHCl#8XkvYX@SGS8@QtnaraE_%+wGaqp8pDrqBS*FJ$VNJeMib z!q;1@5=LjCgQ9Xlg_j*<=SmGng8_XQ0-I1cig#W}y;76XDw6Ch%AhLC!01 zCOg;XJEQLWoj+WUS59dckDW7+Tle714>o)?{K&ri;?>R;KTzQW9LB6W*nRI(={IPx z{$7oL@)=V$WTs7JRx`ge$`#|0BO51ph&#_fTwYO7@!=g1@aqN<^>5ICd*!;dvcM$n z6k$Md8!iB7<~dLp9;cDRUOO6cv-qetqsC^Ex0w5~IO{o^I^TAm85hS3O=;WbS_;RH;Bj)c{an6KzmLh3qqd9$vN5dZ&6!~e zT{1H@6M95kh;wu0u9{iKHS4P70+4QM&t`i>aGxZkg`&B4Lwp;I+1p_A#-&%x>Kr* zDDdBS{BTEv%Q7S}>TX#&T9?NU&wyJKn2BGqPY$5IHX015k<7FAnb+YW1xu_Mh}T=I z<1dNMF~UE# zOOb;#p;w)C$)JI$>+#_MUYVMuRco0e-lz0&t#wKOiUfTqzC;eA5Qb`QFobSTQn< z5*`Poh&VyA%*g_f=uG5NEP4$Fgy)R?je@u~`L*XfKBv8S^uiYAk-fQqM?6@!L|8`7 zN&nxY{{Qt=Qt^?Er{Q9zyz{>W!k%bhE8RSo0sMEYDB~Pw;65UTv@8(?I>Bd$ z!-Nj!JrvM_IgLFhn!<=wBWA^{81OchY`b!bOOG2=!SsnQ0$j2NGe4xPy&bp9Wt3x)E$hBv@p)0#NRg zV}K-$8w$1){=3YAR2-62F-?`95dle3C2_Fp^VbrrKXv0CNM;l#jqfapH_uY$Sh(Hmu@|Al5^Hi5^Ime)e1bc=qN`l?`bW1v15$-Y`^}qTDva zfrMOP5lAAW1TL7?aVy?x;DqWq(R03GWBMd)O%g2y;DR%#L8^>&q<~9z)61K#YS-~~ zgand}X<@&AOF2TF%%x=~z|!^aP+){~WAk2^J?rjo%FTqbKFnNlx6e~%>Q#LnzEF~{ zUQ-M@VJ0A8U|Q@;?qXi&n}7aJD=qlXg|lns8THQxUpuM<6yzJAXIQX(?UUgZOEG-@M%RotE`HX5YH}qZ7@7Nj`?}mfsyyDoBdGr3LuTDL z3uVWq`)_#VVw=P_zKT<(RD{`%dvatwvC<|S(n4>xvN43P1QmCtbU*RLhmYDI0Gtn1 zUnnTcov(m+UA9aYWf zNpu*YHC(wUC~#$d+xwD(-?y^ zX@{~gbNjqJ-U7BPo#o*&$2t!M>Tz>D6T|82^5~k=`i~}f?;N#h<{A}Z`vE`MN4C1~ z#lj+8!3+2?!{ff>$Kn-Ugx=epFVe^zyEo`OWuK~7@NT`Qmp(~nBBC#MQSf_$p@-jk z$Ixo;kHHPPpuP>eZNr6J4-fyMj``>}j-9(h;=8$G+_};&45$?86rG{+Q%%Mzu@ zfq6S#PjGXgmRtS_w~~Rcb5x* zIb(oe>Bym(mz=Fm%YuuA)}fYd2N~batT9GapYl#uTXrO#6KSLq^n4$V-CjHd+HX;^&*#wPVO65uo#;zf zH-$xmKRa`DDEMR;@Y*vkjXv%OlHvWim}1Xx20EeHoMUNBm||}j-RIG^N4fjms=R(Z zlcPm^G)R$Vpcj+7GQYjttBz?d9+KlFwz7(jv9wXY=htvrrj>`0p~B`pn_nhBQ`aa5 zX2wNUgtR!b)o|F}BbP^Slt;b#Y|NEBkLG|~V#3O8Ydk^>PBG}T(iNUDI-zNGHOgW_ zOc*W3Ktf=%)2g%MT~t3@R5Dc{P`O?wm>O$qd3bh0k!Bv%;AC>gb>8GaCRIJ{a6`=e}Dru(S^b@1}|$|Irz z5{5=2$t(jXmbNycK~fgi-JmyV^!+kc zl???cbFVt;jV4VNwFjCiuP2D!mi730yL@}WxU1p0(Y9qlctP%h&{M;DnE?qGN$Q#Y zCjExB=5vSo2ZfGX+NcF?#RnwECdoO>Cob~N$Cq_nC~a7<<||0DV;sRleVG!O-P=6C zzbbnsS<;jkm*oHLW9cj|fyn)>c~(m}nty!|@+*<1_kl({ zUu%D`rb!#){aUM-8@Nc;#Xy2QbVTpsxQr(mt!9>5wr&8(*(3Lb<3Ne+Db~G4slcpp zv0At}wQ|K46fR9-vw$SRQCz?1?>x2#Y74^NgyeH*`5uq63+A8D58xY&`rWKlN+j`y4J9n%1V2}L z^BGPZ&!A8Tj0nDFE#>fEsM;W(BxJf==a|azbkrB4jDEm)0`tkK?p(=KeUSsa_t(=2 z9I}%OY^-Ben8`8QbNxf(4F_Tcf}Y%Wjt}kuZtVOQ!VpEO&*bc@!}%ZD)`hk?vvQ7a zxUyi(M!ygyY@K;NV*H3xM@e$QkAll=yKB$Ix1o%B*e3?LC&WT=X88ik-cUD~?aULk z=}^BDoUIiOyzovvIk=%f;PrS(j$d}{Ew?ZIm>+`gY`tG;YlVH}H;i9LqBRb6Ia+-#@3SgM)B2##esS3F`=~X} zAc~7w++~X6W}{($J1_zVDmWY(1ufGTB?R8v_qdn3tat6i@=9rx7My&kzEMT?!@ftp zlcH0t^g_sbNKuDV((dYz2{mZTJp^Qn?Li6iyJaT}m8A_Pr?=dD6z>9x+BYJJ9Bq@1 zguAV!rLRg7+j!XX%3Zni|9Cv$Q8$KG^L}~pEMND&V6%Sb6^F&RB6>dN+Cvj^Xe9dl z{9yQsX4SoTr?6y73zq%yaK?0{9N#BD(D8x$=D0`|{k*_fT-Y+dZR{AX z1IBscp@c83oxtu|S0+BAH}OzFSZC5n&hc={w*)>gEaCDfz#!862YJIpTn&*!jDsYu zH(%S8F1R7gedAZCC&lWF95~cd2}IqOaQ%syZHC1X(2FL1mM znW}43kM~nJwYg+1B~_)LsteJM9=k|J=lMI9rO?5AD&TD>Hx_I!|!M(*FV=w4Zgwde^INk@r!O(i! za;|L4svx%@ZLS#1_AWUp2sB*~@OWY8jrYdM`;ZQasFQ-g3CRN9zI*kju40}g3p$AN z4+&Z_2I+Lj4QXpSZ{jKNmcJj_Psbt;q z{o$Qijr|?PP=sFF*0ONsxbScGE%pb#B>u`(ip!+GZUb!c$?B$Is7H7~$AL)pg%GWa z|CsvL%4DXA0Zhp#0aHV9ErhIx^uzo>@i7Q1H9K3YyxmrXg39gQ1f!VEcG zBzajx1YGD(ncYKy`QR|a^cdKDGq7zj!NMR^@SXjF8!z8bTd>htLP1kxy->v zRdAV@HMyp}ElT|kPeyyYMsU$~l=96qDYTa?wOgh;qAnOZj4Mww2K%EoqdQ<}a*aQn zD4Q~nEyx%&(Q}&>^2P0pC>`_I$$T(1m!G@%#i}6V>k?R}JZ#Hh+oOLO(WK@a=MMZH0L+k=-#mRR)Nxy7?}s}CI89PV)DM=RTw z3(*LzaO_|G#G0t@yIgr!$e$w@%0K-Oo`zKU_+^eQ%&%RCt3WoAoB~!<1}%}ik>|}R zSQ$FOIj{g`HVB37&MKe1Oqi>Pu>f&u9JPa)v-jRHQP&ZPQp{$W4nAm7SgPrO3tDaoK zm6s?ts3!bd3*foY(^$j-NH&t^t?#86_|r;2=d&Z>+T*7frxCH+ga+;);T0+9a)BRr z7KFJ(Ve+fGsnHHgU}HCNaoF_%Xe&(w5e&65@Vsq;jL$KJsmGFT6ps&@npFZ7*{`{%ysn>eu_W$xnjWg zu2OO>Im<12te5?u%E;3|#*3J8TXE@7dR!g!?1m`#YbTyHYD zy0v`_Z?nW{+ZrRn+n0 zI+VX-)iJVObJf^K(NXa*p@xUI1Ku*evsq=Wgujq|IXXJYHj-7f=#20mWxibs%SVF%ReGSbA zO4f1^AtWtRdg@1Aw|tad$YMYSbHo+|P)CUunoo2P`zAH}2%jbH1=(HNtMSup7uC~^ z0Ds$DZM$ko0n<{};wQm6!Gc3kG{o5owBF6mGAPoCF|eacf}t>ARTQUQ1y@!q5q~@R z`2ZWj(XD<;I`wo#T&U8YNI%D<i z!@Du0QJhXE^(8dqp7S_Ax`C#bd2Ogyeg_mAEgwlog}Z>PpV|B^m{U-CrN%X&J7Im< zu1RF1o*H|*S)XE9CUB>ggEE6(m;THrU-kWD3kTv8JKpc|_g5YKpFdedM}|=M2dmMm5z~(ue+HTd@L^Cf)cNIXK37rc9!$ zRJx2K{MDDHaK3%T#e@boKNn_~=L{z{`ZQT%E_9BBYxSaN?kc_e=3BzYoILdb4KR_E zGp|edK+)uhDAC+i+oXH=*-|@K>{Cm_PM~|8MvBLLpDMOkMJc@=86$Lnht|rVs0^b^ z92P7gq1~+X?{A;L4dhbd4_~iSk2eFusZZD7E|(kFrr}8Z>Z{W63B#r=hA+;LLNGU6 zHSBBGRp0)}CMkznoRRJ6T?khLj+#L35Z)F&$w_Db_POd^%K;Qi96sNp=$GiHi>fDc zV1{ZRr5JYGh@G!mzR2Ud-1R7rTmQ$0!fa$lg8bb3JEUYVlXhTmk77PSz)D1El1y&0 z&91GkqC}DUBDdnnXOU<+cPgs$gsJmkkuw|8FI8;IKXc55A4RSnNpU33kPnxx?8BnJ zpZ9;>9PmA#85mB2GRvV9(Z35sVYC`)Xtbr3SEeBzv)KesCfc8CHbcZk;YMfGb zFD;D3J;MmEZqM;)(QVRV*j4etQiT_se*-`&X@sgZRT}3y5?CIvbqT+*tA20{K{(#n zofaMwd@h#car^55{U!Y%X2quW7jToX7Q^#nbv$EoeMgy7=w$1BQb>VQ&zR+7V!AlD zH2O~M$|zv)c*P)jpmpmc;oaO9z}S{6yOFIsMEE%7?k7!BL51?MEKEaGHRzzdW=KXt z2r1nn6d3T5;$bREj7>2J>YZ<8Q(I#szJvlsy+2(6s$zu zm@{mKT>GK?$jI9VYTDs7@BHM_!iTAfVc7pUZ=ALoIx9}|V|5`f^z1}nuJc+DgNWPS z@*%~Sn5DgK&jEFr_SdX^jKNqOZ#}l;EB0SxTb`dM0%wJ{^r_YMw_chVxBJ#O!6D3@ zmvLXbnZtfSD3<9GZoioCwa%j}#ngmJ+?sjl^48&{6H(zYo7D0kU^c(_TzguybsMeg zeA-fkFMq*H`zU_$*gdzSHZw~5$qJT+6e7wcbb5pMFMQx1e3B;zP-~w=+M(aCVz_`d zZi&PSxqa7%Nwn#nY) za<@e1>J_5cJD!ZA7AuLUbXcye5&P$y_K&~qPZo;qIBu!UfiiWF*Do-b41FRTeZe#; z>KvQTS@Ox($xwu;Ya6vhvc9{qL~<(lC0WP%;&2emi(+?ASz*3_YtKbcutoWzmG~cO z!I+N!y+Eb55HehnCxp1ZIa%6oNMY1A2lX1mmLNO275c7Ou|Np zJqKe_Lu^BH=<42P5_wu;K!W5)xNU7AR%qp3@2Bj44x&2IdsCWhCncWooKYZS7z$!)Zrx7AWYWClbd3lf71cn1NE41%$7oj3}EO;$YHAY|MYXIZDRRd&>4 zIEmE=6dC5~#d%ocIj00sH0G0x#$Q-&?plRE=n3;3|8}W5<@(QOY$wTZ!^5NbZ<8dm;_KE${vQZIiTF}#z%U)8~oV?8W%n2HAn=KQWfpj{sGJCg{=f5#K{ly@`& zj-1~&7K30V2J$K=LS;xJ8j!nrX&i>r^;u+9(mluATU0<`k?ew=^gRcH9ngNDx@5=n z8N8-5gC0?%8a>uAfJ(0-0MEF7OEP3BVQ&{FS zE?(;^)eMyHBO4gaBzgbr486dnuN2_>47ls!YzL*Vq)r0`rexp`X;vq7GrC@qI!VzD zq%01(>Qag`(4k?>?U|J!t8(2Q52b{S<>3vmpy4stQf>}v*j9>R9NG89E8?2&j|8K% z@m|BALQ4^(syYuPW@XUniQJ|~w8P-0_fWQyG3yGoD=n|$OdCpI`h(Iyj6%?c+!ICglKGuwq7(^Cxc8^5)RWBDCaYvk-I)X~Q zEcW>dj{F~}PNgx0;&PG6Yw!kYG4&^s}=>se? zkZMrz8lYhc-pHE>n%6#BR&VMEDbVhs>f$3ND2&>PJ5O;CD?-E~M!v;u>FuF;v7sb4 zm&Nyaw*g1M0Sx=@SDYXr!UFTD3WxjW#i!zkFzjg8om_R5bO&#lc*E<}EyWFkZ$^cp z`u9|94Kf}wkY%^9tcn$Yu6Q%yBcyy=Z~_GIq0P%NZNqd{I^@I~X8XSlh0w5c1=rUR z88{<+s+jz+CRlqg5%5+1A3LiZV06GSHo4``ij}(N>Gl~C?osfJJurWmQapa?)I8C} z{u4e#EFWgoBtm0w2A+Tkan6NDMaGbT6a`4)a`qozK;)_)Cgt4YZMnxS``I&9j*NRt z+QyeOo@c1RSU7~ps-u;HRk4~=va{d6xhP*N>g;Xhr~Y|ds1BB#&##w&|F1U=Qongb zCUb*ty4LecdMP~&xnU}0jVyuc>}mZ^Qap$Kt7gbn%t%n|<1Iu?rCdMp7I9S5 z&bAgNm(ApNmHWT9aj^KrP#dEe*zteA>IoCBeE-a+Olojf_5uMKlSFx@QDc%%FjX1| zGrWWHJ83+^pu3)bkFl~ih~|BHd>yaV|SN5%y%mi2Y15$H+Md1B3cvI>=S*Ryg;$&5byK-GHiHI>+1qDN^d5Qcq zdfSjQA+j|bf!CIE(SM_*{Mo9M*t>SsHKRb=V>DuA4vA zWq(D>u`04jhBpLD)Jc|Z+w;Y|0OCL8()v_1+goIArYZ}ppV&d1rvfBP4A^&%j}72e z_I{Zxg0vF^%^UZ=GzmSU`1oX3hVSynbhRU!Gb|&o^9|@d@@gX?(l@OvJUzCbMT()C z*0;47D-Wb-{>})09o+x)iE_Abmg5?&62YrUV~B_tzZ_(uMEq9 z1*ZVzT!LxovOtJXqhVYLcmwG>X!AO82cMz$4?f-glDs9^NP(#>-v=Cj0hq%&4S%yB z4bS1hA9SMk4+zFLqH3JD0YSPReU$FX6QBe&uDiiZt|?yntEj$Z5a@af4YDQhxgO1H z=6)c?V7Oy|iNzNS!NJ==ZX~#34`MuNFIZ5mFASM`GeCD5OKn}=v3@l%5{(xtitc@O zJIbIhap_3&iDsH+x@LyvL@@@HbYa$4QVO1y5=FFqkBqcJEv1XN-ZT;nJf~T`JrHK8 zm|c3{kbdVe?YrSf5c0v{0X>)<@crg*M0m??(F^V5h0Mo zKg&ut^cyL~_L9U;_X9Tw6y?8%#~Dt42;dNwB%khvcuK!Atc43`_L*3L_!};PQhP=l!#*)TDAE)E^`+&M(8wWl-~wK#emAU?2cl z4MZn8TWo8SrK;Cvpeh$0udjBV!X5T_LEIGN%(yyri2Ds1@QujpnfRw<^}njZP`9VZ z14f!0F9^ZJ5OFlB+yxiPSLL6w-ynp#R2(U52ci?dAhOE{Vxs-#oDnTNKgb2sE;CN*p|41J4l`FNxxd;mMxN)FV%bq6 z_W`?((<6?8E&UJvMwR~Yll=YUiJy8Je>_;16#d74QG+88r*O7zg$+PL13s5>eQx9$ zNyM9UBuWTdkp_Z}I09D2k;L~Fn1;nRUIDQ)0i{_W9U{&fe9e!t{Df=qWA0!u&$zT6 zfwx7UwO7~|h}xvNOG(ES^Nm3pwz@~}z(DbVyR$F@i6avs#`mfA@OHoXtKPf4E&KUo4z$lXs>M6Lfn)YjNE6?IrbZy71o5!}9qN1#O06HqB${xQ0BHa?0=5&K5A7Nq?=P6DOPCiZnjH{8R0h~~S z<6*E>By~_nTBJ`}*yqhRU0@wZvVQU#E9k^Q(}8>e>_|)Q1e1l$LUaYZ5OmYrg`xf$i(@{`P>4SPG^$TZfaDyilPse; zUk4T!EQis2JtV{KM6!`MueAA;Jp{ihv3aqQY>phL zHjy!Gk7pH+*GEbO23Zv5c*$C)j1pAX6Ys-`h$y*hK^NTe2MgSSw;nMs!rN|=kB2Bw z0z|Z&``^sUSKf1sj2!|b?;X_G-VY8PV|G~&ui_!dkinb2yi?X`kA3 z2DeC%?Pzlm>p-$abY8&wBKCpT%MRu}s4$iTJ=$b#s;pKdn?co}KBx$=&Y=7DyyNm& zcW{kd!S|&+v-g4pVMsC2;JUxtiP(~}za{EE4)ru{mGhfMvXPu;n%2Z$hH;Ps{r~vE zzzS*Z|2ST5fU_U11u+4{B%z-my(6e&fH$}f6bk$xjU9o~r2){uAP7^pC1G5t${+SO z-e4t|FC2Eaw^Igfl5*hQtH~nK^%4R5^|n2ur(at^Mp*Tg+7a37kmT86;?(KmgxpHW zhoG|=svZ`Z>420PtXf5!;3Ye2A-Guh7;HKof!BoTmu1luYObP>$(#5LQHqP8P|v!$KvTl7#FWyz}i z$jeuq59Qyr6qWlSaJ3i#jgTu9h?Jgd1t=B}e`*l+$)EoYN&*t+=;_sPqHLldmFu8hdP(b6@@Am_GDMiAe|JpvRA0wMJhry1u&rxKLYFZW(tm zuS+CFj%g$QyX0R_K)om7Pjzei9b^{GRutc~LrL^CN2myz4>seA4#q7fG<|?4)j4s))tEO#-+?JWdPR z+F%KI94!q3tjE?Chv|{9QEjR4@MANQZ33I4S4wG_q1dqDC?7!y*-Q28Ku{|=1q4<0}k_qoSLXpCg`wZkaK!cTchC`HdVetsk!(Win{7Z-VUkf+W}U?m9z*U z1+s1{F_xs)mya8(k$#I#iFnr0S52nyFzS{w(hR}kll7K6=UZOQuaJNH0_q|(bfWxi zI0?DS(7i7b(=S@u@Ecsm%w5$#K>$*8=xtU9Y?inA_)rnn+8w2{T9G~e17ES+3?e$H zwbSRF&ME{!ECk_H%du<>KB;ziwyM3t_W$GTEu*Slw|HS%T2eqdBm`v<(%nib21++d zcXvu7N=O@kigf3qk;bB10coWBoy&dp+2_l>=iGM;KQI^z(Y2oceCGVsM1@7O&NNQo zKLx6d_@dMS6Rc#Ji)rJc}P}?MY^iA2#_l(2vhj5Adz}gwJ4% zl1p96k5&C%@|pzEKB3BVmcu>=jFl_|2cc}|;<*4Yx$A-8VDFgdMzqd>DeVi}dzBAI z-F{Ld#!E|F^v=7i#x6_2y7dlzi}ouRGK+(jftaib1fr1V_E zVq2w>1RuK$>dHCn+a9;1N7l+*cf!&TFtT4L_7g&kIfI8~hWR}rzT5;qR{@C`5TtX@gO(J$lWuFgvEpvh#K*hxs>j@` zt-%Xj`V5zl9^dDPD;k&BVL%dT=zql|)+uv=MbRka?q>yDCx%BIBtA{Ild@>-s+nJ3 zh)cgRCtUZ0a&xr|1rxMKdSbnK28dPsGc3-2)II__*xRI2>++6r`PNMmhJF_S1RWp; zcbsAYO8bxJNziEy!-@y+3_m|p%eI~!@xTv*w9u=;Oy=3vzety7I5EHn+Wrlqyua>h z@ty#F4lxS6K$nm#vpQ~diiOVkqh|ioxGALu2|DI4)ohOvl+w|rMW-c?vv~-3$a!d; zrkG{w=Efq^$EX*sYSAYbm?}?sMxDQ9BRM}`$C36zx@d^vY=WUX$Tp6cUM!_u*sgpL z_?vs1;qwm3bEP(Qr5eV%Nw#A;HT%BEs4Cn6@eVW;uL}h%DE2r8z@$_pyI!l z{B=tYH~;(+)#~jiL5|8BPoDClZ$k+i2wl>lD%OaPB800>DeScz>3<%U|NZMgGY-_T z@^9_V`ukV~SmKGq2JiQ&X==n1TRN3n3Qz=wWSCjBO~3@vrRXX&54dJ9H0Q4%&r4(> z#dNg-I6ZpE?^b{ZdF_Xu#^BGrcefo@MoM01eYn2g003rWmU?@9u$hSR$ROawER3$W+SrN<(Pb23rofnW1ObXX!0~?358uz>2 zGS$bEt)<;KQor8@3qV_Y@_hc>lx%o_z>veZQE4I#o)jc3+obz6LwO$yuln?wJEO)R z#qz%U*|1#2*6Oi(hS&{xasI&@=LasC2?5gQ(eA-n-wGa*Q*4+`i<8nFFF32oyMi~b z`e%|Z8S|%GrdW8J8JbyAlS$}F*rFR`*}hMcVvGyrO9TRsvf)3N{7U#v5PT_Ln~t)h0_+SdPE2)rl-DQSYg=<(cT=#gz22x*e`le4j25Pb;DU z5}!FAmFMfP=4s`~1xhYInZT_U`ZgJ!7%#J1eO{rpdUc-g>jMIpYw0_0Um5zJ85kq& zvk3f3t{Y__Yh|x5V#P``hA@J;;d zqVal90WdG;5t4`S*8CtdEY@bDf%k zDdwJ4Ad9wOn^izd#sfV^?6E5Qtju~?-b4+&CNoND7_!qn4-*FrM{A!q!o48N$ z{kaRTsQM}VbqCfQO*Wnbu1Nr7Z_TNNju4Q-u@LrT0;Jvj5m(sEZ8cHN2g?)JUAFEV z!Be;|V_b7C@Fdu58v+pm3%Z^i&L}whv1(HPY$m&M>kS9@*tDLPf~d%h*#L+*$)|m` zV=_3ig0tt&tfuM%hRU%*NwU0&sReO8eqAw|L6%!9ISXBxs99{O*NzlGlMfF|G9SZ^ z{8?JBtrD>-ckwC>HPuqxPvPYit3;jfGO4E3(w;#u%1n>%iQ{!=hrXgw8JXBwqwmOEVHZi^tk5wL59l>`TTdjChJ+!iAP>zY2wh#!*`csDHbTNm94@ddJ~@}ml~ z*VvWHtr5dIP+xpj%o|}aJAUT&6AqqIgV*jR7#JQNBPDo&%7#3IibXhn3}F`;W5LTa z2ihL7?#9rTh&|qTB0`Sqdy_b+VMNDjKEmauE`=kFl21Qp_1Z{`$Nx}r@4GQPQi-5a z-E7(enHlR>ck)j>X5Wb8zIx~8&uV>{d1ZBJoCO4r6&sPK*TnFrfkeQi;O!~MV)*34 zA*ZuyiP98VeSY(lk~2pqS?@QwkzwYXBPcscO|cC694$_9@Vi6Bq?)~qVaub#F#{Z` z2Ks%YOxAn*)h9u_rY%pS<_hSv^~x+_=sS<#6q%ZsvhcYn@a1Z)Hudn39T(WBiOefC zep^4feg6;j$`J>24^mgz8nQi)@eJ^S9B=bq_un)7pyU)HE&*YU|2`>wFo zR6;zXqw?bFy#k^g#@34+O8Xe(Gn*+POqgXu_x}Hu6Ldxl3n%k7y(+udR&|a482*^7 zF)Z%9a|XIj++xo9duG|JDX1MZfUlqzxH;tsstG!Qgl~K;9{r$z%YYbJ(cGI>Rj@2b zR0+3@fp(Us6W3#O9@YlM)O6m^VpRA;sxI++=pTSb-2QY1p2Rr8g~2_l{njf_uLejmFU?w z3F&U}Wb5<`ZfFIJP+Uo{k8h43mNdZ;*dODbNK%T5t(P|)G-g{u*N*v31T=u~qhm!< z-+$T5=17~HYPCR3D%u$#HRjCv%CwblE<2V~wS2g+{`W1*<*)Dhq0Nh{Rq|I7Y)>Lc z+6914RH=CA@%MsMUm^dq6XI?1NZk^XP}8;ttIj7OPGk|} zBb2qbZmL@)wxBPbODC!^S{e(nsLFv@#+Z}@Uy(ug9_w<=6QKkBdxd(VAfJn?;3}|=$$#S2Hd@v8*3w-DR1WssITX-FNKdG|^`{1)?z;kAR2 zTG`FI`JFY|P^7k?indugpXnX$?aKqI_4|GN-KEP{I`_nmg_ICT)lXtquccNzhzWSn z>PNbUv*J;?UkKJ_?_O)A6DCO>R;P7pQkzA%1K>^P+baz)#fo0@%|yxT!%W+Lqc+ua zPMKzX!etg!qUMrJ*CGxYMQY9S&zWjKiKed3XHT6yi*vv(NP3fW=m|UBmi=iQlhgVWdKq9jDFw{e!VYQcevGG|zbrSsJHK>m zsJpu|>`NiumBs=aYn~(foHqg-emWe*cJV!;=-cFZ9qY~!LxS|$cJ)%>T|3o(I#C&7 zT#v2&DmpXexXAyPsho`@FhYaod)pS4*Y>UVe>b%<6L?zLk#i4*96+yLO5X0v@$F7= z2)S+eMMk^VZ&cU@E?i`=3F#viM`?m4wL^l3Mc<{H_|Xd46pvR78(4>u3vLgBzf};)+q1)cqd_SoXUBCiQ$> z`Z=aMzjP?O{sZVO@_-;)e@97WRFhpDu)--a;~%rHS8_{3&z)Y;cPaUmbB-AP(k2c5 zEhiJ^$)cvSCq=jEoPpEd8v`O|wc!OPp*! zYIXda?b1glA)Z5$SwXZkO*AKDUA79SO`1{=M-zW6NscWuRi?nu9AfJGpi%Sm zE$WeOS#N)8mB^u4>1tly?&Ne-8C3CrOQh?l5%yXThaN0()+>rDlV0D8;(V`pn+ZR& z4w87p`e`iFXESrFNV#m*@xN&crW)7nU7K`{57x5D9%mrBM72gYZ(*RP9LQx5RY_uo zpdBcWr^n9r)z7xhsi&PrIC;_C5|^OZ%gGI9`QpP^NWzxo+!M`RoAppS!>^3>bNix? zJ`28V>Esf3|5_R&JqIItqjjS*Z(YF=QBJfb3O=ip(gE{B-}`ZY&;3dFHBYvc%z`7n zoHoU}fvwBe>u1HrZpGTR$>H*onJOEU^O@0fS10sHj7U+?wk`_L672Aush&-*DQE>7b)~Akh4bkhzEw^1snZDFDgCf%eW6ce1f#U zAB0fw>OeyOpu-nN{8=RK$t*-Gw1VaDHo&vgTZ+`o(E*xZAEQxnAc1a-$itATm18Ce zeY&&+c;09*96}eU&Z`X|Z-x0XD0)ItNy6YsL#jPjLJ?rVUbI9kf$YxEIFzuAV%#Vqh)Lg1s9j@ z#z|(Z;vlC_}(93P~NMX-Cq!6z4U`2cVqi!k7XPxgV}FwwQL}aG(Cj$-diJo zwWgXKg(Xm~XcNut4hOzfHC|=|Aq1pG&Wzh*dTB;RDMq4A)}j|RUX~CCzCiQ*%-8qw zEQj|K_Lw6B;)BWGw0WmF^L&$_ZCaD!*z1jmL*hO|;+C60n!S+3_j@idIb@!Gk6yYS z&BPro6WY)(4bS0PCTU{1Yj|n^a7+i7sNLqf172M4G)m6kGNxRm*=V|0zjs-y*eC>3 zb9UzU4|HM%wQFcK&X^0@@v2N1xlipTo9;crcq?&sljysF>v)V(Hs_=P#Kn>-ZI11I z9GNzzwFC1|wy#N@ElhKjyk-h4Uj!B_w?~v*TFu1cVujf5QbiIGUb)ViZgK3~8?^#& zyyZpAiadSkgpmtnTXqM5pJ)90ep0VaR?q%)VSIvmB1P4sHn!~;`>L|~8*5Qhf;%qO ziZJ4Zo&F^opP+e4i=0beVb2=$hytf2<;1DhmMr)7Lq5mhU4arI(mw**oOh_27eV;@ z(oXe@y}~RLJb&xnThC&cuO|Cj%qt~y{2HT~E|ICqVt}Y$y020uAr*06JA*m$dzU+h z?@US_^Qh4hL2l!>o1Et?@uC0$ejdp`Px7R>eSXbZsCJ$Rqm%x^$@s~ZQV!bK2?j)^m}H1Vk(MoUesT8(Bh4KnwQnqO~m4FH!}`vq()ouJ-+s>5D- zi25v9?c2LX1T&oc9TF}eG)7K#=>w>dn9*hcCfY9S%WP~5Pv`igPj|FQ42NodHd;=X z&Nfa1bt2uMcI{DlR}$CMYb&dZ0?vm3O11%)>Ii1AAUOxPiFzDa9`-MZyc-xkBxu_- z$hK}A*gSyMR8{7lpl3g;YLVKfiZ(@4D-th}Oh@ze>|9AB;Am*{d)TB^eq&VsXE)-N zKafg~MQuk&lpLrKqnfuY1uvF3Fh`TzTo`?=pX0njG;9g8^=gi;d-ZVHkai7O~9wsxaci!lI?mq9$Th}>T-g-K}X};ml zo407E%l*>vhhR*JU*>L%I0NZQHKpMy-lo3yWJmFOcfoW#4d40J)A{H-glp=su#(TD z4cBF9khx6xOOa)sL6@C$hjbzM{DyK{KgLZeBq-*))*P#8>?c$T*k$S+XMNe(I!qs- zmf9G|8fN(k{+)@lUAy-j2cogO&U}=6MGdPu)5W$c+!L2S?buD?Ya61$!Ztd-XUyC@ zq_}ZtJ)-U7lh}7#yv2?h;Sw@k9lPt!===L|lOrNi<&?d(xZXmSyuI+5e!=9AFzauqglS!i~U2-?leKNTdJ7LH^y?{nyq|rWYlkSm>h6 z`R7O8kmf(CcuzVh8UU(3Wx7u&`vt6Q3Yud+vxAT5EV)!-5ldeqe+sPSD1~72Ijs18 zG5||kGiSZtXn=O%Nw52dfm&=#-2ZmU%N%TSTd|01cFq1D$x6yO1QQ;M8z1;LNU zE3a|7{KD?!SKQY}Q>=zuYZKt(4gjLqgp0-qKy9O%gQJzAA;2N?uSgHJb;=B%kjpd& z1E8wICw%U0AR4zQOm!U-AN@}Li=Q{{(P1<7>8bea(G+{#FnaH-=Y36$K2;A3wmbEV z7aON8M!o8A0cfFnhD%_aq+58IR!d{;A>iZ%5#69;!LoyBlg^P6*h<_>_eO=FJxsqu zW!l3xj%#EhTNabYpq?6#lhVE2NbW-9b1rR?Ta!z)_us@G?*x**Ma%S;y2E^xE;)d2 z_uwbhKF^Ik9#s%}7r3u2KTBIkw$y_Sjwn2S9^Mz6@h}6|(Z@x1HebfdASAR}d1U0Cs@NH$2cU_LH}GyvLYjlocBFM9*3*g`(`DqK!yd zaj<^eUFnVrfilYh;!FB^8`z~>frW=0cZ52!RF)Qjt16FDELaG58aMxnOE(6?1n>-> zLa&W@+lQ5pNBd1_g)iG}8d1wS&b+jKMOxcJ5x5CadgH^f30qZ+MWVaY^?OPfyls?` z`sNyDx()kMm~SIo(ft?eX2WPPCcjr8@U)PFlmdj?w>^ci^hnk5WZ#SYWsq!(L(6zTRQ~xflUvyUbz}#8x4cUhRg7v(h_(PK44xPHl{1hk zaKU}j^}&&6{sjtQ$5xn-mBKn3!S2l+yEHZ6Ab`OEuAK`U&-5Ldv6Vyj0M#@C=?sdR zj;*EoMF6NcsI_fb=xqi!MTStoJxUj(ZU&Hl+gkc$<`u#|4epL^ALdV_m4 zJXnHc!2Y^QDaMo+;5?4sA6hRha#Rl>j>SB8M|02O&e&Tn zfBZ$}wio`P_L~fr_*E*D;L5@gC~le~y@YOeHX9?*mD-B!!xjkH^3M)l{>sQ{N8lPns=oOss5Kg*y*n*EacHPPm@v(e&Eku)Re(wEcSHfeH5ll=c-J zg?AznG6B2S$9MH?S`792F+Y{v#QkpH#S?QjPmbF3_>oGqP)?avp6XXgxK@XUP20nh z*%9{1H#Zac56tKnssM>MI_B>MY@lXaf9{auzrPa@UfK3B(KC_dA%Gqg zyTSvQzOUD-=GT7>oc2%pYOK<!bf2lU*@y?aqJo>!OLJZ%Ac3>>re(OpQFME-RS-4b4S51;%;x$+!9${ ze~lJDwlSKOvp3I^3B*W|@GQMKEQe}z<-NPOxy*HiKI|>Styk>5ZL>5GDtpLe>SyRk*GZ4Y}l{11gvb`mIeednk$XW6r;?Vr@OsPj7sE-7{tlbMKh5RKn?p$_bDP=tV=k`o->v z3#|P9@{hyATco~z6$JcoZ<!&h29ns#qiG=AUcR{&^h9(p0y)3Z0Ly z+8MId%_4%G4l^=7 zz)0Nh${cV?cn-o1HWMNC=YDFOyA$^w=$m72TlT#)KlTGkiW|kou@;GTd10edN3rRd@001tOQ2fzO_wIuMf02jSWe!c9!6vw9|``?2OU z&mW3jUqChrb-L>B0}U}&B8Ok+IpoL_XRA|bJ}Tuj?wg>ovN?-j89@*%D~Oqea$t`s66CwO}|&*c0X#r4^v*{T7t09W)CtaH9?ht|Y%K@88| zP>eauoAr6+2~2*5yvn5fQ$cWFpi!N_Id=C=Dknev>s$Zpv=yjBiXgwnx=`!tOlSA^ z==MkLnL`S?z8BEtGjvAChV98vH^QYkpMuvP`}o0FAFh$8#ho%!_5o2)K6dnYL*sAZ zbz;F^Yl`)|;C!OSSsbOEGG%|1*V%oXm+lm4iiMvsZdcbQ3cHBtSaGdd2`|}sp*^Id zmc6-{Vj5er1s2(6zB%I9)TPW{+NgzhyNU0@aVHTbFExU3h*&5dc{Hco>`HQmtD24# zK|a-LeAK^850X13_(vJ-(QoO~1YYipU>-|}9?UmozbOucsUr#i&jUGPKSZR;YqSH( zna1D-yXVXfte0q}IYM<0YVbZkU;3bouIo=!aOqaoGoRFiW7i;jI!LJaAg zBPfx%IKa2J_h@(d8$GL$ajQ#~X^n8=n$6Lx)4otb<^W|@j1_8hole|k?CP}IrW5=|$U`GZ#kv-!KBwt2OU=#*v1bunEL+&xk$5xp;qTa~nu-l_h;mtvz+?EFW)3Z3i8SD3HZ2D6p#& z7t{M{Li5-M6#Q(P^@2|+ZcUgq{Rgl%Y{92S-l=PR zXo*k3y@jj{e=Kjc9gQe4Rk$c`@hp|d3~g04jBHrCBS3&&X{RSQ2eh8Cq}A@dE$FeN zo28G5ugEIt^zhB82oWy41q)0psfF}1tVC`|YR&|}Md@I0?|h`FdXnPF*ms#>IZxr7 zAIx;p&F~$lR1%pI;->`o$) zjs?X|A?|TEo7U26wAVV%a%l?PMfzDdFbr6cTTXj{BUC1nGuU}&v~;`Ea@tOQkO|>P zw_T*H(c~AnvGQ+H;=j(We_o)FhUAMzs%=I^tV~H>g9SV+Wa$|H$bABzGYu9QO4ozn z0Kwvfkh@6QCy?f4@mnam7^jzwp>E(Ymc?gD*vlOVkZ5y61`^lfr(hT1KpNg0g8c9r z0c+;7+064#u#v*J?XDKM!_Rd|#Tg~N1f%n5qVow}3O*()acITs!d=gSb|harj~LY{ zfdevZ+oSDt9pt5`Ya&{QBRW9M>i~w!s>cE*F^E@$piZ$mYEWUMPM}5w>L|@n*ooq~ ztf7>)F#Hk=Jf&4C{+vX`xD&-P%0n;-thgq<3|cJYgZ!_IE)m27>C@krOgn^ zg-6kG;LiQiFs)7wP^4km+0plT1um`*D6}fRXKXEDiY0YQ@8`LS$*M;g^COJXB3ml| z{KjZXalA#3Ko5?sZh5yuCE4zVyi&^Nu@sd3M#=1wlEb&LwDb^~)ln(~R6wakJp<=M z{uIqg^1uUAjYVH#N=7NNu?*{+<9R(&E3<~dj7@jFXf&g)LuHUfRWVULk#E)i~-N)i#}Y+PfAObgE?0j+;V(&6C%(-E?8+Y zG>{GO&){DJ^#3O(X^=;5&+DSAZ_LyY%T~$yZmE<;Ia*KZLvPC8a-oyFW68{kY%s&$De34 zy8A7YKcfI1>_@ZjqpsI>mCZkC?%-hAeP6G0A>@v7=jZjqvi|OlknZOMn+|k*DN$xp z^X)ebws7WOW_W|jt-|C1qwfwW%(xbDHTjBylbMnT0#&qR!^}z@6~XyCBPdfJ%Ac<; zJc+fpI6^#MGTf$D_P)uv8|gb`y=#!~#&zfPa2r<(TL^Gn3TDo2x5_Kc`e zYJ5n~CT6Y(oIsIg6!yLk4>^KTz84SliI zUOs2X1*CAStsg|w9+rTTTXbXXMK&GUKI$MlAJ;Px`-t2*Y4!#HP z*Qlm5d;lSlH(%r3Sqp!8W8mm@wLy~~5*dhSag~{E$y9%$KxVPvty^Ug6T-xbA*d8c zXRYMQbyv*C7(&wx4cX`uvsv62HhTB8Ilt z$L*pGc#3_aLCAw0!;-|p{nxoHo=&3tV%n#?eUb8RnM1;Iaz~VP{ahc0bypRa%{Cyb zX|=W@d(`bbk;IcAEjMcXp@7Unf@RL~I3I*ok_J9oiq^WEUSIPx8TEjZSB^nHkY-$Q zo~|v>c`g=gP=G1-?zQRT{gdgs4eza{&TXyKFcuxkPdUGuq+(q?4 z&`sq4SqQdPQjvwr1f8KcoF-;r-{E&|V{zhE88u_nn^IIW2nDBrL!-Q+%qC5-CoGiU z%7-KIiB10PjS4T`yLA-r{M0S zRm}hxqSCRdB&liWvlUAD9#CUmCE#Y@+ES40H;bO>A_W)N7pywB^$^le*miY9UC9H- zH9x!1D@ZR325@0M{)J-5`$8gA8?p{Wa^v?*fju782t543MxUA45GAI^UlmOych>93Xk*a&Q*ex33f09)Ja+G;xM`}r?sqdo70!5O zc^mH_IZO(nyd@c6&&ud6*cec>bc}i<5s+euhYY_*T~O;0GD$_BDlm}WAZ$oe@O93~ z^9BVYitLJ^_X4m5HCbT97tnGRuybJKkj>0t^C*`K0AVKsJeea%GiE_+8e#qL^MOLX zJ!0?7%+zE+f`P9eprgpq7zW9)2tLtj@FRW9$T9LPn3(p*{Mp^yMgZFk3ry}wu#nJT zl$(MVpas;Qrfb&VM(zu`GW-hABS-Q$?Nj(15`b%|G12 z-x?W!uC%#C1~MXX%fOXiJb2W7UJf}N+xS09Wdov2PY+lTwvU7uzO(*S3R&W@1E>8j z0IhZF1xDl9Ws4I;)CCvaf6(cFZrJ~`eBc#|)Vv+?A^RV#0h1m^dVKfIWs2`d)8}X5 z^Z6%iRN5HOT47*cx=1e;f(kr>cQfwsNsdyb!>pVhpxio*J~fm}b>p1fl-Kn{zIJN2 zFosI_(km*kvCXNnt;_?^Gz;pCV_p-a_=Vile~kJ~nMHrV}EU(;+C>es1F?ur7x ze<8Bpc{Ny$jbiaVwDp3o?~icF83jI;aVEvYe=xL=4l3jC9S-%2ZxS^kMX_Tv+vq%1 zNa2zV;hL48=lkH$E5ywOS*DPk{91o=5wx(SEyY{Z_Wql)Ge469Z&(A^O-}rdj0fWv z7OXuEMMV&yu6eG!bQA0y@0ZOVbgHKB`sX!~4bU%5dMv&umOKf3I2qO?4m&3)sq|e) z?GW$1U`6zn28%Y+l?6*Z>vPc#UMeXtHwEyUpXsLaoRI8<{Obb5VwWN9y8rR>rS3Gb zd%nBK=Pv(G22G|URG6gdSfuJd$4-t(rnv%KusLv9PzzWPaz?UH(PB`%s)mOZr55qo z8?{tg>gCMv9C0++7T>53hUgd*cu?HPhM|86gAf!?k#Dyiv5=%l`%A&zz?(k5KXHH= zH3eftA)JbxO-XH9%sEt+LnxV>$1M0p!LEej~3%f`Ii7G-v9_~!Xcy%0PP~m z_^@sFid@8;f}mmLI@qK?v%g|qP2z`;6`V7QBr98f0VVssc4tjtgaPjP{PmYhtUvo>i z(Q0)tGbgt)oENjD%z9#War>(_`gWP{(Z1$h`c?nGYD@{+=6oDtK1k*%86t`TT`{ta z-wm8t|0+QLoBcWvMFJzJ^#4Hs1FOk&KrC^+c8SGC=&CWG7wuP)^~i>I*t~y0^vR7x z$Bhms_Yhb3zy!jNx`5YeF+2Vz`2-99*UsuFIk@WxKyI6W@YIr<*ZdQP$f5>wPiY3C z3vU}`R(n)wLv!AC#S=g2x_VldMLGUpjeyLoXr!0tkmL@Dnm!(kw|egS_S}UC;}$Gl z_8U206ozE+w^N_!C(=o7vV+_w*Dr)LAM^daZJD4~@mP`1s3mQRrJkuuU|f_=w-7%# z>wckHzjK^>0Q6N0P^@@km)5xuclvxhY~mcOEhrMN7|f`ub+XLpW57Dn4sby5nRipv zO`AQphASrmbaJy$m8wj9IvKnR+y%0qU!h0e^W>824wbgDgl5C?InTq-W63D3^m+{< z0;RUu$19EzG3_9Pl?~QOJP%FABi7WFU%G`I0~s<(PE+%X-Dp*3X4ueJAzm_p?TQ>0 z%Pk`)Z3lpKtBW#Puh|4*U>9@=E1uT8;L>J)wZ(-1uIC)LKo~!mLME4*zkQ&_NDrhO zgRnXLn6~WF<&(I3^|6Hwmk{6H(9B0Zz$X))YB~>lJpDH2VV1kW+=4vUU-68am(Z^x zyZoCz=u+h}Vy1h%s`{MwudNvWr7iy(jd^n&ELFMdbr1UgeH}??7{QZC4eMzsul)G& z4dC0MNOlj2QM_ac4J`b=>FRcqpJg)+t z)zUzFMMMaT(~l2O|N7nUy7yI{Ct`s~)9ver2fRXfT0Fn7L}&)@Dg(Jbvyg^bu28@C z3&P19j(#C_2{(t7Kg#AjKZngYzdQ$J`|&nUhl{eUxgDbZhTngSs#8`uDb zRUO%EnDD|bW&1ppA;c}vultU_FxanE{G7lV(jTq{$IN2Tdj9_LRQ3r)D0q|+7!*`) zwuEcF5bH0?Hw$L6N3`GGC zgGWvBKk`)mm&%iXvTLe*zWc90Thx!hiUjb*zGH!nN!`yRA13-vFZlcIyBN-U z#_eaq+Qx;`^+o4Cx5X*vMgjYN{q$*1Y|uq|^Vo3tef$j*PCJ-uR$TVLJ}f%rf9^}3 zY5Lh&&g@Z{1(8y!K?h-&nGvygV1>;n8JO^8A!|+UP11WMHS7^%2Qc~_w7ltsm8+NF z!*i6A&k}6-TnZ`EU%oB-N|7K^A1v5YEsYNsM$?mtxdh+|Y&LiMmPhWbp??uf?I&$l z6EQIT^04G2xk!C5-ePAs@TacrY zz@kEO^;daG>$?h^h=9%=oM}+HeQ7MtnC+ckfKd8Z^<`N zL2_UK%IS_%ZG1e}PxwUr#nl(02948?4M+Mn{eGiKTM6YEXKZpL+Qx?9`L?`%p~7T^ zRcO!<3Ej6bRD}L|NYqG|^u7dXC>WThqT3tQ@T*h+XC3^iiv1#>3G4dH#021T9r}F{ zgsIzLR{o_o{Xr`S1Av-^UYPge9-DscI#_Xjy6!esi7ir{^r`b3g?gaybO;S{2uD_F z`{N@$46^tDEH;N2Vbu^I|0j8267;GaSbj>R2)2l%>o>I9uWRj zqHu3D7k#J;>q-a1BZ zD&uqu-FRmK7{61{BZ@&MavABSUKyF~#5m(tXiyZ#`O=o77(TRmVnW0xQ-Op)Y z?=I$Gjq{>P($_CTq(->;hYy9&1rf$nh@65U&#I)|@PJSE+{EyGw~00n7a`N;Y~;Ov zrEzJTS_;Epp5{^*?vXOTUDfXnTA3z4v|uy&YXyQV55tB|!L6skiGj)TAWg6rXq$jQ z)`?DY2P#ZbYMwg$;T%^*pL8<|=@iw|69S#;LlmjIw(+;OWef9RKrEaTGSQ(BjUg5xl zw=v%6IC^|KDQkqmg$KeNl?%l;RZX(L>AO$SQ z`|lH+aXEulGZOxBC8>dJT0#x;1J>YpPkjN$xi;gCZyCr-R+E=SJjqg|B#V1!BHnr* z7^hUCS!mVC@MLte{W(<4EXb7_{kj&yXnX;ctGzX0MqD-BT>sm7Ba4^uA=e@?^Eqz2 zXZZJ#3wksI>Og8KpK5Z0uKq<-j%l7ohE}!1Y&oWgtPj_I5b*l08crKQSR~G zRNh?~j$2c|@b&2YaFLM%Z5yITUFDd0^{NAavwsb7E%^owwd7Md#7XG836pn>4?KAv zmE%tPpGyLd8w?UX7S$x4{{6U0yh=^@o~sxeC+a(Zl9!GOcl3%?iRj`@c_ zdXtt}a$x#vUcT{!Vjmknkj&*5hR<(2wQ!FV;s$1|9FmV1nB<1OlMK0SnSumGGnKaf@4+tR$`aYww+<+u=+gd)1(A-Mm`KYbTxvu|5ZK zZ@g|X$pwNc4CcKvTx-jb@5M2*)8xUkAfH+|X+Y?_SR)vxnbHKMU&snU7>DR!@M9r$ zT|DP0HtJgi{I{6wu)rR-7IIy{BemIG!f*ZtBD2gwyn7lWjJGbQ$Hw}`O{NiSkLaIa zYXWA|lJ?EAXxeXY{q)(OiSEw!?T1H~c<*ZG%5Ul45g*TfeA;@+JoaKy^a=5!w&u^& zQ*UqnRkld*|YC%|CGav z*whaE(3+vd5g?Jg0NW`dP(v0Bark^&P8Q+sA&0{hpe>C6MMxDGgy;wfFuxk8whz>u z5c4rPfMsn#T6&=K`nGh=X!B9v1qK<2hELz15KrZz;P7Z@<78wZp3 zwrB*yU&Y_7<(e@wfR*!1=aK|tjOMK;XL?(!WoW_7p5t}G@nRL4_vv51;L-E=j@3on zk!)Bg7j?yKX9(zMUy(8a8o0i_^kBN ztThasor9L0fbc1q;+o{6tD9IUiso*!4##WAXIG$d20l>oPmVyBCuB6yp;|ZrXO*S97U_ZT$YdeU99<_9P@^L}YAV81E&%vIsqycopHCnA4Al zveD-Y%E9Pvuu}lNb(Q+8OVoRBwd5Yp#|Id)ybw9s2$71+?`RM$2$`bTfeB3s$GMQQLm+BIW%H&2k0+Gxj`-R5i=FA8w_a>r-NwxF zU6@|OIsV@JR>L{t@`4XTujAd~VWpqRe=bvhe7$Gk*kp1!U?}Ts3{Z*x z+vWQAF@%elj|z%j@7j*W-!+eoWD$cQ?gF&s4sy)E^#_7Fgb0e7I|egg%WD#`+j2)W zXsZF|AcB2~_*j&oRS#N>90)~Rg3yI8vr_}@crW|-w4OJ|!)@&dgx1xKt#3WqeU8=YB-C8R;!h80BQSmw{N1w%su zen~&^+Xw`8+_Ni~Qy!RBUvO07ne5(MHd?5>z-QMIva4jgs%w5Q&l-m&ABHv{Np-a% zl5rOyD&24CzDkWS#!y?ba~MwB<+@L(Q-*_}X?Yo>gEXtl(G#V`74@wRl4L#Rgc3c2 zrGT>V5Vn}k;9|0hGR`wrrdHd(U{xmOC`ZLOIxK>IZ?<22!=+`5LWC@}ICH-W2{msE zNM*5YaLuRBW8$1STi||@Ry(=@bqlbGUm>6Qe4+&6wyC?@H!6eXPftHR_Rir%Zo8g% zn~hu?r>^of)-7}2FxYg}py4;GE{rigZfR2Nf9HXOf`iV4l;O_gHal+Fs2p#swk5nU zZyZ3&ks0MWPKEQRB!&yJTetQ2GkbBjK1F{q!B`I1TMMk3Cf@3P??twmh_-J^gZl|- z&d^k|4IooG*=9=gS{`k6uWp!pZKpk<_%Iu~A;IS5m~n>R9z8^3i`T|gD>Kre&0a1K zwjmG|aDc@*bNznVMLlnJu`>f|?%MZrkCMDca_i3|Edg2w6zN$ZMpg9H)ITQ%S9?+$w5+(~tSmbbO+{GHP_20hIngQ4{1^McRM#L;6f2GSvxIMQY%tipziKsb^Ibh%yIjv<%Le{YflB_#VJpyUB`{|pV3GW2GiZZ=e&ncEkwv(@a??9 z7|m?57BPJ@Wg7e3UYerP%Fp6<#nr*Wj8i)K9F47y#Ebo-Xahs91BvMa+^5j*TNvp+Wanir3&N3_uYLWb|!{{15=#Kx7fun;EqHO{#>KE+V9gFe<6%%i#min zn5E3TXCcIuPlp$3o3Q{U+o1^b3@Vuto-RT~=2sjtkdQ-K4CQC>xU=}0-$l`FsW>X? zZdZscDBgdolF)+JYK*3FAPNGgEvLZ<1l?qU3>`tbfOz~Y9LJBwR)Y`|)_N-ia=eR$ zI&2?|R95eg;{5VaqfTCL)0zRQZ^qNSO5bsudaBlzaGXhai7(;i?V0^}bZZ;!`f(bm zeo%@Ks*+u{_g>{oao$GA79$pK%fHrmABu%>Zw8_~HAYHlmj`tFZ7e4p{F6?B5OnY> znD^g{t0%lw1El*7!Stl+=g%QEkWLk^Up!w%go=Xg%5&wo4pjX*zFb|ex zCg+6%w(Qz}AF}_}Ba-05u_O%DyzTnW2s4XCOeZoEBF9hd2uf<0FrvS3B?rc%Jh^y; z+`$mPjBUOs>us$*=KtP^v1g{aG4GlClOax^m*}AG@)J0U`2_ZQH7)+RU_7GR|<<-m6>D}-((?zzf*-7q9`+;y2mEMs$`VgkO zj~XNMkXwoz7U5HfU`|(5150<~Q8!)?mtmtst;;VHxy+Yxfq6OSl6Z#liA0fw`si*? zti~@H<%OxGw(wHc#nGUBij6k(qp2ImYp+O?w!fQ?_T@UJcHY%D*G8o0Yn*MfIa>Ed zN~-)$X9|WuV#{MdNG?T}{`0}RBFYqLMvG}`t5Gs)VT~q%;pMiIAuzXOWV3}yBM5`4 z2t$mRvc%6@zgiSMZN3OBrR(0}#CUHm2MeY$e`?3Lw?%eS?g2A$<|PEy8VWOtxpd+E zm~)g2uJP!ZH*%lbqHI#Oqo#`sr7>$Yq7|M9o4%$F{kj7_;%=9%;Y4MJts!-9=QLKO z;(FV*q22i0RB6nXo$kajK8w>gx$~sJ*Kn@=s#uXed&1PEC?GB%#SW$0lOwn_v_bTkUyiExxp%Il^S>ksVHu-lOr8YduMB^&)9B` zoZaxB_xRXqtL>?gxpvilG?Sn3f%Yc8gVu%0IEj9zafSVq9-=At{VEZ}OL0fWZla6k zx+&uBc8g=lv|$BCb`Ne<&0_ankq`)=MYvcUJlGL|U%kiLorK-{(`v%o-c0qE=U-Pc zTJQM-jH4a&T=grwR{ez_@w<%XLbS zI|}+X&wQz0b!kbvsntR-LwahnQ##FDG9Xr*MdFoIX37Pi8W-ON;wNKMd8)M48yuat z3-v@16VK4&37NnCFbo7_S1f}ILMXBNPYS5@x|mwQ>?#^++^OPr*|Jll-!9xyxH=@` z>S!Q8b7GmCi-{FM@a2(&!3>%?q|AjX^5q0p<@7NQm3ZV9K$Y3s84LR_{nG$na}5g8 zV~OhwhA)lVB1oYkiH(qMK~|Cixb`vzAGnK7c3ebHB#2~?G?J4K95%qr^t;Udyjj}S z63uMoJCe~K>9c=Q)~7WRc_@k|9{4g#hDQ&VbDNt&>RyV`lk5k)Mn6<&8^L~our+k} z)+cxkLXp{1sJoJRtGf$7EAb$_g$DCUQL6G3K12>BDQ}*oFE{d3I!xJNI_@|yebNDM zYSEFnl><_R=@;7XYgYQ|W!axV1a5Gv~SNdE<-y^D$~- z*d=z8LnX|ZUxFB4T7dd%M$PobRNPXTd+QjrV5@2Fra)ZQ!6Qya>BDpFua~Zn=wV1u zwF%u4-_^L<1v-xB5@&sl`bs&YmlkT(kD09nikw5Ptgn!w^05cy@+~P{4US zY16h3qN`_7FJnDgokV+r^U|}5*Dei4d~~bJdK?y60s?7Kl)*G@*cJh~DgPg3-yKhN z-~Z1!$DUc)juI-eve$`rh*CC3glyUS9Hd1wWM#CFGO{xd%E&C)vna}*$M$=j>bmah zy6*4qd*9zbuE)dW;=x=aHvfY!mt6Q#zIMp|2JR%V%4v1i9|K! zw!y`ch^q9VeE+GsZiRd^&!}Oafi&_*m&V<{dg>ILjY)CzANBrbRdiG3+e-49Qon)s zm&&_5ON~W$yYqTD{MzVoWAjDAG;fcl>hI@aX*p7U_?R{!B5<5u-};cE1N>alxjrh2 z-F9H1WJC#TBWB*zGd{es-4rMMXL-Kle)1VN`~;3snszrdfV{~lO$+8#yu|Cj4wemZZ0Fk8-)*< zdhqUM(pS!KgFgCUbKr&Awx)YLG1;QNw7fNCSC46cU6t@_d<*WEPn-^C&wct_SxW3) zQfu$$M@cg^-f>GaDvh%mpcoY`efhMAP<;xyD7~*DBn%nAW7iXOt_|_g`=%`0Uf1jD z+~Uu#+~lzm(d&u{wgTYui1U4xI+LJuXo>}<8HodR&>L!(ba1A3*u%Eq2aqQO_`WSn zb^mnZR`Rv=tTp>Dk@7e}O&o#(@*)0o%%!R>gKRS4Vzvt}`*5#&hA+*z;4Sf+j#~M! z7>W&A45`w|tS*G{b}#0l*HOQ1-;w9B*uHFsSej2KgdO?|8s$tMe(hr8M&#R&w%Ec{=rULh$W*4O&Y+Sq`Xig*)Bu?^^w$^3+5pcvw2F!^vcz zD7@HtgQc?Kv+b9`Y`950m0NcEqjq`%5VT*rC4J~KI2HFj?dVc_b|8JOvT}^Cr%~>1lyB3d-lN{|%s~2_jQUD8>`9M~ zG=L5(O&un(n>N2IZ|ET@VQc@Iv+4zzpBLyxJdSIzhX(gZiCt6=G0{O~HxRc&C1Nw# zQTBgGDQFrSF~|N)DR1wRDW^{Z?)AWN#SaS{^n|cq$3LMzSbxB&1k%2p=mC zK&$o_9?Zp(Yl(WJV@_Xwa{&ma`1NIc*(_z++3Pe{OFLzMY`N_x1YVIZxGl)(ENZ!G z!XNzR2zR-sK-tC{mDbxn>Sgy{3{Bf?A9|HAaQ$ngJTY)^RBhH|XuNsL#oLQmKUh!S zbHmZ5;g)i~)=c2gRrT(q!7cCEKyQAR()#3~V&|TdZ$0T>8u#!$OsQvmRC_()jis#$ zhgYba?_}Vx@`Kwt38dqIdP)|2eh^&rtjha2W;dJ@S@e`g!_mjR`1h65wRMy{zBuG` z+dFYI(79f z7pD+-A;OWe+Bi{!AEvM zYPM|nh}Y3E?+*;OKTlVO`fBH1P}R>|8j?M7cWP{cvU9F$+GE12J!+zB>k!o?ssPHe zJKVCguyyM?#VzM}1G3;#m{jR-Y8-9#J5+#5(?%u-atITUK3kq6@wQl{tvVgPmNqr8 zUa{{Cq1h9e>vB8p5Y%*0g6= z-c<h(;W|dGi>~D?rtltSf+jc1J;$@8*in7ZN@jM$ zQMn?g?G3TltJLXvzs|zLwl`6GOV4T-J9$LC^Vwwo5a_K~Ia3trC|_Yq^of|>+g~>~ zEtFF>XBbg@moIAG+p9+s90}u?PmY8#;ry00X59@U;YUX>T?b^g)RV4deJ$_ew{iNl z1#;~Kve~NHCRqowpZE)N1Y&as1R==*GvkpXph9X*b8>eC1UV<4N}u@yfBBD%20jte z!Gev3pV^<;04gpPYA*c#^SBfIc$&vF@dpNT_e@bMz0>!DDn3nSJxcgh4w|G#4&!?T z%UALN`R4R~wG zdu3u9wXBhQEAt+l6FiPt!Ii+DBh8#~1j)k|tL%+o)4mpsd4{<1v4=b)IY9d3v89?S z1bx6|yELwGMx*>&zp~_)mxSt2!o&y3&}77Qrv61mdR+N<^6G&ne*g8OX0|}F)WzP) zO#TOY_9YRMXWiJIdEp>f;visriy;jNx|ejJNl@+svKDa0-pb$exiHMOA4iVFSp-u^ z+mayqzGA97{L8ALjU2}wiUB3N(!x78=kE6NGf4jxFli7)N%yF?#XVFvk>jZ=^*rdh zvxS-L!ra|M2%{l9KO<%4FjWy%#m*{%pqJ`oGe#(0C2NZ9mwW8z*&lzXz&@kz?NOW{ zXuP;+$_@qfQ`)2Kb)B?+q!UTU<0p=S?_mZ98fCJ26PNucX}N&HpD6SYf;f!)a zt3YtiqCJudv0K7V;`s&(H7|LxgQ7bnh(Ef%XUo{9=vHIiBt6;#->a)G6mtgtuNX19 zI4SMf9%qSP6u255lItAVzPH-GuBj^H1U@SoKW8iQg(aiImmZVCSV0-)t6 zPJ`tOXp2&l#4JFPXC4&$Qvtpgy^zTUt+AETvv~e12^!~8G340ofPTG8U1F)af+M3* zfhL_or*P&KIJZ$;;6^~%4A#8gHl?>+{eH!*LI-@!wa_bpcbQQA!t!A!7e|1Q<1xukLAolRvHNz2b-k*nB>P zaE%VUjtJKU`U0=k$X=dg10Ej*My^GY%@OTFaHZG`wveWgOGd8${Pe$+uw5wHmy@*ryTR4S2 zFWgTq|IL9W(tBo*?$b*um3dVA>%Fs#gaME>-eZ$hcCl2*J3IFHVsadvb1zh%_mtboRZF*Ru|6>N)jq%P`*=9454kAR7e=XE z(hS`+poNzt&!OP?zOr@kRl=U#l2%=otFG8~G}^4RA-3b-uV=1=fE(s8(VN#x-b6~B zS%|Kz{BGgQSR0hDpEit+WoVH3V2gn%GT{Y>JnP7;&NW)_>?Bh* zznC46?>*u9tBU&hC(&xfUqaqKey0GxeeN#lGx(BS4KZ}9D<;?#N1Wx=YjjALDhAV1 zHu58`Z-$(6iN35UrcNer(P?%Sbr9H4%1kV@zz z*(*~TR@BUnwB7AL4;q@2LSaI)%nK8H2($RD+7KCIMEZ*-XuywiZetdvLSF5AlPAp! zM3;WN;HHSh@u1?BJY8e@Q=SKYrch@7Ad=GKuD?A{RJ8Bs!+9;?`i)-FZI5ogFkw=c zSL-gZJG-#^gRk}h@TicuUi3%J{PzR=KYljk2#njS=k~vd`17~@^^P{t(S&E@oriZe zf-+AD_UGF&DS=B5j3n7WHBOTxTLl}trWd&51k`AD9QWw$8F@2~(@uo*6LSF8B?$AQ zQo})C-pZjC^4oCYCYLIcvA!Z%Jy-Sx2l1q?%+no$1&M4`Mj^0bvp7%U(XmsA~?=z5t}^X)V&^8Y!LBc4&|-g zR5opQ67%d{zCK8hjJU-P6jsoWnw~u~<*euMudMc1&~;m-{Z;&66t~jh!#|!G|E$E= z@z#wv1B*g@w2FaA7I*s-irnDfj8D4D)N=Uq>5exQ$)eLHDb#j&VUWeC$kGrqx!%1T z@iP*m(g`sK2?K9PdH-88N$Gx5oyH=7oL7M?01$ifgR%gV|Kp+l|F47TL1=g!RF_Wv z^IIY?z+U(OtHdJASAqCf;xqq*M#KRJlHPH;d3XhniRecfM{!A0T6H3T3feT2!E`@O z`?l{_&Wi>mlE9s6?%p*qyZK!N5++abyY_mR|74lq0RRKbk&2}Q7P-^|p1Z--jZhg# z$j}338YYq(GgL0;>e-#$lXI#%gzz*9v9*DWm8jodDY#a$8!I|j7l{GgH^FvHe^D_9 zGcQs098EbzPw&Fx>y8am<-VA{f}xxrmH$dugh*7W*EPknlyM!_*pc6mCAA8<`x;_6 z(6-Hek=OaLh8J2OshhUEZM^(b_8(dR2R@w{qdbzP!}mirGH7eHxc4!#{pocE$H;B& zCB~m2jarDD5nFt9Uwal$w0L3#Wp(w8LOWlMTWdV>uuJyn1ZKTipW`pV?|=UgaTcxv zo*18T^dD~yaU2b7E0W+lhnOKYWTxl|&=W2LLsumy#2CU(z1Wxl;RS92G=h+gr3)A z<20;T%2PM17&G6H@&I;Mh5^&+miNfo_%!a=zB4tZP1FxRzI^l;?K;I7Ekpw-t>~vZ zZ_g2&vFDGTBX*Pw3xj@tB=0IhUm=7t%*+7E`C+P8ZX#ANIv}z-I$ma@%CzsvzmCIy zic8eT$tjLdj;5#mv)8(TgxgJv1^!|WSOI+BRO0~C0uho?Cdhk^hBB!^*r^{))$e;I zLBYAbJYNs_q9`{Q?v7^A2RE4Y2WvZo%U;VHGP{HCM( zEkTy>P`n5Um>mAxrI@{H)N?NPES>4mNm8|5sea$M{2i|PC5=?l?G89tO*lnaFU5RL zeX+8TVX1Jw_|apUv==8rDJ3o2!4wZ~ZXY92PUw8O;!*Y9yZ5|K()e zr4cisgb`%u+mfhPzcOlwCffIEs)f40bEsgYO4U37Yj|X}UQmp52?ZxA{*ak#cXjvk zajYiqjb>B(x8NOjlV#11&N$`g<9%C1hUB;KYc!XynpMLtSmQ#q7uKBmr?7W<_4R%= z^M6*5e;$SZDJo%>Na#zPXas<2TIx?Zh^C@;e>)cyb(3*q}t8)M4 z6g4kZB;~42pz)bGYDsh)oK?Ii!3H{%H?&R^Gfji^~4k?mtNbWJqIN+OJalF-GT;=$; z#WHW?Y&r750e1RAJ+40?t^aflqA?@1LUVDA2Jc22k{>C&Pygqr2QMsnnU*lhG0aCn zVaza^tpZkZhmYu`SOJtEjG2>XRnq5%`HLLhPh9Kzq2-BNWoN&26_-15!D7Fh^-Kj3 ztATl1+3L3pO&880h@3^}#`?zQ>#>-Fa#J72;xDaT#Vrq%?LHaLlA%iuZII7|V5*N> z@Pp(1(Kr_r=f(HA#i#D$U@gt#J1(5T31hwd1M~5j)bO1(-xI~oE3CkkvEY?LU9o2IGG#Wc~qF-8dY-m z%qRjsok#7*q$gGX`o*lg(8#ZCE>sey6XkmBQx{0&h8q^pJ0ouIMs}q2qMaBy;zgqP zgdSfxpQ;s4D4P+eQWNaF_|IJYKV6iczlJUwP{l-pGBf{v#h4%CLeP7y=hyBxX=m~y z1woR-K?Jn`e!LhU%Yvz+_ga97@#A1rYcd6>JMvjgc2m_wkV{`KT`Q7zLY#g;Ru>gz zjvH&~=B?Prxm{{SHMiJCIIG?pPi%VxBpKLp6M(Wi;~a&kNmsbaQ5QO6V+39#*I%CC z6;&+{)_+sjCfBaINPJ(RWl+jfgKsYloF*)4!sJw9iW9!1lLhzh5Y@3C_M~1oND|t3 zWi*<8EVU~kc!yqQsH`}0t>5BSl5#N`tQhddraw^x_;Z;ZNDY!~U$li3Rg}-FrN7v_ zMQWH62E<%ALb_b@r?KNY$|H@<@lfm%q6MLVnZJdJiM&kiZbZMciJVjBNJ$4r;bcGB z5%e+M@*7CED?bOEcmk_}8zN4%pHdyNH*CpNANj1%WBT+sp@K+h9)DrapI7&PEM@=t zc9>6-CY{gEp7;FO;QSfGoJFC`;#pYTdEU6mvXZoyOc zgw%$UFLG`m&cq_1q9%KHcdt|GKub~IW2B__AuyT2ER4yUtan-18uAq{H%Z8?-YuT& zBA+7MQ;^av5Op06#KcR>k==`8xAUHyG1kP=NwUrKyG(D6My0!04s6!$smU)?ry0tBeuMXu|N?E2MnlUu2yBw=#ekOFB!5Ok!v)8F9#v`-sg9{hXAZbL z(Z8Ehp`G%(yd87ESA&~Ba{$^8vHMWZBDYF$ARpB7nULw z4#vvy2I5IeLaI)=Uu;vz*$*DCyc4vAgAEYCG&tEfI&Sjm2dz;UmU9|b@EfwmB~I9T*2HICbU16DUwrXo@;iR@%?qvn@JjyGF}_tNfA09U zs?AjP;jiENkGhT77C}Njf;;G@KqLGu$fjNcCEX{mRSnb}0np7K3)8GK`dskYjz&^+ zrrUy?Qu1Q9Ba(2);*Jlysy~47WD-@p^ON#^D-(LS&lj~55%kFi&)0d?TyEIg4V@H0 zvJ5a+2zk^OU!40gts?gMU0?4TjKE1DFFOL`2gKpU9-gvzoZffyD|(Gr=w*N!9Ubp(d}sr?N6yB zgErYa)GDEP;5mT$sJ_{E>yPLlxM!|Ko*>gkhNJ|n{ixcx3!0>-TY%!cb=dQOr0pHm z6upvMC)PuzH@fT#a#6g{1-^5CIe*zWzmDK4B;nl5ygQ4{f7Mg(mz^c2!TJju9lrn>_-~^k$BkJ8jf%|z zd(Gac9$D?=sh6_$s{eSw0V02vXlvPy^S;_9+NC`w?~f2~p4w1`)hk#q3xQ4F#~=+l zAHOf-M=M#~cnZ}mc4XxyOG6@Y{mbIo#VoR7&5`9ZrW?)WzJwdQibkD6P;!oWI((_d zvfxDR5Zk#I2p>d*KM|2{+h0|E?6%{`k0kHDJC;+tb*-1^Pg-&wtTm85MKFQd8xOif zU0F!bLs(xvKknipU@>T$-U=%lPZCs0~TGXEYEzIDOh-aU;yszQuWlmSEmq&VjLj}}IiLK`G! zcsum_VHf^oBE{%EDyF_8H3}GdDtaDOZkv%}?5msa#UKQseJGk&6GuEf`MVeTn&(F` zMUGyn^5!Nv=7WqqoaM6mjsJ(*d4dk2*pj+cr|#d%xK#sEhre|}!Fz@mWQ8RJZ5SUKsAeiZrkvEKjLe0XifYMZ-|I52c@gcfW%=WR@3PJaw|pcgqj=Sn0(%avD|y2&;X{uvAvq$kFdR zmr5t;lel4?Q%O73L*9{$gtYv|oyxB<^l5-?8$#T;=S~v6NzkgL0=^H{J75e!gzjJ{8?X!H3Sj4-FBifY?m!N$dltdWoBZWP@+=c%OCpj_86n)inD9N6 zX-b+^#C)+}aij)(Vf<5Vv`1Q%!M+X$XWunW1D!+sD8n+Bj=3jP)FG|Bw7o#*IuXqf zY)!R#U&P7o{d6%B*jlsYRrB~*Kv zJcLpWwC1$?#X!Jg2rMO6-6lWquldE1C5+qJb&fC z4p=0VoyDh_Er#N09=-C))dZE^p&x(l^!@(d;DsbF-(nD27}V26cOE+2boI+yngDQb zeiVN^a@)k5NczJ#4BxP1=r@LAq$Th1jYbJjand(3Ub&Fj6VKPi zNuRMF#H%Xl12&}q2F`U!VOS4byNq@jT6JK#4>ns@c7`Sty|Wp*$NU)iRqXouH`9>8g;LLa8$kov3k_7H@zB-*O1pr0ifGZhOcygR{LHAB2HH7= z0N7}^l5ib)BB(jFoEDvxdw|1=oUu=@LWzJ^k+!}uZ;$v934&VmJd^<|@mt&8la%1u z{OlB~?mK-;(qjvYAbe}_V$PVYDh_pw-;oAz6=&b+$aDTFC4pf7*SXg}^25Ksy2pai zl7}-N|HP;NH7aSlcrJM4GKu@G2tDprQwA?QeI-Qg2rN35mXo;ii)M7@te!sN-Ojij%$ zIxc{nHXeyFz@3RDiKX1zhmYWz9wz$F_6}cvX%PC@>%db9m{L*p6(XU)16Sju-E`~- z<6_F5c+-v+iq+zGRf=ADwq-`SBf+!Zt+snUrk{Ssc;K}fka(>KEo}E8?0~|^>w0Kt@q3QJTzSe<0(j|J}4;&YHI8!{+1d3`mq0Aa={B8$b%NkC0_U7zkO9OwSJ~P4aqolWoGa; zaE}vQt6!9W@ue;}8U}#5R!P8Gp8BoFPDl07-p;sc+9~EHYy*fhW}A}FlpsMZ5zs-W z^q8uhBEhRJ<>bI{XEVrt2M+_sBI#RUH$3E}+h6j5lCUyC-kdb6B6iaU3u!2+aV^lWNQ^_CckHE2 zkNwy8E3>wZEU@XZbKosuiiTAfn|jJbCs}1JSYjgij|z+>n&63`;~Jcrp&<`@H6B zzIMc#_tUlEHQz-T5#bJ*;rg8+-@N#lZxGsqO>ZiZPxCL*VXA?ptVO}{dbq0ERzZcc z*Hm0Z>&k#T=Jh4~MP$tX;eC+^u%z0olUBg@ZT6J~Yl|$s$-iR(LLRa4SJ?gxvU(i`w`#U?fe5<}X=h{oxx~M#$W!u18ssmfczTc;MoZ ziCHl6Dk50TsRq0SKtEuPfLxK^V^(^jD|K8$8@F+po&kW;jX+U@R?6#gc4R24>uWu$ z0d;o@r@z9G>FIGZfs6XUnCDgTVTR0^FGW}L0N;b@Q2JdP9mlooApvK?j5LPiGHEwt zuoP`f3A|2{&rE-#Q|L4Vw46r{nFn!Uar{)umr~Eygh`n_9okKc*i?%QjVcJtF za?!(~)sMuT_)EtB-#(ql3@?Ny(K4$Pwlw&CIpb<6Ww);d4;8kwY9q;M9$EwF}_1tlxzw^~Jcci5&tvl3gq+Y-YJr==5 zDnOuZic+N%(&nC$z3scUv5W+7Xds06^8{&wdc{%rg{u2Ar^GY=Ad}!F;ZF+Jo4B)U z1kHX{?Fv=q>YV1aJCkRAQD!PhI2Q>KP~#OfVu9Xc1hbn2$JJtX*6HHpC0r+i*AD{^ zc5cwy3-_>Uhw>H&MS>hff;<)NZpMMUm)1Y)v?I9gHxI>;K3Ng@-g8!8-;>#z6HmuW zbJ{}J|Rl0 zXx$t5Dr~}9aX8q>dIF2FtKSk`Ml4zSs?Hysb+d4HxgMYV4CFz)1iln}FYIm;I@bB( ze7(mfhg)D+IE)fcc=j$hJ>yk}nOu?cnHWS@HbtKG>m)1_Kd||bki&G6BeJsWE8y{{ zQ#e-*db!H^mfN+HDFknSGqF`*LJBB*6;z8&(SydQ)qMDb zqJ_;v`hb!&PU-;Bnv^{2tMvks8|7Z9{K-)=vGHsOu9E_f-orQpb&V|83ZUfUcToI+ zYz^_O4T;_6{e49Y-*!-hO?Ae&ohmHVQJJ0RQmtKNEdd$$#=qrw897UqIYceYs%&y!(AkZiqrt5X7jYi+h>p65<%U|tH{6inG#qxH_+IF2!jZ}@7OMIhM)ls4#Po% zRbp7hh^H-SLz-`mO;cjFY*vjmuY?0sDk;o?Nkq?mm>M>;o!NC!r&^jdXtpyph#SSo1$<=-9JZ%pdz7aoo zrCQ`u!o8JLRMAPdrYwqkWs+Vit=tkRj{RL9`4K0nUIZjC7SrE>k`el%p0Y1 zSa4Tlyy4%TZx?P;#bMS)?am*5rpH*8K~g z{R+D1QiMv%{1y?6q6m4Hy|Ap5vu5R-gR<|27W#&7s+xGW@Qw-ldlB^p2CowMl4UN7 za)s{qrfItI+ zbo(U1Qw>!A4|LsrxHUW!)Ej4SlLkmxCra?pQIPy}o2?*{^lfUu7kFAFxqj@h%(dXC zMeCB_l87>$?AxCHU<&HCF(JMma*qJpCuL ziiA-4zR630>pkw9jrZ$qWjp`QnEtn-`|n3Z3Gw3!7oWKJ!M~LmZ+Y;l{wqM=5@4X~ zuzc6stEQU{A_WxoAHI~E?mzd;RpVY)g1Iv+)VPJPfS!}D$jR5>fF-Q|{@LkwAKyCJ zzJEXiNUKNX8LPSo(ptTCMn~`qlC`vZks8R6jCXCQ-eo@s;s>otYwN|r-^DJ!e;}%x zis|`sxp(8O7X9@xwir((y7hU1`(|ImN?MYgLi>TEvogJCMP9HUPRvCL&V}_sZ)nm0 zMv@fttQ<5QDwmu-4BAXZp@WV0Nnk3DT(T;E(+LInzei=k4fq9*%U}dfrmXHjdx+dC z4m2=%P>rrfz4To^AV!EIu;La<75Y-`Zp=!Qx+7-cCMzLI9YGx2-FvSnQr+3_VdYAn zL#qZ!3z6oIDScEu>q;7C(EGBhCqR)k?_VhYx|w(kv#tp@bxO$Wdji=Vuyequwkb<8 zpZX(Fr672F!UUsj=tTws<#luTfw2Y1h58w{>7s%v_pB3+DoVlp&`&b1vhz6XxFqrN zeoaro5r>eVNtXqcCOJ2RUB^~x}_a*p)z2t z{rQ>Qwq-3^vxmYjH&J8IoXW;3##7&`f2r$>rlO_n%p(J$4v zIWXF3;MB> z)Z9Mn=qp?6k{f;mFx{Q{=+8A9*sZL^^37wh{@vC)v9xscP~IWGNpaixbgi?&GbZ%B z3hf)yt=qQN8`<)G5)qEWg%8$hd*2Ra+m!YT8H0mdUGMPMZR&K;pu<)7gUE#2iuaq~ z+CT})3#|#VO}*Y*pmAOs(&bV#%iUX9m@l>U8<#4%N$|bjun1O+2_thqVQ65@TO#;M zm5@j0vg94k_y*b4gwcS&Z6(cvlQH2(9a#RH<>X!T5xS-ql zi}IVwGNPCP8YS68vYm|-r&ymRcl}D6OKP}da4GW=c7*%>p?A#3hDuqH8=MObx^)2iE09NB)|O_k zr7Up_yuVN@nFu@lq2vlAt+Eh40q~0(_YGH*R$1t^O?d~M&7<)We!zY&DRObN=UQq8 zfI~y8RXDSxDItkphQ^snmfUT6tu9jJ}CYn?1 zePbZgY%tU#t04DLtxM$%KBmmT1RV_vPXoac-&q)*4a6qt?hC4X#A*G$(Lbq`m3)E8 zeLsgpIL&Jm)Um>;hcUEimmn6Z?aI(YrtyW+oDIKn))L_onAazoC1j?A>kt0QZUStC zkhP?*vj?>7_^=DON5j0^jPa(bW33DwaVg#96@FQYTwJ4(oM3m+d0}t&)!v20 zLx#*Y!?*D#$W2#Wk6B?sKCo!CvRB-#GHU2{*swQHg~i77nOWkZftl6isMUxf9pfV5F-&;fwt6^JQsqMEiu;gM%Lo>S&J-4gf%GV^2j z$F4W;c|NbE;NbV;q>EYXHJoGedpc!}0ILAcJ1M?FVWDD@OLxc5Dd0%W#G~TDSK?Xr z+&?^pxk8+FQw{onW^}Eb_tT;W<2(lvjwTyue`IZY)Bb+zH5A>#$tRV}dAct3gv^~sTsK-7xohaJx}R!SY4(}OJu!Aop*AIqI=rnD%g|JnUH+MTiqd9u0S$*=R1U2 zRA^)1Q~KoV7(%WB#rQ&8dsQwGdbB1Z8!*;wbr%l%=(`E0S$T4eBmru|x;`N#_y9zD z7Q!mJ#ZN$^SeraKSXMk9V_;6>uj0SrXd5`=P7)g7Pjqd_y$p>uk5?6BFMd`(&Xpb% zr9x98t|oW<%P1df&BSA)Y|}R?G%P}M@WX1YYIduF*2Dr$eXeCK?>K;Yrp1+DDXowL z`l&0W-C92PV8>Z1nWV2mlX*T`Ogkl@}I5n<3C&E zIAD=0lUS$Zslwl}?t>l9+3FCAq?O@8Z*jBIg8ZE? z72z3EWydd*E|dXl`@{p1I6Py&SX1=^9|*_z&WttQPgb5OsjUrU^_I5mYTXzJd<9qV z_~qd~vmEE&=jJm-$ytL!d*$@V!=bie6^=EWNkthT{+dkEX>B|4>ET5f#~QVwj)zys zLt?VAsGV}$RE8^NR_^mU|Bj=LNC!Rhm)%1Q((dJ-qrK&dxjBLp`MP?#bhUI^gUX>%IYId9`6jYdi|B)9iA!VU;7fRac`_m73yOcUqmm z-5_b%RWVxv^!p(S?t?Y_Yrt+%Y|4H02*l;7S#^MdM&BT;#X)xr%3+DQ3!XCrz57#W9(y=u8yTtiMejSq5htlV zHSmTN6nwAKNNIpm$6bK^;xM{X{l&8n4{Pa$EpCIbjd?LYYuK1dEOc3u<}&y@l6;Dm z8V|DlBhQvYDJpq{%?G9*^Pnw03b(wDuzIP_!UrNAk642q{&!A=L+RAYBd4MH5-4|t>?%H0L@fUf! z&2fse6wh?{-m;(j@T>VBqxkqde_Wy~=enYK_?0r4_>X#~O&APrb{`K|?lkBdripei zSIKEOgWECJD4#*9dNbPWuyLwz+I>Wg_?~h<)n>|r;t(g1Qo)o&&V_P&jVeyLJ6T@3 z>|U#4SYdZbdFO#GAHn`+39BXF;+@FFRw znNqrM0hk_pkN?YD2ZIROeR7H@ZXf!O((ubkurx5UX>xd!Rd(c#vmTU5BLiCy0SD3_ z^*3mc4P4{oXt83R+DYSKTIQ9tsPH6sz)40yWb^Gvos?Cbg8RPv(xCtDLh6dZ zhTu7?P6JUAhqH{jt1Y$&;%rH}jgWN|1*0KboB-RCk*=JxDQXko&};qjMmOj_RGvbO zHtXtee{_Myz15w*^_4SAi}T7Lb<{+VP5R!G>Q)MxN*x>bEgyVHg3cif8b-yGMaKI+ zp0VGv&OJN1i#2499`+en20Pzh;U~eB)MxTCCtNUn2M4p z))L>vClx6sHVbOIp$T(3UO&dl-JUW`S!1kW#ZC3|Vk8f;c#wnYnoOeg_Tu@oy|@oi z>M$POvv8H9s^)ulBZ{8Z)^OSMJ|a3K=J5S8m--F8UitYUZ_i=>{H>aX6*I^SHv#F# zf^IKX@r@eg6PYEqkW;6oKRmroBLSl|+qFH3&IPmFF@ci}T`$LfXC8u&tA)5_%~Cfu zS5*wum}&Zr#tJMzfhuRw&!hhw<*BQsdM4aP%I}G5nc_~)jA^lAMqlW87v^f2o`M|; zHf|whCk;EC5g>L#@~rR<3%%pccM+ad%euw(-`p8$ZgNIDKt^#~$Qqg~>GXBWx?osY z*|D8fA-u|%QQJg5zx@P9aqNgb26fQxL53lX7X!DyL|mL*#6G)EJ+k&JvX^GL*{ybt zviTno6Ya?ryb%)8qwBZU>T<`HIFnZWM<|mS@1l(MgAruS}s5Z{4$Ua&GX`&5NG5rN)pUm~mwA<>de2 zL)~EN!>`oK-Y0AP{X0a3=RTg1V6UP+|8j>VzVO!5oU7+93y~?_wmp|DpgD$rF8loc z^N`!8A2NZ##(9{>1V6NGee{B4djL)wdcxiXTJ?Dix9(A>n1oU1=?OlW!XX)>C*AEN z>5W{YpB>3jmVTn2pcYtK=@o{0aRUP~WuDMSP2Og%@CFQYG7-y}t7}=Y+|>c9fZ1Sj z$01&pK@(huxB+PILqiXp8|#VEmv4dL+{H`VU&;-|7ZBYLTE}z#Mn{X6!r0>X;Xi@(+V{{J-B(7OTn&laKGHSv!w+nlGuBGG$Hk2s*4lzkTLkS_ox>FjT-9T~LUX0W`bUg`{X-pB z8E_YTMkS!nEP7E4@6pn?Uc>qEcD0KA>o0ez?~w9kY_FHuJ+GJD6^ExaiqD82_3p1l zEW+o{Ugy1f0~`Xj=1fYoAotTqhqjc*U+s9(mwl$A=#cl*a`K4se!-D_%SZ>Kl$pJ$3MLMk*8HArQyt*mDbLG0j@GpoPTD?lJ1+e0REqyT!*Ctt z>4K%anvWWMbm(AW+3@!zW(u3eVSfLq$6z&S6VeEihzqN}bRyu(J%&y(HUev_Sm)C3 z!YwK47EG#3(WJ>H>SWWExsht{vn#&UHA)npUIXdM+ux-0v{Kz}pnKsZYLYe59no2J z7RD-pXFy>cw}bUSxbiKRU5)i_ZOk9892qybv#_x*l95s>xNQY8{9%X39}&;qr`->6 zYMxZtn948A6gQxF#M>}RNSf>H_8va=x)x7$npNaj=EcCm3l#Ke(X{Sf) z*yk9}ds2U5MKI!uGTx<&T6m@SXS;f<_#|{z_&?~{9u+v}I)i$VclgRV74J3E%iT-) zZ3k{VdYVzUMXHVVcOzeD}ZbSZ*;(ovwj)8I^n|A`mZ%a-H@ za-D;Mdk_AMiW%yt8U@~>TReUoa>3(>XSWA<(BLoa%5&4V0SOC9oT zS!ZUAEGe$Z8M>(tr)=ws?aL>uzdtzY<~b}%^YduF7ak!etB<&eMEL1uORhXOF4E^b zDU<9Xq805mtg6PkGIDmiJABTCsdv$uX{@u{w|DaLq5mR0|0{kk#FOo52vAe{#PGMf zkimgap2`gcyI-ESXR6DW&iH+~De?)tRnW0?b!pLnLdC|wro4}E-|GRJkiB#or=O=+ z<(?8vSNRrar6H-&gnqV>;?;LW#LR!XP-%O0)RRC?HIcHjX1k-gEl z!I`gLe`HhVp{A1W76Z@2@|ZLC2&OkjD~LlTLOcVPW6ko~oY}QbFw$;X-AKqCz$Q8s z(Xc#omv(E*(X>8V&m7p*p~v=&md1n5tL9~>8}?G}E_1FuM6vJ!%%|#yu>6!11gyfV z>MlnzqK4n?wlFPduG(IfFj}y7(==+FbnMKGIaEGZlQ(oIK^_`NW>*DW@J~yJ@>+;a zaPnLpp{ZJpLsM-P``}e1Px>6s?V9T&#+{$99}I|k9&_;?uh`_}P`V4V73t`@%rl33 zc2l#d;awX${~u*<9T#Q0bpcCBDIg#y-94a)A{~M>2#9p3AOg}QF{FrqbV=8c(%q#< zgAO3l9YagZ07HBi&!g}6c;5GX-#LHj9|J$;zV5xRwbx#I?K^{?XDn+C*1k{^dZ#&{ zTBDS<;|Cwq%u#N}{8JqGTKNFq$MN-818DEbz z?V)^u9%frCZE-Y#!wa0c%*yp*_*Frf$gep`it)z0LhmZMhH&ZSTaIJNc}L47+!sQ* zYg}p;swZqjz*;{ctA>NsZ_H>DUF%Vtx!z|OhhVX2A-GXn^7{3RCaTIe+k?l8ZANRM zYt`A=D_)z`8rvo>^t_Ii?nJsE#0-lWh&_%IHF6%&8cV14 zvOPKcDaCX9q4(*!@g3dFl{)%7;o|J;hH_0)1+{UPyr{hB5FiIco<{_o#(@+TDX(1g8WAPo_Nuo7yJTX6{C{;n{OX=)ipiUP%ruW(2EW`6jL2P`_TnwzstALjvYFj{C zf?<0qF?T0C{u?xygwm!`@~P&WnJXoA%ZV5H+8L}GTnD?f)Iod0G$U=vTaMQG@wdhh z>ESkf_GFSp@lOX6GiUe6aNG?kgr^;PAqkButysi;ERl|WrxsJrqy2A$b#$iS|b872o^V}5A5D@%Bv8t3_38!mk^Z3qwz@Kq+p zgV88FLSo|flBLQXu8*dj-7|dN^gW7kT8C&8ixog{H+^LiM_%ALHrfN%FQi?_%?Z9r z1L%iq%>&1)%odAX^RJE)vHTP7X&qjbwSdv;QQL4F?Nr(r(sz}HlXMwlZYAvJZ#M41 z$kbwZ8B^W}SV9OG8Z4k4 z+Ni%+>lug;cNZ{-fKHu&Lyil&aXJSdh12^X*bkES*G9On@Y`ues2ITXZJX|{EB$N? zq;uz>ehh20LX?{1?f5V^KjbB&ssl+kzPN6gstTx|WT5d#J1Y)H;e)`TW#2=1mMh4!`1^mSxsz8j-6s>?zhd%MGwa_s-5;Rp|D(D%@B{aiyZwhTg+D5g zR_rJ|{-d4Tw_Sd&{`TFO0QZaVVs}S<1~}E63D{9k^X_}e-f0X4-Xa3gJjG4Oab4YS zyV*17+cNKUdp?*7dz~lQHg{uVWyeEK#}87enTD79lX3x*r7`WLdvMPAA(sbtZ8$#~ ztn|}$zuRbpi8=H3rLqzu*m_;hz;eP7&7_O>^md+^Vx7hO=b(i24F28z;ILC*PE`mN zmYVtn0-9OKl}!0u8pwvbrMuL#f|Uj(vwTXt)(xdj`W@EafMP)?T9mhdAH3zf))VgP&a=?JK~55Q z;=94z$L3HLde0rO#4?HE4XIeUl(^!ybB2);sM>B`mUx+XRUUr-1OIrXg{J#xW##B` zz!RNMcQ)eAdW~VTGs9vijw?|bpRSuY{#{o3>apB<{*Xp=DN5;CT0*aYj-yT0iSj$- z09j*Zjm_7dc{Bb_=Ko3Jf24frn(1xAoIhSv zUt!hsO1$#0ZQcg$5NsZ9_vHk0ftOzy#7=fTffiM4*!_7tT91vggbx)IAHU>yGm;p5 zbYG#h*k7HeX)N76F^h}*uFI~-2zl$Y^<72J)zD(hObQPJ?=d9?p+0~>QZIPKb|kM{ zDlE3XzU%JaDNM*w!@w^nQVQp+^{$+D?|3Fp$dm#lA`G*DKO@B}<`6qf7kFK2iXpjU zZ7y}*_Onn7Rj8xqz7z{rU{~m*=Q~Bu5JY|Hn0&1>x!dXCx48ZDfrtTNLWElzoiZ2EU$LpA!tfrF?TeK?VXJ-PhT`#P z%c_LFW!_Vqr^+RT+bfZBFl}S48|fKL(#9Y`&3`(l!3JkJxY1dP~_0 z&d50s(8!?p?SRYm(no{xPhW7VQs<<$n~mUf(%F1wjO>pf|C37i-#o-)91NKVEvZQ7 zKWPdaDR6R9G&#cB-9e1Pdtaz+hp!4wrt|q{Tji#>z=0zlKvoTx=S*%9MePQ+9{vP1 zH786qlDG4HByjz4s2WJgB6m1Fcy1wOnyZS(w715fk>JO+vsnW_Ln{qR@ELm5?W1QX z_qT>$EpySo=_Uf$L{((jX4Chc-b18H0oOsSF#KLYbWqYc++<$d8!@S^Zs(RCk9{h2NcjXy^7_97~acc6l{M%jv zRR@mtwrA0ft=As4*w4>oZdy(LM8fi}llF2(Bb+nbcU+72e|D-998G&fRp3Mtx$Js` zQY)<&Y4g0RWP!U)IcGl%-Gy%F(PQt112Z$Y+lsAyHdLs^|Ix_wkh~=kJk;_Y4z@MyCc7rxwEHIAOhrq3nLac$YC*_oeF= zKW-tGld`dh4ID0?qEW=~ZgjjS&cSRnd$OH0TTdZwLl5s?5U`b$q!cge@olh~$x|J8 zm>0j!pz?BE?&E+ruNC}=t6!$t!nHgkDHZzb0dicz92DJqA0~b*5K4=Fh%sF4@^KY8 z5T}of>qwxG5DuqicWaGlLI#iZXJpgXtiz&VbDy%cjfPoPUE+S8ohB^WoF<1=5GEo=I)a3u^fn(Q<3G3+yAU2*C4)DC8yFr zk30%Rjp$>CO#aMiLso+AL=XodiaZ+M3ncO`{Vf8N8GxzF5&+dyCUN2c@KW=Ww<~r> zZsY?e=>q*4n*tm44n3=)Y@;Uk>m&X_tn9ZuT*&jA&b?wDeI_42 zKon*a|ib zCv4@$vO2=EJ>jfR;YTG4^5va0`#6M5#k6Y@0!zsyACXhwEXl;=c z|1A3t5`C6L(Oc9V4-crYMU1(zd7O@ct1Un0Vi$?jbD>25I3&p-kWAnUp#GTIbZX63hkxwd`$%@Q@dS@ z6la*r=B{H)LB$hePsW3FcIaNH)6b5`vGY^oE2(!s8lUR{vcV#dmi%+TPrXMe2T!Md zzwV#ci*T_JGxStPs;z$4YEXPFqSf&>jp~*&;xkq%r@x-mkyNX{ilKc+=rMX`@aiD7 z7u@pWsjT4C{>rWU9S%q8ZB&H;=+e~J((W6#0S9#b@_ev=??!WjsrvJkff4PSA>Ul4 zwCZ=-*CsAoT@;d~mDp@*VbJd&V{SN_zkXk|)Nb|(I;wC8E;svh5n@ld-!IJ{`SAB2 z{pSt#SD1$b;Jfy`H}MbD;w#GRgU3Hegg5dHtOYs%1?CHlE_P|B`8$K6S)k$f1lV>C z10CQ+`I!frsSyRt*fcVCT?+k31PH)bZum`R0Nh;5RjBio;yHr)Ads*t#)PEUYplMr z-6OHuin%Fl2OFGIUJb)#&zoc-DMe^`HCaDLD3Ds%o7z#E=gWq01Svo3nk?s4WSW6$ zOBJUxIK{oa!pR9q6i@&TpcWwVe%!L?A@5!}7Kc8YwrN<4C0XoX5zn*`+B?>{cP-clz4s1c=zdkocQt!;@w5`%fCs4|9uGmCafM+V3SCF=drE6 z{70w_GhN(ycxfuyiNH_i6b4q!-@&#bf`c)Rs&2NVRdBNpVc^oFQ{1zPTw?+DRPUs_ z41{30EyrA2HbXgZ_jOqX)0Kg;N)GstCuD6=+b@O79~d9VgH}AQ{WoB$q2LdpM_Ho93Z9?x<$* z>1uW$eH>VDc~0^{y|&U^T3(63$n$ovkG7%K_zP-_^`hrn-$Q*Sb~$&6e$}eG;7dM9 z)w1Rhdj8f4IR?M3Eg$!M=58jW z{D~h6Qb2fF%Jp3?_|VE-(wGVO;wL~3mzH>$Z1#fbP+)8rBatnj#P&MO&><0ep`7eu zkv~3Jr%qmdyvEuQp+JIY)eKRSC&^R7elZvaxa<0TI7bLrhMo^a*H;EQyBc#v$p}9h z$yXrDe-OwKpzP4~*kvQn4$?=_nU#FFptX>7-{fNvtp8qg;$8jZyA?dY^F08B{N63NYGSNcZ!oANFd4ce_!V+_uPgTd zdNcuwvtSK0v425w_S~m!Jf_mC&WCf9>uVofdyb6>%+hkywDY{}XS&~AgBR-Be}!$< zgrE9TD3(-eY;Hy35+H`;KrHY2(6d~e#fVhvygqSE?3?g>8j*X7_VLC>Ytv#xdNH5F zy;5vX!I0Wp=YL_s{(RE^dS2-fps~WUm?by$XJ+dFSCm7UU6~!-H6SA?u&G<3084M3 zLBy(6g7!J?)Amc7fF`yCf@ivsn1W$)Um?fLE4!bFLzW^ejvKb0K@tVSG0GIKjMY^v zHcq?49ePI|tBet07X3Qmj!K_{s8GF+XTEtDp4Mekd3hOMI z{CLL9v>~+w`dx2{Qg25N#NxwuNz)AsM$O_F-H_PkRJ=cJ{CufSAFcKDzp9@NlQ+# z?~Ge*UuIl1{!|gr>38LoNQ(WJ4n|aARP+0S97?(Xj`!iLsG!CjX&T8-(77$Fi$I;Q z&N}(#&#>mxOzeG)q~-i+(QKY+E$wl^`kE=dz5^q6;2|sBqNkwe0ZxjjtJ& z$N7W_)XstbN#*-Hk|Y^PC9!qi$%P94iQ$!GE?rwBeY)_#O~wRh#oX8ObN{M=k5{uS zr|PSI*T8GDt8}E;m|z+q+MXv;RVa#q+ZY%3;P~K28GI#;GHsNnwjTiZ`sbbZ2Un_dRJdFE zgX5AVBrYS3-OR`(Q=K$qmH1A9%v%n_j}@<^nF`ArBKdOS$=Zn0+Sr}ABx{Nl$SH*` z*01cgMN&$$(2RziovsgvUtddovvp<4DcWf*A7E%W==3yfKFRZV(Dds_0~A13FeVrz zRV6&_EP2^+9gWMlcO*q}Q#inivkrReh4RL>{H|P!ivzv!_O$xhOAHvgVoxZ=C2@Z- z8m@1<9#%72J#}>W+wUb^BktG|>*>FCw(!CTPU+>Dt>AAm70ok>;%_I9A=KmfV z{4=6TSwNQN#lI_#^~Y62&H}C?9Je2NPD0qtC%Z~hB!%V!#?XVcG9a<7t{FX?BDH5n?wh9A?`b^fFNZ5EXLe@s31qn z8cGKdT6LdoEr>o_`e~zCCD|%f9w#Nt@qMg)LSWNjZTMX`X`Yrg0Q9|#npT`Xpxl&1*=M(voxk<8iGm|>$vA!F#Z%I|t`(C&znuAej| z3vzTd{bc-Cu;itIuesc5?Stmq?J2EmQ z&kMNE>x07g27eF}B&_nVue+^=;=ytcqgc~c{cRmV-VS5DVImAdjFNgq;dP#TYkkDp z$LyJt9GA8BCwqZlWaps}3@0*s4+uos{dKf)$Mh~+NWrkIlvYNx;~R^`kneo!i6sgd zp zuK9z}?3f`*iWFf5{a5PAf|HMc`a|)aJ~Ox5ZubxE>8g*znX;3xZ0m+CF2mPPLm&Hw zf~(0*wRHvftr_YZf4I!62dQ<1c=q+LmkeIgcJtE7r~9u0sUY+M4?O4%{++}By2O0P zS#H@syK--^=+k2N?b&DOO~)0*&2fd56m18(5{5_bu*J^~pI=;4^-FR30$_?~6Ns0o zZkhOiVsk=zl6EZ_7khay{!4g#6b;-gvD)-i8)mn|^^h-7Ec`W<%Kd(KNwF=1eM-*R zQ&<4{Xcu}^KOf9-@G*b0BBh;awmKsqqAp6l#pUe8(PFu;Rzf`d?yDP)GtKG+t9wZS z!2?!>k>2foAY$7CBAK5bebGZV0;f?;!F48NJl*t99EX z`4`2m&s5wc$zbvhqmJ+0V=-(`dbfp8_)YWA$e|8Or9fJWZQ76KA%)j}y|KQmthb=Y z%CugGBUGY?nO{dIBt^DGAGyw)qHl3LidHPy4Wws5iPRFeV?C~QqA#Doru$f6J{VP} zlB8H7%ttxt?TtwFcs9c0=t$p7X)N!Bd_C(Mh1QAF=jHpTnhh>6F1FdTh1<_zsOgY- zKo6#z8uSkidh)J*hfK#G8$^B%FVfexm(`*Dua1@B(N~Z-DE8;FcK?W3NjGd7gQuK> zFooNzjg3po{n4u8x3ajtUJ1{lzNb!?fmyv7=uwGEX#!}yn5_XRIZs__{on=0@QMAxGM?+1V^Aw?` zzKV)(k@r6RI1IL0kBPa!g7N!OxFHR%x?}4hMl zH=kjNubjBwl=n_$FR38#(e7w7>Js zU$lZSvU3nl2oO5 zjp(hTE%(AA=8C+0seJNPRw(SM;QRImgbdooO{GX@ z1uJwHGn~$Y=XeOcNhuoXH=EOj8(FlP(! z1f`nUwM9VX^WQcF^HuA|TNU1J(qKv&G~=S80PuhW?bqE8^3c}H*C9>dez)(`8|PMj z=W&(^o^mQriv3%sUWf*23(guZFS7ag)<|yVh`h;kBL~N>P?tttFE97B4iMSBV+QbW z!8O-@VIIXLVs_0mO2+HVE!ibu7p9HH?{F0Le38=6LTZTDqgCh@b^z7#w!Neb>U zUs)ZJfgTGChlx=1(rfEv+_N%lm~inJ+8hXmm-jv_rjz#vU}=#a14Rfb1hgcS$VuqM zdjZE6G^L#_Gb|p;^KvNvdiwa^i0a?R+#g6&GMx+5bA^hDg@k{An=TQ|^&(3DqMm{e zSY}IEG?bQhq z79;X21+33bbjq}}A)G;#H1M(A+acZZ0G;_@38_gKy6>w40x%QyB3h+KKk?|mx7B%+ zQ$F(g=gaoCC5;-wbJ&Rakc+03rfSg8)eW({x28v%l*Z&CjL{76?0}GgwgrP29$k5j zE(3K~?x+s)GFWjyQ4$wqG4$+FrMKDuy(dY<;EcE$UxjiEBXEf7h^RB0s2cJs%Xx|m z7m*R@_~P2kLe~T!U<1Z|60V9X%`6^H2*;U1UG>A48BGDaEuLn#QmPfWZmU!t+_F-Ig@G2G_36BYCU0?OX|9Hc(~LOn_L zrNWg2eU~+syEX<_uRo8)QJC$Z%+^$kefT~CIU~{IC+x!0Wtah1l4_OyL_`a-ZGjjC z4KmBoL#AG5?QeT4c^^Lb=}~p};1jVrUIKSuUrMz+e5EU9yfQNC2Hb3`axn5^39nWl zkHeSuuftp>-1|PfHS-L$O=y zz54!6oad=0|Fp-Ht1*pE$7Y1YslxHPF)QK6|3Ux5;ut7bn1|y`d@cqJk95TqxZ&Xz zaoJ)YTux~)8H@tdw#)))7g6cFGoAC}7)g)TR9RLO0*DbZV&p9QN@C0_q zusUPn-h~=E(WT;=tgj_8e*Ptn>Fb_)%ucX0c#bI#%kCxDJH{rzs#15RdgJfUl#T zJ3?`Ea6(N(9v6@v*6Q)uctPiuA0a$}`$yyDcz$K^TQ_!o3k1UH;3C^GO`~aEdV;bt zX4}>ygH@M$m{j(}W-oR7mpsnwO<&_~r}|X_93=Z}XHTWYZj}s))hH1sE-Xsfdm3AJ zCscHp^FsP!S0m^~jX=k1JTxi0p@xCZec@CFG@sp34}=(a~Po5RD?9WGglsw*N5D zxtCDeHmXOnt37G)I`w0)_PJmQ-c}=GBg4dyKQ``6`5PYO=cdBBJ`DGye=Zzn083YI zGaN^&QN+o5?Wq(-Vqro20l^9K=nC3hs-OYXv#~a{Qo<+$L?AtEAuL)|OiRysq`qNr zLzkRQk6hdX*)HIjU-5dUYLo>RZ!}=>o?R`>JW5{aCggozzs2*5tsFwO^PT|^f0G4_o?-9R3=SuQ;atGA5)4D^0X2>|*~_+>qB!83{>_e= zSl}I|{y=TjohCLLyC9pK)`nhA-0Pv83VhoAoJ*|K4=whQxj&iH(9Mj-_7BoaxFI^04?q)&g6)?10L_JBg-YOMM5^0z0z=O_10j7l(5@7{+8g4t04>k4 z^#sOa$1#&W{kt;4MAY|quv6Z?j?M3R5W*5k#G{*_)=-Yswj(9sgy4Uez^$q};GUxZHo^AwDK9?M0PK&g*Q(c8-MRSMc@)YLHH(+DD0{pyq#ih>KAk{lUN1%Nex6nx$LZMd` z#Z$BT<91x#kht24A_qkah3BtPgGiqe{mltV!hj}X3UXbNqfQBmc{(j<$|q~j8yiwo zLi|Q6y=2@iXZ23Y3Giq&MUf2#Lpxuv(R*Yx@b0gNzQ&C~{Al-ReZy|@9O zLaQzHt0u07D_5Q(Sw|74%^*$8`YR2rfa!%t_b>=)rv?RID0ja?WZ_oX>)F(C0De>4 zytLi`D+c2qbNpmni6>iM^yRSG-*R;VjPRHoQ zZ|7p$0o}v3ajTN6QtxYkG{XD4IC>*%AxuOSw0)h~f=@otpQVFAQ*-XJE9Jmfiwanl zR!=(g25a{f%@XmD=-IzHBdnJCJFY-qfgY%WLEvhzq z9t{daV;K*~)oPuP9u)qOf0uz<*H))Qj6QkSsl=A7H>(EN6Rtsbo#F7zZ&}R2jsuYc z_p?~y0Q=}T7)$4EF#e1X(N35x4prp+^tZMjus~dLt+QKAB0spqAg{G)_II zqI*Vrqv|IY=Fb9n4Pma+>fe!tCy6?wn9gZFXflc8JlMv!-Oim=b+5th7WVVE8e8Lc zk^SzMsAdNL{yzV~9q{`d88*Xw$FRQp&1~im9O%o0Nu=XFhl8VQ7}JiOYsluxrRRf> zCutIi{o>8LLXWLF_Gsw~HyXg^tMXi$}%eI3L%Q=yj7WCqV=a&`U zl}GS-2X$64F-_P|V!BNK6;{ZLVaLnz1@`6Xwr1hqZjP9 zbnTW%8h11eP>VP!sp%(1U>h2Z0**_8Kv$0xG3o_;XkYaAOgJQ`u~37?oWo=-$5g55 zr*>_2`W58ng4@{2atvh8*(F_QW&O%^?~4aQPJg%hIdV-_fJTEMrP1pQp0_Mg>CL2vTMf@RO^X@eL!2g)zF#TAgc!=5j6AIK6{3$7 zOOU9EO}!7W6OzZb;Zcp~n;#SGZvjq~&%5>V-1pySCqXf|;}pt7>_y z#xrjzQ77{R@4Gv&($@`9cprMEMrFrnn z24Z$ew~XbFH{sDNHuA><_r+_7t%mGV6yHut#xY5r8RiUj^cTyIMHGv=Z3C6>OfeSE z=Hy(#pkP5{s6L<_(y=jmgTdI=(+eUQbh%||bu2P|)UWgM1Z@l}l<&NMd4Z zX~!0mg6jrbJK!R-7~noqC7zcX0bZ%^@XF{MJz`Z3V2bb zj1+HSCmoa*!h_Qce3lTlXd3v+&&iF}*DHX1S^q@-*Vlf0)%W~No8UR+OVkw5trRCZ zQ_Smmsy)Srl|){jYEFvO{e2%g2Y_vSKhM6RUJf8qAvODA&!~9Xr@l8!RQ%|B)>+;I zxIu!HwXyJgP39WJ5M`6s3?DJgjgH6=BVmd7T0{;p$EPWI z?yL6!L1prB9c0+pRt!j`o*}Z(pHGwh&I*H9cmKQ25@1bx0L7{6_Jrq`WagJXViDhW zyBW>fr7ceE>p@n20w$E#z}ocK6_H%T%{wn%0;{J)F%K6o5IqUOKA0kxak9!&h_1U3 zK(J*yg4(y20ZZ?8FE`GoklYDu=02*n;qn*n4z1`nAOk8vmfg{|7$bSsn1F4wz#FE? za|_EWk^yrxX2ZbqhT%C>24qoBR&jNQNZq!)ea&}@z5N%?&pCm48s_KILr(6SgMG9K7CLF(Ogc1l|uKy6(D0_xvXtUzL8&9!;%gxr1t4 z9JMft2HxI#;e%2Z!m<5+7^QCSqz6D*2Zon&;bRjl*NHH24fLipo}}Kty%mU+OPkj` zAj}E`zNwVWmtmF+V9y79DPGBS>bh*Q#MzA{zq+LIEAW#*qFDEX9w_^H4wMcJtbRhq zH6^egAi|&KCg%q5Wh$llLz|0~2gF?CQjyi7eBEz`j!K{2+Rfg3rkg!z9osFweWbU5 zOzC}lReM+p_kiet7?%ZBRINt>i?~{enkHBoI}xE6&O63`!}cbMoWJJec>Vs&UNU6i zY7Loe_Y7qSt)pyYoLtVvk=KlaLRw4oD;9j_XdhEJENZ>#9ltgS0>KjGWRd^s;}h8t zlZ%=}Qi^29d3rM_Ml*>Cl{zrgT%v?>%nzOO5T2g~p?yYl7 zdb7k9fUaP!+$bl0>*#1N!mN@D-wYGj^x&Vd%H~%=dvRAifLHdyQTjIC_e)6Lb8?~` zt0Jepje#~K;GR(jsr(ERa)a|Ky%BYlY0}?d(6@u#lx|VA9++Ig zO&x$X&mvz~YA%bD$q(gUO*}50^m_HxWUn-=^V8nv{s(A#hwr&dsHwmiU`9rIdSD~C zJm4sDTP)fsAyvtJeEaAoU0sksrEL#EFB`y>jE**viBI z7V7{)g%3y`Mtb9`{za`K--@A4A0QutdN6#9OYa#Gn|j9bp_C>$Hp)Mf$LiHo{eiTU zCQ+s9tXB^qg}_LPt4+ZtB9AJ0%y^ba3YsNF7BMlQ55~=S*Zku;vnw5LH8>GP@~xM& zc*QliY!-l(A~-@yr4W6aYhjVE<(Z~Jf!=#WdCEdTq`gt>$Bhx(ddlsx@pWy<*|`v0PPP5j zqdGtNiY{mhrh;aIpZw`~TY-X%E>N&@rUgcI@z?A-Auc^BDakZdRft+n*HD5d4>=(i zhM%;F#`rp;#L#2Y?4KcWqpac(}MBql3^*G)KsQ{D@pDYS28D zv*{>ju}#ynQA1F3Rj+3&zIVO4`P3!go_=?I9dsF)i|eQ4_UsT7)?DdArl@O^LW+iF!bV-xbo>^8~S1jo8wa+hl8*9v+%)(O*HtJY_l`TIN^1faxK-^ z@RcX*DC(jbqrN!N9K=p-c$)(g)4$Hj{<;DG0a^d$zj@a|^=gG9Lj5NXqDWS1XAis@ zWsgDyr@LSnM6cJrX87|MIBmhRL%th0s#Mv|i1!kW>m@IKC?MIZ(&_f|2b(BN$L1SY za-1v>zR_5v_lUpka-ufI?vPROe1EHR0~1HOwJnHPbVm}eG1NCcE=PD4{!Ffyn)Wrq z=V9+1p1V$8U+8wj!^z(xd^%XDl%(5P*p>ZA_>6^fP5QI1nZ{_FX;&r%#CDWy4#G}eA(p|Ud*BPTcB9D-t(nEw^mOLR@KS;(S*3-}aK6Z?)Sjzh zD53kTO3^3O&X?-2x=$zi`V|yoxV;bDelT@OtAe3Nk$0`;IJzsNbM^by>gi2Ktc)+X zrj{$@TSu!5BBKXAIKNJ}A&DxDt%|A?P4}2bY%y)N-Yh>lB$BmPAeD*J(xXb)+q;s< z7qD(Y{_uD*>2qWTA{u92KXq;i^7e{K(GD$yBK@^+P5#os{nD9CvK4_8efM!D#lI5w z3~uda#Kha3b%i#kO{-_5is&;YLEV_>&jAWAL8ZLlCOkD-r#yyo+3L*CNBgrPuzIEj zJ5rEhrQ0o@X|WFVqlze9g}4O8ng^4Ye>&84!x?L)cye6O5bcxbac15oWsB4d4;7IO zk`n4A{CJ0&*c{Zj(wvb*Q|2!%!(&|?0R9vrcWKzZo@}7E5kQ|U%Mj=Ny162k_RWW+ld0+}U!~#|E=Mi;D3E_p452wi+xcV$ zP{2;uOy)wc9)azs9=ea`pKtG__D*i3KQ<>+<`L~y5ua8tn18-yVrY)LwM?MQ17jY! zf}zCF85-i72|6`AA^ZDaysrEFrl=U>%UT^0z&5#WwtDz&Ec_H+zJd6zucSD|B^+g* z%$VZsC96cZ19WMl* zYnoKE4x0jd{mq~~;y8XWF~2gRl~gs2UbB3bOYo~#6Uo!fNg)|S^s&63BrisY%E^KK zr54%9>|XeupJt(q<+Q<^$Mp)nG;w47jh7j)QR}&fb`F7iGBKKZrO&*f78#27#okys z^x4F@)jL`EUIGOnhXLl6hkXO%l6}Ut55>=Urv}uzH<81tHJ8RV17oIAQBF|``l}aa z5EREOASKx4lshGThM&jqEbW_c=0j>t+De>JQ@DXvZTw@-j5OaPs7$5jCf9vRZf4*o z7^?C7AV^(Tu5{k2BS39fY{vWofxGxR^0xL_+k(kZ`sf^`c%hm>UGFHIaD>rkv*OR< zLG)rXC?Qxo+pJXPBn1=*EDokUw#}dhV2FWr-|_C1`TDPy)Z-%>F5{cZS=Y{aOQ)uS zAPDEaO0ZJRDgEhCOdk5giwJ@Av{AM8LVXjdqyKv9zm?>G-1~m@-VaIO*qT+sHQ(3U zGIv`!a`tu*UG)C#x`opplh6YS@tkDSa5{sF7U;iR1pj=w|75)XZfOTxXegi3@>vr8 z<41k{*i3>Zfpe3@RXS0flE&R&noHH+9#Wf?f2MW$!AQogN2>;3iu zPz7#?fH^Yu%mB9A`9L8%?m7b6{{*hExcowthOEiNSnc<93LI-@KC}k6d+mkbB8J<?N3Cot-qgb)+H7vvDHhWc7F+ z)$f;Iuno)jI@2~5`*LkWQAtp-@*m)aqS2gS406^$SVe7b)|Mz$?lx4COm24KXUwH? zpWnP&pz>1gOu=zwoI#Xxk?%o+rzMHs;MMZ3hZ$GLm?~xUtQJBi^0iA;=M3n0iGB;) zh=B5cUd%T;ETqS5N(6?+p5b0x1~l4A?pZ{#${k%?Je?<}z;F+-2@F_zwp-4dCyku- zm_OtKz^*4?_ZIi7opC(c2f|uYndoaCcNQ{x#)VQ_nx;PVYU^yze9cbWQ#tpR`o-YO z(`1*0P{Dz)t0*j`!4`h2((swn%>f1EhaM+FV6(R2U9VR zzuwgUJCO%mv}~W!uv`9<8}RjGolVaKMgvN~9wZ#B9LZ*&vnVzMbEy|b4?NzWXmM`a z(l_I_i5!Yxe87*NgYzNo?q)N3OA6CD;=+bUhA~kiiaUpa>JnhNW!|TT(-BFF4x2ZcT!}9&K7q{#J0Sf4NOkLW@qH<3wtl7Haj|gQ*5r;!z*FYYcx~ z!ICKqv(0#fGmhIBTv5Hi)(~7}(ED}PZZ#{8j>Q|_=G`<-8E3tSYvjPTH?z+AyfDB;+=1&>+f5hv>IP3_^)J^ zAi0{{#$)g^xT5nvBYJW!;w4_;S7ATwXF)4g>W=-(rd*YPcrZ4jAT>%R?3))LJ zW|UDT>ZsubhI}I1YB_1TF6=u#4_@R7m}AglyHz&J7Ni0Ztm^xWsld0enEqIavB3$E z2@EzU%zEwQ?>=a4D*_Fo`YVCAm9F|>*@xbR&9d}3+?S30VB~eQmcJe;rwAO97+Pa_ zYbAweeG2elSIai%8uj^cab3PODnxq`NbQidA02&USU6IRW*@|3s(SI1UHfsx3+u|Y z0*SS}tm#K3M(T|Z^wZtLyqk-h9ZGF<=9f%7;)xn-MBCswOP|79rBD~>$?M>wvDsJ@ z8!2`{v?QsVo{Wjqdq=k+uae43aJYV23&iz`%2(ybv%M9D11_OQqDLW)g)asDs3pj{ zSn`#*qB-C|c&08~0axtMn996<3j-KYw4$7Cn-1b0hS6}MN)Gkrq}V)*UV=&N?^{)m z*lVWNtL>m$w)qRjL0l6}EFWEr{aQ46r-;g~botlaKcef|Wvfw0h7=lo3Vr=I*D@@O z(L463mWy?Kqs|&NoLaN-ZOF)Fx^dpJ!T3wFaZQV+s`bvkaBOOLP00sCXj&p=v%F0_ z=oweIZ`G{`06p6+$yVYq6AcPnVGkcd^WH9nfCnZ|Zv1RJ)wFH=`7q8HBrm4?+%)ck zttoxz@%}g9T$Lnd&Xp|o@htI}hMKN7mebS8xK6VcN;o;6uCPT&JbiYnRjY6ATMB%Z zdaV8Azmz@!=G9#Rq}L|VjSYc+(&+`^t-uGP_`(PALfw7uhY3)xT=@Tg)cW{jq~;r@ zVTJ$ZMHo(jQCeUpmgY3;i)%UC>dSbEL*`N>0|}mvo%!4pnD2}>!(DJ2#}p-$q`LPi z5BSeb$c|2-*`2^CPyXGf6CG z$@M^OCG>sHb_8pf*7*|~Cj^x~DfTiBt>crC!@iaEAg6?$Ovbl^d__URV*%XpfTk!| z_8C!g(<&2=g7eQtRzugV6&`jdaFMF;c^yv=-H)Wg?)4iSq(Flea@^5~SG99*-z7S< z-KJ%6yL0C@ESrF+)>VIehQ0>pSFDu^^FpfpIRfOOAE3)0;U zA_x)+l2QstgLET^(%nqDJEZ&E)AjAW);{Oj-}$XSme+f^7A%i9 zGGg>KE?@Ypc-;NSR48m|>__Kl2C%$$ha`qU$2_Lqv{R9*+nxOTsE9xBO_)VT-6K;m zZ;3s#dy{&OukY=dg#Q0e?EXJQ%vosI)F^Mv{ZG^~P;BD81Z5Wt+8J9+4tJKnf{9)3 z(rCq=ZuXaImX(Qgba4QcsukS{?}XGNmXCuvw}f8CYTNZGu>1_@`o5_) zIQ2+#_hn?}ly^Eu$(^7zuD^m5LY;mk4&U{+y@4o=;biQujlY3MBZ+tWgonJ{GKZ-q zCxYVGdZEDAJC+^Wj7YRx4jX=fS&!n+4(?aqv_Q4}0(wvVh?BU2s3u)Nt5uX>=fM^!Nqgl z;WgKVmsfRXP8Zoolp;U@o8K@}y?ECJp*U{aHxTn*q^AG;U0Qi!Vh^D5 zs};Bx@2E@1G6)=jhn5rHnFuOLGUPX6KaqY8T7wmNNXuHxXo8JFy^yw!nkr?_$6H@tL)n{)YeZxsmW6Mh_$fq$qg8nFGK(7eqNL zZh1_#DD1C8)cVSyYLQilwGr5{(u}bpLFJ~{!M7zv2jEw4?FQQB5?t{ZX%^dPf7vQs z%i}{2-rBv_z%Or6igMMa7mnFiP;W_tMxLBT`fFs)ZOc=s#nW~jpc4fC-bIAvif)wT@=w&^!A*c zA(7Dd^c#i%EgXwilQyT$Ka|%5i+-PQB1R)x%lxOz*Y}q)bMv{HBw4HO8jfonxErH; zkGpc_*ERgxs}z~3=(+IW)^eRMAstOEthchVQ8SYY!O@AH@QxDi( zPsv&*E3&lQ#=-9e@?MGJi9%9(^iGeajdW$ho?GSmGAMKx^IIa`jc+eneNXEBy25eg z`ONu%$}9KwXmShM>n>b#ia)|FMFxJ_|7Sb?kIwx6@~9*Usk-mCzS%z;r8Mq~Xg^P> z!+r1)m5881f*ED>qs*~$X}>7!HjdHMRe-e=uK0YM31H0W6vm=Z4ARi=;{?%q9vo9; z*6MxT2*Le{3(VJBACd@w5n}wN< z6*~4IaNB+GOa`PSCONvMM(=^~em_Dabz+pL6Smg|9y@knJj1>b^ROI}u$Od~#?b4R z+!37ku+cPZEDM}c4%;l;uh+jn>4lZL%N0@?Fk*y=A`Ni3-($s3sBw>Z&P+*fD!dZsG7i1YXHdqsX!T20t29~OSeoz zckUhUmehPqkb~l04a4S#bOBb&!T8zfS1d|L>M)UV3dcbmKO+DbGYZK^_7)>GGd3z8 z#|MUe>e|WkWPj)J*^iQ;M)}lriIkF;>%~{=?&PVCvI?dqN?tpL_+7q)`Tr*1|L0hd zR}9)lEA?%`U(BBWgDL?F9z6Fu>R$_jiW9rJ>>=Kq(F8rY{71rl7SYVpRSSb;Lyeiz9v zpZsoNT?PxlF1XF%AlJ1Rh1qw}kE^_|&>mz^bdh+=mYvQn58Qc_Suio~vL0mJ(A@ig zT(>Ru9ykivjyc(Q3$4^L(YwQDHR0pD&$~m0RA~Q$=*sl>%-VOcfjt0w1oeN@LSwu! zw%QoyFs25UOlh##y5l+4=zP=o=@dM~wtW)ktafV)o$sKX>Kof*@GTrQ~_+WBlN z#(ZSe^L^k$chf-BY($v1Wa(4tvStR{?*1sZ%z4vI(Y0;3>zdbdw?2B#hLCKd^*YWo z??EfV}xOyfS|>1YJKR$ z+06R9`C<-KjP_*8t~fSOIQ+3wl^;PT+Z?jV!5v0WHdetFtly&pc^>;6^P{2*1yModWlh%I^qcj3~J`7lm(gPJx)JZY30|lqC zA|2b}KyHHlsGZ6V@Swh##8WC`T}!YIAestgjP|w@k=q!`n=F_d6v!DrtCs2CRU^5j zLVF`$)r>Ie*6q0jSmrniJC#9;i1pywj+_KV3Yz4*iYm!%%K$Hm-uoC4Qm#j4t+iF< zorSaS+auKX-6Y?N*of2;s~Y5Mrxg}9;&B-fVt$AqP($cHOQtZcCboc_iz-&7j!qWS z43<=8H=y!ki}wYJ(j;ZJqq~xH6*$pGKRS$eS;J{?RHvINdgNR(YOlxUm*L&&j2j{J zK}m4C^GS5pAjj6$t^Y>Y?U(ZRtstITHHXSKdZSG6!+9r_Y z3-7^7r9R-+rz#ZnAr@8lJBIsU(Bj#}LGAqWge=(KQcM^4VGa2K1ewSG=pZ<$UOAF^D^YU~hE=!pYyvhbUGW;oQ zs+yI4*{#2s{(THVn=JZM<4w~4PbX}vO`cGdpn5w*@U--FGsHt**9wmYc0M4o!Aw`O%s>DD#NNAJ zMm?V&c27NRiC}tfd$2PAl-+NILfuJm+&pW@hG#lk(->^qWifi|~o+ z$@p7M_*zL%+@m5?2qNQck_Z|)84KCp`RQO=x07wU@B1li z^*F>Dq|bBBGa=$OA8~9TY5sa`P}u91#c`*3RnfN!_juxXt#aG?xXfQ3o|YZD1@^1< zc?7QH=Pwcno%>J!@OpTi8k?i7njpaE90oSE=bt}>cyK=f(SLU;kaZZm$+F=rEvnWN zDy2fV-@I0H=I#R3f40N=7_BiX&{@ypaPgiCBz`HKPq2&lTMY!M)L43r!dG&=VtOao z)S+}3H5K8tpv-Qd;+6;|H)@OJE`dwb`+{#%G*dQ7BqlsxpZLqO>km}iG%}S9u&7M? zQ-g-aPYsHX)?!D38cGheEA7{=PQgakQd#;)Troc(c2d|p8h|#|;DSYcRIbk8tD!EI zQqf7{DfEp*RyG{t?w2EC#(a#sk<1T{4h##FGV{k&{AUh#3}{3-a<$V&v~eBfZ6uTe zL}-ZbrVFLrQ&(3r!6AO=x=g)hL^H>$(4oik`XBjs z5&46_J9S6^^W3vy*uXJJtb&;Az)Ba~BGlu-*u;~H=NkgZlhR}K8&vSsK`%;;kKJ3N zA7k*uFYVtPWekpYEAltG&c~fVH=< zKN~Miwk3RtXWaGRrOm)lkNy+-OaJ|D|9;E=mnR%TI26L6Oqc#XMqX14usRq2;2fi` z8dMo2rRD~|%m!{4e$oN#_Dx$H??4RwWB^M#hT!pr4?Z>=pZTmOepl^lF-Zr(Bi&@y zR^=uI{1l;n-#b|3jG$x2ct~n<{<9mXIHq<+7_bMbl1ci`5Ut7tl5r@l51z`OSHuled^KZU5#5*Z zlEt5$QA(aB7#@A4=Sc6S|ET13YcJ_3$GXf$DrDH7DBP|F=%aMS%m+!tP%{b`Mz6kp zvJUWI6KXGW^gV~c%aCY-Kr5c5qu6Twvadq3N2Ak++n$MVl8|hem;B(#E4|&oPSNt& zkZL_@?Q1bm|!s6INeRAo?>~il2n9<)ltI8?dXeC1>i7Qa$4~AO-#nNOQKR{Q8?G3d+;VPH zCk*$4qGN=2q5DxABFbKQL4t3#$LL%BA+dYWR=Zji#y1h|mwYXqd`GL1#Mnb+Tk51! zZpA^A{KKHdR;P;BND}dNB>mxvO`R8qf!>~tuN5SEdl%ps^;j-5+^V~MG`OB_OZN+g zi`w4cvu@ws7rKc@f7y8YSC;0u-P&els*y8aRYZc8$~RqQ?Jpv?7?lo95V=pNOq{cf zXa?U;{5r08!asj;>Y8fdtM@=b&=C+-!@q`tUvcVyY>QfU2BX|O$L}5m_#U4gDypU2 zsdzE}7Wa+fdi>(_h1;V{yW2ftn)5yuub zGZJZXLhZ$fEVtbpE?pgr(egOy^K+E`^r#EKFK*t0nXpy3y*u3fVyrJTWy*NlNLdiC zaIcWFX@9pLEu^e!Rh@<}DJpu^RksFef{OjAK)trQLJ9&$h?}bbx)(a{EJcg_;IUsR zy&x$$B0>DRv&zNctU`hMSw;mcm>h~?*K;Lb3dK`}F9(;rFUgGpDfJD>gWbVUM4cAL%W|*H%CZS7hGZ>eh?p29D zQ{x?6ROPT+QoO}$pOxEV*P01ifm>5ZcC79hBu#x%4d2-$cZfWMamEVZ>APnBVJ~=^ zVB!uC>PAeh0jOA9(9Y9R;zsGbkVKRl*GB`d4-*gI z1)BFu#Mt?^M#@y)cU5xRal?9#a?}=ls=3TKP?bZi6uYiz`n4uak0sLOm$Q_!xe=)9 zFR%#r;e4#oDZ`CbEHmrMd7mazL83ylGe}XU&~=}ZAyBmE#$31B`e7aB?UP@x!ieHM zzDVv?{BCA+L!H1dVRJRyG2-{>k--zcn5y5;p-E2gh}l^)o6DzNl&4PI(Cn*PB5o&p zQ`TTp({3Ul9YVaMDl7YiMURm{wKkB3Om%v5mu7-J_n=HF-ka)rrVw}z;<&;VQu{_4 zKUL^iPdJk^o@xe>@l$AeHf=c2th*OU2){fZ%@{!S6W%fWq zzqJhh%66;6eXy<}Vtzc?uDYa!g}0nbAml$i;(wiUXB>Tgk;hfdqDKF$jHs_%BueH4 zORiW>6XkgBkz`?Z1@+gkaBB!$4zeJx2t0a5w_{7+la-rSVB*=B3OZ<#~Q`R!9 zj+*%JqkrsBo%6#HxTdb>W}xymhNohDfk5|!%~jIQJ!d%VDCUw8-AFBWC-v0}9_2(n z(Ac*&N3vSnl(Bodj1Mak9~ic8a~m_TF;MXMzDrgZM6=>uzmFTIbk%qLWbnu`vSMOL zFF+gGq{aqtN|n4gA6RbW2wSUJw)N7OwW>$Z4eJq@U|RQfi6PfO^${a7cDT20G5^UX z7~iKiC>v0pS8}A;qFHAUu!_%)=LJ*s?7qH;<1mON7OfgeQLUQpHX(A1@iz~Yd=(8F z;Q7yvw{}7NH3VSf`*~djtC45QaVm;Co3C-MBPL`ms64Gs-sgs=Z1^sMD})W zagt`3t<`dQv>l)p30#TT*yq+xA|^{tUa;R+b&d{#vNlyvxzLo|8WCZ z@L+jTvM5y)h*{=Ovb^ZT8QUAbvUUoJ@`mC1=Z0GwwXu2@VN$NlTXP}o=#DI-K z;byiD2MmpG+E<`gD)Pl69fpx1D^+F5;ONV-G`TyOlWS6%u*<|A8(Cn`mIaG`xtxB_ zm=?oA9~6kc*L<4t@6o*y)iK0f1w0Ad9%2$xB36EW@;E)%g%t|>v2?^!(ZO*T1Vrc5 zzy$5~{V^3Sx0i?6jM%^7KW6yA@%kf!_DtT7t6SVS5%|Q(!&C8Simg>6~;GA~L7_xrHXO>@F%QbT`Ca#?=03px%^gjFnb=LwC_PLl;IqwY5 zJy>KDo_q+=q#)PkaCXi^%I=>#~?7lbN%+H?-rJv8-2w7t3v74(M$maE+WLFqQA0vxXQ}0)nf3 zBiJ41I|{SwT@W~^f`aMzA%z05ZSrCy(q1iiomz=iB<;Xt?e^Jb164vsUp^%iTh!?o zc1uybRIHA~ECr~(Neu*BD+LSL9u{fuk>YNddu_stj>jLm-2L}l*`immj2ecEVX#?? zRmX}f?_DZo)$|(RvB=3H>UvbJA0OC7_jVeuQICXQUrgr^w?jErGtT?+sJ?@A-3aHS z2gs|I9a#QDWh-U_mjVxzyXneD>`3S0`!ch15I;8lDmYtJItv%}h+D}{c*f2!KWmG> zd~@Fq@ndz7_!rr-4NbD#y04YP5V!4Uw|E?Q5X;S(mzzx2>85xg%WzBM&qBt2F3#V0?-~mF@c+CeJ%90e zj%P*6+dn_Te^(}r_hFOzB?W9LIjqWACZ(?G4EdCR`>&X6akcmcN1s&>jYcCg6z>bF zd0C)UYWQyy{pZ@te+=2(RC%Sv!Q=Y^l5h`^r5M3XFrFZgjs7&ZfFe))h_QEl+oUD} zXZAzE#G^=cWt{s)-9|OK|}hdV8G6jrxSL^c3;oUH2`9HRZUl%$2!edv52 znt9-DnwoPgjX6d}w@$yvU*1$4Xu$196c_}-WYKI$D-$D)NPQa$r9pt8beYu)*+vI7 z)8$iE2%ff)W2CLa?D009x1wdvF7fIET>ZgkZ-s2(&I`T4D^>W-SD{|iirEs2w0&P@ z<5~b{ZWm@VbN+ln!bi89gn7RQ6G4t4JHA8V=>Pk!PxGxza&*v&B^*QV*B*(DSg~Or zzH8+{jB0fRlhH%ZG+@GXV7lyDo)7I?O^LLvY8%<%vJqZ%@)I)F$yAAT>1@-|dDle~ zgo}9RPSH_XN3v7aIq#mmxcP=H!*%!)XBmTH<4t3}@(zAv$HgXoY2m;_DKha8KO-Ho zllWg@woUS};(q949jbr6NQ=^KTkfdC<1|c;CR7(^wMdkZ*dV&8vOVtVK)LQmnxWNE zQP)TSBR^5NZFij}xxxl5nflvm|FX$7Vht5&x?&_FcK+Jmhm-y>MuB06J-4uhl@2z` z6`E(GP}51B{GM&ehWBg_69^Pb#fmO$ttf&8v4@GD;BbsX0Y`HLkp3z#fw+9#(CJek zbPiUqJ@lO+ci*2BNE4@#fn1;0_UUmCZ2H!BJ_Bf_*s{mNy(JrH#9kWd)Snj20sh*B z*nHsmjScA)dUCi^0PnuL9Y)i)cx=<~kD?(hj)E1MPVsB}9sVnT=uWmU8{xs$=#-kW z70A9)%LGqPV4*MNstCSjKKGd858v?c&GXi{7qSs$`4m?5*U%Yr5K0=e3s_eR(Ll{< zW+fz3>7!yEOnLs_jd$En*^o!$HXZ!);{)!=LQ*Hch@FQk94u~uWvK^izu@(IFSfyb z<@DgI$5C?Fi+mUyA8l6d?x?mjnZ(rP11M>y0mfFG#=VWfJWKRcbE&a6pkaD(#=dGZ z90`0h<+Jicvrg#{r@niP%2{l_-tNbn4XFf!P;QLgno+7gPGuyAQC30`6!8c7CR$3K z%jj|pK5zj(WpUVp6Gq`Q^S)Z3$FQz&t3z-cJ@#?|L33p-BoPzV$_?)zD#5V<3v}I< zyZ)Q;$+k--65|*23`7mQB1}cwA3(~Y; zIrMx&)$c0BZ?g+Odz70p=>thwcUS3G8F^lSZT9yyXj9A#R5YI11?-yH@hGPS2ic7r zK%FDy*^!`!>97GNJKc;*2&tk)y(*$QOkRn~?_?i6Kah)u zcimA#`Pe#{)1rnIJ$52xFRanx;|py!c8-_>k~n>?3xEv9O_dEdMzOiZ*Ef+(%7%j06ytc z=Av98gDgwOq5|9{-MEBBgcM3RHhE$A?xc%No8o|Y`LF(L-XA_ zBRd9uSZ#+!E81^rEVdd_O^X7#8&yDEf7>^=;3v%wC>_ke!u_P=V#L!&X?U$h5> z{q3d2f96Z-0!&I^1^DB2JRcS>wTylm$%4EMtabMpD69fXJ$?Q0cmiR7!*2b%>7K;M z(8qP8kbb={@xdmrgxIGr7LWJg4BfKQu{^bbOyXaf_{kp+^_Cpk&TFJ26Oqf_&A0n9 zl(wdaLn|Ye&B+*h?aLD@{PDCmmL0s#T_Y8UnBHP>WtGoVX4Yzly>8;h{aH7xXd)iZ zJ=?}3Wt$(E#~355S|BXqBRzM+O6TS^(#G&&)T;SPV5v~5f5qbtk9oARX9h-={^YJ3 zwWmdRGXX2`SJy~S7d*~bh*+n*YmRqIJ#(J|0sq*QC5p}E)~IywHPUTTt0YbL7(DlY zQlSigJdPkH^+Nh75%m*8grnN7VfD$bhG3ho@xBpDJ=OvYEY&}>A$JnPf(7BI6&nk}4)~g@QThda2%H%UgLk|GotWzSg$McE_#im0X z)g} zq+(UdiNxv+J7bwwT0MobHAKD2ICgF{%FBkUz3B?O&d5RgWI$ww0z-qE^Yoht1=}!T zXrx{D8s|Oy%o4g34sJ3kWoU{x(~XtqrZx=CObP^{@$Or zsIjESN_KVCcG0$)ba*yNiY1Z#^A=yxeBZ2t`Io)0E_eC`S2pD%;g`>Poq{4#Se#M) z*&3t(4F?Nq^;-2}E*{xTjtrRQ3zV(ad~5G`7{v9gtK?Z-Ns+zT-R`d)jPDtg=*mn; zt~s0%Sq+Ha&KXs-TxX#X@6UQ$x*Yu8zv7|DpV|W^2iH0|4fi~gZx6+L=hzYVzUbSL zEke~5 zp6j!FaN@QHZ7<_1u44Z#H2(LeL{;okjXQ(`*Dgjsl8ku$H`E~{hdToEtM@Qo zW4tdWJBWzpcxnCmCy;ns#y55#v+vt6+?D6{M04ri17qdKcx&!t^0TmGTi?<91TW5G zFArLKU;AyCnZPUKq*7o~*7mwv08@A^%V-QaVy6kS$1=w&=M4_c!OS%Q`0VJmx? zis^(mU^#7X#ak++L9gcDupXS&eUkRoTTGsFJ2OX;GB#J1 zyOtYGj$teP*7-Oc!5*#=sC9-4N{o7bt)JKu>(DTG{n}?Hkcx%UgVcr4{bOPzFWvC)8PHDrd)>@C?~) zKf&jpX-Sl=8X1M5%)kE+o*4UbhB!WyBi7yPiDZmof8>u_2n=i?ZG@$OL_jWb#(tF>_T;_ZfQG}CBMUx z*9LVgeB+RQfKrZN+R=*n_@#$6z;yO7EQ!Sn$pg@H7{Znz8j86>CBWwrFBsl1?Abgg(iF%5}~> z|KX~`QatQ%w&9jJ+=NBUgRtJqfW@@F=IYt@+9)cdoFJ2}3E!|I-i*cd2jW%c_}4Gv z?+mp<;stZ9K8hWIk|BEqFiQ?n9s@uebb^PF1g5*ojwLk8Zom?$81y(h(yFO>a|ljH z9eXefzjs*Jg}u#M9qF3>YoA-FQs?7S52cVT5zIfBfP*w}unCNSM=t8Z zcUV647n=6Pv6!}YxK-hfJqlqHlc1a*_Y~k+ac2B4Bzepp2m({z?{W! zVS1cp9Zq!|>9A&5WZ1y+0#7d6j<{w^ASb`ljun6b$4f;NUC6b=1t8>bkP?`djJsDf zX*F>5ZL)+8P&s&8ZF9&!&T*sb%}qzJE{i~j50Do!(;O>BvGdz~vRy=oWE~n~ z8QXp0KJTOMu(s=y>N|}JjvsiX*0dy2@tW(IbK$ekHHNDR!!mZxBe@A>Hqth$t_3CI zT)eYHHmieKWi1~APs3qK`dDiV_YWB8HFZ1DLdqwZaMC(Lc^49Wj$43O`wRaEUs>cW0fnd}^8jZE?Z*;mxzI`o1HJWRop0)QzR?jo z;J+PM=0l@4g7x`jN7VOg*)lYt7yVbsGB9|F$$4z%S}8PSV_bQ1$IHA^iK6y;6=a5B zx!TMVY0xh&OJ<+QA_rBD@%BP6?)Le*HPu+2xdLHWV8a4N&^q$FZ1HaVE_1HpmoAfO zqYF9HuFqlu2&JTOn&XGAOozXI!i6x^D^wV)hOx6ig*$KyLtIai_v{~}EN3C<5Sg#De(HE-RGeBlpEfVgs+P)bzA3Pp~%tC@;C68jO#N3s`46 z*Lq6NYdGO!F%OM&yS!o+6|1FK1I-B%_?)a;^Ez#TJ!jVw94@yLxb$lE0zj6p&*Fl} zA6v(Yy@+|(1p8oODdMZzE?d2jeOg>z*Du+%qph2YkRpB=H zKtmSEY+!zHv?0BEh8~==nv|H27T>pFxR(}}=tk$jX3Nm>y&PH&ug?SvV3cuRABpeL zn4FU~jDHY^Px6cP{XD0ynuX@p8+#lx!h+A{VKb+}MCxOJkdlY(e7cP6c3gXG<27tB z-4F}b`DIvC`faK6;sh6?ecqA&3E@AVCPKF6f@ZmJ^s{J*LQ&G@aTPViaC(w-I!D71 zH(pys6*9{N+4a(2(_FLX%lyz79NU(`F)Mygi>42>r<2;Kipv6jWtYDzqW}Ao5FHNu z2+zhzUW)x)fKiKKm<<P5x^WGhYg5(?4q z$NH1u2m-o8;MUC#7FO4{Ai zBb?GY^C#QhiUxLY9p1*TH0;ExR=XZ>^;~DCDL>Y6LSyQ6vXkMs%krMu<@RtKVQjs0 zft@(u)@b?*&2PHCfO5EZh4q-bLfYO165SxkhMD5m`B%B9FW}ljUx~_4%3MJUAw0Y3 ziv6J-^~2vnPo1Q$f-W~RckkYdPf>be9c440m|18f8fxp_JQ8PpIytt4tHCOEwyPj# zAsYGEnXjB&2S(nLRc!BaLSXJTcW*u?Oe9U!Hcqj`9I2pMy5woo{{D|A&tpF82}1U zce}L8b1)awe~OVJiTEEklveP)@}n>Scy_KGvn^Hn!O^^6+sFf=g}*v&`Ung(`SPqH ztgcn^Icdi@UUyR5&EfDvP5T)O65iic;*m7YZfj4w{>uyCv6FO2yrE0(rWmW9OM{)8 z)Ie+9xOR!dW7q##fBf%t{$FR(OX?bMZ4|2SH^2S+Gz;NkE)C>bK(n3)I2Qk;iP=zo ziq;&uAN)c01DA;Bz~gMsWAf$54*(`LROg_FvvFPffiGAHBQ}GYgz2`6m9lwX%%gZf zgnHZ!VhwJMD(52je)J99F1ss>TDfWkbPe00m9npT8sFc^mPrtJtBQE5^~RhHRq0fK z<{1>jBvf}XDes5J@ibMj?V^0e!CdTWRzZ97SUap>ZVYJ{j@%Xp+$w**&%aKBm_+I8 z3kvi!*$h-VL+gGg))IR=c&wG3K=CnvEx~yZlzZ1Zz$j|-C`LKeO;(t;{JbJkr=-?n z;q0uZ)JiWCK+4=B0f?|GB}B!J!$w~Zga%gL;*jBRBbK;H%T;^oT*~}l?D9K|@Y|Wh z?e`;rGL6fMyneja^$-Tt-H*beGH$zAIwRVh4lYH=dPxusLMAoGl<0#?l~0Py?ghM>5b zQJvLcVK>~Es7>9dLl5@{G9MfGZ}|paz-<%&f!)+`eesSX!&1n+JDGxFS;!*cHXqo>(7A` z634S$?r+m77~u5PFUHrS@wGS3$h9Nh-oyA z^vrFMJ3JVPef|K-AlFTiedM-un7S$x;FG=8O>44&?;OvE(4&I zIkC{ADmxL^PA6@XRx;vMD8J%RU(k&Qzlac-c0Xh03=hxFDuH3+ZVEmpXqm_mz=kFn zxznrLs0fv93$dM{UqQEQ!j)PEwinK!pmxuGP%}OTiNW=oyqpB1WnrP@p==d-IeI2? zrfF+q$zzWz*SEd`&_p3xut5>1n$>IzVErM10Hy^9@wsME_MkdA+6}2AQ&K_8%$>n31O|eRN z3T2&WEyq2w(zUnD$Ea6oxO{`7UNPYpx@Yct6HqedZ%C0udG(1KUG&a35jJAYW2h6= z_S*}kjqx)^HDIzv{!WcY})Gxo~HFe7vN~?p;@zSNjhU6!jh_5wQSyU>)D4xoqXCUnR8F@s-2) z&K43KCWY@*QRw;c0<*`9WeMC(nJo0M&G(#Ccb4;Dz;K#$EZ0tw&@=Tbfqzvk)Owic zE)SAr#3;-c?~lHLhT50wmHTQhG@xa&v+e8am|X*90RU4UsjF0a6!??gMoi;AabxK( z%2}w1T^Lr(+BH`-yq&Y@3$EF+9$}qD)<_M>0h2>ih1tJNSFV^N9*2^u12rCZKga)% zRL7z9-Pc=eBuM@mX?N5{kd^S;YYso;>f^HZtA%|oU2_PNs~`PNY{h*b3TJ)(D>ryJ zOquI$Ej!Shzeegf_cijq0$q2mR*ip!FjIx8a}6jz-$U*YM|i%_2UqdnQUdOp*5ioS zDo+e?M52B@=KR495ThS;1NWp6l32+>c*VE2NFdMVzaOh|k$7kUSNt|wPsg>jws6rw zK~dD6g+Nz=^yj<{&cYt+0OU&XHGrG^@yOaZCAunYCjoLUjylmW1#b#{P*q$bm0j?N zWx-~(?o(0`OO;8WwBjZ`G^$w1m#p`_Yp$S8N>8}Oz2bd#?4D-kFnRAiB!>G_-lTWd z#D!}vpR5%n7@hU49|Jox2u+zhElD#P_JH!uRM0~6=#a~|$9^YfT@T-sx9n|9vnTF5P4HpdW>ICoEol}Ku`I%T=TN#HwODdp zU>t5zBh+upEtLFiz7e8a7Gva(0Rud7MqlDa;3SdQ#Pl!Mp^jZ+v|6%Y;8>5TD2^b| ztNa;IDjV*PSG?IGr&fqOT;s7_nD}bsGMlwNjA^DX)3g2^Gg0&=r}50!#Uo3aQup!B zb}Ssc2;>^+ zafJC##{OBkiX<3}yoZsP*hpK~{qcUlJ(%<1{vMSp92E{fGOj4?{MiUq^p@#`^ek9+ zslO{Q1WkrNUPw^pafS!NGDnaO0os^qv(NS)@Tj(TwpPkbV@}n3I_TFIVV(3H zMea}t?a18z0YW=5_tr?;*?ZuLb53EfOf#r#OMP3is!GtRx^{AK{3|d+;A#V*Tg_ok zh21iV6PP$y6WPJa+G@(aP4%r(%X#wkuZOnEj?KmA+v3;m#SgU{do7wNuo_QAZvD4qmL>%3z39Y zn%7NGh`eIKNSt{D&pk_>W#7Xw7;+h%FMNjkGpaKh)P7Y@A#LB0Ah!}tYHzx(j!p9B zuVj4*yA&(;V7befDmA}lT|Kh-!@&49rPItc4>yg0MBCA3e(F1Gy7N1G-j2iRhZVjq z3%y(eWktV53l)Bd*O&Jzb&fOD8RFgi<&w>)d_%X$;kr{$ZesrY-YImaC*v%(*;b3) zDFj;WAqMx=$5S$dJL z&$=gZz#OO%5tW)CxOeo{(G3QugHUN|gYV17vRl*Fzden3FR2YKt8?B3t(YEz5N%Ca zI_nT*PjkvRwq}?5GP7aW;k4!g5LkYP;MoX5D5)$oV|A>NVsrqB{T0nbpYy(+?RxMV zEJ!NM6i7(97WSIZ7s1g&qPTX{@fBbk+@y2HN*Rhx-$q2MEp-^?ywA7!mKzK(eoF;@ z{D61}rP&(YQ=6plIShd|-yGU}`e$0o`O6D==MS?NN>)V}ek2!?l_zT3a0{VM_Qow( z8td^#gR+g}ia#h~_qn0z4TAPdWJ@A43grjJR0~m`$J5?q+(CMpcQ+>G zkV{3_EXomgy6#h}F98b72rQs>_bZcCx2b(Uw4=(`;vau6*O^ag=S?$V=2{SEHrviO zyw`=ZEs+{oZlk_ju}hewzf1t{3YdF(un&$KtLq+T6=j~6Y$g*TjvQlt12-B?1(Lp~ zC+xPk?>)c8t}9xt0qB7e)m+@V6zafWTY4%4Iwvm4XS=7dE3*~_ z!gAMtXNG(+Xz`cB{BjEAd43Y`dWX56yt(|$n9WE$QT8eNwMKdlkAnetdKH+j*n{MI z7<$auLO=c)b-Ow(61yYeTjAqY4{tQ==`%ez41Bix`^&&b7e2w3ku8H}6HIdfpt`sV zqUR(0oAuZG0oRhcFEIPpi%o3A1l0!etRxGL_qd>_6h2k+>l}KNV(r(&Vx@dkcax_3 zVEf1q@0`uqc)_k*5Sq_kkOE4eE@-Yx%I%ivoQau$6#p+?s#hT?ee5o6vgbcuD79=d z2G~2ivs)SLa^71rg9h{)L;zAFC&IGdV43#QZ=9&G6<9e$4<(-v+jEL?(}$#yrBRj#W`a zsbUr`YuaOMGUfQh*4f%AXkzZTc5X2(jpX8KwwwUWS{b|m!#cuZqvtz>c8Cjkr)=SK zpzEXLu@(UNQ26=H>yKjIO}lVJ+&GE5=W@`s+{_=J@N&(m=cLGccqj3?uY4||tUIS{ z?j~CNk_B;bQPZ~h|IB*Sake4l10cCfrJusq2sF(;bbH3A!ButUqAgdPUPr1bi((iu zThwP2G&Nk)*|wi|XN}G!F3t7(kai`l#%`(PIf^xUis{zBdD+x)n9s!!k!cw5{|oIk z^eP50X^MfN6l?wq2KysiH2RCOzdp!cI-r6DCiboD4S%vmiex0q{n&UeRC><>aJq&; z*ZL9+)bgRDiV>kX0;*1145wtQwS4Fl%?31P``^3Z#xxZJ6ql`0vg<{L>jOR>=iLNh zKiV#L?o}#*5iDGEs1!it8TF(tDycpXV@~Xh_M>tiG_P3YLV<}8x+CSXoDh;U@YmgK zeqbxw@Et}jtsq!uTz?4Cb*ilB^d$dH_bWe>1ixSwM5T?#0=D@Ob4pykL8PN8~sC>Qp1D+#xV*7Bbw*52Zdz6<)DbLd^4k zMl#zaX5subPSB;_01$c@CY$;`Sop?X>a-XLZ{qMltB;OOG2TDXy$~bZVOJ{soMfCVIF>}6dvK_Sv(yTtbS!X} z_<+T>3L>K^-sdr{P3jwP@@-7>>Xv$Yh^xM{)*S0zr<2NqVf3N)AQT%%u^GfyUFxq% z5acLtYsrn!s+O3?!GzoG&pq$>1fs=MP41SSSt41_M3@C7zuwU|cB=%6gbVQ2+;Z1f zKS;7{>cm4K@b>iPjX#rq`q$quD|GY;Q7>!8>5RejzR!>JJRWpSVR zWqu0AHek$1G{3K=8hGFrDki+~R#pl+ilImPdWZWZdaeXvS`QOG6a(Oq#eo9Y2HZ1F z+HxSJdaULvrpw=`kZz)Pq$|m`ufOwgVBdCCX&@D?y6IV$sgW!?f51B*?CRr6@^3Cz zVktJkMKwhAv*HVXf0-8%HXzo`a6}A&BUudCR4*7wZxdyGR5BgRt7QSN6Etg658&A^ z;Hyd&{*Xu&U?_BI;nJ*(S0Z-+7?N;?N8(Si8P zyd{z~!5}5&5%vso;>Ir6G#-s_0pzX+|9vs^^n=?jsqvuNb3o5I>Tp{V1jj*chI8h5 zj-Or#zw;67ltc@Ll;yoY;FEp9o2P|C!l4T;qUujM{gj$hPx zhpxv%)xFSTEOYRPxdmb$wEc$tVoKy8Rxq50`$d>KX0$Ja22^(TX24gunL#ma!o$T` z2QIYG^629R{J(FogKGBOHpXu;<)Ca}Kx> zbR|Sg6z4D6D+&o4qXk4Oa1%?K!tSAf%ORCSi$!kf34*I0tm9W6uuN$sI47XvYqZc^ z!cDIPv=|Gm(n`HGP5g!*BH40x3f{O=jGGqGJxQTe+ae0$l|)Np-?vnDy>j*d?Co0` zi$v_Fpy&Ke*JV3Lp#pWIP9DArz5DNZcQ|8(i+t4p{WNJjmK3MHg6V#;qcR@ff64{~ z%^tfCFXDI(5__+|cvPFAk{kafCH3iFpAM0Q7n*!n9|%Hs!FY`wz;StSqE61=Fkow317Z zTpNC)YJMj)%DI~?lJa;@a@C=3_ycPqn_`?GS~w_3_GDfGC^Fxmz#U?5AfKk9`?5@p zCZ?cIwCpxUdBg^=q7M_Rq2oU+UIK2TG5Ca*z$+|Sze5U1E@W%EirEN_6(9r_L7eS*bNPlY znugt-B1!rsTWU2Ga?GzkIq+z$A{#z!dpKKzXtBqzNM3O=uITM+N5KAs`J$14tdy4x zI5T7eZru#aFjA#&ne=6RTnAOW4&cc$#!jk_Fld#u0ZZA1Z-9b>u8+QIuIG|PoFPzX zGiwwV?yjOVK&Q0=PBGsgjYTTb74t@ZhtsN$)?9-XY~8@L@z#Pvccu!fheClnZ$`%= z!P5xO;cFQcU?roCW&@s4zz8DY)FCaDw&*8#S4C#^75otadx_wtjVV6@>CYEe%XI)< zP6)TDJpoEOEKa2)$b)!7V%^jlEYyWdzoA$w=REimrc7>UfV-+gb>ymA?k$7QyTS(a zF!?T$@S^_{%!H~j(5NIh(4B3bcXxi;j>f9dy)3#X7W^Ktj5zrHae|n3$l;M7C|Kx zML|&Y>O`uu9*A>hkaOAB(kChb)kdeG@r@bEefz5cRT9Fb zUMJ20lfl<4#ecMKWG9E;Gm}6;mjsHdn&jCE!|F7vGkiyEAGx0Dtjz8Ug6C{fB`!ryYoI_bn!GpQSEcb6ZXBJ>|`v(jeoxH2ZQs)_Z=0Jz5XF#<`vf$XVMLP1kAxoQ&;HS4u{kVs8+6M2u-)71<)VaO)HJqCI(ekQ1QTXWULXThPC5 z&(^uY1%149us_(2!5+(|AvydHBIu7lg1v+|5cpLbc;NNpzQZJ-UBP(59vTSUAfg$m zGD5;C7f^J~pnKoABrc}%)lR1mDspYePoK&s%e*Do;{<7=3J|t}3M9xPj^PsQLnMN( zgTdw*8%rN0XFwOQz|l^xi^vUlnS`)3F&1zQ5Yg26GRKABpOL`u8zDsmLUEZp*R6Po z*P@?W_DU3|cO1RcGNSN6P30N4)dnc0DV?`MX^YURVCL` z>j3=VP4W+=yAjQZejec9PA~y5tM)zCwY&`#vTJ0feJXBUo4I^u0TaMdO>?71@DX4S$nI9ViWmMCKMY*iOB|>}Dq6fD zH(v!HH#K5p%iHt`fcso1)!OVKH4Iu5)D}ZCM?YgGHBWrTMrujEj^t$kginVnLgNoP z{^Bu#6bx)Ru)!-bAyo*4_E^)@=e_uGw>{m5IV%u>ZABDNSm`~Ls(=bU+PM#yX8KSf za1gdJUNQimO<|w<=mWGu7!Fa!qcX1~2;3Bkf^qFyk!hz$M$XLDDMBN;$tzYvbh<;I zp;Cdrkw(jCwzqf%8uM$#wwtpsiiSv8rYTk+Tr`y7v!I3D-U?@we+qN7j>|(b=A7F! zq}7-~Ll#pFgrarqRJ5m!ce*Rws0qVf>yTKzxoqA$F1TjvpQz*IjQWz4o@xY3(HO`a z_juw=biuvu!|U}E>ml8lCH;t2ZlJ;tSZ)@DDKiw#C)I)^2B`J;|Ewn1ai=;mIlT8E zM50w_kYp$KbpvhDqfY>**;&gwLtHLNiiX|$7V~~`B@h?!?L3C&)63_{`$E#xOWPR~ zGfaJ;kqm^M`hz@6QXb;LFE7$YM4|o_u`EOjz&Ek^@WzCn(%?W-EZlpY5bS2)`d{F< zPd}0cIr%Pm2If(V$&G)4I9&D?+Haq#qHTxEPLS;Bf-6hcgOuszV>DD`R4b6HZb)%M z&^{q4=D9(Tzfe+SMJ*^Ihbz21?BJg0~=V3vxQH{6Q>jYL2r|DpN}m z)igzOb8^Wc7V?p2CvU#+2^n{3y}IvTvUBmz+<>xwq$o%3=gYl@HhRwqZ|VwA0Ik5q zv4JTOJb3lZK}akH7&jAaCt8YmLyK7a^+am)+k8VEU4_h)F@jZb^9MJSSxi}ur<(}8ag zmm6ed!y5Y1jWFg0*CY6uxh>KfcSFKtQzU{k11mrq#vLrhaBsI)msS~Lmm?7Q+OL}e@yq3{R9r470i?HUAJ;XXtMsk((~<;VMhc&}dGD+xDZ%5eytDOozf0^!c$~w0+NGgRcIk6A z#b2kFEnkFG;OI%$7d}x*9qbvzDjEBt$79Yl&xDot-e$D*6X=jC%8;KY66qMN5_~Ce zw5WTBlc>pLD^e!%WEu(V8H~i%%mQRkOCDqNj?5qaBqRMcUHGrxcuxWe;**lUW5xs| zP4!yfXL%oKG4A_FCnU|mocz&mvV=y2;~cw1e=iYfLhQ4u2QOrm5y{5wCnODV+mPHW zapcgGAjE;~>STo5=A&{FJa`mVl6Rt^n+7}#>?tKDBui*#=u0%li$KTr0E(6ow}C0OPb-c5-Wl!_xu=9Jf#pm`%AxZKTWx7X1& zb4!WlE^SQkqe+fFCaS(E$AoCw<>nZ%lyidTPUp`F>`A;kDOeL!-FEh7hdIQtiu!aZ z;bnsRa!ny#WF_`9Py0-`{$xl#Nc5a^Ls9r#7IGx^^g;<{nw%*4<1i-*|9T-!>xv@R zDQ-Lr5rI^uO&MFOQ$z#l_y-@#!7iMf=#BOjeIqfP(MDD?C0 zqE&}$Drg(6wed6IT@a_QHx5$+w@K$dW(HGfjyv>4*CPe|Y-3%Ryl zN~u1mGv?>MR^}zuv^?3diyZf#ryP~3x+&2(K6bh zkQ!ve4SYl){O-$h4?>)A`dpI+iI)lT@P`RX?)5jm5d0&bC?((^+e4P(6?K#*oz#Vr zj!WJ`#vTE)>}DWxSSS||vkvenp=l+exNDUzMx#M-m$wWO+`N~`avWhP0q*Gwlh@nJ zoXws&_thM$t}+ov+sQ0R4W~G?GG@^ps47acvq^)fR<1BOjO0g4%^WS)H;mOJN{ke= zEhhz~43?zqq9#?nD-4f1Uw!+r*tiYM{7hTvavcWPS0kUH*S8o+as>C;jDBId?*w>t znCB!3>gZkKbA*D97Wf>kgd@hoLIZReddU*9TC$yE@!kul*;`9ur{0uRgCuemy&PFfmD;gEP%2O5&rETh%4SK!wkWhVdZw9hk>GtAfV1|F z3Dts~L3f=gEkGcZ;F368ic(g?D}CCpr7(=G9^3qe30;S|pXL4h8cJX(R{r|yv6 zofn84o9I35kZ41jPiaedZpoR_jhDQ->Z=O3U}WKhQrc&qm1}8V*u=HhCIye5_VtNL z@UhD0c+ptgx>A!FVAnv}O-*2Zpq$&rf%BYvDI=co-I(svlWn8-X7#RpXQ`7oz;+hY zD#kr+XD0T^M?0w?Ib%`C!T87|r^3>}zN%$r!ZtF$?H=rQ0`V57S{;E|ouxSA0e1Ca zW6hMAqZxBP+OtN@9TRODt@$bA8XsTVrSy7SY#xxbwuov^Ex1*5oz(06a-p<0)|ZBjy3hCU2R>Pil)m*-MkX5PX&$FiWEoQr0J-g=BEDg3kvT4!L(Hgxa)yLE`gpai zPN;dD%wU{(0znmka~(c=XU3h^xN-4K8Ka+3lZG9l><{Joz*gpOcSNt~y-XEx*ikR8 zTizC?s$NTxF9HjQjgQ?;$t2MrGgtFF*^x(_cGx7zlA{mr_+5fiB6^8TAu!m)zJ$=% zTrUw=zBXQUsqak6=aDwXK&B<=lQx{}xK!Rw_^f0?wrX5sS$bS>i$whf{o469e!t{x z6!^Yq#sm`Fv;6=7kOH0VKm}l=@g+hC&Ps3?f7uxS?g7EJ{Fwd&%Z9Ttld|FfDX_IZ zYPQo^Dw=E{c0c|){8HCC{Y*d<6yk+oMYN$+gFuv)sUsnt z@w){l$vGU<@{;}iIp^qiMOMS6Alw+xUu?ZD_3Ttc>4b{^>%=N4Gv6kEe8GJBTYe@_ zyZ0N*`X2k(ssAC#z+r&r+>O%HdHk2;Tm;9oId=%gw6xV`4wm2eeuk+7yKs#S7<{?! z2pX%I)sLGfYrBGS2$64>0z=%*<)T_DLC0E^)W<5wcdq&HGORta*VW(Ar{nplQS%RO zpkF35e{mn8n{c6VxiVX-{3;MSTB8fM(xhWw3cx(8^W?tD<8K#skuxkMiInhbKxxeY z1>`-t0G>5p#GpZBXU{f5<8$H`!PV$Lo&Km*v_Mk>MsP$_ITzhG9Xl!<2scUWp{KUe z=!q)y*w`ZCx`9l z%N9Sx5zDu8>Dkqbj3m}@oiy@ZOjYYjGmy;Xb<0`r&KKi8vIpKB<`I6HMtL`6!XcCg zz(iQHG`fGGy~1r{TB`=h*PvOdc;>TC{O)U>pqYp6@j7u$Z3Yb=fRc!(O)dJe-UH>1 z41KZir)|l>3vIawsp+q3;{eI{Bt;;y!2pH7v{y{>(N8!3KY32-BT&SAxMOku!ml6@ zM=Wr+8A)370=h=)_04+pQ35M7ChaBcQoA4b8tpu&5xNk}@HP$5Lk#(fL{(!n!Fn+p zrU88L@kFFK*W|g|A0jVK3J-VJi^*!v2!uyjh^MYGNS^WH*;I4hmf^_(W6K*)4PjFPmFX_#kT+wG(k*q5MNx>ngkn4@Hyz33Y-@8q35{e zN~a4l>~!e6vQ&oS4Uo99r{Ti86fUWR0ETpNm+dwI!Bgw$Wp8+x#VB8kxZ#FN-~17j zJTX{Y@UcA4)AR!RnW%=k1H1qHzxYq(3PH$&B6AnMhz*-_5rOQV^E<3xR+)T172nnt zSv#3?S+2$4$O-Gqa=W@clLJOdLG33$%YO zuQ$5hzNdbAz6vrAm*op!FnjpGn_ZmJh&l_DP*nKIS~V~>ywf^-91N?OsR+92V%A~p*=SHA@yc-3qO@gX0a z4n`ZJEP$|Z7w_ly|I;7*Z8#Es0Lh$)wqDGy_P_)Kn?*ld%^wq=p%c$fwbDbjZlReA zVaYVYe^Pq1ei^CW?$};Z%3+^eABKL5`yFk&@cg5SR91&S^;_U z$4*%SC%-$C#q0}^T5@5+3=win0Z2C(E#{y zgnoSNl^?(VkG_&pL&QQX17~`E1rY#{hf!y8O zkvaw!C>mKJ!Dqi}34047c#J~4DCtyxc_}3rA+TFGyUMr;Q4%~g~rBX z9)w?2eas+E^-ylzVxNP)AH|dU2qXI@{;uF-KOu8k$FW?qMOB3sc7$Gk(|-J;9U2BZ z^nH+C@voNq7;|*=QItSR)P=Xxs{^^XI$(@JaM!f?R4hlpYotT)RzM5z35YP4;JVPN z0Ud!d2;|aXIHEnUx7I2^t@!qqY8O6)4eCBT1RS|d@qDxz(WRxGJ#ivO5OSVa84AfAf4<89uU`goV_V*qT*anO6`2kb>SQY~C?=Lps|M=bo1n|1K z^9McOPsicgo5DOIXiYV+Z&%hoef@E|n$b!Fmp&!e)AD&Q<&70^;CV`T!tkjtT~Id}}^0Swv+!P6AUR>4tZpuNn=hWubbp@#=-fdT;651YNM zMh+Zf2wH2}?Q8jxXMc2yNglitVFHF?`!bSJ)jIv6K`$Dit z65S|n{HYAF*2}*m3?o}*lW%1fuVHj@XL!wpE$s073oGS3LIir60(TBe=je(tm zsdfA9=i|qbUQ7W3 zj}K*xmx(_-77?-g>UIxm4(z zO&;}2zoN`i6XP{RJW?yDS~0oy%?sf1SxNsQv+gtMF6nZq3PNmgeFpUu_&o7M@H0I< zcH7cV!M*-0aR0rdDEZvg5Qz@OCBs2)0c2+Bb|1eA;%KgR9U;-BsFxO)mI1+R4#=Ac zbtfK`aYXSl>(x;EQP8rRN0jx5PW{;TLD#iF2+VS+EaY-2$rr?-#E9b6zb=2S;m3&{ zDvt~P@d|$W>da~EC8N07(D(|sc)#QEnjWDVF5;Y)7~?ikg8h#e$X}x zMYuX~Y*;4coNUTRa6d335}V@|BF?<^_98J^`3wLJm0 zlX9lUx>UPIMiU(;7A^r9a}+W`Y`|kjT`Y`A8hl_b0jd(ptf~O<+)ig%_9>4`K|{pV z;i-?Z$b$qX;Ud&Pj?q4kovo*A+FloQYXXzTBx{1ZdR^+m?r`t5`*E_?ay?P}pgq;V z65p9^Y}{-1@8B0|TBLG6{9JGSCsyiTu>hZXkOTM01rZ{iGla*_&UBsLn!mj?9^3Nb zn#@eMOnaL3E1j0XSBHAG5_B$+zzf5t#=>ERC6Yjxh3F$aFTh4L304!qi-CWe0gIRd zA^j<*UCQg%uW^&cY~g6icvS+Sqb*BY5IC%&r?2};Sz20R?0RrJ_In*jN(^cEegt_* zv#4tV1Bs*BMUV*a{ZsyvuQ0Z7D_l=}&H2k%7KFtxtj?%+<+My?ilr)waXE<2m7j~` zVdPo#4LKJeSCZG7o0xaYo8;v40~F#%U^8J!=%mUVt-x!~M1wjGC1^j62lzgAB zv?k|CEgWSnbL{(;{$~%WCO|!((OWEJ(Dh5El_wv1q@FR~f)!|ww&PN7wjv!w1@8*m zM{yOlCiq>ldSSa+#J3t!fb6VoMyWXAL#+7Lz*p(6a4UtDc?|4Gak!+V{7+nM1J7ul9O@b#m$)P6a0?#V{-8<^5`%gV|M zxi08&2t$2r{~aHnDWJ(J0xZK0vK-bAmyfYGj)`Ye3wP*w-(4>=X82RnhFmiEd*Jrl zJ17!|{&#zH?LO2$?h8WAH-EWBS!ktR+*zt+Y$4(kc3G|UUK8$6JCdCtMKe**6Bn)# zggzbI@Vs13+;kVi6~@Q*7TZjLY_R>cH(K3uP6Ej>y#u`=8*nDrzh4?uC+vE)B$2#s zoHP=Wk?>J5dAJ6BZ?fQgvT$$e0Oe2=aR#w}iBVB5$|4~-W7c(8xcmj{kB6!N4rYsD zQ0w=d`wx#~IE)lquof`=WuU5T#LF=VSIG;k_6t6EGDN>V$hbAIIv^Y_66=w`r|iKM z>!Rz!M0`^x>X8kEi=mc$&W(64ld)=~!Q81-AgLqF7x-2z5^i8l$5X&gAZsGuQyvdX z5~zlP*s}!Ij3!V;l>o6Q6sQd&-C()ODEP;F!YUTuj>NW~P9Me-BIGe@$uoWbV|V`I zx~L?AjlOjI-2Jn^tfPoEv4dL4D(n-tiQ?eWylft#;jY|Wt_nV9_oM)^hWqq%!P`~t z6T7G$F&_?E0~wmN1Y|+Oo&qx%5Rn?js+j>fAClEMgU>ZUF*$4U4ZD@%0o->1REmJ@ zv)hc`1S@bMVDxo>V(nHZ*SrEbGXpH9D)`V?u=ZhS!!2pspk+Qd+;$i817UO zGBUdI1S&(Dl#S%*3=XQ zVd(`3unl3GKjpA^j$}{y><+WN?+fZH%#|LU!sA~Dx2A7d02V`>MO*`c_z>PPe95zJ z|6f-&kQn#LMKK~iCbzHgc^)qzzO*Jix@6$5b|o-``B`gL%+lAfmI}B1&A5}hQRAM- z;Pvp{o?HV-R^kQV9kqbiE)EoEDUM%;7(mmBo_7=DvY);;VcCuZ=VpRwo8S^)h#G+f zF>k-ROgDjNX-Xv(gfgD1zWoo+ z>=&f6udx1eGydm&i`lb3&U%2P-zK0nF(A)8GS5u)&BB0(m?SU#=UUoO`qRs^%;_qm z7|KLOWNoSNLGKC5tKsTVGYv~s$Z6Zaot%_ONeYU=)=KPNyR~_3zVZFyLVK`rB%N^o zm~O81h|iN1<5{93{FuPgL8iaV=`__Jo8>6}*A!r; zN>Vg2p3~bqa{u{&yB9EKa6bthwcRwG_>)tVoM*%%=tAje2#->SGSHHfocZfw9TFN` zjyj37Sl>%i)6vzStq>Y{zCq(jpd5)n`O*wNota2r0zeAk_meM#o#>H#2BqBu9<-dJ zp;BYKa-|cE1p(R)$}d^9Faz{k-RO4I!d|o&w}Zs`Od)2L*6q(u9dh5?OGOeu@n;Ik zfPzoOO#i##NAPHGl%c@C5^VMBG=pAjFeMetpMfG9r(PNdMV0+boP6qtz`M9K<#u$6d1-D?!KeGK5~R!oikaC zJQ;(NEVO?jR56aqJ+L8i@1Ly87}N!56ob_DCIqLC(131(L8@9%Q+f*Dv zujIJC6u>8E1hHQi$6Rz?fq_~K;5xzyAjHc{l<$59l@g5~jp>5{!JH=h-e=s^@5l5o}qSfFWot z=^;ciLQ1akmE#>K7Lg%zxMDj-h_iB1>yG`?ywT< zJ-j~>od4wm7GbFAdPC9eYOiir`<*^`l52&4;gi&_e+WK4c6loPeeh{>u`uD}-o_TW zBz?EKIa6<-@2ICONw%E_A`jh`;`KnL1@5kJKnUD*T<{Ms+5I6sKmTn5)Lo#1%Gs>J@@qRz}&0p zi?MF@zT!^sQA41a-Z@>%`_mQvPp*o85puIJPv_l1W|)_Rw%Y(t6qc@9 z=rb9E{cFxfXIN8{6haPOhx8sQ^2?;mDsqUXq+OXV%G>V*kFy-oPj|7fweTmw8={8+ zhI^o>y$LEzD1C3MA9Z-+ahOH=#U0azET|$J+fOL@6o*HnyY6d7of^~dA);E*$Rw+D zgH5w0ABMT{)*wPOIzfv0+g$|(Hhd170nHLtwpe;?ZEX$VVW@`7ujadD_$R+vb;$x^ zIWoapBOfA12c)s(jlN_UWk`WQD=7kkp@sG>IB(}8pD+K*r5Zd3k#PO}k!u%!*$$sK zz)ocZpL7zk?zk{jiDR_wn(XdoG%1&CEKl!ZpKPV`Uj0V;?R{ItiT4NWOS8)0$Y>-z zi-a>ymJ^*gq9Btfkq$v!9=d8*sDwj%yMW-b%O>y`%$rx47SDBgasHgN_i&rU9H2`O2Y0e>K5_W|ZMc~eYru>#%%2xd~^ zFqZ)dlM38?Usl}Sl#9R;w4oQ=z?{Pl;A6unEn3|0BUv3;-lbqWB?h%Xxz;K!ioo&J zc>n{ll!)W%8rz>-Bxh4!!Is}ej4x*#V#O|dfS)O=%T1YS;wUQy`tJ8vzr7&r$QjFI z>Kc$8B*Q-JA1kTLzgjVHyKAf(j3H9M7iM;!t%ekk>C0uii1v4GW)yCCN5Tu4=r+mx zY%~1%Io@u0{m&O_a38WpuY!e+eESH03-kDAaKiT`Js^#D=zr9n87?6B`SpXi(>LM@ z%;E!yCuU3IIR--7GYI3JpS!8a#AXU1fPjdI&jYu#llv-JsW1;T4c=!PGXH536DW9{1LbT{{HT-5^4M;pGUvdckZ zg;XSl9~1n77P*&#D7AjkwEtxi_btbXAiuZOW;#Zsjq|q``lAk*kHma>-Ey%}sCRo^ z?CDk6r`*cx^Mb|1r_ouDCR+iN4=p9`_R4d0m>tph2-^2@wnVrKowZHL`j;T%V}#N} z<0CWP04%f#d*ezZeU@mpsf+VoR_t-_bPJVF5onkTkNNct&3-LS}vO*-h zm4H)!>x*k>0B`GhjQMYXpT_)8Kh@ru`w&>yy+Q(8$uCE`SL+}Rf~AQ zvzkM6*bq>H*W&!0sdhjmtBXpN+H)lyegl zJL0>?W-9pr^1FzI`>f8K49_T2-leYqFgYM;v_jcA%^c3G+HNo=Hu->seMQKu2hvys z$c*H2Xi)9TGm<6OSCa-Qz*6-^w6e*RjBfxXR{}KDorb&M17t#{wWU0&eyMs2(j=Ep zE{}#yTGwM$S>UcTb$!|Eg0X#Gw+-TCSOSODT_ zlLr|%61T~wDe^n5>|wq^6r!=KkAZ&4G%kH(jX&iD-Fx83w&P?&hn|?}%1uPfi7XBf z96Z<#V$wK>z9!I$)W}By*j#_P-f%VW=O!WxAwFv;eSSL}LYZYVCINzCB`}&$1PNyO zAlL+MJhwPyletL3^w;HyAt1TpI3G>E=7!8svhOE(ud{e% z_DLYb$WvU@_g%f3t@X;Qzsw3M{#mZZ5~S*1Rew@HrXy?WZ}?eev7@uK>R;c{dAP|z zD@zez;qWcd{M%P+ij|+6$FciH1T06qOh*KaN4)-s*Q-1AnmSiMR81oK55ge(x$V^= zj2frwS{C9YA|A;pk4S3C2`+ySAH-K5Grd>HH&inNi zKsFlp9-(fK(MeUJ`E#UVnOQ{M3s9%aWvD45onKJSBt!W6h)&Ac!`{=_t@Cy=drv-4 z@|D2Sr3oseJohbUi=J;AJ&+m~nnrfR^LzVE?4XqHzoPXi^Rh;-bse(?^%FnxZ8g~C zYQ34zIq&j5BB>C@q+FKWB0z1%WZqkpO`c&AQ>?(WRt1~=Hn1)4B4Se1CzbgbaED<& z{&7g=*5XOx@byj(OO!+u?~M1hvX(C@LW2RXg+w%jE(Y$8NDtP7YESA`Ka{6|jN%l2 z%gQ!H4(N5!B95~f)H(>%3eD=dW%C~9E9Wn)HIH%t3(*1lnI(HO>K2VZ826NszcAx} zcv&)MqvqD|9dGV#rDg!qEx4Iw6MV@J>u&Tz2cf@n15BxEtNkZFCc3=xN9@81`vs_& zxffuLS{oRll-nr;cwOj`N^N(vz%W<#NYxa1O)^d_6c|Ml64wt`$0~!Do_i9 zMTaSoFjI?r22#FR9$x$D$6ydl4yH^N8b_b1_x6L%-r|}18}ql5^q{+N__DsewNY+I zwrxn>q}nMB!zY&^eRuqHt-so1JKIL-s5AhWBrcR35;2MmeG-Ht>`?eKOBQ9ytdL)zz41!8jd$w-8Pn| z5+TWQPK7ZBgWg$PM~!gG03h6H+?EdTGrxLy4yT#&T}cS-{OW*5oj^?D%_l>sjjpK$ z>v*`lH83`6RU)j4nJ>**RW6;vzi{bN>+v}#Uq|b6nZ~;XoS8Q5z)Z3K#D`ItQGrR&rl>q`r|Y;1N+x*VP9qymG)~T!w*pyaec;MkPAr;QCqQG? zzYLkVb7SU=2~7x^oMlNuZ?U3gaHgjCvDstD^f=~nidAffLr@(mlw=CJ@xWK@Khfke zxUD@)O8@E`l{!uiXM?5gL7%2^Kgop7BKWcCZ*&`s8n>mqcUPk+nR~@#xe1rU>cM;} zm1h_gOk#7K5HgxAfPyzEIwX%{EjA#eUV+QFB}{sT|~U@NO6NyDhz z5U@n8Q4axC&|+PIR*ca;qLXsK0%r#sUe=?@K=0Ey&e~CdW*EYO!mFqry#) zdGJsJafrStIp`qF9r zSH725bH-XkM|x91@ti5bunQ zn6RWC)2~Bcl|~G%qsapzB>OF^2#w*&;84ty`T|eepsAzEy77|?<9}wV-x7x*0wJ~g zK}BODzmuy~lI|~36KKm|c3ZfwcF#Z0J{`Iu&_h_sv*DoVxZ0fA@(R(UHw_EeVh;_um@nrMGs|wUitgemED~ zP-@z9mO~^T^RC7zyw3tG%bwjp{8qTQ7kZoP%bALrYr!jdv=2nVJ^hbe0Hh`l+D>=K z-7}wrGt}=dy`6oz=W*CY0|~+tSERs$sN5l9=5W_bv3kN-xwi;kZFilC194Y$Xcd@j zxe}aYTm1pkPy{((+2A{s7v=#o$XuIp_2Gr$^BIua6?kv`GDG`)ETXnT0q&<}(eMi` z1@iCjr~ZGSkBSZ!k_LfmW5<;-b)n7L?feD%!7`+yM@I9CV78Y z8e3e7;#Vva>V3)~!*{X*+S=6H)a}J0Ffq!hY(!jMN|moP zgF=Dy#EEHdlDB6)djv}1R7~-#25>LjTjfBCw)!U*eTq9g-Y9>=Ug@Q^kkpn9{@y#C z2##xZ$G{8@X+ky$64A5J_)AY^>7nrpZ}InKGk4{_Gux)_J zC>aC@&LFiaAFSDT(h-BCN%nKS#kov$kW;{AlJjsHi3@;~w@-Zp{8jy)K^UX?z~_c~ zdpzR#NKZdOsDM6#_tX-Uj$r81zfc_p@n#A#o_4TRN(JYyjoCYjO0qX~8b8rlAQO{T z)`Q{fmBRoJXaH)IHE=r2s?8O_Uol01d}@2C`#$I)2WlF?3U0evuc|snH(&F9z2h)x*WAKIch3kt z7u`WxYmL=f#!R(&XO1aQoK>fseWt3sM;D+iP<^pF#gqbHtpm(>%01sBT&}WHzW`I#YN&a!L4shTT z_*jK{xHDQ|Vmj%@M{eh08a}hA4@ivs2lt857l-={uJ^>>e9~F3$(rKt^P4>68~E{` zsdnH8q*n?cxf1!x={gCS5MDc)naKg01D0dg}IB=E?;KODpY&p90^GDn z%Z-}P@~e*qy;QV6Q_Z_ko&k_her1t-c3Hejt=17(!DV)r=W@UYf<*aBVY$NTG1W(_ z1w4~wbtiiwCZ3vPAfd_*U_9eWPaJ1JHJ4#@(>P3v%2H?HTFu#00~w$Te=pe!GujJ| zJ(GpSN)Q3BuvgQ@tKt`i)_8UUet=!UoXxs z-FT6G-H#&2DYm};g?qoBIj{b^Myr=9N3N0=QW<40BCu0`#D{_#%qu!*1(xj(hBn2W zA2egz-vTY_KeyulOoh(yVOwW$2cB0Lhi&W}E+5Jmj{V)=e=k98qL8e1HTfDE`c}!h zBBhS16ufGaJ&Nl?X!=WXqLC`K;gX`mUT1<+5T*e*fLWUz&w%8jgt)HW8K%9IdkU2n z1`0FUW53?ne`E>iY26dMh;R!K!Kt?(*pUXX;O9PoFax%K`c6|!c}XBxD*@`8E_pCe zN_x5UK}n3zHPLTfdrBSqyn3f!+oR3Yz(H2A5jvc1IPXBJI2Y*xmu16;nBrSB!DN$Q z@_Ku51Bx6keY4zKV@wnC9x#R*y!-^(8;)JnH(Z_Va|S|TD6p60!Beby1+{OV%QBLd zp0U6|r{!8ckT9>z|8fh#s^~_@&9e}!Q9jR5TG`U{7CHLXL-XnE=yG6;H={*z&vyt= zm@%zGd@8deD>C7?xSRl$^Hx-$8zgI-)+6`GH<3Z-yTylLCJM7M@$nrxFt@Vk;f4{7 zB_*freD&3-mwr8D6`-Ny2{>IahjZWT-PfS&m9LL6b2s&Kf$`CL)XT)80tTRRfQ?)f z;*Q8MV0GlVhbV-=vW_HFXQ#&aS z!Sz;5({0rc5dcFc!fzkc*kOMAF7xFUKk)dJ{p@}i+fx)Ui34HtvWx{KD)#lNBN#^>zoQRS$4lxZvClo}#efZFu zU1iW8RnWc3$nthtP<^rpbsaiVYpz)irc+k{#bL_2XiT^A)+YP$WR86gcYQS}dZ1wO zMu+>T#`*m@-}VEpIyKxL{hLYI8&T9qkgjWZHZ-aI>JbQV6IWyRAcpR%xA(5>-QQgQ zen@8Z^Ju13@4n0LUzGq~y&^`dmRcT~Dl5>Vb=Lcclg3X9DM2%phRMx(<8tNM8meE7!C%pej zI{q60WL$8=#IPoiMie@rO#To0SU_2_ikkq98jn{vU_ut^EvX`c@@|%zrz4af%>xlh4w}kJbE-C=0A5NUeB^R}>lqCK@^2VynG=2Z?%z)qR+5dP| z9;CvbGYJ#>et8gp)F`ljr0yKg7a<|y5gUQEnsLD;NEbikdFlJB`x zdb9@oTxv@clU6K{0G?j8Ne~beEGMpkHbRQD4T%X>1r z#dU%cE44T#koxsGJj<^2AR#vIWH_C)08|)XCC8YXF41~pC@|Zb9OLt!>UXlWeyGYY zwTG?%f)4O-Iy8eO-`qd4zr~98;#qvg(0|8V8tg#Ygv%dq4F7sZQ3FjyH&E?t&>sf^ z?Po(2(u2@?LG9_mCtam#pUSi3-2|44QBT2I;V6(sk-h`sLytnCtV(@fy}0&pD4_lk zknGa%z)UO-$x$HDZ-W0%pP#pcl&8r%_p>70OZjda_ECAOa8pV)W!nKOLW4^zlp!>F z?7nM&Qi16cNwuUiU-vJ8(JM-#aCv)s2kEwWNLHBZeHnV&r=}md>ike;6^cTNW$gz_ z6<?T|93OV&%2ld_zFJw#fLl#(xzg`Wdmb4SPI2~UhhcSTx%=<5Jq=Ej$!Cz#S z+~BYdFVq373BBh+p8q?D8M@;9v$sktHS@vp^WM{H|7Cf<-!fbw&~9zS)62%a4~{=} zF^+F11a0k$@1HkclcN{knmpX@zEQgZ{R3$z|MKET`;7^#tSJ`PgoFBxM) zdjqKW++U>(4r;}VKU?v#t8kYBl?0OYR%C>&2PqB0q+@AltLu8C!hsddYFDx}LM)sq zC{lnIe6G`JGiGT2k(E-*xvvzLgiBUbJPfUd3eSUYX9>929@%;G18EmNgN0h&De6dK z5$ihSbgWTP>`Y8I6D6Z6qWfXh*1g_UxLXeUan#}t(*Nc-{fMPQ4HMndM_K(Bm< zEjw(W0e4SI7=72aSQNHxiag_~qb;+;hgo#7frws$9RDjgB_u;fa}rd$qTwtvHyAFF z!i`;Y0SmV)98wXAE0)pv4H3y|#n#C{6fy28NM9JOKb~2O0OauI6<`FbKV)<#GC8l{ z<7lEgH@3k;^z&9a5%l$dPO`L2&yv*m+KkDx`*q^+ONN%O3PM)2I#}p6d5t~^B)fhM zX?I!wp(oP9g^9M!(8Xjxo8Am%Af@}4uf-Gd0)O6v`7FW3bHA?4uo!aTX9_7A>gxkL zam=c5gvSvoIFs6V_Pe<0uJ~`N9M;T3BqSrKi|J~`GKlRlv>Rf9fGG>-s~Oq?ESfkj zNP>Yw9e7rpf(P`iPhmnWx|2{I{0EV769_jGsb}HRwFMHvmE}B;@#nDB09fp(9cab* zIP#G29vn2c+XrznNb6oe2&HwzkF%qJ$49tO;Bg$hhi4&^VR7UUv{@g&{Hj=I^qm9a z>6wWK+dL8I%ZG3$7^NnE{j7iMQT}{2VwDhO0OMKvpR8hku3qtm&RTvHZ+XZnx;QGb z@1U@zJN@T+M!1n}7wcu3U$o>listHzXlsXOltKcpQsG*hAQ73ux4k9^XHy<9sC;OG zh*8xjAXkLvZV*H~%~8{{EzrP#xiRP4GSqwg60h}ju7|D64Ny(>^FkeqOoDFBH&LAH zRHCZ!$6o^g;C--0=LCd#cBchh9+<$!%PaVyjg(bG4M;D3PCg_#Z}luvEw#O-Ozsgjf%Iq#LA(knm?h0(1iyzOq0!WB1tJR9apG=hhZP>lLo)-i3bb z+r~eA$CC)Py}2mK`oZ?mv!frZ-!}o|v8p{2o|z(a|1iQG`Rs5L$3+RV8pcc?9c%le z`A4k+oby;cZQ6gEA!mWsV*i1gzvE0{k&qjQ$`xDd&3$?4l8wl4@G2_BIr`#2nvDS@ zy&VdRzQ-kP$B8UpN)zkI7a;b93jw_^miOz(k#guDIz#+qDP}!>Xgbb*14a+2gMk{=dJ+ z0@}9)0is>@@~;BbeFmwlXn>3_*`2z-tt?_KiuUTwp%sy+7x{LAfR~I#%moHTqWAym$$tO6I1Fqs*}-6m@E$xw8_3P}U%=1Qx*yNcK{o zfytm+kd|=s$-xY`6i_A6C6q;mE~)OqATYF$CQx zOP#4bi0Ta5sU02#xwtr*`|sSn>l{_gSMZd{JY}kUMzm=2>t`g;9*zOXi6=~ zsz;{}#q?s^Io5yZbu69W=~yk^oc#R@_+{Za=(1a2%9{;WA7b~ToJyrg-uJs0REf7T z8(OiW0R$?RC23A~H3sQZaBsh+nJWh0TdC~uy1dfzK5s{`2C6D6-;NAU8-DBR-SFLT*6K2 zrF*M-m8_&&lwrPV(P9;eVf`KX*vcDXa$zy5a@rm7~A=tI*K59t}|` z3_E)>5N#Ty<{kn%r|W(}wV}bLp!94hvTA|w@fr8@ITLWRK#m6zQ^Di9MCV+M&r8CP zN}gTnbR`EaKR-XBh35Ff+|I}%y-&*+hYE!zlY<#_>_BW>JeT7sjJ`b$10Kl#aB|;^ z##f7}lnG~30=CKONw;7?s)Ct-OCyF%iK7*y&dlm@w{hIwwAK!931fEus7vwSd+s)P z8Ve;i@DpS~NcKhAPwvNt`k(OKPw!TOx<-BJ_{mar)|ZN~hcerM&Ac_r6K#FHx$dWeX3A#`ynL@%uG{9#{Mv!@Y~fI3n7)R z9~GYl;`s^!v1#u`yYVJ|m~$=#4-9l@DP_75a37fVi=uD7$Gah+1(}L*Q#3Y3Aw4B~ zmM;#PlKl>$vcZjb=4H~(BZnsPJ6siLNq_Wi*RYj9*|v*)b^s>Qiy}=Es=UX)7JU8w z-N1yFqB`vFbLMR(%c*pkj*OPq-Ywf(En`t)SFLNj!$mlHsoBld1W*L7>91~gl%RVo z6p%6jgTT~NP|0og+I1tA3va}zp}02&&r>qc(<7Q(&{=DY>p;K06^;*B-FN#vxs71p zlTa?)@3;!N?~%v9DfI@28mq;IgPJxhPnFLZ`Vu(YANcH0U}>mn(cAmSK&qGEHE*dZ38^@iglHBa z@B+QWY)d(k_ddjd?Ziu8qnVO0b@tLAgm&A$a7XZg{1w(!Lb^F~iJ%M{{Im3m@NYX5 zJw7r+9rpw{cH&@N=`f51?tlQl;6(j_W&8>|Dx+TcsP0qyc?H;UL6-p=Z3R@)_6L{! z>7PE?8)j&X&ivs8@N*OV^;INEn<-W7{FMNk{FUE4&o#>_g{(>aay`Z&b-|K#{q3vR zhOMIyhb?{9+uOg@F5w!EsAtkHCO4^vy|$QVr*D-tBtI+1blvxlR7kiXQ5IE1pWx-@ z-hmXi(oJRRjV@9!&@R}0!tcRt&JW>Q5@Gnx#TZV zQP!ahXYc^uJ;(Nc9X)mSB>mdt>)_*R1XYbzZ=Ug=Tl}w8(<|zf>C!CyJ^&5%`DuaS z>1k3H9S)B>!m0wiM0ueGj58UUYSAvF>^QNk+iJ}J1#Sv75M;+<0%M50UCqt9xK@kP z9UVoEmzE&xs6Mzz{=m5zUpp%fAze9yrsJ?10Xe(Q4Q%L5(v$K)OYr(SRkN<`-)gA0 z6!2dqm?eL+6+yjC!t1i=t#*@KsgfJ!CbTU1^kQ1z z{=%pG!YB<54VqH|#@^Yr)Jke0R2sV0%7tzah^baYt@`K=Lt#A<)(b~qdPyXEi z=&v<7$xn~f$h{jo_EuxGG&E~J{;vP{%4x>}XsEiA_VQ1O@}0eWX}~hk7KmKAJx?@K zLIbv)4G``2fJMac=hv6}uas}wPYmI?6D5<*e1c^AK;rt|-Jmw_AQ_k7?)rnK@d>k% z5^#oZrML+Z0~BvDqAq#{_7S1nrKGzD7|%Q59xVA-TA{rd;;s_6vA;g1BU^d0Rk*aY z^k^!3496r(?$@7#iFs5WN_+{sLjB1GRURG`IBzQ?TLM}jI;z3Cy?SqCUS8bEysPES zs#p^~xqFJcI9UTxA_V~s}OXudtVWS=XmdOfxl z8AN8gvA5QWu0ESL-9cf0y*cE zBI6Q4;Q;W>9I&`+wqq==`wIDfY$IBZw?g74bKq7#xEIm9>fLDYie>u zA9+bWXb`5|l}Q%Cs4c?a_9&L7bV{9-B}9EK+sAdrwG89xHG|vsJl(%jC@ad5(K-Cp zAlKpWsc!XWr<=L;xu5<70D7NEhHIumUPoBWUsBA-$)D`L?TU*e5H1xoV5OK_o`IXx zZj+Bc<`lpB=)e5E-b6eP@zsGpZBYMn?{GFxSC)qn$h^nM8Q6VconG#WlIIKO%`_M+ z)9~z5Z(9$imwiqcAsArtOi(xABH@GyLe>KjHE)m_jVU7*n8Z{NU~#jA7}=@ase_tq z&UT8x>xyTIRQLMWE8j?=#u?wbO1}ep13OW^&Pu)HfAe)2Ro4b(Dsou;I9Csjg}yJf zg?7L9>gURIgAZ@}hrv$|ng6Uo&Pn#MvCO{vT=7P&?SaaewJTVnY^`$j9zWCDyLR{N zL|WIs;(!R)CGu^>f2wfc!<5bSa^#WxxI;N!vtQfAW~#r()C+=#H` zAZ;%h=n8CZ#2QvYqwM11k~p_%=LJbk-$sc!Gw8P~UBr%CbLKc@)kgl%W}pEjKMZ2Mv5U?gi8?* z34bQ^16ad^N%kaZ4fKHI|Helm9R!$$SVzpi`Gq1vX&W`eA>q%-6bGgphL&zbZ$kgf zg^cc+dFD5Zp8B)NHai@SJh<{xaJXOHd)1$Bd18K0XWHcl7>Qq-1wLIo3Y*8IJV}_t z{>#NZ*?CXCS&JoM?~(t4({ewOYT~BK1n87Hx+zAcv~WFm%z40hslG^PzGgD42mgLfJ6$yZsxmJ_JZrUmci&8 zy^Gb-fhc-KXqWt&5QZaApY?fUW2zZWKlb=?~%xlZfwE{(}|58wbT@n_qoeH!TrgnyZ7 z`W?pTsSli=u8RhwoF$TY*;@gPuNxIMe)n<9RpSKV0r==0c=UyC;h!!7<0o>bU#0Us z2fm>N;8zo0Srt|tV_R@jzJ*$`)hM^rr2En^qahqan8A4l=h8(u&JD^6Xo<+!3-B3 z)!3VGx&^16H=dqGBgfojk7dj3z8=8Bx)t+&CWZ$&`XM)}jM8&uZ_Q3T z)peQu%kyWz^p_ye8dFV+v_b5P0@MUeVzn6N(!zLyk%7}ZYDw1-&^7_eR0_(^v2APC ztdT)yQ#$~SLRJC?`{;p;)TY~9FVnmBd#NUUdGE*({nPVm?q&+ol@qmVO?{ZiC~xz! zfYm>@%>VRNJsX*)zbe|X@~=kX=WX+^uU1eCpWJzV#B+R5BGE(0;N?`L_M$CuFOI}5G4 zz_s4X>|Yt9pFd7ipLpzIpmDNWNQConjFbCm72;kRj7n#sLZCd=;F0B(b0r#-Qy8}p zYUB6`j>F8?Gp@`(EfqZP%d`#%+HO*J{9A=cIgruv4T6w?t-@dg!y8~r?^fA=J3;=Z z!+}$U7OnBU9zS1y|M=oIA$^fteTxfw8X9eEh*esnAU{n#X%Pl}4&13e` z%iCYEbsp}jER>(S9#=1+S!;7uU+#1)}X6jOQQN*J|-!uztN*2 zZt1y@LE)pi{JVVnq9Mm1w0c{P`?4%eXT35s657{cDP104xJHsiw_d#H>tB{@5j|I` z*>;945YT)yR|cE>=gINEe8nlt?3}6bx#T{($n_wDPGzkU8L=M^A!8!iilhFZqA~mH zo(o}L*U8+Ny&`o+VZbqYNy(j^)CIJ1+n4+)Yl3{kofmrWD@oe)ER(XCf8j$ivY>Af;M15IADwV45@G)yT`XnBm ztz9o&N2{IN7(#sQD6E#S1>9YKY!~<$xpK9~Oubj`o(;TxFZKR9rT{SoLv#0gG|B}{-S;&gSab$2k4`&N%)q!*Q&P49^mk#HFOwzKhyi?U6l z>tOkFXXMt|xwRi?jz^KpJEiJ5xaFtNPWI0+*H@x|4;8ZJE z3W6^ejibcDUlbNlDwbLGHmBt_7#7HyeOu;W$1q$0cT)U|rqV zYvsPC8v~t*bEg<|jE_d^<~avKXvVMQkNMCO^g>BPr1?UrmHc5h&7r!{@SICbMbbf6 zmkp|B{%ocCOoj)yFYijEaw~sxGJZ)j`9h(mw9=F6se4sF1h}N_9AsCbKd+~*Qx*&m zOT)NLDMDKc)oRW=K4o6O#s`D*%$XGeGC&&jBZF+}J@pwGnX}S|TG$DH!c%oqc3Ia( z=1a65}B1f-!w{IjCS}+Sow+a%*Cl5yV$ji7+02jT{M(v{Cc2=x}B_&YG-vL zqbo~=7ax**;-*5cK5^8(RtTq-il8=vq>I56WqV-IxF7CU8mWGU)AF3vGKO=2HV|^r z7%Ugak1QL+z)9i_<-7XEkvuBDQ*>;nA<@O~xxj?F&Z`Sf-Kxot=>ISM)<4S6f0bfJxS+G2yfplA68&}C{lMUJHS0&u8hrjp zBZlfSd++A339nJfIHp|gk}JI;HOlC|Vx-^TzBCWPA?f+enVb(djZ8EDr}+Gp7?_1JHc0y_9TXLv0BT*V8bSPRhq?G^@IqT zW#sx+#4*s?tUr~UKif&6*GB`UBS~Iz@a?b|E5BPcc#$nr-<)>*Yv$t63019F@g@DX z`JO{9txP}JaI-YOGx{TSzm56GHWkjmRFhX}=6nmHP=^z*>4zbX2Y=i# z@Y&QJqynvl8S{}Ob8}lGr&_vX&)DS)8pp~LZ+g8x`@&T?zj0*e>>lym7>%n>380E) zKP`6vDUQ8EEd}vC)8-@@3ex;y4A%>I6t-CM>9yL`j?rkoF&!?ftM(*xfxi0wUDw%S z^L%Bi_pXz!hhP7JM+o7am0t49{yEb6+ltFN0)Cf4XF2VKNBRW6*13C%X`>UDr1w8s zlR6S+C*?YkuBY|>wt%l>+PO`i{N1_h>PALlmCMgj)%d;y%2(=2Q3=XL6Nz4?vPN1~ zOZ5(QCFJIBT{Knd@5s^Vp2gdzG8FSDT&cO43mH?)p&T)}@3I{tmp9ZHm59TTzf~(1 zc$OQype4Iv%)- zsAvZ)q}^Y?lHD=y_S#10v6Qn-#^ac^jdE)59ZJ)W>&JDS<2{t@)zIWoCGst zvu%OjPU6w|uygz(HNR?8s#kPHVvNg%$}Nwm5;nKIT35N~bd@(JKhu3NEUe-is9|0) zREufd85ma9jrpDFu66T@u1xfi8~B5buD$;^M>bBk$w2CjXiLoGQ~K+aH1)M|4=uSC z6nZA(WN4y2xH<00G!P!DJpMqy_2BkPn)fCQT{bf!w5QOflQe7$g`dJ=9J=j({zY7% zQK!kj=`)G)okDYnSqmoXsq)i(>djE+@GmHG?qn=2bdH6aXSXyPTwM%Q7d>?;E4MawiV>cQwQDu;YDB*1OSwkQhuw`ik(9QD82+Oot~ zj@zy`XzPzQ=*PwI2X5nza|6kp5`S3HE) zhmW>52O#DSL1&jKKqp?gNNd=*h8(3FPteU}WeYGk`hfo2;ITFR!{Nu$)RJ&5EmFb( z@|6?h*5IjNQI5#L9$3LclZox!O>>Rql&0A+6oWiaNj6fxDxAJ-#5p_3r4n@pHCcI0 z7wDMPn{^u=(N7+0@F1=Hy-sU+9Xcu0$bcG|Gs$L6P-6xG^(Uh8j&wTn{iUu{Y2xVy zy;*X$J4a7iIwRv7a787^c)X-AS-W|x$YB1TPlEdtQ}RHB*-NB?5Vsuu(a&H|lhB>y zfwa%r>>Bk)Pm8&`_B2FyOiMl!D~^v&c!|33=# zzg2L5`z7ZU!c5ySdqK(1DaPN*Lm4}#p0r!bZE`Z%8xMQlHz~+~ zeu4>Gf^Qse<#f|soJ>@N#`k1?1k-a}M;Qn*H(Z+08megKTy@C-Oe@G__$thAhB8YR z`0pzynvA8b;BCGExGbQa5Jr1qTpsZl*ZT7Q(6!x(F4Ks)Cx#s*Pzh={&Zf~0!LqJ; zv+Ic{(`HXKGt!kly}#7;$ogVWnap(#iSDo-)p(OG=@*H|FF#yqIO+ZM zx9jX*zw}TfiqCbsui8v1G~iA;*VEIz>E!J*14h-)Z*GmXV{(V(T_1I3_YIfLvyjk5 zjdQthAz?};P^#y!c_K^5Xz{8BW`?g0)>V|?{)atP@dv<&RKQ^7%ir+oL8wTqiHjcZ>o^sfKJ;*lY{>`QQR8yzy zF}vwSgd-kjTGu_C3!t=7dV@f}rsiLhj?uLdCrj25q8Z%(&NR4Njv18|^4X_fei0kv z7;wOAYjfBHF};MPT?uvKNT{k3<3J>lazk+C}QUA69 z{`{p=0C#V`1So`sSLUxT+p4qoU zt$qVV;+FmwozS>`Q<`IEf&ZoJF#Nj2;h+p;PXWF2F?+2&j-Nq9f@f`AF#ry>8HP@h zP|+uK@UE@7IPj-3L$aQkanB4xAVRx|g(U~fOLh>KBBJ}X8e5tm7Oj_jVm(Bzvla{^r>mVBuvDRZ zY0bA{qG2_GV>M#;I{XS8uTHV0v7I#VS-?zLV+Ju1Ti*btWC?R+Xk+?dozaF_aCD%# z`y;_h*sGk9Y}r+a37U}IH#0f!Z7R>~*1n`qCFY#ZarhGfmd=sSR|idBY@%}(WBy$? z*kr(_T@<*N4cJA;)p)N$;Rqzfr-BX1pHnWa!>1TcP((MUfgci@DOBP)2bYEpVn~NG z>I|G&f}x>)e(34-p4|fDgL@Y-RZBcfQ_i3i!;K>ZmVf#fw?0=-jMB9GywgfOLF-iH z!u&}V@ekbaZ%drT5)6{_V=M!&a?l8q|Cc*(3E z<57Qa*pm>N_E%GhrMWo6$@G>)w{#~o&bEgIJ7H*Y#J%PD^MP;%&L~f8BNzchDMJnm zR(g$`x&TDL{QA5d%QBrgiMh(rmlvPu7x>xW$=4)uGI>dz@d)}&;69S&+qmwX|8@p> zvdVaEZJA3#34>6}kx3L9(q_sZW$;j^{4w1r<+hPox;KC@;?&ak+Pw_&{DpM-6HiT> zTxtYi&C3i3D?)8FqVy4J< z{87plazME*LR`oG6-7F~n zJZdIIP-_SaU*+4@pV2>mt3@XHrLz{!hI)xz#d9ZFypo(UQ~+x&lu#T!Pn@Z=H{NR6 zzEo+2n?C1Uw3QcKbcqCTD~mSn5XiMtNL} znx-G_pu{0`*0=ErsY2EW@uT)HhcEXp?ATap6*5OfYetLC3n7&0r?~DC*dMVuihet; zXosD?8Cr#dH4M;k@?2jsJqDkk7?&!z!$F&WRC^&AaGq2|X_|_-B>pU0{0uh85jaz# zbYzv$&T_RBW-^lmTACcukDoLcM+Bkd#F*BlSsP!v^SdS9QPNN=n+{CkKLaw`Omgo$ z$EHvKCU96^KZuZ0@#;w&Q?9RtP=f-TO7x1LPg+UKLMi0695*?1zC~11jrP=(>*uD2 zfNBd{iBb&9LzZqiov>aP#q`MnKNt2x^3t5bOe3|CX*%}VX^!OSMTzU#^OnCs^`-=6 zoL=tDo$zNYgIC~UBc*+o{gJ*;upkZKS3ZmmS}EDmnAqv&hIt9G{J8=~SARdM$MvNe zF>Lh$O>&M^%|oEY6I~bhsOrAx2~eor&c41Z7^u)E7BWuAbIvaApm@ zzU(k!m}S|;Z#H}Rqe2w}*sK5JfqnnaB~LGC!^BzB=F_TJM^k#q} z$wpj;mEd2%#`*vyR9-c!>E7!U;GKuy%uI$b_QRi^nk<#Q-W4Esg;x;NVbGO!qP!_O z$MlDy|1P&3!5^R~C;_Z@gkxkpfZLlO^>A1X0d{o~qaETS$Qr((bMc=G%6X4AL}e#2 z(eE5Cp=7(FjZp0O-*ALqyNpU)gs_^pX(!_islRy*urObe)HhQ+ulnofKpw{26bhM* zK#}@Qv*g#8*#EoaTc`TDEL(bb z$Di*>wq%PFvW`fP%dwoiG?7tfN_GPYWzg_jZ^M!;rvr%ABVnOVkCedN<;%m+)wDyd zMKn9$@3DQgc;f6dzYPTGGi$iGk-N|H#h$AXk2 zb(Tmtq)2ZcGR|avnVxkW;iSk(<4yM1&+hpH@%A`P?Yu-I*;oi?(}Y~|lvBalBP;b{ zsws_p-=axKMCS;{Hh4}d?0RYNn=&^kMut`m^XC_jPfoHmkk~2EivufJ!h=J^L_Lb; zREE7e7;ZwS~$Kqqe2M=p>4u5xCZ;WR z!pqA$=-kz)UV#E_?mJEyD0ki++Ea1w#P#V)gz`ylOo_3t^SM04&qNdFaMB)2J9j0w zg6lQ0b?Nki16LQU{W!cGa%Ul6NRA~=)IUGB#|DJ*ZShAo?RFB9B4K?4%2i(j>j=$< z+?PgHG6h==dgMry#5_RVj0MPb6<=;H! zz8d!KDjW9e&z1CqWIDHUwBZs5dVO`LT8$5;b(zHH;2BgyGPrg=U|xubs_>lac_8Af zX!r3L%aZnC+%6pE`%#D~JUQpZ&JTh&@qoe*beST{3mfB`>fJu&iO*_Uqk0EG5SvyK z`EMH#i5S}pT7I$ACn`|b3uehIG&F>G3BU?H+9VIzx8njj{Gym*Y?)% zE%*YPu_S#ZS|m{bQ5FYT7t9{(4M3fogbu3aF2jS*W0h8#9qBcyV^Fe7c3(A~c0U8f zFCngfLP>EDZMbuY4ih=rYT%i4zNMiZM?b+XR~N>D}CUE9uOdYqkPKBu6~#cJ;zRb<1Lo_MVwGa53k(c z1GACD4%gDvp{7%#zTzw**#Ib8IC5&Z?;8^f&9FI_5Lt#+n@E%)WmzKUBVI#gRol+$ z?^9k*9KzYIJ<=6?w&u@U^V`mP2nh%gwI5}4Feo~3{*@464JqUKoao3}lX|o5?obh* zcomU|gox3n%Kk3Qo<$ObPK{NFPI^y!%$Nz4{X-GcQWB35u<7f8*pI9i6D&Fovt3-g zsrNIqNd?&IsA$ekDDpVPu`aP`kZ`yDBH3L^sYi+^kIJG&tD0GqWe6j^l&}dua@x|{b9>$8cbjNMq(Sk@?z;mw^QM+HZ zkd~GvnUka-Tq39~nbjvL5s{{E--o?2vplRbIipf{_NgrPsR=(#yM)3biN=fE0j}Xkz=93+&%-ZLle1x?o zDyuKvmWxi=0(~0WVQ=Mr?et04^soPba~`v-z~uEN=MpFQY(nvVbe+7fq)_;8QNSF+YTa}+^Mb3U zd;a{Y0X(E|NT%Ab!Ooc0pjRe7_2d+5%DG{Kt0R^Kj~msy=!(PkkQi(cX2$)8RE>%e z5*i2-w!Nq(OF($~cxYj~iIK4ceA26q;M^j&h?E7jE%CZFJi?$3L4AtM8+iU%EoT9KTk6@}P1e?T)a+sLd1pA@) zX>X~OAn`zR;NRBHH{)CNu%CVUOtjLayZ<Bk8^c}4Y~D~|O5TInp*M8966_z|VnnPD$uDdkaDOij9q z!^eklEqDA|t@JE(@a>dJ%+pYZCy}YdqCo02<&4KJTDTtam59Rt|J*L1R-RNJus!zU z5=snN=Lismz(2(8SS9CvNnQ(mW^eg1_e5h=>k8mt!RXhMB3={yY%|>tqRRMoG<{b6 zi_yQKnt*}J=pnlJabrS~Gd!TqYxOM75m_Q(nx!VR65@$L08Y{>Z?zslA#s^@K@BEf z!Mj1SS?L_kx{jrg!Dz~KUcDw)OB;g7VQl#76DuC88v2BMb)8o_uq3Hh101sbyF($>W44ct$xW-a=LENlmSvmBrpE3Ob>2ZDT3SA#D+5@l(H z%R0|_zOfzg|5k4cHeQpo738jMm8bHwjuqoNQfE)$OwXD12Ga`Bae#<`kyUE;-uOe` zND3!oO&>BR^4`sF=U{&tYO2aHYljMYGGsoqUN`5AGkx6y6BUbNqo`E6DRRL_!ue?< zZl98i)2bM6Hzzr8cseX8vh-hG)K+O&w;l|Rp|ZUgb|_$r=-F59(doa1T!lnVr7u6M z`6S=WjW9P5bqA=nKV!*KPs90DLw6pX*m-2AEsWM#>v9K}A~DV*m}2MXhxZkHg6Swp z3XI!t=IJCk>X^oydlfXe$4{*#-0;@k!@?IAcG?xc59~^t^Z#W*wte7IIj4PwY5#aw zAF#kq%5uBQcOfX2(Il@tb-)ZS8#R6=o*L6!~6?WKT?RS#%I4nGb5&y z>N%da>%Aw?pYNh`mLcD+!hyk=NvQ%-;Sa02#84IM`z5dMs%T4M&ZsMOB<`)ZBLGAq z;Z`e)JNCkq{s9HVoFrsliVv@OADg6D#itwwiIa(~KI1*AiWAZB zCYYDUIP*SxCNHe@O7RJ6tbuvnyKM1sg!9Sg7t(8tw?%s7Vm1kxr7H0YB*D!pW+5)~ zvg7R_F(R!KEj(t-#_48338>sAmo2ON$`-|1^=KX$!?bcVcyVnME`uO6G$z+#J|N2S z4j_z#OVB!ep|8rR9uDZ2>+pA4)1q@M!hZEoGD9uyt-Z(?PV_JdvC-a_{4xa;4`Y>m zb%FGV`G?Zo_e!`KBo8dJ-||Y_7EQq|0?ZP6mhpLlA$DA&qjW$ikapS6#cX)_zn8EJ*aY4T3{`w9G?|B`vk`CqWs9jA-d@Ps*44Xh!i4iwLnJOVPr30mwXM0%%_QGI zB}cvK+oZk2%e{?V(El=Ux&PhJ) zegKIWEyCT9d{j`!iM1>BopOe;vhqE~qYrzUgcGTw^Zn1ctR{J0@E5-NZGSZo{E_`J zY1*$k>Taa(?XrERwmh+}>hl#tiT+v+i{$l(h3~S}S~t#OQy3l}>De8!Q{swmJ*?`# zKk)!TCP(iRJD<4PX$YQf%DFtU`bL=nYY@Ip7(;(TmR6F!Mfm&LQ9rgndb8TKrSzyX7O-TLR_I1dSBE(mA)FIM9z<5t zl=}VH4M&xvdcNrTh|fGIGrhMCD+S24Ucymt71it0^Cf>2GXbDM=XJcSZNE}* zfOrIF9s&dDlhXMuf4*04b0$%rDD5+%Y_l$Y4F3`mWc)cy&S(fkiR!%Cv=ocf5$4*l zX{KlGT5Hd0=+sDDF|}VAZu+8KbJ2;W=HFJyT$s-ym!J{3da|h%Z__Ktj) zmp-XC-k79UYgk+DybxXC(~qxQZC!P|UI%tXn$$ZAjHC4FF2HXR?RP@TD$Wk&UQd_p z#h_SmR-N#Fu}U6DHZ0)|Vfw<0iy6I5*3QRs=)MN881wz? zP=C(ARCr&5*7SqZ25y*95O!BUqK=@5*XoOI$X8YQ=644_;Z7rAu3?+v&o7*(8Z)9; zH)$USua5uBds{I-za!r`PcAbuFW_@E5c#~!AD(x?7-F4-F_+2AfjGm)2)A3rQk$+J zR0rQKc%}#75dVa@vV^u+Nr}ibZTr5k9tB#Gp3ZK9Ck>H3N z0w1T11W;NpFPk>K;y|d+na=Wqm?T@gt_^O)dLb}hk3rV9$HTdxaDWQve|fC$#}H28 zq9ppfO{be=K-K5go;CZf;e11FfUFv#{>j3TY$r=YK4}iNN)*)aUNKQQGjgpbR`yKQ z<-8~oFo+Y$qHNPC6(5UVzTp3CO8)&@I0Zo>o|=6pbaD>NDJEJUhLyc~)P1kwKapnG zv;skAS!#R%?eH->E#-6NSS*ap=3Pd|VGkGzP#M2!>O$ftLOa4S7wYH&NJG8`Q51Hm689w>(`Xw~;m5zS$NTl48{UJ$ zjCxiaG^IVYTNF7TeD6?9_qD2wrwB)K1n2`}=yb>fIJWY^2mp|^C*D8m>t4JgWp3Ud zJrA-TRz0uXbVVdy@B7lcA8OdVCtQx-XjS(_rMphK{SBN7nhO+{5AsFu{ARWIZ7=7Y zo;kbg`pU8|&P~3J0*`6Y7P7U!zy-x~pRLkeXK^&Ua56Rlx(|8x&1?&){h4GOYK* zFyFpI-9xwnNJ6$kRMnIr45|~%sD{VzH#RB?sC`l}j+fs^^Vw$Ja*bvsw2@Y~aV0Nw zF$Yl{z@$;61Jhgn-hxt*jcR3;h9f}=fmd<1Hq|!vIChqkNn(TmZM}cMQYVH=R2#89 zi_RD4r5VSr=l<|2o0*qxf*D78Qa%Y5d<WR~i^=&tNMJ998T)3X3Tb`+>vKwvk31p~bW65bM-a0@;=#sWUD`rtUF?aNEq8r% zcKl|g*;|5pa5wi<>T|`=_Zj-EADM}mRG0i+8pj(;F)$q6u&epq!z1)U!(%2B<70X+ zqA*D`Z}6nAIo6D7ENnJC$3Tjg&>Lvgxu6)RKj?|KFdB_rpL5;3xLzu~tI3g_&|nbk zX5XCeBk?i$EyqYiPc{%n1BA@-XM9MrVr!Fy_|Gy!dVWM84$G37O=NKb=i} zJ^TIpHLWgmaSNY6x%!znD+BkBD0( zO)W-ySNNlCXBAM&S{=QC^VGu0wbpRlTg}6Xx?R=mu8XeCtIXKWM3)yTk@CW{wx|!m zsO$15pToG7IiJMYj<|P>;@~g9qF01~|A+w1FIqcNl3dP-9-E^-Q^fy>6^LU`A>Kk# zJapD_aOs(!1-Wcil{|^gyt;b)kS|*nYtW1=A#vroA5m{{1s{T2uX>xVbSYPo&5-T2 zr~&1+;Ik)kJR1C3Do%YvtD{lHXC?@C2wST6+yji1ct8X;qn}^bSgA;N7G+-GGcyOk z#&7h&XC!7k1$7%6k7|I-jm?*?W*@$Eq4Q}$$x0Mq7}xtH!?Fj})(05QEzr25{DZ)e ztDf;*f>B)kzKCygZDzwC2c17vW?_0#Cyo{KX3Y9x4LghO6`Sy^frS<-oMCeOB~MTb zB$$1}6e8c{l;%nMA8TkbM$L~Z;K$wUlraN-uF6_*#JlX59kWLkm2svWAHEFdvc^5N z^HXOzr|m@TL;hI7S6VU51j01%-)t5 z$QIh@H_XOhtHkM#X+q{L5EXg~7;HLMIjrQ1>y7Y933Cx;c5Zmp?BZ;S*hOZWk;ud> z;a#har|JZMX-+Ezx+B(Ke5f7yHZ}vDXA>V@8608sJ_V{moK8T@~0um>$#mt%t{Ba31TIYW_IG zTis`^F*HS~vaa;qaa6{oW#@-p5q=z2 z;~pRJRCwL&XVDep2w{HyklMSDU%i~#2Sd>9AY&Cn!aqQJ!+veDM4%%jIm>R{ixj=R0y-f=VN)Q5}aM$(pzz zIm~{q>-V_SX7?#vt@h0u>PEujV-0a|^i1>rZ|9Gw6Ds%QbFXmmBnif2yvLI)tZ8zd zctKoRZX*L=Aes!T35;5wOtOPci`;LjJ#q8|;K&pLK4PIxwJ+DY`N#f`3%yZ9VI_qF zT>XT*_>SAk+ZX1`tUXrj!L_{@vvfAiZSZd<%9{oc|4swUVooA7IoRFaQGxXUCwTOP zM+H&ACUE*R%-?Og0($n3s28bK5uisx*^#A@ejNcMFe9Dwe0bICH{4%iuV}Ds!>vb% zgaik&3iVj3@t4BjmwWaH*v z>ZI;f!s^W{XEjY+>eRGt7px#<1X6mP0d|rVrU3XQjF^bz9qsF|W#~V_(cNwP1=Yi0 z0Ni6q_QIA1PIzSPchyV^a7}CiDVcbf6q@SH`bkv;t@ALMTY(`%h$3r0OB}om4p~X=qriK&5Hcb{>%{=C zyO1#EF!0WbvAL@1y~*(KPVbwxEKQhbXaq^)qB#TGiLyD2%WiXX7L;@~mMGI&2)u(< z@d+@(V8R>)X%<|crQux>ea+K%EcfX=b$XG1NRKi{RGO~+o8i0tk=iUyG5&<^uMcAG zlJziH7gPdEJoJoLSt#=@bTEU z;p8g0=>ZvVuJR@2GjKm_P9OH|z{h>@?(?!2%%DV0SLXN!KXDH}9-+QNR3L*Js0@Xt zbLiFFFma@`mcfEP5G2XAxGEEvUT(Yt+(x%-|B@eXetdp}{3#j@%78e6?_-ja+))cE z%dqKcqqX%Eti&QP8=eygN2KP=Ewlpukf%+vOYi*q&HI1d(EMbimuKGiUwm?ch|jUG z@dILkhIwvcE2@to)HxqyFH$fkD#RfbiYeT4&`WJFIEX#^aw-Co?cpRVdy(&ntP?%x zNVqq4V?*X)M01B=={+axXf(C4xM(DMyt`JfXX=<=DiY$ZtQ9GKOiGNf7OCcIRiXk2 zk(5+1NSm`dDg@c(3Be;SeqSA_) zf9}BmZuq7jO6HJ?;Mi{6bYu5dc-$nL7eEnrh=hLb@nac|<5y4k;PpkNcNh#o^+n$Z z{)f}sH(Ye#q^ht(yvs;0_ZNgPa+Eg$>%p1HhRIz-$LFjf}#hw+H*5@8BqR3#rEb_ev z6tjt8XqQrIp}-1-#V|TLk=!`9t6Hksgt&9Y5{$wJ+s;OTJM?|y;+VffouejrKtTZ3 zW~DF;c!rxQcew<7(MU%POzlqb!@KqUT8K@@H;b{Us-sgUw0q!7a=kVY+kf0HX%s~5 zSV2YIZjS<~#$luj+%bO|`%G-0v{`cs@8YE0ciw*D{Be@{A>{#%btwUeC@&JV<^@c1 zJNbLX&D`^VN7rXWOsb8A$L_+-U}KQfT@ruma+U->xg-!B0U?Qi{t$MCEv4=Ng&rdU zO%llxBQvcy1i$0)Bu>dE5we&o4HkKq&!l{wzuD$%5bgX@#6$oPUqkbZjS!*TGe(_3 zq_FTm$ujj1S*A##U)T&16Vcrfu__i3A+#q>A%lmcxj6u6rz&}kDJ|}(qdzigaG~pe zLF*ojDrp_W1?iSI81d$a3T2~Lp|&RlBGBU!-16PSd!md4-Tn-caPpnI83JjdMWCdz zfiMk6r#5ffZUVo43iCPdcQZGJ)iPfP$9(rR-ix3tWEOW_qA=uBvGa0cN`z?t*Ma(@ z<@x@7PE7(J681@C$NWIS|KpFz_i(Z>gA}-Oef9eI=iQl@9}5*9ZhK;m{eu%0d?WWa(}x6tLy^~D>rUDA!Az@yJq z#?YW7RIN-7tA=OMhMYN1sS^Cq#Oug-ByogBjO?LLsYSH42s}+{Bt&(1C*SP9EI>W< z0r&DO5fh!%9ZlvL2@fU$3n7P5Yql0TXuvq6U}|7v5_JxlK6&dI}t*V8Axgy5=jR~)s zk}I)eNHjOwj4d`_^~-#Wjp8I_X#3;Fy$Xrt$Rybe8eL*Bf=)rC;;ad*!JR`&U#NKz--a(oMOVjh%!|x8 zlbmK)lSHO_d7HNPF5i0c2T1V0y^0Jy1ht%1F-rL_&QlXC%KDioVMt{yq9Wgbmk$mF z5BT{S0M-xTAN2dsG>k}$;RYUXI}yC?X<>opeOF3VX8PxmilQ#3u=pWDBUKdshsOuKBRrgjQ-v}#KP)lu!- z6R$yGgTft{@?P$FqVl^&$2TwIl$ULiJSg|)HS>=P*XcHwHj_Mz%g#JLLZ2D|E?=lt zdaX-hbIy&I)C85wRRnsLeubvBS-Mu?;`?+pvUb^0;w-yVD|8zS>6vi`MLZ|&^1R!J zHuGq#LGh? zNC3AGf40eO_=jL}23rJ&ey_vVOiD+WP1bu)l%!o@@49vikjdv0lBktyo|v#)N3=EC zaB6bhvDrifT6Xfgr@{M|?+v>~^VQ)T)tF>Z`kR%b6E|U*vx-|QPR=sdV}XkCgG&Mm z*?qz)X6IboRp#DZNHdO}!l1b@07a3bX1$7sA_kAQgo-gdi9v~e*#HwE{fLf%Nru`Fp`BR$5IeZb4WiOx!NwQP$zHRZN@Os+Kd`Z>pGujLFbDzOzy^TER8tX>4D6_q^DN*MR z|D~t#c*NX!X(=PX0dy3Ts1bJL6I+yhg(Fw2s85`>jA%N)LV!$`ZtGdu$K|QhX@c<_ zPa+IZXLKj!bvGCx7@pdPjOUriIm%XYC;hR2yvOAJlBi5EKDn1e8txfnR^-c zUP;gEinhUnWLZWFjh4*8<&`u=los#~CwEqpSbochuio2x2kD(UPIkgPt9C>tEthbp zrnXexGq2BJLg{dTY-e-ZPO&+2=2$uL(We-=r|MY9d3LL5)gL=m^1R~w{+s~4yxbFv_%tgv>JGM`7 zEjZm!PQRz`&L>m=kD+m=g~@Rd=4PUv(IZO^u1x zE1G!Fsd>%o%h^GJ&hZN_9V82qZel=y{AzQ@N4CSsZbrWy?!KFFX-}O9|8YYvYS|=E>Zkpu@2|x|%*?@!7s?RsrRL7W%~#jnZdU zfl|l6pwO8sb#33ho9JpUug|tMs*3!)s!w_TP-MwFn*BB?6k+KeakuTNagp=Hic5zp zkKvUs6717u+UUymw4laHi{(aF*?}1}SCe1{O_-@efTYOc2&&dSDt+VpV*i0TBVo}F zI2c+%ekqk3NIl^mTBj@#olD_K%}py~R2K}7f{Dtn6OplEq&BKY@Zp}jj8B;yd{YW3 zivNb%uBVl!GSiO4m~W*8#ph;nt-K^y>ArUdpJjfALt7^8V$2A8?bys7?~CtJzle&O zetrKX<+Y{p(W(I+@Y0lVF*oj>9T4+HoHh`bvFBlD(u&8@y(`Pyehi)e35Ndq#d^dL zpAOa6u9cH=6gcZem{4+jh(j1B7Gawo2v!Yl^bGA6EOdvt7KF9@{Z}dzY(h`c zcDktu;c0Rc9-$e4idbJu>`kpA`aYlWWLK9`rW;c4r{Mk90^Jcyqj=ks%>LCA{k zqt@;DW2(%;bvrc9xBmP8buNQ)U>nyv9|1n~MT|{;f7xXHbGQGp!#S7nit?CEqIvOu zyMmyFi#p*cJ}O@sBYU!FmrcuJq@zD`bo|s=ar>ww?>tG)Zc10BEbn2NMDx8R!Fy|x z_qOK09vch!8R3i7JAJjFeUf6lNoJS3*zX|<_>VsmDNveD$X}r{zxXt{dpHj){}i1c z(BBaV@6_EKci!B_sKLb}Uf06cU?#<3E>hbcY}jctV*KgO5&mn7MXiR9zBHozIK#<7 zKFSl}m>y%ZNy@|F554XG{-FPd{Wo_m1Z96@zS%YTii_PgV?jBxGm(|0w(Jcq;q<|HvsicTqx7 zIT~cAjO>Gyon-G&GP7sKQPN!zva)5Ak-hgQLRr~+MYgi{?{#&58sEutN?kLxb7r-!aN8z_JuVfqZ`elaFc1M)~|~MN^tCkt)jO|I~Jk zgvum(9qDq}#*KyVPX22P{HtF0^)bLZh`}-Tm+x*Nj-4(tmjE8|gZULUO35Zn$t{pKfb

vxt^TUNY+-M8 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�(woy5gI*1L=n<*A;?>Ct$lxD)*O*<^BK+CMqX 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

  • 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
  • VNdfl!s{+g6 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 x| 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�^MfbwBXW$4Ec$FCg5)IiUrXYKIJ`oM4Ga^G z41T!s3(&kKbt>ZPA%}6**epwsOG%^+iji;Vps!!=)bwF1?zM)73yz$oun_)Ng)JBY0ohtfWt97F zoe(W3m9L^M1)P5~+H3LV#SCG;bI6X|t>4kDhE9sqel+-`-;lZ2CH;O6GqS922yU9k zutDpuxBGIWHK5RS%a(jw47dVkJBw~S&+h*5fhW?7({_w6Pb8MQFO^LdX^MJ4n0u1y zP;)ufr)x_EiO|KMWXSaSbi5QEh%cPCw|owm_&Yf9Ga%=X-If-Rt`k@lPzSI8a>xIL4n~aFWxvMx!e|-I z0XUV>8oOz-)P^zur|h~LbfoUrYst?MPDpq&E5M%u_H8B2ySnZF38yybA%H)ji*WjS ze~-bAcf2YC{WZ!dUra}N&Cg_+*73Tv-+g3ays+S z=BcB#Q-8GCiZ%%v2-kq{mf7sw*+a-q7)lM2jff{eRjiIcG3mH0Ff(S`eSG{id1+o3 z^}@p=bFeR`_AQ3U%kV4O{p1#ftYM&(H?uIhy2%4|jGy&(70@{8Za1t;V2R9+HcDMAyh(pVS8 zrT~q_)y$$VZAAGmt@=kwp5F%@4)*tFoAsG#xUCeZFt^T^kGl1CM%F<2KQmP`q50ZX z%_Nlen_XG8@|`&xBw^xfTwN^{WxLOsyFT?EK(+kHQ8OCAc*|+W22r00-oBOCh9?G! z^*25s06$s)3?9)`@EtZUb$vX+JyFb8B)MH}7qHDfzKLrlj`l}6zl!pxlJA=T3Ge@j zgo2~w7LNwqETt*hkc}IdjUweu;#ur<0f0-_^C5p?WY^?Q<>39ZnsLOaY9YdMPi3(r zZJPV$V~Ca(YY~xR$dE+yI}JtJf{+mO_lop%L}6H(Wbd@{72p0)>SReJ|3O>eO;s?x zaJ9WUyX!Sjcb4V0N0xPRmFYV$^=;Y?e%5T=;#+d&Z{l~&=fLVx))&T;F41I-PNn82j{VFONf3 z0(uyQ5=fn@;k{$9xR!pj`&C%Wo{*I9_W8av^OrUr^}G0Z!QF%``W5-$=c9G_-UY!z zBwGUlRP?^jZ6$NKVYaqh-Ui#3V*U@(0fvgI=AWq|cIs`*1;AWX$$Va&)~t4*8-mxf+&rY!8YCL>l|RhZ zBk>gb@a;9~(VCEXckKdtnt&%H)^9*`3C29Ha?p)U?&^%ULkFRw`QH!T1oZaz7h7Xq z_-{2KL<*vt3`3XL2)S4(@$Lo2+2$(y^5XyTT3A@QcWW$cDcz zFXzWc#qainxaWUavA7Ars(fzZa%=x;PXckn8Bc=tl?89)tIIAE?NL*n;z&?OIO=WB z8as@KcIemF51dC;TQh_zd44?mB{$h48rGTp?#}`KeT*Z7i(eN77Eqj;H!DsEy7jaP z$~5!PZ6``IkNvdJ%-X|^8??B>1_yt>%6^FXbx$luojOOGIp}51eejAs@)A-pJ)Q$& zmiTz6V9DQUbIi)B*0rQ!Y`j;FXJX}rCFPm$V71&lY}tv7P%=&)2WE)3dQg~TXQW#X zS}L9vV;!d64fU)KoAY|6M5b_0zf==R@NRa3ss_ipG1 zCKcx}b|&@tkYtm3ywMM;t;d_AJkE=)+msT9;YeW?15cd4MS?OYil&nJyK~WXCgUy} z%Jk{|1L?(^t6)P%7ap&<`Z|wjUfFIiofB(S$c(yhbx1n+gDUDfBiD>n{)477NV)); zaXm_gb>jwIa)#~JxZqBH8pr?20T7EA4oDhP4>6|$JLDJsB6OuYwzXjolCh{>)qYd$ zgnNBV$WBhW|5KZj5a;T8uO)2U@I)SZnB7Vph>{(+%X_&JX!jEWUh^~T`kWqge75Ra z3(3EmZ_4bZe_&T?g3a9>9HCi^W^cBCXg)T+5Pz__(0S}e`S<@P(@P{>i9MJ?Dfh+!=XC2_5AgCDwI$f#04{a z#F8zo5U&=2P^_`U)s1ek%+qmp@`y}&py5TjyBet4Aq$2JH6+c49Q|Jo4a zRij>%$UxIp8Q5@pg0II~i=E`g+)THObmHPsLVe5XZwsD0PF4^RV*NNl7b5^wO1vM6 z{Wwqqxx!#lTIY7m)<>5q%VujF@Tlx5poSDGb z4OR%shSqM5wR0S1x~u%g?lXTONu7SIT!qPvI!Nh>a@@Z&HA?AlbA542aeB+=cmsdu z+qw;$NX|O>qv9724(@eQ*Ys0~WtuiNA9_GVui)(hsfvVkFWl@8J`#u34K zK1?T2{oEAni2~tdE$;dD15ZRA8ucxz%~su}`g9}xTAUo|ju#WCYtf$xtf3}eZ9>n) z5RK^%tLmgOTwZU5Sii=Rr3oiuwV1l4N~Q(24yf5*ADT_fA(Q;K=X0J7>`kaN+8n!y>JUV?8+0 ze+0@3Le#k;nxeFesR46sg9KTa|025Gd*EHClImPD&JVtMp%~PRy4s7nGu_sSIILt8 z_6WdV^x6l~&JT@vdF!b7u5c-g0V6n$QCSJbE2LKK!wPXx%u%CU9F`AW?F*i&%v3lA z$|p~ao#9FKqXlpBD-UPG2f1*GEc_h2{5XphGDk`l987MpXv+vRbiswwcy;tFKLVyh zSmPO$1a%^?{|9n!D3*jl#~k%JT}($fNv%Ig&a?hBmq|B1eIQx-m?~M@0n5F~o-Khy z&5@7wTc}u!g|(`SvYrzxo^K7kZ~f{bF;RLI{m}L&ONJwfY?IH)DVNF@^^SLSb#Dab zQCLibEui-HSWLgSv-mJ@+$~2j#~ohC|FiA??0;Mq@UihX1b9Ku3B2|t%~q8J>Ztpd zS3Kw5P~&_l6Nf{8mhJJr(PZgai+l`@j84LANhZ1O9V#`_7+)v{Ee&KS)ZO?je#|o? zly7A#Lm@H6>Py&U(i7})?_rc^jin1T{G4Z<+9Go49Uhj^2JKx9k z9>0Ccln}MqC)Se@Nu*BwvoIOpVl|*yQy!qb$_#z!=hKWwG*z}^x8Jy-s4`-sGNoeb z!sz>>cy2-!A?&}Zve|hUS&5OokF=o-*56l zd&TEI-^V|(2o~XD<-_&xO>w37QOPE*kOu+_SQOs*gzIVi*pub-uSMQ}2$K-QKi?6+ zlw2e9q2zy!$-Vjg4K?JEuW%c4=f;6pdrGLf_^q3pnMcX|j#vQeR6}ps86g?Zq&hVD zBmhwVC3WW-O=BOcA~(e%p|u48dE_IAD%xq^pGtV~T|b>4l~L(C3kqK!^A~H}q4#KJ zKG7);d;D>7^qYM6KB#9qPJ|h=C~Dd3{fIXAL-+@IxOGLfRt`dRKB179z#1<<5nMC& z6y!MmWkHc|^_M9{4Swv(q&Q^wLKAwJBGK`#)uC3%T3xMz!N+_}=^6gj8hOrR*5r-~ zZ#T1F?J|3Hm&}l1`qrKqM&%%K$G7u5k1K(-b%xB;iWD}ol|iEf+rvb)*khvZhLfNH zQ!0A>g-}|JgP64ONl7Fh@L&yYy&;7So((~i=#I`K>@QLUoU+2MX2Y)bTBu*73>f~8 zRBU2u2wn%F1(BFI@1fF!6LYj*UmOhsf6+?UR7lqvLPGRS;k(q_VC{lO?x9~&<1$Xz zM}{TuC)qMId`K7Z;r$>GT;vBY5PGgsSdoq5y**QlXb@Y?kXY@N2))hu-bk=o0~XgT zhZOMx$s9TCWYLQ(-=IOU@M!+x#5(3yvl+F_3@#EvXc5>lnQRGGH--5x=F-Qw`SgE; zBLv1xYtokl?wBASv|n0hxg6#0Ort*SgY3*S)XCh=`1n?$f-q-~Gu}z78wh<|CW`;_ zd7nFL)+;h0gO4V{ax}5RU3`?2>r+B~PDU=7Z++e2JLxuQ^7#ek8}f=Lim(TF5K*+N z5F=Mehlc@8;y_C=vTKJj`(171k%ca=tOwx0^F*$eK zwMiH9Iet#WWkR7l!ukO7&N}5AEYx#E`wAL+vhkYCn0y3EjpK{HW8Hsgj&JKq(KsJo8MozC4Z0lUuJSa(DG#r!+gYPaZz38Z}x=T|Cz zS=2hJj+PyW^Yc^Ufmb>^eBrJK54W^!wwOP!V-Dlr=lJI|73Gn3Ni!Me?WXMat|&^o zw%a;GUqCC-GJ)C~GL&jNT|vXnb^cp-AkmN3D!3kaqfip9J}1du*D4_nc7|!dMy?|? zb7ce#?a2S@I^Q}#h+eK-hbdXX9zMrw#$#Bg?@J8-;i3}`1biOP4AO&)#V&^iB^b*w zx$#m17>J5~O(KI`@UJX3gxur;jt|Loj74p2ajfBm0hpz;6T^Xhcbl z<3AoDUhLfVyDZB3M&D!fqJt#ZH1NgFqusCPwzURqkXX7e{tbi;xmh}?ysfe%sCP&p z@Jm!+m-TQAxKVE{AHGcFFszwuCP}5f9$mu~zxxUuyCT1af2jCRM&Kd=I?`tMDEzmG z*-I+|$!CO6GZUUbkWo!}YA_))w3^G{jdnI*bj>zdwjY!*7W`b70k zf*sFHZpvkO77C+e750F7>_SuShR4%1MtknzBydsRDbXRPlMI^DOud_!sy$PM8gMg} zdG`6*M0nQ3^x4l56uAPXFXKzp$2)}#aXvekG1T;8y=SnlI^UzCx4;Q$Cmg;v4$tz@77N7YwAMcH;;GedU@ zA}QS=NVlYvf+7eA(kLY$4Fdwwp|rGgcS#N1Aky94-SA)dywCf7|5~$LE@c68&wZb3 zpMCb(o9;jFwM&XR&)Lgp19s^Fuz~2eY4)F>rzoRHQa(owI%g5lM)JAF# zb3|9Qs^hMl%ovqUf@AX|D1E&->?zh?>KrS21mM*ZMv2Fr^(IP|(Ti5Ap5?E=Pqae& z%^4+@?IwGD+t*kdfTiAfeP}}ZHrsU+I7+@uc z{&6(FNtu5p(&M!n%(NHW7l^PMWUPnt1{Yz1DD#>Q6854wkes9c`*i-TQgTRiNThO% zipn8+PyiBmt#=uA&$a{RJeJc}u<)ukSz@$&NZC3T{4F5C7(ROgV#T$NBi7?kq@_FJC@Q9 z-mV0z=ce@wu#eH&#~tf~X*b)sXG3U#QtwYkfuxHhgp6MnbaU+5=Qj-LN2*_G*^5aJ zgxTuJcKm^<$PdCC=Wp%$TD1-Z$*Eza=2RZ%3$Y&-dgFNd28*8nhP*!ZL(C)Ee;=Fh zMkFQ#g->5mDLcnQ->{dpWGcto%zPd*)*)T}URTUK5g8_a`*3Hn;@QpR$tMtA{^Qxo z7cBPRugcE9B{?L-TAB!Kn(l6ajDCELr{9J&@2E7sw4rpA|YwKx- zS)v~T{?~vne??eR>6MYBmqOb9M5bK@UGR4ve-%J=ofz?~=Z=PPxI7F^`YS>Q8uL7t zq2+tdHNd zeCwJK9*b-z!=G%OVxh&@-`dK3te1thj7n84UH*W@$LizeR^!L9!c{-puk@?}<7a0% z>RBr57(c6hJ@nGh-n%1)#ya?`Abwi@qe(kwhr)zq;IG)oLJ*Elr>@X6vy&N^Cf9i{%jt|7tX z8*Z<<4mb0>s60A};)w6zlEf?YPT1pIr`I+2*Ol(6muAHc;lc%54rl(ujXED{!)57g z(g0OYZ^mdNOj=nw4?Ui($1)WzCs2WxQyG{_!D!hUeb~dRjtCIzY_CJV5PRiVE{OOi zUcs;34enRPzePkFZcerL?LaAfp9{N=3*!Q>Y}!SZe~445w)O(c)GKJ>i#!J@>e;m)LRAylLvPUS{nBSalk-RYkvOB2_)8iy4tB) z0@0B2hOE6wqEiEhZ}T;|2}RwZjn{{mnH@Z&rjE zMDvmZ_LVV~-ot5(&4mdB_{?uyhu|Zj13ot!w<}&Jrny3 zTXPE%P3$`woCRFl!a*|}{bZz+ZL z?kTr^M|&=Ik4ZNbmqTGzn7GGWyK?V5PTBe;24N&$5IQtC+4cN=Y-3fBR`rR7Cyg>8 zBUB0PsGUqAOJyMp)x_Z@jFhMS%ra|E_2O{lsDAF!z3)st1;t-N2d_ApV>ln3hy}^* z=BdQX<2t6T(Vcxco@jZ)AvR5inZig@>{5<(;4j{#hwg^GyiI+21S39b)ZX zonM%O!x&7*ARk7cN@+}b7}l9<$uN&ViJ^+IcOT<;*`rK?qrMYhFe{kr&Uh zwCh?Li&3y`BkC!Hd>X?lLD%2;10iufR%Yl}+3i4X=;+x>x61LiP@>-S=}hbw#3Dl(qWve^@Y=tgE6XPll=M#{sW-kH#&_0wGa&w|BRp$yQMXWzm{9E-UMv>H3hI(CS z3($iQ)_y+RrU=DLUx7S3SbYC_ixDNFQPC;CJPK|30VKY;?VzI;z5=`Jn|b-PAwt;W z+jM+01>a8SXulqCoM)`1?JP5~YsPT>e| ztxu5Xwi|$GSGHQIu7E|UH3kjs)0G(2_eZOy%^#8qi;B6-)7%(}ZBmcW1$TJotCw`H z6Kdq*ldA|}AdtaRN~tZ-xF|KJ=q|TT@cPZ>M2O+#@dlF`oyf~FxW}MNOylSB&fItS z@>o!%ug1Fp#5~aBO=P#zxT}KRyjjcf;ui7Y1wTI=@}YAJ`vD9>f5+YJLgdhzCz)XZ zZDlO9a-q^8kDl6qM5L?sW|JS@Z8iLgJ7>9u^kxdP?u$WtVG+Z0XuT9s{ugMy?{#p}*(G9%zzN^cqEk z^s%TirI6<*OuhCR5JQE!jV<4w5_=5v*w%&+dFXE#sIf}OJ(?{^yZ{vU} z08us-=Ku$n1yv&%Hmi&fpBZ!CRN$b$nEw{HsI)iMIQAku?kpkZ9dtAw^3DlTz5IPX zLPk)e+#%>ObZZQ8cvtvH$+0l5FLC zvsz!m=-x$_;y#Bz4(5YDk$>=6ZtgXN^L*9-SmY}}J3p#>Pi`G=Q`sdy$(yuXaTH+} zMQT*z!hSq&e;wWMP3oB!L7v0IDM!Fpp#I2l{I_}XqGQ}|CG^~2SR9n&LFKlZ7Kmim zChm*pA8_-wV8b5&?saCd{m6Fc%{ymg_se62Poa65B{aKrM=G#JnIPhey}@$kjcPf+ z1|v56cj*z0aoe{%tjRBFwRllT6n=n9EJZkPxD)t5BI9{#)d=zbz$P9p5|c+ z3(;;3r6^*clPDCEA5CY#qsbWzm6lPxntgQ%@OqB6f=-q*u`j6xuQs#bKDgHVMyHigUm;=Bb{sc zi$8N!dj&U^j>Ocbw#ITwBdA1(*QnrEgA~mllnZH3^v|mUs8;nO0cUFZ8yi`P#e3Tm z2(XrpumRm(sm(1|p7HmZRw%VeZ|uTZY=8lde+fkQLVInfExRR9BA75%kWk>l$n!vi zxEqsUB(*O-#`xxP=XL={T%_Eou-!Dx(IlGF?;^k1CpZyzB}KB>Rco}vP=w@0)Ae}$ zn@QU6SqB`WjTTvc8^)>6LSs2uUG0t`<#EOSqF(5C3GIFd)m7CH}J*f0P-Zr4;2 zg;KxdsLyu1T)yjm6a=TV=CRtVKcl=41pGLJC+;s^oaF6KyY1ugF-@jSxXeKFF4w-ry;;zwe+-b3GkutK(~iFS~k2-j2fBA-2) zs)wJMxbFR`(;|BgWn_Jg|7?ak<%Qk+WuS3?Bvf_+VY>~VC=APu)ZzN zZsh&JN56Ay^xzAf4g&+1y8|r0T7_b57=*0lsK|zgHCgPuFigtli!Gq&4eje5Eqt99 zZ5&+L%b-ESy-M0W8rpiY$FBjCrj|ltf+}!#PWPKjXA9=a{)-&%+hr8=;k>og{N5-! zMaZX6!D5?B#^Hxj+4sm%Ao`LOdLcP~zU1|d)~i1e65mj9(A2A)dXU(==E9Q|C9Y^W zNm`)Ya($SP?RTwwxF)imO(Ow4t`!7keI;I@@Bfl{;XX)aeww?ccQRAUD=}b1+a?mL z1lOVH>%d+OLk;5gr%ci3%fE)Cb%=iZI9uW^hB(D0n-xoSL<<}0HH;v*c;r9U@X2a? zI_xGEnE|rmR#HQG)!4zV4gI`@LQ?*GZqEj$r&o>;z{uvx9?=zA-sA^jB?pUGVsX*< zJG(n*SgG(Xw6nyYT>^F|oD8Z|-YlSi*;6vEO`>i2nCe1}&x&`c<$2e48ShET)Kz^= zx#GEZ7jxfUthP0$-E5^Ok;11fUlzPwo%&=xe|rw*@>eAzsDlf~jX&4I5CZn+m@B(X z!9dfyO%~#fDtyb!h=KzsVw&q; z9Ssqq%fegRXf(i*q)5a4JmL$X*=X;Picr^)!yZn9ZfU_x)xc4v@=+bjYmvPaZ;>KB z@qwx0$EHMVM@6PTHYmXASTx&H3YXO{IkvYzAy}?~b(_mSHmpJ;B;VZ}hro+-)P8Tmv`si~ z>v63=Fzpb8i0(zGmeyufl6WoC7dw}&DaXz`E62N>YHv8BQf)gIymg)(&Pl4W)IPLT zSWTK@pUr#Sql@c)=`voW03}B+suh+B zWxugl6qKoaF>SYd!TyZ)y9K0(o^13ekmx{UawzpVleTak_kay3OAZzqm8X%+>NI?- zUAL%Z72djcspIDLXwpHRqWx3W4QmCO_yx4t??8`*;3a)1H@_z)z$&C_2F{cp<`Dw6{Dil z+s9CD`T4^h(IOqe0qt5o!zJE^h!Y)a*|!%}>2{_AtZ#>p8ZKGxCR1n`86XqMg2F|| z=rw*3ynm|{HIx}ifV1hh*JQ2+`z;}~$g`8=@oyXok8lx<_}>f7xZ_o_AbGu{69#KgHbgz&?q z@rF{=5gRv&@mzf|Vyz3$&N-pAHFa0eZ>Q5skjP+SayLF1aNVgW-#T2H^2evTI{Jc$ zI!iTt8h)p{Jb<&besy}%%Rh2dSkGsluQz|&srk6w0QLG4BDYQ{t{p7&;m_M)bt}p= zP3{4MG!g5q(dn_gN8lqT2tv3COQ-r)ktA=BXnFFt_8&$|z^O#^uS_%MQr61qL^*}t z-V$;hvD(t_hY{C2dL4mA$8gWtOZK;Xr8l{=onpn=4k6!gmLp$?O9?eyR7eVVVq7%Z zzZ%e$aso^Ud5k**?N-mdD_-YmoIE5NP@58=s@B~k!26O8H%zgC?}IdROt+J_l@=SH zH;0*5u0U73JEj{-S*HPA43(q!9LdRa0{D4nw~}d4&TcD-(9nn~y`{qP-V~jZaPQxt zA;RacB+#)mQGBS`UE|;UvNzYW2%LIRx9NpSxzCR~(jbxe&8do9mhZwN$_cfGvU#Pq zNo^?i2_(;e!V|j#R<^(G6YAT7 zo|S1fxYanWr~0`#0?lN1JC8~4{@w@?txl;?KtK@Xb_R*E2(V?mv1|{c+S`+pBNf`Z zJ04PHKACo$bH6S1#52mivZGQjFrsLBSFX(jO>D5>lX*3Xb8~g3swLB8HhOY42g_nx zLKRxK5tL!2)lKqni5j^91I<~dCG18DZ&X|rb6GfdP7ZVJ?o92N-fd(bM`=BzX$u7Q zwX@NhlEduQSX6$DKeECOE zCC%oA)K{xPb7#Wd8sp0#Jc?A&8jK9*js~xoV3I(EwXVl-W@q3LT@Qf(m{raaiOevz9 z85-6nuT}o=nH2x#VQsk4s@acLq+OM-&1+4$rm25R(zgP`huj4L*TfLCWo$?f#rhS3 zuG^={C382%V;$?a1{X(twvQ&y3)lJ*;>0_~UJ}N8u5#Krcnk<_u@Um~eC7c%sCy1b z3H|!IjBuB0M#r`CSc$2(Px!}`VWDC*p9LIO_13dSHi`GaZ(QghyBE-F5D`6J^&qPYJK|yWXR5{CcjW zmKUw~t7Um1_4(%260hA8<83^5jG+#jE-@^bCv_*+u!`UObNs)QNEvYyU>bkl5H(~& z>=qw0*`uKy?}T8MM#2oNU$?o@e8|MHfuVt6z+hfY>qJtC~6u?}zJ-(-165EH>@v z4%9I3778co-)X4(TSY*w0Z);XsQ3Us8bG`{_1*QnVQN9S(Ek}M09NtU9n5~GKmv)` z1NA&EkilI0xt7(J=gi6KFoBa{b@hfMK!z3vuvyIf8iB=05WVxbFdk1SyaQP%@h{p` z^3gHhgI0?RA`jCer2m3!nkMCoaT|nL)OhPMjzE_Lth6I9YXF>g%?}$@U?pT!X{C?R zff6PwO|+L*Ww@>S{rbGs?2}>x0%Q$Wd*ia-6j6eIA=bG1^D1(SQ<)of%eqLh?1Dye z0QV|BLKV3*t9CULzL#Ouq4vfh+V2AK1KsamPq!WMfYMU4{*lwp)A`&y{l>PgHko?l z(_Q2ww?7k@dv%CPaf^jfn-FOyz_NT~Sjd1Rkb>%^Uswl|+N(^V5vVu@i#Xn2uY#`6qv+WjUUwwGzL z*jOO^w-}B7dE~zM5Z`lMrB{=8-KVm@0Ko3hFzzUhMGj4jW0#%k@rk%rK96fdioQN0 z0cxfGi+8c|%7N@Ai*pU^vaTWY`a!xb8yOy=msBqd1>$OzAS|@6~Ps1BU7dx1u!Gq1kEw?Zc#jY=N&b z*#U>T^dyfD-v;USOnkm|$!#iK6)zrb%e-9E^*N-symA1^_T6Io06@#Pdyu@G%}u3)~IIjJPb#x@iTYDHBxzhF9m+Mhjg}+zAnQ* zJeDBsehcnd-0BcTU>HVfR5;JCN!BEEO{dg*63_#0z7;o7l-Wssfh8&!Nhu5U+1G6n z@9lB?hhpRp`LMX$+t@IDodj%typ{e&MpEj($pZ$s(ygoW07q0xN|VWye;-N7Z#--i zpN{eMx+3~+RCClXJeZ|Qb!T@e4q2eV5XO9--&OQkAcPti_(wQT6&* z5!J)kxxnXK+88v zx-ZFHTVm+-#JG7%PCEdMty9z=F+#Fb?$uAq(3b)yfvoz?u3b`+H@$%fFmYv6(jXFH zNy=JLQ$;L$ZpU(4z!+TZ5xt=_$6zBm66~+DcPcVLpPstmJk9dBxxAH|Bq|pjjbBsM z*V2#o3~6$->LA#>b)$YzQl`a3E&6ektv6A4tjZBut1e-@@h77}mq@eSaZ-V8q~&Gz zaaHd`vVO1H*u(iq7p={KoEB@RE8E^!?gq4FLRFFXIC^jV+zW@sa`yhq zQI-HP@Xwny2OfI;w?XF5;hE_v0u+UuwcAf%qJ&?IeRwn~^qanf^U-f%bPx+Ihd-+} zuj~f&%uPBSs6mb5?L^~(Kln0MR1PpFh&jjw3~U>D4w}#z;f0T5LogI?p@h_P19S;% z5%AH}Z40ZI$x)oMIC@rXVKu`fK!Vs5-bvh@a6p|E;I@RZEuY>|zU%;${{89w_vJ4K zR4?hOo}yo-&L!I^w`a8BdglY;!j|uHU;V&dhJ8cvYw(wt#+#3P;!bvXhT1QPDzHMt zAd4etZ2h`7>1hEgECYuIK(D4ldvpEEz3c6>EPPTd|Kwu_t=OAv(TuQJs%UPBZf zi(yiQi42gV;r!riY&T&~H-!TpT-U z-vMrOKTCK`to!>3%G7NfO7;_LYq%Bq10JGc*FSfKjNk7PeXmm#Ni>6TY{qoqo)8tR z@4Zq{@S9IyGItKJ?g5BvzN+m60E5GE>%vWbK_xUO9;YIiZe!X`SLDt-Yo*X?2MD(D z=8)2<@P#M^8U~8ra^4FBF68tFC|$$L37ljx%ISEf^ae~JLN2QI(0*^;LD!ty00}Gt zeVd~Q)nEGWP>yqrlz{}(6C47>9QI9-%JI;UM>T9*aXT`P8F7Bv7VoLb>Swa7+^J)+ zYFAox|FN;UWG0*PqfxRm@P%A%^n_9fH{0^1wLoO(lPg1Cx~<=@^9A#b>4V`W*pl=6 z^ji`&)nR9HBTx0n9pH!t&E;3>vWATUO=InKPiO`kcu_HydLXDoczZfJxCz_(va}cp z4(oU*HkLF{1qsg|wce*KUu^x-e>8$3te6LS;gnL6h(V>{92xdcN09K{du24}l7 zx4A`16~|P$<3?)DHR7PdI*Jas`V-Ds$@+rnR=$K1Lo%A_B~9@-OdJ668^=J&Ob*ud z5~CGh6!N@YU@_U7ThYBZVcY;*m;(w4^|6+L#=BeBOBvDzb*wr-P&;j8#9RY(RSVCr zAzDbUrbVtX&qHPZ*V2!CG&5uWDO zhAk*5rUSt{nB$R3n}dbA!s)~Y={v;zny)2dMPik^Xop78OfYw*Yk1N{72+cdM!lq_ zzV0+M51-clzT$Wtkg06mqUXVFr$qk%BDQ1`8{ma(QrUbgqyAiAfYB?&&cM`e?waxl z%lIQ|?Jc7FSS{M}Q^=}GsSehE`t|=*AG}Be)3m&;NEpZIXyR=kbaUgm>yNy0x0-pxr-2dgJuncxJ`TQB9MCy0PgZ>7 z(atdb=R0fR6?Z7|TC6W}X%zanyx<mZ9jBdLdmLLTCU?SLHD>H^Z8me@qXqEm3l1$c zNq%Hmk;jVjw*nJHJETXz9dqsCDm`@Jxvqjre?*eF8llov&GQHPm-cX}5&hlH+iR31 z!Kh?)cZ?g)*@jL*+?3@h+Q!w{<0}2c(R?2j4lb!JiTX{ z4ucRnQq~2=(@;?ffcpHvPUi#ZAjB(vveo?p{h)=iAbvY}N%t{d5UIWG8GEizVc8L3IWH08n5 z_nhwhw)=>Cju=)t&Wrb{8J(05`(qPxR>Gq783@k2IC~W+6ZYt7cVpH)tyd^lOI={( z5Vmv(a_?c;FH)h;quI$1PdU}B+mW)} zZ(iKKyYBm02qxJqaLBm*4#H>|i@RZKtxw93)jGL;&_Cp%wR@M)h`t|BF@K4pzP$V) zXA$?rn9KYRT`(Cxj>rHJ5jJ?r3v~V`EHU^FHw>%!l-)~CgvbXXm6(|*naHzJl}W)P zzSJJ_Y%(&RKayRVYzq**I3HC1j84N*xmcB6NgZ?m`OKBWx5nSM*Ff>yP(Z32e>m?w zGg$gt4VRamd5)P$j@>1cir;)ODGHq?VU5s=WZ>^X{$fo0s*ncE96T?wEvohYuS^;c z;{?SUbn)s?u{)8YK8yz}^F`U3gEaa1MtlR!%Y)k`2_keZ_(&#U zla4#l^x%2Fx!BHh?}_Y^J^MQ>o51q~JI@lsv`ddf##uMEG{`4=@a0`n84WY&jcR*vuJUB*{^TE3j(HWCc2cS z>=RyLdKgF0wX!?bWrQMh)geUE+w;*=APr5#ORwoU{~1OEOAvZceQm2LqQQYnw7MI2 z)6fs*$38B~Ib+YWR1#kly%W{Fdw)1=0)7v$;T5(Kyt7jMDB?Z4*5Y<|owb6K+;pX7 z?M)`}2|rH9ssC8)()D4Z>z*hhfe)& z#fE<4ydKWN)t^*g_Jsx|Y-fZM%6MqrmYekg_8lJ)1#7>JpeFdI0+v&j(?D5fb5*Ns z0x8x2fz#UBN>9vDAIx;$1Dwe2kS@F4E4%PMq(dj{{P!K?c37LkIT7ETodDpy_1L&0 zDkh4@DqZvBLJm4lB>k{CRus0_7L*OZ;Fjq7;c3p0_VLZQJB8Vd(A7!$Y#M0Z8<-Y<$^=QQkUi2pF%{zsOsKvkx#h7;XI*A8btqC0aJ5E?!ygEdQO!rj`!gMP+NEcEgw(%=>Z{(eEjz%LpGoQJ?dyRgCScypOkyryOn783P>byZM&u{w)?FE zZ_{bvih){x_8Q36XDJwZ6<&7kC#n8?y4uB{wjW7f_Gv&q*tv8U5QsKO$kjm5at{x_ z{`AcI2aNwKP4c0EOLV@F3TM}Lh`y7-x#5&L7<0kz=}#RO+;eq|D9k&E=T2Q16Zm?S3F;+8wkceh*4U>(xgxZ7#=y`S^!&6(?LC`D*5P!NmuK(`Ye zCe4%3S)KV1*5l05Ore3y>kP_2mgDr(?>2|B!b}&HlaSe_?5XO2Q&P(nkg17auBw*x z`b5?Nc|_Jk^k+@#QVLhUj-@29+2}!mj7fa_w#sU!K&y;lCDscUNCA%Tg%^#5@X`Q6 zMi&MnqVvthc+U(+5W#z4X;iy8TCf$T`Q6k&E(v+r73>`xPXY585*MHzJvl=kZQzZP zo5!3Qu00F#Xl$F(70xO0)A!#wJPdqrRJS|hZJF_zCOj62n9XL)W8+WKO@lK4RnD_M z=t)(dKN_6AsqdzM)SkG!(NlILANV*qeB^N}=y;Mb=lVt0tu7h)9atkhRuU01F1w#T zGLWxR*mgdi1!BQ1UFVgkqySD=hTPcFK0tET-QHZeGCl+nw>y#NU$4N9Vf?{;1uuAlo14uOWz|Rp$L+(0}4>E<1!_#xU z69*4(yaA~{mW>cXH`kD>c=-%d9Hpdy51Cqgw#)L3eW2-&GbOBI#$tJ$yWAJY(@}Ng zREPuonPIvkxv%R1QE4)%+Jmz$3Yc8xEl`ry53+Lx?6A zMh{5Ccf@9A3VSje>brzAq0@*C#?_UQn@gMb?35AOJ}jnD`5&bK8CWNBeOK^SYpmG$ z$YcQNq39&t^~?fmy>eImvyl6#LupdJ#pA*r74D|}$WxTb#LF8n_CCzR9OwI1$!xAd z#$rAAbGuwfuqu(eNjP~!u zGIkhxPfULMbsKT?T&*ZgQvb%~Oq=hc2JeSAiQpjKK&SgI4&6y1IjR0}OC-1BT6&;T zdAoYrj9(OtM7VLrXSfGOkoyZs9T$VW-OawjH*3fEwC`{Qzrt^Z#IL&M=y`JAGC)gY z;5xtS)G|ckO-IjFOzi3}K2>Vu?^|$;mmTN~l)ZoV0KbzEO71syZG8IDF4TA1VRt(2 zCb7crFV!lciNt2qM8*e{0iq*)?ys`voo_CkXUFth4^goQgb9dsEF--TbnV$IYGAN6 zavM-?F5*ojvXQm$^n*#)tVp9@7baYZ^1LxPx;d$HJ`&jz=bvLc?Z0X}uB!AYAXeAx zyo2epy*=3+89LA2x*WJV`bi6hlSay(B_hFhrTg0Al(s$5`BfnmPq80i?c)fomls=1 z9oumoHugC2kva?&#G94~CpmUAC-J*Fv|HMi`goLs)BG&=bsjPASH-iAgx`HLVz8T) zxS8E;*7nnzHG_oO=M`1p9#A4g>oxTW^wMYiGbg;#h&Pm_5%O1l>&EyZRf;UE$fg|a z&z#}0Tl8L*Dz-ljBw}Xa*&Czom6%$WcW&HIPI8Fx<%ywJrx4S`l~M)RB{N)!lx2dp z*ph7j_cJ(c7=j$L5KnKLD)kgUY5ij9 zFs}!@87XafExC!s^VmUAtIv=}{Zq=g1bwCTTxbi9Fk3NG&zWwmLz6U$zJUzaU=HsI zl0&!U74!tjmH$0$tRc-;TxG?G28B2-11mAg6MM7KX-T5R_)xO6l?!T?XRf!t{U z*)wi#J8NR#_;cS=iK|nvlo&85cS2K&v|Z^BxbG(KnVXxE4o^kSkZtbKLfs$`oBaTM zI4u#XV(5g2&n8NZc|b(e=Kq7@Q%Xibs zL*&03igm##weqfF{kH66gNGta%%x^Rf0vtwi06=R@MEmmck8eWYsca}k#_6Gn^hjZ zPnLJ0v2_a2#8%6(Rd4#J$TH}faNgwh5qI1a&tmvpH z|Lj?|&#vr!9}q_cBY@cC09OW;nIFI$(~@sRa`ozvH2e&lhfWmTg$sR=-`^Gl^@O(068mW7m%`vz_|LCD&bnp%A~xW?JFg*tn?Q2ar06=>@xme8mRI)t@UD!2Y3W z0=`~-k$M)`cy$l3oMQ8wdd@WU?A9?ZSr60iw8$4M9JLuDI?f>5Zz2(~#a^6F=z@g{ z&L!LU{BoZ^9>JfB@3BLfBL9;qJCS-*)rikkYwhpqr=Qxar+&-Pt^gB&R${N=BhrOd ziPo)p9*tumgRSknr}y0zo-XtO>$_d5`J%=IiNwF11>Ou##^lkxHOkSC>QF|g7T)=; zaEgPa{xH*ct1>Z}`6qd3o`zsac8TFk$`jPs_@|gP@qC@gUcf+GOh4NnJIM+yk%N~v zOS(oHs%Qzaj8sb2gJyTiZs4e7%3of5-B4KM&9=j$I=u2s+eFW zW4c)R#wt?Rm`25iOj`L5xjaOE7wS${=Ihju$WgpTJDa`2K*6zybI51_z>p3LB#Sr% z7{*~8R8A3OYJVETM`2BN<$%wvgo#1Bqk?KVvYWt0<57&Du(Q(myNVC5-7Lk^!3pZp z&ocP#{^OyB3es@F8VG$8_^_jcA7!hff;F}jOYMo5g3#PVH>eT;3|Lhan-5(yps6e5 zqUHEY@S$mPIK6mb-;M>WZ>QaMz-lbJrDg~;JbF%a6_apK&wx}CFqo=@C2q*3$?gul zRa)3!%RycRT4stk^9yoX<}2x)u&if|o+8p8Ov!e&sbOOLPF3h9f$8tb)%F(n{*(|Cva)5}25-|K;vYl<9Ok(@ zJmVgGa?u66ACTB|(0HwJ$Uh;yNc-Bu6*1#N`1uNqo;#k{CE=Cqg0LVPHa#&>gA@9< zG8@j~$9P;bHuYD9($s`II(gz(=r1C_L|tbB{fAVie;lJu=fm{Ob_?!jzW#yMIQh;jJpv_NZDH<`*nS-U!1{Cd2wE<^mb4% z3Wg6UdFA}q9tV#EY<;(s{K}W6W@fqt!q-#@FQ^CcV)gnfAF?iPhER8-DsubqDetCH z7A?Z@dRKnR(x&viScOiECB0A)0<)P%3=*5~hzehN-C4Alk^>x~2iVo z(){PX_yOPv3rEJOTtLT%{jd4GEd&>X-|cYx1(k1EfN;BQBK|JP8^7N5pf z0!m)f^5-P|{k@1Tso(MyJJwKZZVquVEECzu~ z%iSA@)h}7l@5;C> zg%u~0w!o6X%7pU8WSE1d+tknWlOrrYt;++g0dG+%_@bU?jGn_9P*9pTLSzDc)D2H7 z7X&WlqHD5%8-|doR!UIRm0{BtAf6~bTIR(stox(Os44;p(jNGE@Rki!$e8=V$#r=b z?6CkKi zi%oGxDBwphf%{MhP=4Z-nbiB#M{A_(HzAgosv6qKGHv4W0?)-!uPf)VNoip%YL}#d~v-3mL}u)qC5*|&j*F&2}X5tiA+!1c+pkse}Q-Qx4xh& zctY6h)}U3hKR%y%Ty8K z_%Od!VqZod=%ppR%537$^d{{~h$-|3#u2X>$}AaD+>vGC^u9jo4tN zU`dD_@D=_r=u@_!11-};W3M51wm~^&MHU;%)jqo~KB$xr?{0!(C}Ru1aYDNsgBWFf zF%JINR;VLMdrIyS`M;Gzefl3YP&Pi3xz@&8ZP{NM1#d5IqrgbHv^rRe&suCOISY%t z+HCMypImj)4F}2D8k?YXmytsPkKiVgCYGGOVttUrDiRZtR*kLsaQ0)MZbmmZ_k`=g zAVm$EtyJO{Nb@|$$Rq-(sfrwuI-wb0d$XCuJzuZUBPHI237KZ6W%0|Y-P1rTHz_7G$0sG&dC?;!^2RZrlm_0APrvjSs&dbBlwFUUAkoA-u@ zghPi3Hl1S1c&c&8Z?LV&h%;G0*4y9+Ep?oEKvD90oHm6xK;kDMnBM3IV-C>|LHn*@1V0ySnO;IY{O8x1ei0v^FYCVb{lP& z$d`kq4sC}x8nfYS;fBjx;oIvnUaLC%>LZna?<>I;?e#dtnn<_1igK*9@yCh{=gr3C z+rJ_D4rCAT<&mJh=@+}TV8`pt=VmQg#mG-e zxGwtDVi+)^;z-k8PI|Hw=Jod>(ni85Mvb1W*K6HhuzeI-z>_xWFX4s<4oQ%_>|2ens6am~TtRF?c zqOz5rJdJh5OmgWiP_31nyFZ|O;rk0MgJ2(AG5q|YY{)NC;9??jrt|Zdqw=c6L$ucq zuQ=hG2Q|omX?1WN`PE9Fa?z8JJY~!GPz+#~988Q#U9QDMh=6;W3Vh%UFTpqzZmph z>Hv<;*lI;JTsr<3{!qQ&4u>4%KE@J8M#)NTCs0*LBiTwx-0}*hX1asx1YXULsqb2C zn9Spifaw#daDiBm1RJ5*^tiH_E!=)%&B;_!6J%=AV+<09)kMcC> z^Bl?3HR+3DovD?kjyUP=eAgJ45rw-|4$FOw2vGcPgEme0L|S&i{UGe$*H4*wz#R5) zfcf*FknEGOp5EWc7GDj<3XL+u>l@w_ydC*6EDi^v%=_K3X`2>>Xsk8S--DSd6rQ2g z_qUU?B0Q7Y=6KNARf*!SMb3Y|HFX1ef-!pE-3>`}FR!8a^GF0f%kF9&MeyGQeiFbs z1T?w0apMY{gvAei*OE~gR82Rq7sw7M@k6-gGldHipPV|9}1O=HJtxUM;Cu* z(6uca_hK2>Y?25xcYu~X-!9AMRg7w9_NsUF62JAN8Y0ZneNmPs0s6B9uJtZP;bhyM zwEHOt|D4Z+=k7$D)GGq7V5r+`FnOT{!2lPw^WCgoU$G(W0bn$PMVTN#6E4zK>xk%! zd8BSjJgX|m_dKn)%;=hMaD*Cu#)V<~?AAjB_ie9;u!m;&j&tj3N{q-Y@w0w@WFh!yKAR~o$e3J|#i4`77aPdjh1&yT$E z>W(5zb=>s+S4Ve$a)B=^6G0|j_fIDf1ukJ&05czNst*4EYi7Z~ccH1&YOMX~n2!E{ z#uzYP``pmkU@m=s_$@#762FTC^4P`E)c@X%($tU9Y{c?)1od~PgJ<5uXWBzZV?F}Y z1PKFtAbLvXOyMz6QcbYyU#i|<@I*Ix{qvb8x-uCb67ab5>c=vAbAMv0LgfJT9ep|R z`kzr8^&C2v>{1|WVX;7P332iPDuBt0_X}T0lNbv(XM4?Ob8qA(N*^ep9SR*`CxV%A zo*VZr5Qq`8cb~21K`xX$14d)%(w;}TS^4867a^VQ*ew~lUqL%4F~O3zQY->tB(m5w zxDMoo^*^2}S`8Mui7E(HgWp;WFJ+I?(3R=5N*}^ymr1yw+_|y*?|ihVSI!Oi7piQ z7ez2Y%1m3Xb#%AEvLB-Bsq|TOuI~RH>VK~1VxmN<)1K!fCp17F?iO_|$z!5sK87Q3 z)GNJhJbRiW|BVJb*M7!%8y}?HhOT=zg&l@VCA(y+58Ac4+?)*U#1J@Y=&YwQ(&)t? zmlSWIuV6pt6CFLD;VNH?<@p83&5!8;xuZjK7_h)1(OqUZK1sfi52R$URr+%m2M^($VW~fAyFsquNES;@(JE@v&RD)#@V zI_t2gy0wiD!vI5fr+}0+NVk-zq=d9I(jX-{U=UIwAd-Rt3ewUsD&2_EFi3az5Z^-I z_nh-x*ZzZx9QLfe))V*hyRqyf+PdF2G6%r~BTKFxwKKBp$DyUMc3DLjkF#)QYodkhczb;(h4O8|hU40hZGb z6%4-V0VAmSYsiyd#Bvb3p3umay4vAKzd}KXVDLFq%KO!eXHS4QlLcC)5SkMgbSkkk zWfQUSj)a}uv(@P#+OP<6aoXLOEP(R{DRvOu>2CBUJ1w%aM_F9QC;Jvo=+WfrFO0V0 z!UzR(l9^GNpa(AqF|mmr&&I#hO6pCa-uEW>r}6cVx(wmR&Qe|GC*$1Po@TH7i(qi_c&ZYmpr$wD1{XL9iwnYAs#|6kB zt+uB7{9p7*EzZ5jjqAJg`G|FOGXLj_r^S$x6my(qm=!iDu}!!J&^%`Kta^s!!=910 zRgR;j?;^1$pAY6v%>C4}Kt9FI<#Y1A-mp(*=}~sIb?UGxym-_z|F=0b|F$r_JK-yop3Q+I||zojd(Cr-x1-WPmWfhp+cZa5j>W_2Vf z5TNEki~Ux(ChY>(wrhT2(3=-5B?l6TZw!Le0NWMwNk9M3(o=xp3YyRLi1hDUVBXuX z2G9+Tu5(hm{!GF)H(qlY2Kh5>8X$;B9{U#K(ZwC(etz)f9z}V!vLmY>lU3~}RIr!N zlaIP(lNw+6bYV1i_CO2?2!3u2zuTHLFg= zKi$W*3y}V;7A0@+ad!4Xw_hI14KW<0un!+lJ1(xD;l!xfQ9brRPt{`{P2n&+aoCS7 zeEYvq!_@}E!gK{8W9ol9o-PW@^v4z}+rYkwO|1FWb?Jdxnvtlyg+3@kFn+VPekitnmyHm-FP=fhSK_Go=!dAjV;wIbRyH ze~7?VsIY@zX&;+sD?ois&7$crG?V2(z2b2JxoWluF_!nA`LKUu8D$m&P@{?uJJymR zE#$kK?jy7(nnioxQ!U$XXVwouOs)i9_^;}wd89jqxrr4w#$|U-*Raln7AF}M1Hh=Y zjjH9CaP|F2e&O8QfAmy;7v@(09-9f9rsjt|`Z?NsJ@HPl@fU!qyQ*HvVQ?H})68#F z`&J{{p$phf?VuHrnyP&v;)!}u2R1gzMzXy<)ekCpUA3@R#UH*XA3_DM~>Ai z9xsu-^G=$rju!n+U7xK!`fKW^w{$Cowr925-rnR_71&Ni(Ry`_41Y%VL*@=83?I)Y zDAaoLGkr1OJL(&~-^4Zkaee@ux}q0IB5~ojlp^~OI#7~TLB5jf;y>_**!!P1;?D;c zY%JH*&G1-Bz5`q3wn&A;E#gYo4QwOpnp%&E%C|S2tbj0rL;DLwoXjq~Ew-^$xR+4) zcg1GSX5FUW4B|%@oT=JgJcO=K@uV%rZ07lOL9ELZePxzp-1RX`^5>AYmk8Sl??e@| zI%EsmE4D%t-mEk~H~I`ez$eElnhFvhsP~<|o8BfZ{>9>d&PJ9H+@6fJ^a1*tT__*+ z?}MouDc{m~60Tk8SOUSEwpgF!PxET4{>;wgjR0Pbd!NAJ%jQM!3%r4)S%8FlB5jb@ zb76b>FNy5$3i(X}2)3LWhreGqK4Wn-(QUX39#@uHI020y1ndVQiZ6?6_J3fOK3*Xt z`6F;yz^5r}$@C&%Q+_fpY{<~(goGvRCyvjIf{wbxPm;fk6 z<*dl)jS`6j=5GH`uYRoO#5l&4?qLQVsN3Fu-lo~t5bHM8IBc3By$%Yj%qMuuqomo( zmco>Hia+`}C%ohg7fvs9E7jF`1WkmhbL=f+u|9pmhL!)F})Y+^w` z>q)?S?L!nCcHQ!}hR4N;X3Gr7r8SbmT#J)f<4a%$#jwoa@kT%3C^wrfuuRh5DGMrv z+z23yhsIOTG@g0B84w1&8cnC6;QyXM;FZN!!=^)+3ydkjP*8)ct1#2XOgM%e(jbxn z0dBRF!vISFRsCe!>yq}flP?3Ge(`azyK{m8e@g~;h56VIZ76-u3BEg0!2d z0QzoU4V!~y`39$$?l{Qzw?x{RtoMl5tbStUGH0k+7aq0Ge)xT!oVN=tLUzuk3kN2( zxgiXU*G^#)7NEcoEq}bPcSPXx6$?39hHRzAysn|#O!!X_2e_hJ4Rf%OU^LZm5XCPS;Dsao>Ua;(vYu|}?+HIKOkT^ULp6HVHVkkMgrXAFL*CRw%@VEW?K^{K-9 z+@U31NeJUFllJs=3aivA%#Qt6iNQK2@-jM-9C5gTpmz-%EpR7A73oau!`IlAveCf@EAr&IP+(;ZZ`S~ViVN-N{6?lLgw9N4o4lj z1Ao#r2B54khHfSruxxxM&Okmq9Xj2prme^y`J5I=Ufp~)%MeK{LjoFhC%Y@RSL)#{ z*oay$L_0H%c`&WSy5P*|8iJqd7P6BQEG0sOS$!xD69hD>VkNP&L;L)f7V=a#=(}MO zow9D`<5WL5EZ==sSXDv*{g$4Z3tnu2gfX_g*?@iP%{K6oj-xPKMbPLdz52}EKqW#&Bk z&+jDxQ|L%oqA!YYeX3rb8z?4`<6k zuBad!pi;9dYdTY#Iax9*-*77Sz}3O0qM!qRMVZb0sY>M5%{fO<*ygCT)WH8IOT|^o zj<+py8!l?Pv|2JKg5+spacKDn-2_l)L(|{N*PKQ)Yc@G;UT__&W8{%*LO?a6Ko{$H zPph}Ab+7YcM~(CBxa$Ve(4yApDcBD4w0z4%chw@6DhjK>am-GJXa!Z53I5_-+dH6p zI29x@j6U9KMpn7>1&`KIb^sA7>-Ov^(!NP=Uue6p?gurVmGEt9>lH2|2EY88xw3XB z=%JgNQXlttpY`~jN?)xn<>z2d2AQK$T1!GbA?5grequ=^{3_(1CO_W(-V=2CfjQx5 zNlERBWDWjvc=*7WMkptN@F^sWhjHjz_WLqA~U$X1QSrrOk@pfwi2*N;) z3chKuzhU71U~Pd>S)ycx+*7)n>q=MIb_XTGw%hVjulAFY^j}!b--L->2!rF@OyGEm z1=K!sML~NYOv!C+#EF+RQh?A~wi8zdU8Ev2%X$atCu3ZVy)53byVt+n>?IQ;r@`Zh zEBJ5$fM~0y@%Fav)NB5!I=)b#{bXkX=K5ovvXC!Te&W2^3P@fnoa~nR5gmbwJSY6N z#j+Z+x6n;P^A+W5h5Go$F$Rll7;X0lnvaLH%-En|cf}_m(fuAv3H`DZk?Vt)T*jiz z^o6(VZ-<7(iP%YCbT9`)9FkM%!>+%F^+^+RnM!n>jM&Iz@)d@v(|8VVue&5dA_$C*BnykYSTlgQmismw}YXLghF_-;a* zM$)7(p0uYd_`b!4yY)V?TJwAA2s=?7i zF#OXgL&N<}dT0-?|93*e(~_mkfPMy5<`&r_f|m8Mm>|W_CkMNEjAibx3yZr<;lkb% z1S#?#)9xm2yEWnB=lMbn&*b%~zW+3QDz_vK%484;xVUS28q3_5)1P|i@W|czAgSOp z^5X+T>i37kCXkF(reGRC4?NyVc|!6QvUTuy9?Wi@=iGjj^OYo%IT_cjsFSq6hO1GzPJ{sB{nLzhB=eCNA0}H?GN1g7XGp>ztxPz?J^~#2Z)9j`q^YPz zFa&Gaf+$LApxJ)!HP%Uv1cG}yJ*t|;ISfrG=in!#I$^VOugiB!9-}Z~Ey{cHJb&&m)4#*j5F`3NO9P5*xqu z0$VXF(+^s68Jz7n6p>NM1!5~5=#RJ#F7pi2t9LBwEm9E&tI5wfkwasDWbMcGL8fsI z=rb*(sc91U@-70x_+!jtu+E!h*}IMQB!2B%_nb%j29D-X-e>p0gu_v`WeR)t9V_kR zyc{v#lA=-K`hjxY9IqJfJTljz_H{kL;(eN%5%7vQ_H; zcbS!|fe31p2uJkM(meUZIT>PK^oMwf0bel1*1nmF{VohhogP|kqK%Ph&80`v0LKRl z!V0cm1Y1`UTd5_6cE099?BMkO3u;JiXM5RSwJ-1R;|@P5!^2Y)b7QK_PX_6CR3yYD zj_c9)BOtv(PPmou$cC$ls9SGM7YsL7u{ydprUrk3SGSuAnu1t4 zk?Y+#emPmJ&1l;`az6A%g4gMRV0;%)FCE5G+%c`Au(YJr+#$mv9WfC&RK6s3%@v?q zI@=sMSupa7k~}?lxL@+V--%|Aa*GL&S19NaUxxA8?mjq@`TbO3`w|Q|D278^^+4gK zgBLIXY?4d*{i>S=;Pa|9c?6*96W<02|EUHDN;@s`-lE1r~T@wz@P-d-af|A&KQ- znnPR77F7)EB@FUSeot9Yer$eP<&!v!u%0)hG#3Kq1djnA{X%jZU~Dr3k{8~)frb0* zwq?xCVMr?rwN8>cz^?vDDPKa?A_F!k@A^*D!c4Nc*xQdBN4k8Dbks0#m>D8yaE*b{ zLx0=Fx49@q&-Awk{!ueGY_lLPP#}vW2?^Yk47JYYGltk_P)5kRHU}NgIBpTLJYkSENE2dFkdgu#qAHS>4BMLE9Ib zln+SdXckPkePLW3w=vl9O3L&ilj6MkF#6=>NmRPb`hFk`~fX7*}d9~#KO_m;B*KQ6TXr}6)*=@cIJ4}B1 zS;Pyc^JZp&pIvc5#VZKYUY z65cy-PfBvW|1GxP&qOw%v0W-t%<AGP*RFN z31QX;W=G&NFvOP;>^g6Jj#$MwMtp6GS5?IfDRT4i3KXwgc9f31J7B0!nThLQBCPGb zbw>EXg;Pn)7nL<(70XUCP))aPgR#a_@LRigd<{ozP9f^NMZ9e@3}MRI@$l0AD5Yrq z)Z^($xxSLZ9vM#yel^YghXu}7W?{3@XImO#`30=u(kh$n3(Dkik&{d(8Qo=J$89$- zU23t32&NYTwg{;yYW(;70-PE-kxMzk>E|AAuS$to5EU@J-Y>?~jtc@@{sxllCMas; z>UO4H14D^D?!O-Vt*An(%*3Z@EKxQ^EiRL4w_#Bk$hWOT3JcVTKsKailuj;0b*1*) zCp+Xa@P^`Vz@pP=XJ)2ZKmp^dDQ~2iFII*|e!8yTb7+Rt*Bl`6uTiemx+jB}kMNzmT@5Q6UJw@j}E0TjH*h*TnN z@-aC8AAwFGk||)`g!?t>E~zEwrR-6Qob(z&ku=wT7l48h?tr^jG#>XNmaL{txbe#&2zbnh{VWyO~ z!RMh@|E4H^nmPBAAu&dhi>gZj*wa=y73XIsU(4mLPQYj+Ff3DJ!W|HcL^#c2mHa-I zZC}R^Vo3J!BQRKL733z_1K>Yx+zqPHlv!^iyl>qJsCKg)0J;TSk_0I-HMpj@h zOA`7XK0n)vB-et($>BX-AsaOrq7IcKc23l@H07>Fjqiu!PMz}P|w4!<6;o^SJr=qLycUkt9XHMbkbnzwHS zo2ewHUVdV~*wT$p6${u;IMAE-ZDx?PaBEcXOF*j?FO_GViCxMLri(cZP88~9Iy2vr zmLB&QbW8fG!*Tbj?KM%`fm+)U=e*W&))>;|??F~z!R&XSKhr0TiD5eI$m|Chb*Y}6 zf2SL*kcUfAAFP~rvU+y41Aqf?lq#3%>y$6fIb8zps20-YQHhG~pl2CbX;u`t=?YDx zqqfvQk`t;J9@b|pwZ^lM3Bkdj(Vw4B#4IcF>L-X@BU%fr{?uvyot(01*io+{E5-h;KotUnec# zLPQZ+$(`72Z<;hQ)cnQ3F)9J$D(et(%cnFc z(+7CCtI`1le4uLQrASyLf|?61`9xIE3Z`8T{6Gv@@WvYaTLr!eZOR3OUY-+M#^Zcw zfpPs1_Ov+(a%k_7BmFQ6TQ2;5XrVvU;ExpPht0-;uzufnbyBj1dOdE|DE}4wX#xaA zn3Q^K5?LKGU)5o|$$TO^Ty9~Q;6E>C8hf!>LR~wJ)1*p?|spWqnd0HD)TYfKpr887Lf}n-6>+to9{i-h+$C=XYDeh@kk2Y=&9_aom1e0aIn*--0W`|zBh9&1+Uyq@Cn24&2bIkCcOtPV%75eZy zo*H`sCAaEj^xbv%)>OSIP+EKBL z5b|Ix?Ux&?sVmlTfYFR4smcUCpQU{l1gtC;c@LMGwfq*n`hIYQ3uf|LUA10Y@7Gff>F6Gy#h0c(;D^ z=iW|4PA3GDO}L~;U{cuSTVS+nao*KdXl$tr1?q-s7l*{bFE^0LXBxJ+?&+D()V)QF zqe(pl5+u^sJo2QvkkH)rnobtkm5j|&V}Eqk?{ZpQ6-nG29dZZT-?2Sk5isO{Y%chgk- z4hVYQ#U1B04Chl>(oY&u)t|hgc*?ibKbGQZ3+}&r0XY@A*u5i|jD&CpVkhxvg>KPZ zaQw*&6CvR%_uj%Ly$wltqvk&DfBCT8aJ8YG!Uw1;-|VyfP}8*k%TrNT1zK>+Za!cf z!Bx*W;_+uiK4m!|05v}{OSMZ(VhEoJc8=vzdSbN-_vp)!LL8YhcR`0PI2)rBEd1Aq z88r=F%MA&(`lAi}$sk{n4W8-XT2oY=_so2q<=0Q96rV=PW1f$Be8otlHirN;zJBT# zcIX%j60%5PSih$ksxuiYD@FoMrnxP)OucxMtK4%y5upcr_TdGwfJq;)vb#}2uu3hx z32)fJ2K$)p(V#eK1PAi6i{6d5K6$X5`}ybpjp#T*o^Zn8T8aUB)h7qWiRMtzSUVF# z?jzVJ>aIPR6wl!DuV@8f`!hLfRZG!!1&ph+7J_aY+tmMG!VC%GKCY-U&1n2fM*PR? z@PWt`^cDa<;g$5Nf3h9k0Y9^YTN<|r=uMc!uqTHE1T$me-m^8|jis8$ACzt1~ z)EG_VbJq_|b{PGU7==&o&2AJPfFFEz<Bk%jPD_4&rTBlf0Kjq)qbbaJ;hc zLkY}+p*)m&s8yymeMsnEBf=3@N91Xn<1-)O45_N<)f5k@b{bVFCX>(D; z_MCLTW!VxDYBtu`6>P15fhX^Iy02#$%@^uA1v%yOUZsfmp~Cc4jPgX!^rfC{@_AD* zlYfJSVUmB2HEXqsfLh4WNu+uI*3R&C)%8MC2U-jD58XX=;g`78XAO z)Q*NeC-O)LWpZ`9fhV7L`j94m8;+*LwQb*qZKav=Zqeem&A$4Q#Pk@aVL!yGX!hB@ zwV9t>HG>gKoX9%Ut!d;vag3iFR#qWI|E$vkw?8}Q1)0ONOvLi{uXcD+LOeCP$ME%X zd_fOZkc=tfoM}p91f9Ydw@qC1<(kD&3=;Y!rnJgY1Wq5GX`*huDE?#vtU=c6oKAM1 zdJ{flbSwpRv@)*_3|Bm3v&Wz71{~^DSVS3l=pMrZ-6%vTuIlFr{ei0t{5Em@Wz+-2Z1MwWl1Ac zr(<&plRgX;j32h9qaG3IJ@lQJIFP8gj)y_4+F9D&D&uXUMQmpK1e5>W2HTM0Wv`Zr zX5e1AR)T3qVL9%l6*}jF3e*#ey9gXy`q*{U;ibZ_wj}FmQnaS*rnN77IvJ=ryTRNT z(?4vV^_i~3qE3`1&eW~3d}&5RO?r#+Mwn!O#pxCaW^tYmVP?yUKXaI6-4zz$e#&{TWMp9C6^T z@3iD)cOF@U0u6i~#Gf=YJj8$R9dKlWkl&07%n@K7;Rc}>3|3_F;Ob9g;S$inWYE0s z>t%}UN<`ya&k~WrXbki^IYEK>6GuxH1#43uQ6Xbya<*fkPwYd$z^JW`ViwPO^%wpJ z9h#F##*jc7FIs6WhO<1OHW2RV5T%K7*Q0d_w44y7#DD7*g8KljFb=F zY5la&V{T>-;sf{%1fdvYvzd8$n6K2@3PsRvmCCg*~K{?jCV{O)K`9`)8lT1#vJnbz~T6x1d5&1bwnw4%~0c~B- zC9JWf)XEO~Vz=kH;Y_SjSmh96U@m&RoEYiu9ObN9bF1fr7xX@HnwLEH+?UxMADrOX zm7SK8(|VXuAuD35A$Ywzml|*1t9;@0dOb>DxG7gmz`OJ=D3}MZkW#t>NDj4-OZUpm9rl1CL^7oRH(}?|u*}a0n-Q;!wth4K znUT7B9zsJ2`L0sqc@YdE5};5*BJA+CfH1iK1NT{j7fWJJ2B;@iqnK!RQ9Z|T5PU(YHC$I$NHUSH`E!6a4J{Qw!SbSylUI}-#F zMnMP7cOA)mhAtpswt0n|??gc6!70?6h6(DB!1ok8Rk*WZv`^NKz)QO_#;Pp@Ey6#p<646cDs@vzM<4z-BmmNc0z(0ZfWd*dq00+unhtw; z&Q{-6pi`8;rsvv%E!&9WA^vuN-cDos`QCNb8Es>fhiNtpE4f02Ao! zr4z1*?{e*X4rskx?Cp~!BnHm=JsznPus1hdnYeOh!D3$uG?2Uw3lkz(1P;C9QjSOyC9S4!Ik<$XZ0gszlt50mHBDxdM zr{2L?T|NFq@`mMm?Bh&sCZE=Bcm?h^eGKMow^=Iakn8LtZER#+>S>iDdM>AQFEod$ zlY@$7Os=zPk73_qCirgWVceIDb~Wa;ep;tXqcxuLker~L>XWVDJ||UvwGge!7(^NH zum?H{z;DYgDw7MjWIP78t@iy2@B6cc`q@fWMo#>5T!OPY{O3IztjRaXYd^DgU(iJ! z-m8p}(;|@S*c*@wKHk><_AFs(QIfTvJlgBpXEd;EdSeYmQC(Whbhlsbl{6D&)-Pod zkB98LysII6wnHy|81U%t#6x^P3~+2|gkd#vu}GqYopuCUY{wGWGx4o6H(S|TU?a{h zh5syJj_4Vp&SH)4m!m&k=*s_Gx>=!-Xa+qgVoosAt$X|DuvO59GlZP+@Im=+fR$dv zYPqQMC(zNfL~mg3lzR2y<}}`};Xm_zoxsvBO)Rma9GcJr-d;eu8YS(OoM~*OQnWcL zO?s*Gi(7ZBh!zB~qn^~#@{b=e3t9aVqf?PT`vIa4n_(sQM&~?5XO7U zMp}dIMv-l$oEfm5x7WXq8UlF%2j3tZea+(#!4Tu zz*0Xutx19B;5VmsA(g`KxcW_KpVW=z`gek0qy&>fh4*O-OIL#9=PwYvO;8&f9c2uv z3=>w~9rRqp6^t0{O8VLo>@4pg%ZYuqIG=LTuq(YZNRBp<^pJID13vb&U<|rw?#V^w zxt!@C>fCca9X+_n>&cjME+v1oc6QVunQ~51n`M#WU-!}Ut9e9ntfXB+(6D!R(nsrKsX&K=VozWra8jp2v16!otfg|`>eAn0(3LmEElN~h;pX3mMB8L0F> z3jC2c_@^Vdn*~ABx;Eb2wlEEFS>vlA1x@kLAS;d3YsgEJs@$vW4=)Z9GJ%N=Q#@Sm zAI?!B3EWz*IH(tBsQ*l63(EGZYBtd^#s8ph=n&?OVV2@D_$gOEX+SFID|fYJE3qj2 zuG^UlcW|c&cok|EJo)RM7??N5e~KgRjVG1l03pfXqIr<3%Cb+}$Tx+$tRMjRVq(|R z)^8drn$72jX|y*k^rg;EoxJPMdKVck;HUfkSWXii;aS6A3f37Ap>6Z%3?jzGPECQ~ z%wzj{rKJE+vg;A)-qZ-EEw)aUF!~lG<-=Pa2h?(PxB~?#*mAdCKrI3>96H_LEBF(ik<39z4$%4ywWTJ~M@Ul+-PGeDKEfCu)d@ZJzTz344Z3lII<8Ttcm_4)ui9Az0VA z<&<7n<#k+WNG$~(Uqf2nSWhh0IGt+98f~*P`CiR8+O)X4yU^WTDRfb#`8xY^nO&{V zVclA>$#~Va3t^RbmGIV$s++HsS@dA*JKm0IF2deeSH=AQ)NrzCa0hm>ti72-2-M-_ zG+B_O+BdkR@`>ly6UawSR_PPr{A9C{7Sem_LsAXC@w@-L@Wxk(q&L-GMUFQ`vU7T&OM^pnc|XhZREU1dJV~u0nHFPx(iH1`F{sKr z+_Lk#18h*ko?<5E#~pQk1NGt{u0hpaOV6g+p*(P4{zVR9rTo4Z_T+D0`5kG_Y(^@+aTut-z^|Pgr0dZ{ zlDp7K#+fcvtMvQ3H1`RhB}cr*LgK!xkEm>s*Jd{Nc5Eed4^FUx((~ckS^Cm$Hwg3B z42p{)rMzj*0^U`;h?>lFNS%I;(=5Foln-2@(#zsrysh?BTDzHJ+*Y};%`yE^`7kwk?< zHtrYPDs}(;%~MY4PBJg|99zr9@;$NIZwOkM<6YrPp-RQE(Hyw{B}<8lc6Uzx53Pvv zR?tfBfbBn}-ks7Pi;98}z6PR@w>QIS1F*xaRIph3@tqE60}u4ilmur79=`a>s)$*? z#T3#U<@%fDj5<$F+;`K|Yw}`%FJ!M*{Ed8w+!d}=JbtUc6~o&?CkFz>X>QD>T}pGi z5PCG6?%Wm`-E|+iT)Cmb?#M-wdKJq93jA9|b4L0e6xF@AqF;eZG=kA*6oVqNOF3tB z`r3=v@*-nD;wx^w$kr3Ml_C)G@H4jt^o)BlB!mTWvQd3&!@n8z@`*f_bm~=_z4bY+ zw<2n*HLhnIjLtPb4-wyGq)v5Um~VAGnT`q+@J!w6b3n+@-PO?^i8k3bTPG)cT{Zn= z?T4>5@U@-{D03Xjn-T6eOlq;;L}FszI*jN}lBOi=cWq{rSYaRa?sgfDf^s5>k^#B- zhwRZAVW8{paPF>IPPy)ck97}dkNe2!+E13U`aOEzmKaZ2QhV{7jw^q_oKx`WayNct zPHsN`tocPp3yQoo=Yjal&r$Q2Ma=FwMxXxYG*>29_dRbk{^DO?5mH4c(-`i*ci~Ay zJXYMSmQqI3G?aSt(<38-Rw5VLvHkT)$v4Z}XZu5n@@Sn%{{Q1u>C1Y)N(%~Dk9W58CsJ2n}?}T7C8lAQT+tZB(LH6b$md+gOk-^Y7R^oAq1^*NQo6`Mv0?^}t7wp%e)wPQFBmsb&Ni#h zjsXNJ1PS|u)l~rX`#Mq%4<+zb5>3X&85;u*{Pk`dl*)X1H-S`VnGxO>_B#}sJF^_? z0uQ`;AK9G+6UiNCryQioSWiG7QbZLTNBUp~OL{Un$+o|2G_sjb_aRI`)vk|tY@#3K zEUnkSYorYx7(4dK;c9GIBGmYPB!et-{ z7Utm|M>g$cw+}|G5nGDoL0|qJd@N_cQ=Ir|PVeiklT9Fu44f$3PT^?wTwZfeI-ck& zf$~&?xAg<;Si1SxY9>28EL2ZU`;DJie7lAoKku}Ky04i4yr|5%CFBILcX)M#jfnE%l{GM6;XC^4r5ErFggZnRc4J;?t8p0v+qn zy(>FFxs!Qv@tNMQ0S4|>sNjGl*wmOzVGyXohc-Krps5eoXR% zv79h*#wNCW;M4H%c>8zXamvU$1)IIa-h11gzT$xV@5&Fg{)W#!=HM-})S}6F1LeW& z53dDX{z7LB2;Zyd4c_Cf+{j(wv~D$9&U3gXt;V;)b9y!MZSZI zsj%<&v8oBQ*PTz;Qi)QobVD`mH+CGcv0-mdsk3F@Co8#y$=5{Bjif&@f6ui=PZb|(y;3B|VM*@;py(4fwxa02Q@}KmZOB6a*(A<3HNy2WG;ax<=m{hJG z5?AM}6ZmB@c8z$>FY6`mckk|%?H;k~oKe%VyKwidM!_ZYjCraX>1e*AzAwJ}p1vdf z9OIsil?6Lv(woueGub>7G&o=;;iDki1RVj@_l=KLW&Vs(m}N0L75=^5=&dDnC-xewOp<@WLwWb~EbPrPGRzefd`ew~ zr&ZVlnu?^P!At2%Y?E1f^TN$TuGc(srWA_y4=0df6M>vjl3XjHe$4WGq%#_v4Jaa+9A2tRYtZU+6aF*pYDP)>>_zV z$7jBbMKqST-JQNyPaOz8P1u(>7S`5f$g{TCgW)s2a&cdi^vFm6PAh3Y!RBd&{vLAV z^2#XZEk#W>iT!&T&WTXlt({Lr+ZUybvz%3GXDwop7Uq=&OvMeJ_T)kqLw&Zyx>$*X zUeYGpcD+1)p+0|`g>Xg$tw<<7KZFLdTKYXy$l9{%&bw|qMf(nPV!8b7tGa*${EdIX zNh~zQ3_CqoO0aKoa#KY7*zaq9ba<4;0|%I}OS2j2Ieg5GdR*@Vu-XN2nL=olkXxE! z)Cen((i3OM6IGYHrCvx7(uukUU%mk7osU@q26hcfCNVa2DwSZ?#|od^EHbe{fO&5h zpm$PsNOQ6V_NZKzl1*Ga>Tds3%Z}3(SyOiT^(kqOd^X)*hYV<~O5e&JC*N9>G_Y-H>CUrK zz)=5W<^{=OwQ?D+^q{1{;~B(FTl30r*zYEKQR}r-7fCcH;`};XwLw%co9z%F_+6}G zGr;g*y@sT%o;s4~`)lsVX9FF>qMR{?#g5CT&yE;ZDuT-qGziAe%6WWJX%J|%$pJkN9;U8^RhlOSf*F}E?R+G;p|kruZ{V3eO(4fV9E?BZ%>z(z)8yB6R|L_?R~lOTb2VXK=}$tmSeS< zfT+z{8l`Xz01>s4eJIrmYU@_9?cG0)`ca$s>jgb-DU|uD^aPbGU{*6SDwr1&ge1@h zeafdXj=C(@CjAXIm05uHrN0CDGCf$(R+8?yTAyP|i_mR6nIAr#oUwfFGQaTQr~dCl zabjA}m34^mg16r|<9|Gsp`J^J@~@A)8*HXtercL#X^Bi&lv2^ubo}xE+fwNh6gJgj(Dy%RbOD*)Uf1fl%)bZ6&?2H6W zI|sbx`JNP=7nZXqM37@VHkWM`i5 z{^XtwVds3rr5$Z~aduMd_67KUjsnIs_|5~k!%;3f^dSfETNgwzF5H8CQV+#`{PNJw zM{_aWq&0E5w1`wNO_clykH0!OW=*%Wdp~BD1CPphs)KP3tAIN~`C)|+6*&XspDk}i#NdAD zA<4c*h>D(Tj}yl%GR(jrqIagynzW9SO^;xp&pvs5+>~W~&4U|H(tp?HXfvPf7I(y4R&=nP%kZ4IyA%w#|g@LcT=sD`t{Ovro;}l^+?Kr6~So8 z<+)kQYT%8u-5WsLMho?P-$h`Up$`*Q%zm@Bbuw&`*oWT2;&<-R#&G$8E7rS|Gxy_; zK%)(5LVGP@3g}XXVJzY|%i1wGJWGlBYu~phQ}}k?v1gZB4}4@W^3tFKLdMXrs354a zD-B3--)`X4$*D_Sg1R!NLaz3j4>accRjsc4PImm$&Qbdt*E-f^Gyk9_r!))G;|) zfQrv}o?s|w)8S65Sn#~Ehr9rEdFkd|v*I`Cb(s>S3_bWOCAmPkv-EBX>;Q@Tp@e?x;Wo1grbrOz<<@p`yon+smJ= zX^HZ@N6yE_nM!KKa3`)0x{z1t9TWVci+dUl!L$Ubk0!JwD=orpOcCc9n_KH!{2?zN zIX!|FZzM*mhT;MhVwMAWgp^!@9DxzUI8?ASFVfIML}%r@7EAKE7^eE;_0hq5`=nF0 z)MIWhE;V^xTy1M4noy8MWDc=rmylpl7*-=rK^85QfwxM&6Y|_g^yG~LrV{hDRS)eK zD}crBad_(t^&T7JK*G4vAt6phFB3l<;5PBkunYZK?;tDRSsKgpOSRtSq!f4&$R&y6 zb8l;aA`bzyoOur_EQvZ0p$y#$JNy-lT$J0h0DPt)Xw&gH8t*2ZmfXpELYRP0QVhRY zT}>Cx4TEQPGTR^-l+NF~vZ3p}6!BIws08kU3s19hVjQ=cnL#t-hempjCbg)x?W1W1 zzoV&8|58=ZY4v~x#%?xJA5J`_wT9TIW0?9~>p|w9NuC~U#XUH*4%zrJ(&hH^Ef0D2 z4C6CyCcvye%CyW)+=|3>ejmH%Qax4GwL~(XNwzo06@AVQafMq<4v6YbLDfh|AX1-3?Md&lIO3aNwHfVQ*#RErzZ38#Pd z=FBbBim!;dRPTAtAb{zWM!sYEO#@ofguh>dhbk&5l;LC4L0{qIiIT#>(NX#}xivo7 zfWyaO2Z3&sdcsq(H+*MAc{3W_r~IXE3e6Cp839=P0ktV2yw=&GB1R`7DDHv?%r?8c zOaT;Hq3rMSm>TD0xO=%9WSV;VbKoyH3FAM_7 z=(HKH*mSGG^!+UM9UiUH`046}JJc69fr90bRsI~t5G3k;vhcgV!jlV{%BtW&HI5eq zyjEOKXQKr)Qn=6573H(I{1mUrMOkQP_xIQKM9#+jDo_Seqa>D6n@%!v$+Nyls16O6 zr&XwRR9t!11gG4K$~zwck}fq;@s7w?zD*fLMonmHw}kX9JcUzb#6uCz0{5K5>(3bP z;de&L=q?L+rlL-mRnpY*ZVtnhUsg}k&Dh9`i`$2kfEeBLl~MoK&Zv34xs;EneOh6f#Z{-ED<Siq5H94 zl4amEIlkY#hAe%E1wzze=UpXWQM?>gwBRn9a56prIzx9visQP)#0`Fn`_hahyptNtgH2}$io zXpFkt9S?Zk5|0l84#3kG?|CqPgC3nl)enA#t7im8{n&eM%Rb}?S?EG{_B2DChusNV zpTtB43xI!uT~hG~b^gcMUViH9A)Ap*k%|>%cOV@I2hZIZJ_u((E_`?~kH=eHWe_l) z%Hyc(Be~S-^||_b_{Z*~5it4pv? zc^{*o{J#}6=YJ|_TM&i*LK9+#0oNQFE)4UX``c#{Wa}LA-yfqC z<>%rhCyRueIEO&2iwB3**bgs*&rfXBrS}Y4_SiHZ)!ji*Dlf`Y7E~PTTrcc>Ou9Ww z!UWrsfmFwvYYQLKWu)D161pSlCSK;VzVlRk_Q1`z#oVwF25(crwWGqHERdOPu+!mF@FR~WtSq~`4169n}7w^;Q)v!%V&tL6`XQGy&@jrJ30h-%l4j|4zJ4vi)Rd|r3ck@Pe;<$ z#M!!mp>?JkQeRB5+d+-&S5o*lK2bgyVKomA9f;)*uY6&Z2M@LAg5hah+{P8SRzPSC zYw*D=5N2ZQ-F|(hEDH@nG0`jB)0Wh8#fEF-T&Maz--F+UXtn=x~-DC??stUF^ z0{=Q%?+Nn%`>>4v@59n_wrNv}J#B)%987B1LD`vM@kbe+Ue?#&4ad{e03R;L6J+!$ z-o97#6kEU9|rEyu~mYa z>WVx2qDrrmvjOj$1ySG3^v=B+ehQ%w@znBXpg`csb*~t0!w@HkG zxrMg_>mmGrZ)eh!M`uUL#TC&BQ>Kf@N)q&HJjMLD8cHLdV)>NVagdc8SWl<6DQ_!k zWB4&*Mq`*J2=B5{L^D9l`9i>M6foGKj*BnR-D)ht$gBV)w{8GPp2X9!ZJ-(wxYQ*E zF=V)beVrI|@#MlLkrgI11R4AC@F#W?#pkah1slmDd5g2KpBEY*ov}@g;9(xY>wl!f z&&;vxuIPR8WHMh&b7i7LgZa+NXsIWhKyAgOdW{}P2QLVjTFzAMTZaX2xgF~6Z8#K1 zr8QVjddw!sw4nk(8 zL9)?F4h&B})h;6QY{)(67lRV_{w!3Q$z48df#AQ$54i)-z>8Q=TPkIArm+03pijmy z^+&mi-%B&DR;_oqBXAqb#0p|dRU(FWSI6}y{S3$8G58v@`(PeDPnz~>uVHp7blb;z zCy!Dx+}^7e5Q43{Re7}QPl&9euY_%Wc|guy69Mn+FXzQ>HT`J0Q=c*8$vT39gTh6AC=0G2#_3@fVp3lili4j_N#1j zpJV%;!T(a~IB$~-6Z}e$eZP43;;TihFF;lb z1b}HNF-WJ$JT3SXs=8Uk{uj;wB4qA#XG)abThKXzMC+UZid`vdF8dSz<5V>mRgt;Q z4|wrWo|NTo$Hs0QA5o@nIZ-4iz`bd=c{R9%FF{VHIc&9=<|+wriqmg}{okP|Np2bp z0s`HQWreLS*(gI9lD}>4y(q7dHd2z#bIw_$4GjwNzG|4?GUA!ONcQpxtsR_kX5M%0 zGZqZOs;~=-%6JkNbLve3l}lxWTqM9pTv->OS6rrj7}$;8KhD>l;}XWz0&5VF^9-z0Q9dz6=Hq)jXqRf?hX3)ZXvnLehtf7P=CfY*ca@Y1v{5gq+Zo0hvnk1e5$Am z3bczgeTtnS+-HzGE4(|YzL`hKpkxRv#uS^Ow(e5E$fW&(JPkxaOZi5! zg47~G&-&duvym{6(pZdM_W}R(-64-7WCi|I?8n92rut;O7A7syf9t`Q|9?F=F?qW0 zsVESC569xblGG>Ry{^;1Xba(Z3EXXYp}B}$D$^i>`B4Jo7cSHj_ioVQiWu>QNtagi z5OzP6&%^WMhR4VG;xFY`ifs(i-VGlY29v39tuJ`_vQ1KRR==C;ZFV5ShKbMz20)K< z8@gS~IWACx0;+pM<`b=RD(_#-#QLZ944;SX9X@^T2LbjWb0Yt>b+k^&QJz|oW;gzB z(mKH0r>?8xJ@+$y*}gcz;@X)Fi1RA#`vo8a@vRtv#)r8oiIfJoc*NN z?-SU?cc&|ITIM`>9VUv?RHXh@+yFy9ip(1iM*4Ui4aW1!cfTP_lj3jtv0$G(F(gTH zHsZAyOc$8@9YY1tsv&BxC783cE~)s{Q%jUKHl3hGFAte~_2&zk0P5*O@tc3KVkoqN z3(;$YdAx%wwN3B>i3|z4bfnY z)0#p66xR-Z>tGhGbob47{e|D|W%a8lP-Weg@zWJx_cjz4}Y(1AtP|v%e<-?jB*Mp7c4lrOc?BoMEm(g{%1n?Pi+}^HktN82`H8s=GVU93irMYB(?HqMh+Y;I!K=7 zciC?ar2%V`_gtF1z#AP|INyE%L}x5#=cozW76zJSsoe&j#7X;E9+Lo_4k#8~;RJ@O zNbMjF$Gpl{;6geAA&_iJ-(!D5QT3(NDc8UflTX*(tKn20>^mC<^$3^<$EzjL0OE(K zBcb3&fje|n6m+oGs*w$@S;bVdIh#7?N4+Tn9|6uqx3wcvwkStYqXZ3ocLXJY^Eh_G zybi*rGSC$(K7;(ILA|Uyzs(u+59nR8UD}5r%+$3p*e1S<-<64v7`fe zhs{6Wn05f`+0QQoK60=0>bcAy00lx-O%$g+MHGjxex+$ByYEK5U^f}nr0V=|xNL?X z#EE0tu1yj+Yz3SP?VG_`*Fi($ZA4?L1~*Jl-u?avSMsfP>ycU0ShQ3BCDuj=fGo}y zkkjZG;a|cNB=BW<{_PBaA8<(9Ve2i>?)7GaOpijff@g|gW7z^x#;BJj!xL-C>ym_a z=N4E{@XZ;b4E_FYu(b2Kq+6(>7X1D7IN{fyFJw}@!-SrZ3eJ1d=bL~`i-S5Z(C;-a z-HdNoi_AGiW*q`GBR4P~VfDUqo3e-=AKYDqKF7)ukk6$9e+Jn#uH&@sh?~TZxx|Trm$zs$AR(AHP@C80{)B^X(Q5iVD z*9r*naDCQ&c9lP=EoUmJUVPlj;z-ph01x|Pl0x+iO{S69a*UMkoL#VhnDFJnHr;D* zW{<=0wt37%(gWMnAIz_zH*TBRLw>v}F#p5xT&Oxqlw6 zf+yy#-gAUWTOr+rMlB+?0m=@h^X_DKUZVaEL|=8@2oO?9V2-P5;{n31(Oem9f-k{` zob*x%@`kYrlM+j8=j!%J7FbLF8dg5daCh(Q0QV6fy_!1T_pl|CngWQp(Ue=?h1R1nEVQ*g z%e6N){k;}4Md2s)@IW|5QWDS6>Sy884Hnol6q4dJ@l0ZHA``{FR6IXx$wMy#XEI2W z26`sR{Xk&QG=i}fXhHQz@1n`Y$^o+$%u;ZjM#V;@bK$5;{H4RL54;985n<8j&- zEG&&&ZG-wb0SRo3HQ&2PvuowfeC2hfhlXZ`k8>Z*)V!afpo*C>9;fvJ0i;_?ZEX@J zJkJt!KggIf7glY)f^``?sK%Ce!Z446@jON_^hRaj3#`s-8+&GMzonn72!0u)S+ zn8CdfM8N`p2tmbTV*D~zlJsv`juwOzw-rR0WwSrmzW3U%2^f?8%r~m1WJ9!DTe?W-S*ba<>2zW4n(?`4V^*;|wb?*VB%@QF9!Yp0D-FWcfayOl4X zj|ACwWM$%qNgX>0koR1Ey^*q(8>`p}TA#g7q(ZlQ?4A|@^icvA_(R-lXjMNKk)0%= zd&acSAWo5spiKg3exk`(uFNF$^>gTO3}P6`Hiy@ih|o;0C)AXTz}VXjE13rj7yD2l zpoIy?$3zm=<^pgL#?_tU@_Ov}u37>f3kpkY{>(pM-*bwQJX98oXJGPxdSNYhz&ujM ziDzcRo3`nxsBSMPUCeF&DXIb;*QZz*xTbU;;0zlOaDRx_I9BhlW^Z2W`$3||RAFO6 zXhmSTMH$P_2}_ebjb^+7ocm6tWq(vdIE(feDF|>@BC;cX;K%#;%;4iT6|wP3CjQKa zi9!{upn;>O1*5woSz^$~o#+$Kj07H-DBOa+7mshE`Y8#*4hiywOpdpBU^EnX-w&=o zfVXSnPylw;`~GGH3PZu6^DlqW!QLxYup(>k>&KbPm9_=l0ISQM=3d+5gB5p`q6z^7 z%%|Lz6HaHNQcasaHs8b4l4C8G0Gs4DGnbz*V zpONl)&D6r=(&M5k|J9{ADi&@1#|z*uUl5L6zPwVXPoh~4qgesLtq@pCoInUmfPy9G<>4G3jIKt)hyeUq>*rDzz~=E(cf zX=|k8T+0S5Ok`%h*i5}ju^>~S!bIYO6|4ipxyf`@(H*pP7Vf~zXz>di|T$=%bNxgJEoN@vZ%_yU7!o^mhE|piW;~b9KysY~0wJ zvT9Nk%7Cs()F^@c)e!5C2Yy39YXa8dOnP7fp1=YNgo2D`x*w3`j~b18-+jL$Ba4W< zt5@pJL;4gb{7oBp&ciGWf72nMM(~w-0b4uA#K`kTuv1p}Vy>Zuee_~3Y8t&xD(XeU zueh?mY>gGg5rEElUm-owFcK0#u#c~lGW_*=>PNXzSNQ-_ldp&qkGW_B?K^zBP#}H> zp6Vnx&d)IWC?QT|-dp6rLRoV{BFVwvg;^_1m2CIsK|bdcz?|j*jzyR|xGIo8JtIkE zvrc&U`mxdwWMJle!8j)lCozkBpRfiw?E~Yk52o%L;nX!8GjRy zq`ls^`@xYHQY>CKPMc?{wo-pdq`y))S}M>W(uI{W;i%rHiAMX}#i)BqII!}zyX;K- zguvSD5z}%es((;C;Jfw4U-!S8*;unn6!D7###(`7I<Snlcz_194e&w?IvGudOmt6%u`z7yI)Dz_FRYC3IOl zW{L+yR9k#18Pp7eFph>&yaJ1XPS|kR4zsfqCL<1Ifchx}d_HP1ZBv2ehnsW-D7;Q> zqbCPo&1q!N;t9E3%vi7*|3GR6nAt|~*!;{A`%w*K^!e?07RZQ)Dz&)HO(;6DSB#Nfk~HGW13jg!F`wk$0$VKGK92~s zQ3)qt!F;;hjpt`m_ibm!Nf#e^+8|60%O7oRK_y)rsEu#V0}xc;B6(3b)1S;cAcF36 zWw`D`5)q_wY3S+YR*B@S9jTd+zIWoi3kQ|gKdvG)srHaUsUz@ZG?9J3)(jHuV?WQD z)&P+rTu153XsRI24_aThGYcI5`2J(Q!BJ1=T+gGA7QP7Z1Ionk0F|Yg2dgJTg29Ru z09h$PCK7E;4BCTKHfP(p@(W$Q&K$a+X6bYnL-sxE*pTRDO!Fp zj@^l3jNGK1$^$D>0UrM0%Ymw($Wu=+Y( zyJa}4%>9&z6AjF0IF?aAIQwezJ11K~!renX04#ySwT8%4P<5eD76q(VR zpr=HQoG6=Mb;Mz5sxQb@LZ*^YP zM}GoJUfo1YKgdf%b-CvAw?}Ob^A3KN<*yTs2sgn_4D`~=qZO?pyWJm|M==uzt-@1y z{Ig?_((T-#f0->?qpFC!XXCFo%zugoE&JAW3oi9{Cj*XON%fjpz-3p-a*!iS4vD88 zsi3sq&hxvPIcS1w+Ed+D+w#RhiqrhgDuGDH@k2!R89)7>p!N#fkAW&fV5)K2vlV(G zLH+BOS6{a}kD=>Ea`{#@@RjWfPk}}GW6p37ZYnJQaQ}P2fHW?xHf*N9SBb&Fr9)Ag zY&{VQeN+G-gVUpWER9mnJMRhh_YJh^sNlB-C3+Wurpy7Hd_1KNF@06ueEB4nj?k*3 zG$+Kan*VG~`69)UgR72!nCDg%>D=|5tsD|tOBBX#`CWvnlfL5AwpmL5%=AXixM$Q0 z0cgh!pbmlf@$G4141hUl9-$$NY{0ZI{f(3Q=fabaYoFUw{0e`zt5J>r=779#JF$V3dM^jy1boAx(m z>Cu9+T(zkWbBA7mjaftOO6n1qc~{brYC2%nDZDuZz2`KYA&XS9qS5LWg_NMj(X4~F zZRNQd&cp|c1kjjlo4K$^U@KwTMlwVraxu5k%-j$4#{YxVe6v%+w7d(XM4{m3s{4TW z{xBSKxn=oL9`NlVX-LRU=4j5Nsha&J5{@P6%9ylD?L8g3hyf7;T@cO<8{^z_2HJ4OWS`MwBsy&wx3Sbc*nEf)zgnQJAr zhD;-oMm5gG(7{ta+?@ksIGOm54?&j8Y429;qGR~n1@qQ{w)sq6ja>opcB|yLE%Z_4 z?)$1wg6am6?uVaLLj1FHX_&!=>jw12Wp56YjD#+7L z0W4r?{fYY~nB#=^4$KN}TUo*O>oHQsu?n0rm)j*yt(uH8h_YQSvtK^FVzmRf58KwK zsZ5c8IP1sGx3x}Sr;-+W|Ip$Cm6R?`oG4$=)|-;IuV{|?EMhL6BCR!d=Dp z54a~B@0Y>(Wd_1#+@qGN;~pYDB3~W5me)lQsA(^;5TX=n1$f&6FT4P=a6qsKYNVKY zweHVoT% zGtI`;?OPq2K=A8@Yxk$b+#@YrK*9-`ogRPT4p_)cNB%h~phzNM0>Ml)@IPH%+d#_N z9zFv1b}3}`uca@Ntvxzp-vhuzcoJC?F9qATx{RFWL7KcTnVkxfd`=V-fGUf`hB)FZ zgGp-$xjjT5OvVmD)=|gS(1q1ZbQ8(dt!=}G9Sn9!+^aKL5?O3=d&nR@<=HK*GFAlg zcG*4bw??n#qR!&Y`BVU>1yd*nrm7E$%jk~v+05FP2Mc?Ay*XCOll9%*|49GlC;F5B>K)!@xV&&l2#(s zu!zA-FZV{n*fnRJ54Og%Ab~VJ%Ad% z8>=MerMyDhgJP#pkt18My5*8*S(`>lk0J7Ndh8-uKGNF&dA79&c@ya&$jh^H#$}4{%r=oMdSV)6{SJnW3HX z_uIVr|FL1p!myk~yL!02tJ$WDyNw?Ha|JHQG)tnn9vr#Md$qDac%SP(cr=V+I?Q2j z%-PLyhH0_?WSL;?%j>(XAfN&>zmVYy%}Sv^0qBD5rCL?}5y$5Ka%Mw6n^lBA_1xo# z>HYHX(b#w?QOdeE zX^`0w;Vi;DC;+T*qH2YKov)5nEBB8h2R6^0439&HnKF!8=epuP9M2VC0BtqSqS4Jy z3eoXMkgF~f8A?5Kk%VZK2Q7&>n7}{osv|Uel;8o%g}B@TJvPcy*cx(rABN89ph8c& zP7iTYl2>@nSw~-Fe1;~qEJ#w_He|D8_n!}14}Bp8g+VF<1= zZl=#S)fMa`JwMC^#y|thcxBLi<-iZ(Oh71M%?WKevxIvi%UMIh_1R2lqO6zJEAP_^ zeXmCjzTCT9^Ck5?#;%0}68i$l+vv$B0VCoP1zq$9u5KmW!y|lFh zSy(^uN7ng(bE0?HBabn#j79Ms%Oz;_eUF(=G>b%wl#2|&k0a2xu}C$mz(gVw2C2NN z!|6g^9FsF7J_Es+V+ZuIO@rS7^=ZWn{}h{mXSukf4Duc5i4m8>*@x_x=#<~gZ~!uD zL~|7s(Bi!;iJC`~eAU^}k8QLpz0#;080H+Kpdv6(V$N)1w1UgDF-%v*kLgS2S9HIp zt8gCs2pm?B&+|y^NHA(lgxO;(|gqP{s1W9F*_W93=JQhSuWH z2-=4y*E(-x<(EB9&$27LK+(oJObYr2t*E$tvNz9hc^w%Bw0X8mm^C`ZLNj-tl zE;kgBJU-tZN1U^+ieT66-wJd(sm9K{ihQls;qd(bGs@t?Mmn%l)A!cLi)U8CTfP_T zr~$ag>VDmlBs=}*AhOrC^Y~u37r$f_*%mC~ibQQ{e!qnZQBqYt=9j6=oc0*Y%n8hX zR0**;k9Hqrw@Wvownk$ZVBWi}LVpiPYTMMi%z$TMbhDZAl+>hc~e=$ zL#`EWNbuHLnfr?$1!X`iU>zryPhT)o&Am9R_taCm4FMNZ)0_1TZneV9UvH;XnY?dt z{7ti85n*RM&37ACs@y*?^n!LJ!ZBD$K!5n2{Y@2;H>uWIY)5ie!bDKv9SO1tQT9n5 z(kABFtL(LMrG`S(>-Tu$o=~p}aK9g>))9O<2f?!6$}L+qf4J-@^6jth9c_OXFE|9V z8fq|!3rH*`3e3$6CxDxBSVZD=Po_8*QbG<5-DHkxl61Rc>VG`qR7VZb5G2 zk>|s@^c1eiGQ-X6ZRoyW?IS4oZ6`De4iR-r=H)PdzioYZ5YLRU;HX9{pyV)XHRa2> zmcJnF`aCXZbaS??h??go5eT+Z19!*&OrL;#%Cw8SW~tRb72x1&|h%F zGm?EJn1IDIKywWHHT=Q7OGQXYgYMz=`x}pghF2b`7Z{gcK|*1VcUue_%qT#07PupNSmBTL|@;&MC{{n z_mrNB1`2j@=eV`vv8P=bbcZ0`9jeMQ!%D{D+c48k(yg0fiBDxZ5F=z*Da%p=WsRds zkIVxo2DB}(o^>ioO~~XSa%Hx^RblwcbbRDA7IT2*<_&s&P6s~q4s#DfU!JGrMLThGSi z7ES;+q4{hS{Hr0Lk(eRCjh{>Ed2W4J{;H4D$n@nO4t>#rehiQ}GS)Uv6l}4@#{2F6 zh)nQu;>bZ`+A(F3PFJOEAWlXHOUOJfvLWpevLzi$cl#-qAhb%1saM*|ASR>tr!lPt zdx&k)7mKaU!8u@Hhc+AY={4*3nCqwS1-qh|dBvLnF~Ss0d0Vfh;OTv>zsk4WblB=> z91W(YwB7MsnCIgF8`y=s>uGxXx1vp*S7)U1yMIXb{-N6{gzYeRVJD=G^Z`7DRWMAi z*93)r*3!_Y)cyri$+4k?73%Vk;k#kYE=Qo5d}`z1cul&s8|D2%Tbh*(x0X{poN?oK zF?5tH%!#CbzH^a0?4s9aP=~(>3~fGiFty(7FmTmo^e6G%e{mB;nK<>trj~CX%af~^ zvu(r%v#Db7ZKha?W9^|!JnjZ>1fqbp*oRtd* zP5~Yx%?FF}tnE~hjC*hz#i{B3{<7MDnv&)Xsnf^ue(xrJsf(>Q2oTeZAfR*C3&+t5vnRgmjfX+Tp?hbDy>Df@YZm&2j*FhJ`5AZ79^4kAILVi=z zx)#Yd-_DWa&Q?isDjOt!e|sr4S8KDt#z5X2W%|R!9o-gaE9)XiO%!aRuo+~+VSG9e z@VL$M_+Dy-;4H3}aVT%Ht2{sc^)iuu!E@OU@vrXtNol;-TUn*-z!40+xEHX(d=(Z^$dVYRt>u{oxT+ii3bpKtVfgZjn(^UhOb2M?#=3T{~SUx4CYU0$qe&M7-f}1h2UeJ5^O*L*-X-x8^40LzHA@~x{8 z9v=$CP3|9F7F`hJu|4Y-M4Y8QA||%8SW*D^R_fD<<&J=~LimUdtAaN%l~-&I`UHH; z2N@xhbs8_JOn&a;47q`Mol$dFEsvAn=icC#^QV=iIMgRD?+QTf9e2<`+};B~OS>Zi zq0Oh^vcfFn?c@cyKI!v-b~Zcty)_=7>`#jzo?_oO!fdp1?BuuCP3H^(llzCY&pJ-Gc&5g8eGtwV@t#ZkM)p&h2)zwb!Yh^gFLSZKJsQx} znt5F+dEePP-3?@kbyyRMFZdfW349{`<4>NbG%T{J7MMMX#H) zqBlgbn_*Le*I?!tEmET?f6?RVX{WLd9hEk*pO-Mjm9}b(R=6immyLrN@;x=eBgMYk!yFGQ{Xp z9C|1$n33vs5UbE)F_g+<=*9Q}xNbK61UNS$I zd@Ssr}CnA&wPa5AxWnbj?Umpt!nE)G6RJk{G!+6qa7ZRb)ppf$)e552dd zNgF&GOPfLqm-~JQ(g3DyZb7qkSDfou5?60B=tj2P8o$sXPADf|{WERp36`9-@BD$8 z$K?WXid^5PpTwE_f?SLhBIj72bM=gSV5wsMuw%-&h7%Aq-P;IXJx=psUoqrAMEN}S zzmO%DCCU?>p;wue4veOvCr?KzGF_tZaEX#u)&3M>s_5&f2B1z0x{aAfTP9Gi9p8pad4ulhEKZC!F%muO}szoQ2eII zcy$fRwKxI(%%p4=^j=$qnguz}<)zds*BqK{m+$DC&C49B%zqKT?m7Qxsd)TuqR{Bz zbLz7V5kGPk@8+D#+?-+9UibZ)c2kD*7{Kx+J;o7|%pX3nif?I=!<6csNj9@qO;`-8YfX&6azBUg{L?n9m!|vj8d%R%Ko7o_m z^TER#@pZ22M0?jd>M-p-u}id&_1Z#C57)6;z6WQqbY2bx<_5lpuL~C6yQ7st!-|DJ z%QIz*(Z3u~4(owxncFR&!t^6^H}+3sxMABkxJyYvxWyc9^hG1I2TWx@9I0+Y5|Zg7 zW)%(D?T6EM&1PkEWeg9L^c&W#Yb}u;gtx~AQuio_N8ong)lZiy8dHbk*BGjtn~20! z;}UOSVO{3=)ajQG5j#u$p572mZB3HZP24vk9NT(?)b!QFSrex^zqA$nWS&jq5i6e_6p2Qd-p^F#<*dS+`QHsav3rO9M3kZy_{s4E(@%jc>m+!D3j2RtZarh4FW z&YBnMomS>^%sGc5`GVLF2b~>|46X6jW&k+Cp!kG8^?9warH_ecB`|b}3?nDhK{~T* zKA+S%#u8ecLOho+5$T#Jw z{(du?L-lr^j)ifNF|Fd^VhhQ0^SMGhsUlepU|lb3z;=8sgdC2-d~|#?sD{iMmBu!kj2-Xy~1=`kvF78mUOZx}<(Yt3RlF>*&}}pmu*bzOcD{g2((R z_~|r7$?1uk{B!OwJDRz^GmlD>`Y3p5U-)c!VH(P>AAwKiXHgaTwponioy6pw7TmXu zye^Hr#R7s0geIZCQnC4nnZ5}K zP~^SO0LkXAkzq<-9ZQlLigLC;ZRYNiF>^lC@5dc>3yJ`<@xnT)4IBJmN5#1~-?Pa3 zLXBdif`E^tqK&m*Lotq`K({wj{nIdZ&DA%8Z3A7`WyVY~|D$RC()|$8I3+BWv?9!@ zF>}KY6%XRx8826Rpmo=ey z*j~=C)zqn;i+EW1SnRAR{ALPzD_pxqUv!hHGU;UV)oI^_tKh_T94Og4tT%j$)n4bs z9)p*gr&LYcHs;+#eB?$8KC22+VSs!NQCw8)=8a(QE#7^z<~$)nQgB9*0Y}=sM6KE2 zS)_`QOsv#&Ifw21G|ygn7x7lWI=k>1@>IAV{0FL|C<)Cny86f*@^aKCTry<2@R?LK ze-a{dW=&gzp)>$mCvT>!Q)~ zdX+-p4gCpbX?gx!G!egpB3fpS7%XB-c z>*djYUF3L8Nsc5_TZCI9 z)Nsgd)GWYx#3ZW5`~Kr_FAi^Zn)oDWDcKc6PeI#wpYPMft2@YXux(blgr0)3{z~id zNsm^`lj(O^hdr-8GyoZO&+UiiIE2m0RqBgo{XOV?Yh|YGVHC0m-MS+ZC4j~;6MA&#_+_ycccnFxFR1XEv4sja@umZ-=xl?KTwJJnoSsH;$01a1Xq1ds^T2?UyXL6eCE_ z&cWbsUe@c6fO_&peX!^Q`>z3+B1SWS`f93>J&b&mW^51M6-eF4>SkK08!-i@)x|5y|p1FV?&01VoU&B zN-Xw>4V(%pou^-pF@GI;pdc#OUu31Fym72(SK0mg`h6vj#H0hOOT_ygVMqg3VIda- z9P~Z^fxOpJ*B5{ucD6%R`S?H~@bQNa{bdg@w~|0qmyqaOwJLJU+{(;>e&lMXz?rI4 ze7icFRt_+52Lq&pM31<@W+>skEa>2KMFO52yUqG?&AmILzB!2pkc;+2K*pAD`pkE@ z?n;1Eg@!49bu45_EDSNayD}w`-VLQmXAvrrYL3V*tSFudZic6_1{fMO0}#F|@yqdQ zGUP}_aWX;`6Dp&yBK)se;(=UfU^BzVHt7fYQF)eecsATu|7vw&SwQ8{?}T;{7fIGa z7PaZZ3UUK3gM`YQYef)$A`E~`^5E@#G`5LLR zK)T^=fUP?~lFWb;q_Q|8Hgm|Zxao)>o_e#!k*-wx?b;7)r8tMR9)cjZ;j3foAGhy+ zgkWaJz83F37k_?>Fl@qnNcFsp#eEGC`AURr+~>una+Z`M{eC^mIVA}T>(ajWa|hh{ zM9^q+Ji0OuQ=ZSqu<6CRC6Lm`Fb_Q7B7u8heY3MG@0BZ&@wGzR>|HK%9e)cU`-m>^&m2LtW#{A5GNs^l*|Nh4iY z={31L50@&5&aW6~_nt1DiQc<`iZpweD!`v`e)T)%IZ4 zQ{5X$!T|8eVj1KMVfrM?JyqzIyh%zxiGET{g_M!1L=hHDkR^)9dW0GHbcqi}Hd~ec!xi(hLIOgk=(B>B+wHie>Xas}g zY0t>$u*MXJ6Oj2Gg7OWi3>LJ0+KrC!V|Ku&IRDN+0eS&ubo1%fd$m5D5qkA%0p$BzK6K{~7v>L_<+qYw!1)2*T3#SPUqI{1Y8 zb2@zr#w;);v>iYqn8T^F%Ukh9+Xty@Z zrES2oS)~9!e_@A8aP8lBGs-v76|KiQwnffjan)(Cw) zAS&g3IEHutI>Y8QX%@B0g+N%&)Wd);_5I<&)1wnP`}OD_y}QzLv~dU{%+UZ07LiIEKH!5dysiRE?Gq(w`gn z-sHPlGU*jnIlTS*%Uv4!ue2YAcqr=TA;)d)=2NC!QjkM@M#q59 z;$$7xaGG^n;wI*f0gJ4hizkzr7$PdKnxTErrhY{iup@c@r1q%U_&=8v*gLvus^f!s zrocjO0Uz8L*rr?@e2uMqSyz3HW)zwcr$M^?i=RQ27ZBF_ger zFe4sY9snCe^vhv2ORzQ~)iu+T7b(`>y9r9(h02sFQ#ffe~c7PAK46SYs*YStslD2!jkoYqM)C_~nAufESw56&7cb1`3*++HJZ zb|P)>#oe_Q{6fYSR9)Ego>c+JrjjHX=gP#LECc`-FPCFr;BRbOugyD}a=;G7izt-0 z9G83;Jg2Ic3L0%^+K1;K(wz=>TyMO3u&{aWnQmYUc!SMc}JM}a{<@JX~jX; z)x)Azv6ncjDVk*P?w=Kl!J=EcuBy88yf|6}W|gQ9+;wsBY%*d-T`ZV*r!k*=jt zT2N6s1SF)pyF-wY6p%0w1PN)R1f-Gf?(TZ;_4_=(-}}cq<2d6CBOCYU+~-{9ibU>K z`E8nFXWJjztFQ^*@X0OkKZ)+DvNfF3@ER@vPTj+8vFt>1NANBr5lwfV!jPXlvYaY5|%?q zaX5KRu%R@+^3COU5|?SR0@(yN96hcVMlHpWIAv*ZaAv zgiV)jtkN$#{q_oQ%2~Pc;WuZou?ekcaqi1-fH4Y&O*XF{RgSvE zku_RTAsT^^X4dAM{^+bf#WI8vn@#n7)9#a_c-z#EY0zzqw@7eOV~MXiC_&<&S8%%w zPEpprNBAmBupza8mD%@%Grd+nY{ryZ!a9ukGa1hw;4QDN>U-@i*uqO2dYM`sV0{Fp z25Mt+&`Twz`TNdgVg?x2{i3*HE(OR+xx)I#!oNIq?Ai!?SlytAUOaygX;JhuCF`hW`_8Fj38nAggvU*a{yTW z>81nEgM8?Hj@}kle2=)(esSq{OTD>kdMTXFQSYE9?2gPN^?~|^c~@9}MKk%?VAR+Z z(9n~$aSej7)Ev{)a6`kU2fiXetD7GCmM;wTE)Q>W1Emy zX6!UFWLk-ZGASbq;pwL%d-F{FZ!CuthSdZb+x`^PCzbdla;Eqm?OzOFXO^fY7GI}) z(W}|XyLK&E>Y_UZg95;54EL~E9Y?LgXI4?{QIx~W_$hdrJN$mN1HOZG1HE&<^pkRP)p5YJ#SCiPdDQaP zk}@!icPG%zrp|vBwAk)1&+xI5Q#*0(cDs|gx~p@_F+v9r;=uzS@aetx0@8|bHQQ_; zqH=)u&c*|}Yr(K2jvbYI%de3vm~=!85D(z9Lm4|ps2=qOZxY9DwZ5-1iNd!1 zM5g(P#=o!UUl=ZoSD3U#M)$Rjh%VLx9z{XEdvY~Ks~h7T*xNB1j2ox3UDAVbVP!>c zzH`jo0-LND#83IAL;TD(_o^|pzFPO^O?eVCBy+KDG*l&NGs=Q73?&Zw6P32NKGJd zq;YKjjeEz3z~Dl+T;gL&!<@~K3K{+ODKK4m4AyhYfaDsZ7?4L_A;H_fag%LAeccQ* z1jCm%#PbT7E!a;cmtK0GbBIz#x=D0!%41c-EG6yk|267`Q=kh35S=YOq4mNd-cvEE z?qv-MQaqBc*>)3WL->cg;ypxE5S>ko1<9;vR?q*o?4dlLWc0B8t}<;N_V$S}|=-@wv#tfPN3H=%zJYa-~i-JHMS z8nuNz1-`JlJJpK>i}@Eiz(1~mEjVhp={Hwppil9ZvQY|21zKSV;4<->WR#`_AXYy; z{oIxLC)@YpH_Uvetb=alg#a)CNHj0le7Qq{eK&yCwaC=bqyyik(ue~$o%gaaM3sEU z&${vT;z!-ff$a2ciA+u@RE63uVsH+Qf4oOJW%RrQ^bFun{ChN3*#^M8Dwv*gqrHFp z;_x)eC#=9qcCH5$DTB>=gWg5O`+St-u9&kM$Pu7ijS>E-Dzs(`8}kDj@248OPGYmN z(^w~Wx>I;gANqABkH)zaY_5FtF~NK?<%CXr_)IB%vehYX8y#Iq_)+WGS+8id2OyPq z14A{l`IZnch^L$}u1{F)E1^&O*ZV4Fihl{PYYq1`P z%dJG3c?qr(92K;NH#;?o`M%ew@yQnph|CtV;0l}!(k$*)D6ip!048TEi}7FZlP!zo}cb%!@CFcs+Ze6 z(G)@8;?#le#Y#8MtV&YHobwfAD1Ax=mCHl=mLIYL9Y<3Xt?ZlFIdqD#25AsX%>t$j z0U7Y3foQw=U=kW^TmVWTonbxMyTZC}fFA*NN}~$<&03LC>SN`|JQ6!vQa@)9bD~rT z#^zWY{`Vwn%73m(WTf^gp~9dV)&|W26rjcZr-6|3gVG0MgOt2R$g6nZm?JVlw6KPB_Rb!~ z7f7`qhK&w9YBM0*r%`XCQ>_8TPTC1C^>d+`B0ewe@%yzR`}A{t2?eo@kG(ZOp3~!| zMR+7hQh|S_G3|i7yC;R&E_Ya>w*IzCgeXJNmOG~Tm0>nhCMFAi3OcJs@%&5x%SQ$$& zVeUn-NS@lnmMyF{R1m9GoRD{F8KAy1w66Vd;L2jSy5)-&=&o+9Ek5Nbe2%61_`ZBm zD%{7a-?YKYgZ1LLv7+tyqUWLButNO!M*|HS+YAw_E2BKK`gT9UTj|E2S6@RHdjW)~ za*)WX`e5p*S*!QyfeqA7d{nK!tHkw01PnbH<-b|eQ>_D5@6TXcr7jii>(s%lhIhAs z%wt7JYF7CKYGrA15bS2$0Lhwkx0s)9o0CEx<{FL)&cjk_VBJ}k`i7;ka?|Y8PODu# zz6C->>b&&`elJe+p;$5t*RIu<9OV>9Z+e(LhfaG^22 zFDJBQMVwtGt8a+c7WB^I|Fe$uc%1n=0l7|WbS+V3{Vm9@z+nE3&{Fb~gS?iPe%~~V zaSLTaw(+Se;}Q*ZzjfecHgh_FY7wjj29^X;at|BbRG!$F5hDh)%;EBD$4x8j@!_6qx;<4HQv(qVNO> zNY?#{r++j+Ud?~2fXVRxe-*HsB}?FtQQk*jcawIwfY8AHX`X?9BE$~W%uvY}=4j6u zh(o``pdMcTHXi2S5v;P9Wzc?c{k>Req|x|r#|6I@@=iB%K3Swy`Gq~&);Ie)weSZW zUS)?}tz{|-gWmfs#9^NoaT7a$nPmF#;CPxx8Jl)kKC1+2l9PR04j~cVa9UWNTGStr z1buo^u7@Xf;h#;S+h=UI#>!T7wgA~{l4h*V18#6pgyOU%o`95<#YZg#4k%w64K+6< z3&Vxj=UcXVVwq?r7vI^Rm)O{tHL1~xue=jDs+u==ZZXro1AA@YHto{R-G7q3`rcKI zl6_Fx$bBJV)Vu;Ndt&r0;tZJL@m6M(4g})gIq|tzFWe_?l7wIGiOGPyfo<;i)Q~Xi zeq;8IWZyff^e~l8azpO{@UGEq?~tApls<3wNw%ae*EHMthlLWe?Ez_I+BproXXV=% zgZTclfl#E!gAtzkVXyk(vcwThr}+p^VjH2SP2YOvjV)!TfEaN_U;l#)CbmZLbq)) zuw6?^H9N#vf?I#ar-+~l_bQJg`mB-E4&Xy{+8FsvUZv{0ob+5JYkLYK{TXVxK+<}g z%4e$L1sO%Jywb7YSO2ZgI(C~(>`?0)>(p{HTW%o!f4z~oV_K~W zW>|N~1;vnuNNoA}N^I|aXPWH;V^C5-K4j9O_?5j{*Z~8ouii`YchwiYy?EY3rx_;c zjMq21v>4&>+Ky#2=w$HbWUwQ>SYL1Ee+qn~@ZD@duyvryPdU%-|A3qgpuJVee0lEs z0SFq-_ASBFwSYk0lD3OuUoxJ((+EDO>(i=Vtv`zLENfKiv>N=jKEv0EeL=uyZYw}z zL;qd$Oy#|ShuZ?x{LAHB>8CSJhi7XD|L1zM5c~ii+26rR3>r}9D=q8}n$@?8UD;oO zonsG-#H18I>JzKjm_?B1mDBKL24!jx(F4}$7Nu>HdyUsTbMjHrM&YrH_%N~sOuT&= zJjCKhyn$Z;RbiGa4QsZ;n`^1&NXf~9(%_MOCWozp;wt2!EwG}O;5dAl?Gca-ILV-k z++pB=7SsK~x4=`7(fLF5HFwZoxTpf@e+Y=e&N~g4Zw_fYkVXXPmm@*>M7J_mfDJ*( zr*w>1D;j-mN`Z?ZqM{=SkhW;#BA8dAjhJH<-){z42cut7@|(}G^`SE*RlgCY z!}@4DSt+oPltt3{U;zkkdTM~5)DHmRAIT8=?=fQ;XoroQXV<$ks_#zL*mTfkJx5r# z`NXp90|t#+rs&Ak?cP=MEnZ(PN|QPR+dEK^6ZO5~c}o!J(=KzDtS=mB-qS1|ZH-Pz z?$2UiT#;YnJ%bVBvr+tLYQmPOT%)OI?k;y2|Nbi0(^J4h?j`S*@SHzJhOBctDV29M zfrRG~FV+>J4Ulo-hH9KF6eW7ohjh&U&gF~mvQT8q(X35D`RmwF#1vf`!%_F=AL`uQ z_|DYPNDKw1owYh}gfBfpwQoJ9c8jd%>#F^L*voF_P*^BS2ocxrJ7owstKMk@N6vkD z&g-7{$#0lZE7{fda}x5a#wqlc{!X!l`P<+KroVe#w0&{5&PvT^i2;0o&=wGQhowb+RP6BY1(Rhr0OpDg&$h#YEBD-A16 zD$S(@;>90jT7h5vz38E`h$k^#3qm}m*ULYOJBJ$syv;~7vVb_sEl>7A5~k^gXAID5 z>e8qF_~bIIVmz&nI*1y*;AuKC`9x|0U+c*)itEPGUVUft2F?hy!V(I8I2o`OVS3YU z`z<`8X6?nNfT8KuIDs-e?s%tYUXk2;V3 z&xh-NQqw+JC5_|B)7@0J4tuR$+CZ`!hn7x%>e0j*6^(7l@`3g!)c`%1cs zx#!f7<;Tw(gJJRoo;(ME@tA(d(ky|nFdX_kaBO9nrJQ9aQY zO8)>tcgM8yd}5rf0Yxq6O~x16;G+j4r*-e}7g)waZ>}#>$`Y}6L4TR%nJdOM%rf)` z?%2U~BG~0GSeTh-wpmk6pwq8*M7(#aFbkVtwr7YC!4#%D?Lt{p-JL+>a0Ok4fn%E^ z4CQUpEc~-}d#9x)_OOk-?KgHG6)hx*UF0QOxSEF!F{q+@B<@>$imSPzpLFLe^@nc{ z%&hF@qa%F!Q<>-JzWt)m{?1qD>{Dkj*=Er36cA@DtWX%_xoXDABsIyg=xsUB7Zvz4 zI^f*wl$}f(`ksGmg!2oa>U}3ax^P~=3E{>5HC|0!Uwz%`&~cO}?dM)?HJ;s60B60w zksC`v9%5X3Ki7A8ns&3UvbujER)Syh)`e#2Sh$@zKn`*nMmzC(TN#*|>O4qfJx`z^ zVMHf}Ap)9%sLO45gvt5zlQt1;aPRWo8Q;da?r^n= zc8=Uz^u3P- zxi^wDwQ015m7RYUU42!89=X0N?<4a#(tI1mOK!G$+UJ&{!4I<7nu~ac z^gtHg>Ze*?oqqd~DlS|tcqzh*=IqzP1gP_uNI$Ks3KAHkDFtv8x$5 z{a_H%`Jc+l`hQo})fq4Ol7^RN#~XXe0U|tf0YDBINhOWj?mGhiQgryplu)~l=9SwD z=zSwhFC%6hDow_;^VwN!R!`r7MzK#VY9gc*H)_4E2BYw?b~wh&KNT7OrRkc?-aO7yOXlM_t)V|Jul(q4 zz&bH}eRH{+n_JLMrzrm-@m1m_3WD~B>OnOOX#}j^6`9H&HasiC)>Patp_m`<(LOzX z(s=Y__m4AOWBAv%YB-cpqgggFE|=9xO*etFbYj$CzWmAszw69x*=0r*70 zpH%itlw)ay&{ShyNyIsMYKr;feSn#hZz{sO-%Kzz3fh6ZHm^4+ZPHqt5O$a1gq33O0iNY>-dVtctWO-;Dw~C+(t!zpStG zDm<1(%f#l5_BX!Y%0PnO|AZ#lp^7vxm{+#}?-{>2lPvVOm0PPo74`a+I#K{#)uLeHZV{uyL##apVVpd4iUI9U+V{Qg5lKK6 z%6M1WTN8Epey+&c<4S)zRil4$Bn7X-HQLI$ujf7=q7cumB`)RLAqRz7F6alYIy_k9 zlj{BT(4?iidY4fn(n2=3)NzawbN}X~OS@i-^1~W1`RoMh_1Z`DeV=(w@)zq&ocn;`u)IUAH)uT<{dgJD#uLc1hWeHJ6SRN+cGX*Yanco1e zDISv>@R}0tla|V-kBzF!NO8Dg%<-kE;4w7orSTgyWe2~b2F$&@lp(8*wb+glpZ>9r zo$7hE9F|@^x+;$yJUq#M65_WhbxY*(l9Yt)n-<&EvN1eTcJ6D{Oad-!8$SfO1@U(e;q+J1enSd#* z5TZ{gr^TyQiUOIS62grY3-|1A@C$o@1|>d-Kvan~PACQJGQ?jv?)%uE=r{UaCy)e2 zW6UY2LG7~_W&%@3Ilk4I(D2ui1XA1&RxMObXHEKW()1q!I2VC7vtCsc#yQrr4Zy{M zY5zyjq#VzVoW+?xvLZq*EQ+fbpBPSGT@i^r4w@%~z!`BPzX(vEvTTHSc-Tqp3 zLS;`8T=287HD{cGH_DlI_t_yF7xZ^XU+-~wuxc+rKRqMW{OSZuB8ah@7ZTCn&{%(0 zJJ6j({`HghJSDS@i?Sksa;NviV?!!t$?jK328VT<&@lGHS&1_9?tLF@vSK^@%X=J8Yw`p8Nh0Xnq zq!)6uBt>DiyD!r7%9;7%$wutoeKIrg@3;1+fY(`==6ZcIs5b-Nkqt1ZW`1ml4)#;n zK{#`4JTOiwkY66r^_q|a`F@~xtpTSnrto0eb@I=mX7sarkkeUu>gr#?WY^tAymB9U zGiDE)#8_HDu;S+LaE8X3eJK};$H-ysN&nlqYtI2M>o@^CPPP5!khhmLskXj2q<&xo zAL{ko{@RBi0Fw_M-_!15c3suR zSB#dYRnJ4+U2}Q^SBW>^|JKL<&H^=w(Y22$>yE^i#@g5UGYYjB#@iF4%Mold%Cvm> zjY|`f+;$F{VIid$8x?kS`=N5G{fw5^Q3l`0S+nOnn>Kmm8S0WbMREG`bP>C8i>W3UXapnC$a`eF&Oik-r6guFb9HQ_V4Upf%CsX^K&D_PXfB?#DY)|lWj zQ>@b@b>wb1GcoNGcHc8%{(?I>15EMFGO*_!N2bG}xf-{e$AWS#EPpOX?@jTKBVPgs zVj=^%M$E18dT98tBp@sod<_((Tj52{Vb~@CgIVg;G*Vth?lAugR=JMsJspp4FUkvg zYla@Vp}wORBs!HUPy$gvMO+FdF_F;$E9Fc)LWY0}=$`0UDWmP38zmH`FVBcJV5*{T zJ!`O3F(fzRt>s+uVeM*St32pp6VR`|OO>|9`kQ|8j*c1h)yYiOt zA5h*ok_AoW)c0FtIE0EHbTS{D&iYXYJPLo535;CE&5QFF@?~8@|kM)l!(R`gK-m560nZ_V8i2Yr=sSR&4kI zAml4C@PJi&{t2!#(fH*0xuRAuPum;}c82bFQ%T1%i9_ExN;Fh#kWdX@KFedq2r zo{&@xKS1vJov1GPqNE}A$YTE6`Q4lw>ft^0rP00x{~j01mi9A zag0##!raopjm3ew@RY^9AD6$nN4}pDWNG0wGXX-o0N+4azR_}24V)(ci1bu1`*!2O zTs@=W8kjkNvTSa?^OB3MhZci#ln}2 z-j?$imxoJQWH`yur1hL*a9MXI;i1=A4^K3+2#w@W z5B@y|NNPH-%Z4^3pGh#F`}`9247aWf?W@QbcUD@lAms4pL3h=FFY`C=?1z1QX z@F_8PLG01IezWim3~a@%5P{QtSAzmlMEn_GWtX-Cq9vU#EMEB;^r)NFKa>!H2{x}k zm4s|p9ZCzFK78GnDJDku2yz#p0x8{W_M*FfeTR;7N5B(EJD0)Nm<$Bcy~13aZ{E0{ z6d?eFqg`^hTN;9SH%G9k07Z*5rQJ4A!`}s=hL>NPesRmbfB@+cf1=-hLfCT?_s_j7 z$S<9=D2LqUmiP=b9oeld&TV)tD9MS63p2Thvn3KuzK4LWNKPt5O1jAYSkQftiNv3; z1LSyNhE~-?PLvon8kAOJKzS(=NKiI2c-HRnA@}Cz!|1cbnNC+?(B#U!z~BNh`5vC$ zny1?)S2^*`FF|>0pmgu%(QSbV#}i=6zeH4%0#4~e=shUqd*!z1&cc;vhLp-3PIf*jcSqFqHH&^il@HWPv{T5i$_|cbAV7cZ9(iJepei8kl zZGVK)>5jCD%vj1b{|yX)UNLA4#L1;%fuix62+%f`8ZPB-j(Idqkpo@QD+eGB88UTypypyRCeKD=|2~6(L?|65F4zci(Cc9lKcL0lK2^jLmgAZnAG9daX z0`hWIpf8zKRSx@9-s&%B=WCAyG-7`wN0zlEv>EMMVY{Zcl1NTkZ9)%az!AQz@8n!B&7y~`52STUH_?nUz#y&+40fRHuf(=1w3>VWki7km z!H66Kxofg4;c?LT< z?{ggftLYjyzua5GLn) zsha1zfmXub=t9G#atU$w0nO1k*|{Yi;cvnakc065x_xzi z7?eP}0wzj-D3iJoXrz--0|F;Pz<vy^)ND7u$aq(w!P z`Q(0|B!^Yw?&kee3iw@?oQ8MuhL8SLZiG9epXld~=)idCV;t!VD(MZvH#TXxmk|-D3MT6|-u0TXw;drpe?l`3b;4URd30&6(ICJ^m%f$0!I$dQ`?X4X>_Jc^YT>g4n9FNq2tx+^g z`8BQ~Gdi2G3;P5_@p;isfkk#foK8z4w_dddkZw|(1EsDDuW3bEj(&^q!4qeSjGV;{ zVD0$!EwkeL?YfNc2y<2BW?g&U-)XlfJPHOY#N9x2GAv@GX$4r@4t{yTKg27~b}y(A znlt;iTUf%;OqI75gW(wv`lR4M zzW^tpho;(Cj4!~GA7F_gPUh zyGtuxND(NH_EUF{;}aG2hRs7A57RffifHB^5wG1>(kyx)g@KlviP8`5|1u~l==n6d?=*|izxy&?9aX`Z1o;*6lw~rw9 zcM!>n0KBTCb9zFJ9~z#l_ijV3o>@dTPoiZ-AR2>UbakH}K!eb*^tgYnQ%GN;!L|KAG_F-stRzJT}9XZqQZ1zlrg`wHt z%;8bCu%jm5o-}?%1~W))U@WcJ`;S1W^Q8F6M@MpYO$uVB#I^EXg^G_;Y2g}>FMbzZ zd?>9B7(FV9$PR>F6)60>fHdeJQRF;=Cbqz#;K3%iXcR!62KC~d2H;H@h)J-(NcJ1t zQHVDXMAYq8d0#X?JX}iVh^SK5Qt_ef#Blgfo^9YwP*)Pi<+Cy1ebWst=r>t>DB3!* zNiuy8>?gxXLxPR&CTq_!az=5Io)#ANs(5`EkKpE8BQ8`;E>Do${A<$qC zNA8`|`D5M5AejMJ(x4o5G6=LUTr22{PMeYfz3Dk2?i@B%Z zPnEM^23EH>r;V>bfBKu*-i{K&`@TKj#y!9GnU@7BoN*jflkV1eay#hUG2y~{L+||% zJ%=_@M<9Fd23_&Wwo!YR7&`5yP~i7e!rP;vTu7#e6pK3I2?W*Q;!z8#h<&w-N79WNPfekd>}VFITGE^APx?GB3ksjxwjahZxPaMwLR*xMMlY@ zw>1~2rd7B*nv&o7fwLPk1%4jKzj8$chK8e(`^t9+06=-^mihR@P03RO=|h58CfBI} zDOZ*IA_1uJa5x0?E)K5&X$a};3xdzp=+e9-NX}j)sSH@4TRa4~PkPfYdhz@GazSWy zuNNIlbQm|P?^C@pxv#|V1)6(TMPWX!WhUffyY6aES8K$bz$4F;q>1bK5aoASRR&$u zmBQqD395H3v~*{~9ucHB2L&LZac z^HVtT>W&N&^n8!VLjGq9070U)8~_TXz`}?Qk4`C)my9629)M#!4akS6$l5Q~(7E?~ zxOd~Dn=Xzwm%*Gv2IJ|?mYU@pGXVVm;wb4QQV2gbt#kZ3wLhB89moW7?X=Y7Eh4%? zc|p<}n~hp<+>FHZTij|UX?TV8X+x$9!%u+i1fJpDMX*2+B~P@dY7QR1{pljF5PQc* zL9RHMQ#lp3)!1lBA6VqCnCkeaE&+6(V5jS>qvm;p$fW0a04~v>5I~P0l0&Cq(J3=vo9lS+o2@*%J|l(5Cot}l z;)ybMO{;Ks$j%U0$gCfI%+T|2_XO7RDt%#%;Fr2H@$7($c%7S#siQ@ zqaM)jL)0ztW?)U$r@+jK2Q0h7_#9DoPRl?)P{@!ku?o+5jNJ zrgTUKY2Or!11LuZmC)bZr0qaj2_pfDwa|4dzHgd$n}DU@^B?avcI}A+8syL7il1`0 znTtOVgCML>{<>+Y4$(hF!`7~DN?l)dMxtHR@>!xz|9jub&m}**gwH-`Wq;wtl6(-& zIzlEhtR6uyg)Ldz!vL3ik9-Ga&MVC^-5>vtnX|MFNMg0e43`qs<){R3ba&DK*+2&f z)QDUIig1(Fk61&>YIMgibGcEj2EFtgr2(YNlL4GcQ7U$BYyTt z`#0>1j7}T3Jz5un`(JUdXOOE%@ytdcJ!W8TJQ8yFp8_8*1o6At4I`ymf;cB1zBU5D z__yTcmgxkWJtQE+$>pY|6EP9c8ATdZG3gp}Jr-(tH!Dm~8|dU{i*_ub%#37dZz3W) z3%JBa2kz#?5r{0}Y3}O~WfI>{(I+D*i8O!x;u9~zKgQ(qGp4F(ve2mqaj2#RAQE?} zJdcT8hFKrjq;~qF|6UxgUz3ubrllf8;bYT(T!`QRRi{4#LunYZ7Jzlb$pXNZAk{+} z6mB5`mJjMsX{Cu(Gq=ovTR6JXngi#{3MDm>nIIGLXBa zeCR)x1?bWyenfdBC^^drf&iQK(Qn!NN0s{nQ;D%n2g}{6EXE)-2f|~QnggQQ3%h`1 zBYmed;cB~agWU#f&J@H+An`x~8cy`5zUWj>8GaX!(A5q=sC&BgW&a9%jF=2aV2^-Y zxv$iO0s49gUG2ngkz+8qN2$>*^da?^ z00VUXF&Dg@pNP{f^2LG!g#o%m4j%qh_V`5xa=PR*Ln2~b!eifta-H_r-6ujxs5tv$ z={dF_(zSq?rgHN)ouU_qaRs7D9_}hVjHwLViG^1T9}7K-NO1w%eF*wf7~O|&a3)v8 z^A~mQWx}zhHW-WGnz+0T~VtnbQSfgQug$4Tt%bol^2zhUhiMzsxq zs{MFQ{kSv4bKvq5Sx6;RZk0g?z3d^hC$rQx3=5wsHR8*$i$CRpldkQLr_zUAiEjat zgcM!`5-=f>_k6{aws)=w8P8yRN-D&&AWbe>m?J}M40GEJ%MX?#iF@fQzB$MR5RsrJ zx(TeY`$oQ$txRREcD1L?9%$QAoB}1d@@P)&My3wG@N<2raw`RLeF8#6#rk9+#qf$Z zToa?Lj;GVbi+kiKz!HXmPAkK^JHaR`x7r>NP09SE#&IKqkVaSofJc@a*GWV2Dw$Bf z-x%l`g(Q8ccpog%B@IQvOldnD@OjMKGlLNl`r zt+?Y*hGHchYQ7=;SgvA^^mU{&4?7HbSZ=**XE4>+V{FH%I)bCT%k zEMlb$hMhil{vzzC3`$m9Vbg;$Ttr$d9xeSPWmX-(!iiW=8s`C%9%8Wk)hIi%51 zTjjPp6KKIqwT(B=ibkYVcWCd!2haZzt8}_O`8@kuM>h!PB-&{?PrXDr%Ya9rCvY1W zRZ$F#^=67)x|6ZWgO=49TxfU~q$W3yWBk81n(9}*(MP$w>-gQys%mr{yJg;fBXN~u z6NyrzyZ6IS-oEP+gj7(ivI8#Or!5e2=-5tak$P(ZG^Ig_znNB{iH9f~OG**P{GPwP z_A2fHXUtizGW4D;MJ28deU`!>XbdkhhoiXmZ{h#@V5B{cachfYB4O2l4Q}c`vpNkU z=hpO`@w{(Gv6$idzQ{fmY{0|#PJ5j0|HD$F*Jv+V7&ajDV&QYmkGLUFCPrs$W-Hjw z>Nb5a@W1R@(>aMJ_E+lo{;GQ+m;IR$<^nrvE+X15DoPTX+C|7uD~l;jx3E`~F!)&x8m~uk3$M14PXT7%UV_qiHHt&}*c$9Do}={o>AsihVSJ zbSI#mq+u?)yQZJCqBl167#P59#!8#V`g}px(LO_AU5j6)sPaa^f4j^!OxB*Xm%3j; zn%W281AW$XY1KlI>STcNJ}`OvOn9)~)ea;Q?C#4AtW3Qw%#7Ap;;!8yCXZ2>ngPn* zm_3Ut80v+h5J-`PT!*>P{6Dw9j)21{=cj$1eVXUO6V0dAQ z+R2QVyN6k9iz3VbY*OBVO|-QR(-|4$Rdn$SOsbsYtk zMPJq45|F61tM_tQd5x@wf6-y|GIqEqi^DE*QBRz*Zk~Sw&rd` zq1+^%hKoLY%baV{rbfN-#VP!AQ;8{m&!E{oN>n@LSG?cY z5}bkR_-CWnV|HAK8_n6}upV}ekc1>=D5yCFLeue7u> zJZOJb`*kcP(@~|Z$>LgLWY6V)~XhHMdWh7;*C9Ok`P0soHZzcl-^M$8$hq*`*8UGfyxa;XMjQ2p!xPixm+l4tmkF$7zCE12|#@Q z8#wMnuX!ElOzElsbe~%}8|WiF_JBST4gM~y2`o5(-zgp6OQ`)+q$Dt_GJ2i-_|Z>s zHoWGt-8E<>iu}V_y6yib7I^7sz?=)fpw0?zD^8HC|T|wT3XX)p;C3cV9eg*tZEb z!j``;?jMc3L$RfjCH_LfUG>2+M!1X&9FWAX8&u8Aof%M&xQL?}d=;c<)Eott}Gw$H5U7@;D*b!)=X#v) zK=>dY4F=k;Tc3Uq<`oc5ltIJyzvd4xqc0@3Sf_y()D6H`PnqKme3Gex?aRHpa(xVF4A9Ywkd`20I;zlZ4W>H&zLueN$(S=>*i%e*RF1Mn zH2Gi|D|z`DQ`;JOWseKALTs9x`X!n7Gg^I?4YnlJQma}Yn_lmCl%3~g`>+DsnrStY z-1;(EVf{rHFOl$p647=8zf;z)cXlgDsMhcSkw!5(bGx`%_?q}-Dnt3ja}JVztk7w@ z<*uX{ADcA#a~2J#Wh2nzA*bVe@Ib9x0(v^BS@3LRAy)q6@a!wua)Oni@nEH`Zb0JS zdsxD10V^Y*6k~eQlpgytusXwd)h$6LRg_8Divk2OD6}vhs&W;GF$2gK1xak|4_-yW zSRcs{QD#CZ#1&upHyc8Dy?s$zUvO7ENKDk+FM9GZ5|uUyvo}d_1$-JA3vV=8T$tz| z5W%5R7h0tjF4kXMIAKslbA+U4f5enWQnyaUk#90aXW!dQIU+GLd zI`3bW{g^y6YnFj%?4tUmIT%>&)~J8ny}`|Befrog*%_n`Edg_KY;KshK`S0nsXpGMbvx z*Z3&?yjc?<|0uXM0lqJRm5unNA7!X#>rpNmfnb_<#V4YOt`Rn0(AuX!u5Q>_;0b4gY37)uv~C;M9?Y2{JFF?o%b`lOG{!3~0D2&ecA9s2zBbcd zJ{+m|Gdm3t7>vv(4XrS#-4VDj0f1Jbw^`b2vT(GY(>v9&U?D4aGX30aOXn>XK8~|v zRw&ew0i-)J>DsaY8jT1|&%aia0Sa}-`QSkDb2*vm({{dV{VRS6kYvUG4bh@*AK8oW z23OFIdAm!H-^Wzhf3pwUKO~1X_VrM~Z=jF2c!&+IBy(r>9Q9xinYBi^DKeYG8J6=D zO3S*Y-|TB?xZQ-xvHU~x;hOJJZ~zp7!uHW?8F~odauH2w7Lh6$_e4F&FyiRD0U3*h z{&RXESkx*Orv`9#gZ{;e)dDmW-GRN7u)DS&B}TAm?EQg`R^|lI)W(5=4dwe~?pKD3 zZpV~r6myAz%l@QDySa%hbVM~>P=HhcCMMm46Z!+MnGK{+<_adW6EisO)-(BBVoCM& z7~8{({(c}L4ne!Sm5YV{m62fZ;wmfL+@-t-Q>mN)oK41q0~Fnf_28{RDaQj1WN+I+YfV--30|fFzt)7nm8!*^ak{=(K@)T zvW&Sv)-fepy{jqIVbwz7ghQ$vuy@`>uw1M&8EIW8E==h{DecbKk zf|?D!XexFD!ZoDfz&b!6Hx7(P5wETDVq$!ijxvE-ctxS-JJ?7R#5nXzW0w&=xJS;7 zcCImt0kOENgED`J{QvH*dTpz^`_Q!M>!+v*N%X%vOJ{K{KCX%GY5FVC8Opy;cxUg% z8$#ABDgvR1<8m2HSL(&LI=)x?iUHdR_!PQL?w?2<9liksLHbec*lrTXbHNS`m0BdM_s!zZpCQk-+{R3*F)l*BAnw^HG2F3gd%7jq%F*8!;sqL+E@l7Y zz60W^voin}^$08Lml`#j6Q36oj@BZz*M@7Gx_mCU7F%+J|#dBj4)qc(P>7 zbyDHGv8?*I&*^AI$&2RjN4XLKg27(W)UA~q3^|o7@5Cq|vS^9HjG-vZ=e=tuu-WI- z>1QpQ)X7s#uz6$?mSa@C@=R%Xnzf86PbV)X@C3dB;fqK1!{^doUm8zYA9XZ2V3W0$ z8Eet@AZsVN2qI3ZbeHZlmVav_#{K(}r!d3wQ|Hz=6M$eroL-rSWOEmblPu&F-2Un_ zC!sI!nGI(}r#(pkYrz?J*`;1F`HN!?T{Ynml=0vnJ&8)O?(gtlLKAjj^Xz>85IKYz zr1Y!*4b}?$&)@bNluKYR$!3w0N)OS5I%xr)6znAw)nG-FeuK!Pm4Ph#qv3rJ^FW#S zuLHR(bi(Fe1c_f~yay^g`MNc&^v0?49L&C}^BfhH`eF9g_pjD$I7f&efI6#}yBtdr zr3^!VM~e-OhBVfbIg?Soomm+=i1;u85T_g4)MaD9 z{2NhY%Uysd_M-RRgEO&043Y}8VyhZ7pVWcIypEO_T=_aMhB-{ zA?imah`tDA7W}aKiXh9O)UHr9t)DK|Gct(Sb}13OIG>8zIE;_@zC!bC z6#?T+izE*Wl}s=!Dc^-p>in)GB2pc|dDBZbo>cU&+*o9_b+V?h9g-XrEHQQ$Dq$hE zMt9>oH%%2HoCFy8m9vECC09#E4a0B(o#J<_v*=7PeIzNkULa1clJMreGP;Ep#!BN3 z8V-IigKAl>Pc9tPWOP(1Nc6JoU{C+pY@Cf7Wkwo6)ToQ4))pPRtyK{oJ_<793FDH<{nv&vRA}~md@Eg zhT5b3tPWXLsCGkr;0@L;qg)P8Q83`CZ^Ys46BMfE(LHSObsoL)zz3)&p?w-aJ+%nF z{Jqq$mZoqc0IrEsT-lK1w9W(F>1cW`@Qw`Jf+3u zQ@_gx*^_0F)}O6evhq=5R3Eg9fxG(v*|q?nRv2d6k;u+|iM`wfhrcIJrJpj|ux`+j zI81iVH;z3}c<5q1x0RHWz_jV%Ga0li8gzN#6-JL`D{23QuFVI@L{@d2NWE3%cfiaE*72SX`c+K0AVKZ20 zbdgv^smjXy23hnAt1yxwP+WGd5MgJ2^g_gMPW*8zI`v#)goo%wyHr{i1~L@qHL}cF z2C~TJbtY26r7?)|dqisJ0w)hfVa!oG;|2OkEHz`3CTd&x=diUBIh|s@7F~VY4?#*# zb5`gG&!{RM5T-i$<<+C|Zhb7&kRUV0P$9NQmWBQHJcV#%nX>v#Jc)0yv4_OB1B ziE}wLl(C*vaavB58Q?Chg*sc4Td4ZJq1ia1Lp#{S*N3c``rRrIm) zdw5?PDxkSSq(u2@^Z3bvtG&fNiV;S`z6p0C4d?4D&4LcbqvC`Qe&$|&{mInT^#C-| z$m%1n&pt6w9DsA-z@h(unw7V6XMa58gZagzEs*+u;iynEQlB$R-N9@g(6opWgr zuTS7$eVgGWMe60`y=&it^WtQ<1WO!MKe#m$veJ~(dF~EXRay!~teHXg?+WjbZ7^?9 zR)>qN`0^JzhKr9ojaEJgx?VoR&Km!Dv?u7Z1fMFKf4_D(|)+b@?M>LxqRUcd4e1!j4T?`s|~R^}48_+ zo}<|Bruq6{0=;s8(E>&HxGov?!q<8>zdX;`LFt;o;K&R>6y1aA^L7${{NP&ugt@F~ z&t!Z~m^K6Nq87ri>E4(}`;$+UgkN7o#$iPGXB~!w1>IxPEd%Ddj_*kM%M)~^wDFr4 zJh0Rmi_ZIgMTRlQiU4vY!hss?pfK6MaqeoHOs$c&NWZ`(^(U0jzR;>ot)zfesw>RY z)w9$|$48s|c#fSI!t(=1rCfv>Iw)(}3I7$b{&$wDPxhP@o2etNSLogy5S*C!*P4!tXHI;}WOjN0164n4yT24aqgB%eGd^p!A}+h8-4@_B6iO;stA0@ZZEWwGzR|u#C~@mBztSoyLjhY%X5OzhqaT0qYJ$s zt31jGauQYv+E3NTQSV?DzM*)$3!u=@d4=h`%4zP3f=W^8lv||eU4S%3Z&~|o1 z8iSDv+ULR=U$Dxmj!cxeAV%j@E0m4d$3rWKMp&m(t1KGng5EnVTjT0!;*c%5VfYcq zo;1>pWS$DIk#Alt)Vs+qBOJ8vRn8{PC!S3SZAt{ScJZYam-l?b5|)nK=77Aby1SY) zrj+S_LqAsTzRW5&21$cr$Wv*&A}>g|dCH;6gtPh=bOfwL;Yt!1qUf=JV%02J4tyet z$ACDiiW5Ypi_{NSjZme^KJv*Ezsk&90vw1fT8R(*HGGQl{&Jh~9 zrcFFb+(+*|nx367M50bHW<$4 zKT|AlWcbOy8uI;i5q0$p1(k-s&a>yCBq)DAajDC@_g#7>c9?NViJ_Hsg>GR$h8%bsdYD~zv}U2+Nv&vbooa8UEv0e@ zPYUR_PB~)Fo|N4~*<=L?JFedbqqWd>$=?A7`T`#m)Xjx|zC_rlnflPD;7()o4LqOC z5(%AgvNY*i`p&{U@!MGZ98bIG^eZ1GCtEZ!$wNI|-I=7{$DwF(vKYV$bD`Bv5S}gf z);|*QYBGmb-M&C=mE?mfId?sm`g%x61%=66WlshAj^{Y(;U86Z#TyiKD)gI&OF54A zqn2xnJ4l5h?+M+a7VsU$!CA`&iGO&3bU-+Ik^56D6NiBr-@Umsj&gfz=lf#SfWndo z>aqKyWPoQCB&fET3ZTIwpEGC>SaEjtsnxe|wUjhXYGN+HVIlloCalMWxCXttx)(Ac z--o(WN&jnD*Q-xaKT68~r%jYyY*v7^`HM)8<{2>kIyjAw5+u*HB8EVa>c^CkA)Ba|?_ z(3Hh96#g*Pv^F}Hk^N@9zwlCS1J$ z`17B7;i(t@O1uvfuusjSK_&e6dUMX&xg-S&DyAzpVo}m76rU$}7*EU_Gd&|d-~1r~ zAPpe>;%*H_)^;T?*Tqxh73zoK@gu6ee%<^723EtCaNS4FfJ#@qq2Q~(mUJ75>q1bz z@Z}vlGn|)Am((wQca1Gz=p$8soWvI<-GO%=ub(`;p7_$I)yNFow0ib+f~04z)Q;b7 z#Oj;?@oR0Fej{8T2aq{K*8!4Fe#p1B`Lh7|AEyAMD?oLCbybER{+J8m7w@-yOT;QM z<7!OZp=fx+jo-=^FF2JfJ|(A??(a^v!^~ndec4q& z)bhIX7mM%ae}KLL;8Unu(5%#rg5fN-V6J`mHId%GD5cae;dt_SQp#(zR!}1 z_`I9BkrR1|c)-|FwXk&HtwFBOT| z$D9Tw^9B8#kI68c@rX1zIr03l!n6+Wp>aM2^SW1Kug-V(fbQYsAJ|YF!|tCKN(Xmf z3k)Lua9|>-b$AVw$;vcYs3PSXwvts}-k`c95TgX8;$7cg;s6Dio8|c(SJxsJhCy^} z!?pfrUPK$6N`?-Ye^;xhC1=_aU1Fnwruu)&q>3eiR*(a+>4<5XVXK(b3-%kHO{};} z098$XgJ`Yc3$+Q8fBh120p``fj*Gpcr~qP5CF$}&VKDxjdf~c&ARHEp9r?hqr@i=G zit~%K)q{d;6jtA`ZVA56H^%RjtsnTq^Es5Cx}yW6taC>lD?NK5mM3vR<-YUw?@+0#kUVtK_|w5Wrcs2 z-9Jv^?28M`IN5pfYuXynm+E*C*<$w5?_F4E!U8vxqUBRo$Fa!|pI{4gab=Es1G*eD zZBfqk-iGQ;feg{ucD9%?_ppvUwVbeTA~OYM^}+?F1+42bz^MJ_wN44)hgAn3$sJVP zl7Uv8ucL3B=@kQeDUYY*?i0{zm4BSk_}7jB+eK1K$FnUE#}5v}0>|&Q$R%n+9FE-l z_|!2OZSdDg%3;Pk^I>KQWcGD$i{qoFWwsJKzS}=6C+osZbn+q|&`)RqeTNBJ7@UF) zaE}N5k>@6)kA(C=M=u1?#r2>^--yV(E?hI?52w?^A$>whS*c`4koOU2o>J=Mp4AJlN7&D|1L@77Pd= zj5sOXd5^$|4fbTjJR-_`0=w}9oFNg9)Pq%;Un4+)kvM7bTdsC4*p>}J*5d4lHhDI- z)1;d=2CqeT0ton8Wn|8u-8Qil#&-hef%Lbo&-ThG)p*lX|KdriaB<|#T6zhBkax2{ z@*)xSn0UFsjJNbXs@>)K9zcC<0Ge0^dRav~2VU#NxzE;|Fnw^T{+Xi8bnycK>VLS z{opz3+nZA8;huE|DRt6v^Qd^70OvgsBQokpM$E0Zio7=!3v~o2;D>Sn_E0yyZxI_R zbNA1S^?KS}Z2H;B2xm`g@6zXr)`=A5Qq1Sl;}TW$`jkqjAlfTxPm;E~+YsRUE}*)( zdNtD6qsd7<#AbRdrb zW=f=!@cq`=VH~Ee@*z(ZYp1Ross2jhBj3Ez`}5Wd~{qtHPCKA{SOHj%YBIi3?8 zy2YaTEWhcUDVh)&%Q8eBS9;^WX9c5*b7wbY#()){a)l~I8(JmG%cHu}(IgQbWkcfw zMsje)EbQ?Ss@@+P$C84`BRLRB0(Wq`2&x>5H&{%RdB1JnwD=Z(-Se?C&;BoKIl-AI znDK2VoOGfbb4iX1#oPH%U@soX9+|;*a$hmJhjgrc@(VYZncVEk(TDKov4VK8Zw8}2WMSn_}vJ(>}Uml2HH_!1XWVX zU~7ol-axfqOgnR}IoilaWHk%9K&Co@PF9HO(k-r=1RUEQQ&>pg$DG8vFdoycoQ4=Km~|dopl}8L(DoaDS_uI`0d( z8S||YPY&2@et%5g@-~ktOalqLH0<^}7@#6*92?EwMM}R@d1!!~s}Et@+jmmOyVp*U ztxP`E&W5>o3z|fDpz&X?Hbn}X{?y_3Mjw38ipTo}8^?qh6hC+r=XtYFXuKQ(pOaRe zIkn*|wB_)m@*MztPx(Wc`%2~U)t_sHZU5RM0*@KJ1cwpfuZ%!0I*SH~_tjM|jjq3B zKG^y2z^g3|3}9I2?sVh_KPE?|!`=au5Tg7(N!j!~|DILT)^PUstI*i(rIg54`z**s zm{DFNx7|ce_)m$cP#(ipPS{qkT99b!*%Fy(Bf}&`7G}UeGPqtf`y+){O5b(E*|%SC zB!MZn%>YBj0I~Y%27$vUPLlfX<@ORv>|!F=^P2x0}9PmhPc%e)a_pswk64KBGcfSLb@M_3p>$gPd?&QDU_f1 z^|c6NrgFaFKS3ri5@=I+o;IaPorA#=v{Ue$TVH?%4{k@4&|scPU|1yZjv6gMLVN04 z%{h=xd$>meO~o$sqkc4D0lTW$3_=!a$_tS|^aZp8AEBdYF#g*D8w!Ma1YhzA_O~Eg zyRXz4kluGCu=Y=I_l6+A0BOv0sbkPSL?W;JF}fB6V5-PO;^h$nVEnq$@W<+%{zxU9 zQ)egD4kWq&`vw2(eA*V=M6HvgLicG%1&|w>m+L&|DJa-vok3zRganX%9T8yBT0!6R6alo-6|yp_ zz_TNeBrWWcLsp~e71Y3^H(KbbzfXM+Ymhn9d^}bcOKqNaN&ELn6c_h@)f%i_~{a_ zN~-0~Tkm|j3cFpnM>Jl;-G1s;2LJp#r@s9C?%D*i%!8&yV?LCNpf;&h|M6cQ%B$@pyz9J@y`cK?kodz=p0=^%2jPoUvcmL1o^HUE}sC z=R**gh?EaSc&HqO=bsQAppDaGg0STb?J8-cW6tI{= zO_ld9J8~9rK+M_QX9)Xp+m$r3%&1?gCnUGJY9{eLDmGk`y6U}=B}k}`$;iCMbokwK z_B%CLn=sV%G=~l(m8m{)a@48ILJGrKuf3U0*cAyre9N)^)g9* zq?D7Z{C}3DB@-BQ>)ymGxO0_?if6^P#bHm5iS*yV4%hJ$C5mHMEWN=+ z{-ECb#S1!wQ4A6%hhn|;?(76pZ8Pnd{#*>7-r#gk#)#;~RjB9uPJWmcUNFP(e}nFI zUTF0_BWs=G0bcW!7-^$7Vch>dF=fHe&mJ1+*pCL+6SU~wZ%FMGP>Mo}!0- z=US8rM~;W4Ji*;J+66A-hX>BJ#&hDrI|N)e2H?AEAu+8nV4hOYX!W}qmt z=Cju6&-WsR%Loc?b>1nK3Xv7Iz`|@Et9}-$-?~{9r1PR3^wJClKIn1(^@UrH^&S|~ zHT=Pe!Do3GBh+|EJ@n30to&zU_zMsRszgz9ceU$jUke|r_T-G$vJgo^Gr%26?rK)L z>Joq9_-KziE0O7_pP#`{bt9`px{D5YgxR*81)U;9|J~%MEw~KT5r+WiMFp;&H#_O; zQ1L^J3wU(=P*Dji&al}*7h!ru%r?ms!!=Jh5?$L?Xufqm2Q5q`4Wu#jM}joPL@s#Z<<}X7 zIe*zVF2ogZkd(V4rBsm!V&KVi-m&(*B+YJO)BqRQLsR8}ucO*vK>c%D33g;3}q2UhPD6oFR@0*)zfV6C?H*|Q61JZ{`P~ zo;}ZTIBXtD+0&HFP5Sdl?0k7RdARn}v=Y)~WPR5I1P!nm?3F1RgDFo{gT$DkdVMLl zFa0Nr1{>)CFbIoKD)`NwSzG9$joK@u5F1P!_{Vid%;r31>lfQ-7dh_2amFVAJoEQQ z>^T^miQhLC_P)42>V_RIJ@1$tmxwk;5K|CF)8Wtc5GcowC4>dI?}K3Yh}v(`t5JTezqh*#LHvwg)8%qwC@Z(_g=&c*oAs8 z#?nDLl2T=Z((9haX_)b5Z#pxH`i+w@pIsCZ7SCEbNc2PiPGt|WAtJlp%s3Wm@|R$# z1g#%)s!$9R88aLm>@t*o`ZHYV#s)@xvKdj<(19Z2^^NIP+q!*;t%ZJk?$%VBGWQ~l zG|_zWix>U?*@Vcd@`9^kN$6+9k`Iu-UM=uo3jxZHEru7kzCX-(=G5y=p}Cdeaad*U zo0b8nPXBUY2{hS=y!NDWd2mD)5UQE1hSgt~X$x+5`?F>I?otO4k`!b+;4#X1`Vbmb zM_7Q!6C}1Ik%2O6taS=usJYSeSwqAj*l0TDqInq}?ROxY%4(TzjY$G785`Do9)K~p z9sKuej~hZ4I^eZevi;e9jY>5&F{z?nCF>ISDMiJpCIUg7m`L)thh6~Dr0v*o5 z{gP4rIY4?Ai^X7HC}cXPxg??2s1m)`76!?QNkRo~5CxwcQOtD*5GX~{egs)%P_cqp znW5>8i690JY_o@f&^f5MIuxRbG_G(4y-y2ncvr!`nJR`2G#b6n(+Kh1_L!(+V!Xz@ zw;nf)p~XCYlKZ(tgO8_`Kc#ram z%RRniO#jK2-Ld-K&%O^%2Dm~>*Y4Cu{7whiM<@ZfWW!0NYik(?J*bl)F?c+ncf_BK zqM*R__054m;;CY2E#MfP?Je*=MTm=v@bz!w(%L&vW*3$B?d!igQAhhJI%!VE7A{U`o`=JR~J`n%-T=TNY4=~V0?7A2W%^S}H z73Pm%@{xu|2W|{;==;NXpyx)e#66<>M*p==y}viy?=k}5nC;+pnu}A7fjky2?u-hK zrYDlcJy(lN6)(3hgn2=F=-AkgHjLWgvtM z@OfKZE4p-${9r+fn@PfDgsZV}tIeYmWAXCrN&NF}#)*`D+3|>oT58ORr{u>8vBP^8 zX~W-3xV4nPnb}dQ7uU{yx`#TF=Ao5aPnnf0H8BjjF@yj075>jo{6{=SR!o>ax1A)| z^V1l#m`&J&L#Oz>@O{xlKAI9B90M=-lT^Jf<2F&(qu(m?f_R~7DPYaW3b1DgX!)q` z@=l(HE-df@#4L#FHAKKjwDOu#?%QA}1#a(aL9hBkXWA7Mzhk)63bBNywX$1oKJV*q z>GLvQxy!|o)GcyvR<+%(VFZm!XQ-IOMzD^~d1JE|JJ*ex>!Os8eJVEs zq!4rTU*DvZ@c(1Vnl^S(Cma1o2cxR#AMz^n3DD7@DScf8deqrv_ol!=bsJRsa%Rwu zQ90YlQ{ZU*tBIT^7>ElJa`KHU3k^;e7|gzYj-Dv)O()PVuqaYXX>cfZFccvf@2B->Ze+xV6hMyrVpEG-HIaezd$nuOl7a*sgptq#eRkr*)f&Rw} z$Z_ca+$pG*&8MrqCQmEHt7NM*OxaTniAP+3uz7JE(x>Z_bb5{0HP90KWsQRGsv@+M zN2lg;c1-ZC^>=ofNZ(aMgHI%?*m-y)KWyX!{yP&0ILnHpAM`+vK{B%SQh$l10uTyn zn?LwfMB!j@2Q*smnp*U8xEX!)0Vy{$4j1i9gCr2J+#FQ0j)3!D_lAPBO#SH{$m;f; zdUwmt-g+fcb+X_6$1CHt3}BoCP9Y0O7Y?ZSZk9iVFG#a#GKm@%|CKAO%Ro$pF1xY{ z`wHsR?KSTtu*t;(6}wM9-z_(3h0J6g3mAO~1f$)*zrWqSs?T^24450P^5FE}S&n)p z;l^QF5b(Et6Qg$ts#-Pc*YB1V+X;> zphY?f#B~@&rOGDdEGXu=eHVvZy?%wB3?a(bfW)8wK!5On9y35_&hTLz(0Q3B12^M} zat^D>2>Jj2nqp3fA73Ip{7vfN_Y5sy3L)1y@L zQ`3xyz)pQk#6tu1*R66megqpd9^jv-N>`K)LZ^_i#J*R7N;SM6NNm7wu&M-JYV)!5;1KbDzoh~9MGk-mt-O93Xsde!bI z!Dr1ij_Bd)!2>u=BA*`5WrsfGmR;8UEFMi}P--Jph#>n25M}r6#anueWg!3$PMvU% z(ztnN;MJFW%^09qVhyGY4Oe@<>U!oe-DOWv#zO8*EdNEjKQ7S-S93y9UofEP`>^z9 z6TerM6h4edWE^(<=d9qqh{WXvZOrWa;OlilNZe{wpw#+GWg;YSYUGNW;YV>btS@ok zvDA8(7+U)CLiU|-k_PLmm*S)_AtxUQwPI*X6_IO`L;$t)StGntNl4A*SGNk7Vrh>u za8g5@KV>t+jQ?#Ca9?9Xz+udTk+lD4KK{yUzO2^t0FTq$kCTKPby>cSk zw0sV?^>ARaP4~9*aX{dAG3rP@Nc}E-5ZU1$-u0bPk)rUQs@O^#UfCLh?>P@T+ws*? zQ1lIQ%U|`4(kc|idr~q$`(1EV*qW7Mw%N7p!21?cSVlT~_S2gehtNSgpG%2>bL!$H zaB4sSSejn%)&RHZv@;bNe2u?6Ng23%ZoTnD$r%)CPF$i(jIGhvAM z`BkFoSJ3J9-E_EfDsCr2Q?Ow~sLmAB&NB8PTSTk-=A0(Tamc|j++bn1t)~>=UDN}U zwv*6YF&<_Ek-jStRb~Tr1K;Cceg@Wjjkw_J z?)DO^`gSdTCk{DJM4@pF0%%qTpGPn&6hPmn9%-W!WT6AT=qMO8{J*D_61mjSoCnxe z*+4a5VYE^R1S8aTY;rBnu_cy+O^tCZ)@DTNr{~p+*oNkz6i9g=GH#waT6_3HU0}H# zYIQ6H6>xH#IO(!vcE!A*!=;*?VaHoh#-jFylw-E>s28q4Ow3-D$nCAmvq7n_70U#>teWVUKN3*(Z-V& zdhf-z-YtRss*SIbP?PUE2uif4`||7^gF*?uJ}qxxec`G)JkH~HFHsN4W8{w4#~b?Y zQM+Hkgb@{eEOToNSG@Ltu-{8K?o$Z-@K9|1Ge7E`2{x7qm2e&#MT6b?h1JtmnsD=u z#*H-Kg8^v0w?oWR=s(6DclzKEZ@)`-XooAhwWVis#{pu;cFi3u=wT{0ob>kmmsh(p zT4kq28x%BH9mOF0x=;EPIC`Lh!dJViflaxDDYtL#{OH0pWey7sV<)Y>l*DAT6wj@W z)<|pG*;pN~op#zFA)yzD1cL=1jDOND<|MUvB zJDaTOE(d8YQAB12PyiD*+&KB$)ZK1;;Y6oH$Gd;kmuTAAG7N4b4gxW=kVa$2n_5=HE= zRdMqrdT*mhUJQ=@Jo^f^I*v~-fR}ln@Phfoy~O=PB+sd3*7&%8fIv|PB6&w|cC z6|yQT*{bq?pLO=3$Ux}yP}CKtrpflAO!lcrls2z=@46j7*jBnURet@SX;4dSIT1~) zXZuW60X%PS%(c^%R8+M1ZG$ut%~m3vIzEcL=W!LjCk`375a)Uv@hm zoHcQO{@n6tB_&R)V()uoF8L#Mc-@I?i6wr}z6r^bC*aU4s^S(hQ-V1h2t;S9+JwW)+vl7e0^vIj6@t_Xus-mKDI z9jr8g2P>7`XedsCNlDcFG3isIa=WygBnSa7O8V{f#7b8JRr~LnI1jPT0m=dFyBnZ* ziY8H@INycNHczcggrly%7%3a6G-nFoqpziW+% zz%94Uzd@d%duK~?_6||bzJ1AweJ_dzGU&nLZE#NDO8=)X(^wo#xklqoET6Br6lClG zYAdI~o8nU}%`{w*y<_2~bucxt0F>{h;YY$N3vUD|Kv^Y(6X3P9LKIyYq+OZh0!C1q z&$PipVceTQHNC5K^3Ucxr5sIVTQr(byvUS=QBwGyV~LXk(6Y2T4U63QK?Zv1WbU~X z5CAU^9gA6|O}T{sMn5X}E0Ei50_qKMK*xm;3}B59CJ^}H0R@QwlbC;oqKck8Xf=N@qTAdfVA)b$)5xX&jXSjA2J+9~I+ z0`WhGq=^@~I(Zs3PO-uCw=^<*zd7o+jrLaxF;op7b-ZKvCY>S7XIPS5r17oeg}l7{ z+=I9xvY4jS@mh?iE&8Q;QG2RLPYgs^_loamBzB@c#ae%`5KF{{7ssN&(GQ8ChxA@! zxTfHpQwAhgR8s_)&dd0rORd|Li=h(pW*5!po=?Lo{I~B)RJJVs&r%@$VOyE<#kyO; zJRp_icxRzl4CVE7V_2($;1j0q^00NZP6AP$41rJ1U|00BXYbwwvFO{|O0V<>?hBbz zp>di^9BG5CVCH15;M7M}pW4ZrMCzKAZpMFQ7H%|q2X07L6XdOnZpKZ28!6;IY`W!# z%>Av`r7$?`JmgzXq9v)PWl8i;fQri@0ALKTs_9L9T7El%5XT9b=}gmuH{{{l;1TaUTt&m#c$?tF5gsx3g`6B=(1^SrI z(?qy~iiAkeAjWO<3muAt{NM9!Up3{4?gC@^{Jac0?BA{7e|e?t7EdK;-oQHlv)6fl z>zCj4oZ=5|lV-<5qG0$SAx@($l6ZpT$6TC*biR=;#SVzTnq6ey9Q~jt$&Op(_20C^ z^G-EA#c^2>eMl-6alD#i)A@pslW{`je%RSX{PkYK4x+D-_3S<_0Cf#hF<$PVe!wb0 z;V=*xR$iL>YyZm&f}23flZWb>ofXi=d*^n6{>mHVge%jnky7i2eDMr1Z)9$JeWvBN zx;ye7QHx6> zx^}enRW(zlT2cOxmWc9v3z!hXKZL$V)qyKp+=Rkupts%v24hYBo%Z2&aFW*no^(A! z;eI2Xl<_sf^b0UYk0}t&pmzbZVY4`pxFoYSdY$yIbB3&eZJnq`2%gsdkvE{g*43a4 zx7Mnrcy8S3vhW4eos_*?l4p03KTd-Kj>;N6MjGDQhv>Dw!k<5*WAP1zZ zAKo{dCCh+#FKPhnshjhT$2YHt{*|63Ao^_aTt=bQp7@?~C}`&Oz`KQ5d~I1KF`BK) zK)`5Z1p2Og6Ys98n7ARtQYJ2Vud;%8PvVZ9$=oqa zWZYZ94-=lb>d6_tTMJO-1>h_WG}DB1d;V@0cl^RdMOhbR*PZ?;)tX0-Rn(A>OF=Bq zaHM`s(5x;JbdXzu(!>vO+Hc41qy&9!TxwN=l4uHv+8Y3O;)DWJsqu(#_A`OZCfRIF zvvOPi{}u|jVkL0gewsz~;Z%->s1r+l3Uo&Hx3QkR^3Q8bjOCnSm>_iOuWuJIufBbg zkq4A|egHX%Xd_!!0Xhj+6FnOxUZu)=Q$_?gLn!231u1 z&o3`Gl{y_y17~32QF9XPq`j)4ICJuxQ`rA97n0nDO4#OjxLUMJ3F^aeO}`Se zL~a%Tb%uNU{L133$f?x!XLezyTPzVaFm%I2qd%WK8zXsM^P-ug%gAM~l@U5n8zKGP zy&c4UAt&(B#akDDj1q#hv!1CVs4rWd!)E&#Ec4yn{T-l;St|)Zz{lHF7n>iQ@VUIL zviIWy*6Im7&jnNk@^ZUzjFjOx9D=s^4MhEeA7aLK+DF_bU4!!eLO5|(g4^#b(4E_r z(VD%6pwNPxf`h`c^QfKDFFpf`y`N9fD%0M0I7uBoX$I-(CnN>KBEJ;ll-J8VM;gY{ z3r0&mGUEXmTLQ;ru$Mej(8p%K6bqyM;~6cZP;d5TqUlm3)t*cC3~u=~04h%ou(diK zFK)fP&8`y9>PjW#U-vWBmn(m{a^OshengM*DA;aA0Pgy3j8A~?X`gTLRv4U z>(K$4do1RAGT2A|03-!_1qLdQeFX5%l-9ZiAPzb6#J~&=N58o8-Fr;IrTpvB?Ht9s zRPF~Aph$yT&UKLUhiW_<9KBr^1on2iG-&MXsZTLO7c0#GrJ&}r`(6q6R=uxKUqun!x@<*J z-9?5toSNtT`ghmW)0d^!R!PA=3XsV$o_Nu!vAedA41&0`3y%_tSAU9Us!eaU4|MI^ z)dx7PtlwW~*$#T)D0w3Lh)i~8b$paIbc~bA5j09i0APw0=%*?@xp*tP?pEN}48Euf zOm-cKka!evLIvHoW0g&!5qr8&eL3B~Y$?EPtA8bNvVR;w7lQ%h0TdkXm(Ljw|J|=~ z7G8pFCR59#7=Sw**e9^xvzSO5Jk4i!@S$S%*B^+Pe1|UGL-a+x0K)+-mIjOVfX-~U z>T{qu_|zf(_5;2QF6P&qmyl3kV%LXQpntYZ5qz%q4Vpa@*igws%_Sq{XQVl`>X?E8;(_pvQeDegsr zw;8Vv-V4=EAGrT$ixp^&2$i}`%6eL9_X0Ve^i(=l`UL)K46ZR{%HZ?5J%57MXi~lE zXoVgc1@H|{ioN0-kXTyo2qitC*_ZTPWd*cu+e|$^Zm+d#8()UXm@l~(GQOLCENw-8 zUS`-t@&y(Cw@*8l;1X5ANB+(_+QMoe<7oq=)FhSQl3K4{Ru!X$w;5miMeoS>D$wzI zL?RvE`(#`=0s@*z0!E^G9rr*bmR;Qcw+Wf!V>jFyp1z#5QETK|%s)XDNVM2^i&^bl z$pF(0J^fv=c#6gPFteC~Djzj?R^Z08Qp8#}pH{Gh`xa!Mr-2Wrp#=w4 zhI)S&BZkgtWU@Bk+4#-eC%0YKKBBtpkiSppA=6u~a>qm!R6wp!97G<2QDBxh>;eE6 zVSBF`3B!>`JBV^?@EtQQkJVcFhx{bUl9b9Vs=81Uw#uS6{!n0Q){ zFbKv{aVn<{U93sD3;a<2RQ|h{&J%S~(%y@+;&PKF)%VhtL^&7L^ba^MG7yj6BL32S zCj)~{3c_I@7(*JrU)-ptZD3L+L3*kj8^;^grMpIdr+Q~65+vwUwfBtfjtvWMeLUla zaJsK$T5c^^GI~riwq?slY)oOs1-48ByqNm8euc1b0O5230;XD@6;W~5F^5R^XY9Iy z-Mb@KJ>H3v&|b(^kBX9a~};db@mgS53tp65n8U{E{c4xX_Atp`Hs4ej830 zU^S+zK{&2zsyT`#f<2!ZPR-c1(0?dci}!lyt)x3v*nd|%cHni<%t&FH<>8iIS68~E zM^2ywb%&JHxTMc=Dtptbxn08tbloJNcZs(#%%jVNBld1)3Lo?fpuZQF^N`kedHIF!rI~7XU z^>=lo*6m32G;O)9usF1-*OJ=hX#hiZPtp}>vsPdK4f5Mh2oJT*a*Y%c3COPb@7d}F zheyRYr+oU_;mIDNHm&Kp4A_L$W-}(WKHZ3R@y!v%HKof(N4^8QV(Ho~^W;=7B|toI zb#s3n%o-9~N?NF{8P!NKO^9Tyyx;p`_gvC7psHZKP#-rUczq)NO}9b4@|P7bP@TLy zgAJT@69wSd6x#5~X1dbamtq!!)z^w}wZKi*pGSi;hdCo0a=lGG!n5KDr-c@0`D{DQ zW{0nB^!a_nU_0u-4nMKU7YES`5Py?u@aD&$W-=s-*>`zel@<-25RL3Mr-jXHH&*s+ zJq7Z!i7)g#o%2FY9*zPY`LZ%`jm1EyYmUtis)KlB94ie(_pT0R^IXiKvW%yX58{_6Yi}J?wV4!P;bj058 z_QHvRLr)+VYqP(&v|Y2`R-kQ7Tzc@g7C`AcxxSWdLJ{lLxSM5l&8q1GESJhpAs=EH zXuUsEnO%=CpsZL|Q{my1a9J4O|$6iX2TF?$XWewYsRt|YK)AnJo^C0!l<+CvIZ$oQx z1C_#1CD>0j>@8pfZV4Sg9JrIl-eeoG@kQN|S9fE1DkFAjWy<QRe>dycd+3YjvCP)ox&D%A9@B&8zwg8^GDliPMFtWy#ii0A0L98R_pi z-qH_{S7R9N0dO=HRQ{jc52k)88#QLzknp)7@rLyuWd_)rxr~J^rpA-=ou3WI-ojSL zM999$>94R~<5m>wH%Z)`G!Rv;c#W^0qZoCbhQNQddcJGz9*a@+yUAZ*25xHcMUz?8 z8m#>8x5sp=yWgDDzvQVs>T;p@_;vE9I)j0-KKGrP+*D9lA{Xnm-=Ddtro{0f6E|0Q z+j+8KJP-g(Z*acMC^m^duaM+|qgj*>Lz!kck3x*>JHyhZu9@Nd>6ANmKpuhJcCoPvy%}P<>XPQ`XK(ZbO!?ykEVFWB!}*6K=X@ zEzm4bZ81=Kscea=eoZGJ$A4ivDZ0<80ZjP3`bOORmW^@cP?51jmrpPV(cH-)Q3pt^ z;)uu(5nyi|6oCPusRXRMQgxFgoxN$=(q3G0Zf(ijJ+pS_aUq?%9Hz{c9LTngO;Q-+ zLcH^kkl!kOPHdo@v9{OF=OUe)?sGrP`ZoXNcNNv>_&` zdn-BzRk4CFzoTEroG(5`<0iZxM+`%85&517CSdon#T#~v2Kh`BFIlb{P4jTIn9sTR zE;*H>7%*PJ<*}gYox{Kz_v+=Bbpk$YWy=rlw!Kv@@xa{@F&4gz79rwcHQW<% z+!*vDoPo?#8$_wXN8!!M_fB3-O<8=Mm$YnpkbmL1b2~*o>S%Kh#Fo_CZzoZaz zS;!Yx$^lag;z3RAj#VO&koAgcy7 zO;G=Ud<~NDet%Bf^*Irht~{9Jqc8%vhSbSCn$clIl+y`v$0#sZr7MU7#+1yv_3Txq z|HWDB{v4%JpOrf}IoY`i9D)gcqzRxmUA-KGq2LrvMe$~0i;OFg(8M_(s+VEJKiHiH z3)#KB7y2MfdIQ`UN@= z;5;KFpQ033ku+8pbaNg!TI=t;)+|*sD29&LDlEgKeFx6nLq8TfltSyly5xFd2Y7M6BgShsv9g_#-7mFjy}qiKQ*%CwO-@!(Ml>%_(T$o*6%8WxnJ+KZ%f{{u<;iMr=(`2`fdLq7 zuCrIcwtGs|H@cgziTU*v=1R5rY&;@!y2QRDzDXXH6>`s9CXvHbZZc7L*A#f$2! zs8mT^o}|R!9L+nS<~2@OL|5-;g<<}7!IqtLb|vYu+Xwm*LQjB#4Na~qrF z!JTdZ#7o_q#o`DMh8cElr>#5w9UG!Pd2i~x zS&W6%-*gD006b#_4n8%k=M|CF2NMO{)8Nvx%9V(B=50`yz?t^Fh{}62l+ej25zt`> zmu4kyI%HAn1|gRpOb^z1ZAu3m{lZ|6L`F5mG_O?GB_QJDSN3rK0Nf_*#@`@qee<*1 ztXa}3i$6i8rOBZ{=-&qsB}J=zLhDxRTb6@LCrs4gyWLx#_~4R>?*UEFptf(%5vKQe z$aS%=mv~$B?#w*S>@V>-=4Ak`;(AHMA3U;35HZqAR=Xwkv3aLY!fh%@fT895OagVG zZwx73jd01r{UG(MDvBK`{z!q9r}{HsIjIOpTnW^AVL1&iWEhldWF)o@U9 zib0sEo&XSm>{ zsgSP!^h3i~4BRetFLU6BD8px>Uq6UNhev?{K!2s!M|Xi;-=Z+qU$i;{gRb-|t6;cb zuh-1iL_Nj0nsy0Fy2Z3;SvzVmH`eT+qlenFOU9Z%ha<#o!zi8z-3<5p(n%=}c?Ost z0boQ!Pby!Ip<1=*jxk9ISMxuFVQfYyAnXZ;{k-jM_}X*Vbgr?;y%do@FW!~7ICz{6 zB<@2~PbIva?o#aNzE-Ejlgp~7*WB(YqW9zZS;yuUIWIx&82|>woi~Ee9=g~s7mP1MjL_&n&)(+ z-JNbk^rhQp>bTMf2WDGdhZf(F`;n6mSrIZXDHNIZK?k!1L}u;^EtaR>>Ti%J-$wUr zLgMtYsRKIS2V^c4>YY{LDck0Kv^__R_KpSl)z8nJWlndsadvlDO@Xp}M<#jom@rMc zolq}3KsA+@?r48Kragkl5@iZ_i1L{D@$NdG^x2{1O@$`*b)4OrBsL7EX?zddH5t^U zG?t9$!?Fv=vHHNhj%Dcd`7crQ@<>4B;ZrRaEhok;?8qESVW&rOnozs12ss^GNzC#! z*Gy6MS)dap{k`LpX6N}uK^xSIZr4c6r;#KXPTM|FSDmbN7BRam^X*CE0l00$rpY(_ zujFcLegMW-X>;yie7ih=c+V|(L4obgElp|;?Lw70YdRVs>Swrj`!YoOGx3diKE{G^ zre0Bjal*G+N^U>4TV0;jE!F~Y7@j5m+*DSGXI+9Oie#M5ubsvn=(Dh1(U%|8;AC5z13o$`vOOBZY0g5V&N{_U0unz(A8mk6 zpQE%>)Vpp_#vqmnI!RdaBCPC*T+xbnjeCU)Rl6g#KD<&S^~&fiaINrklAvU%3Y+|= z?G+Hy3WA#}*!28&N-O-ewwE-!w~97wHm2$=Q@(*&m}%m-f+JU^<-y4FV&0MnTvJLe zou0BIkbgeU0Q{Cy>mXjO0)@2o6OcpAibMTYbpSWhVXR%ey(<1Z>6%CDf7rqB&w!`&BNR*E`X?>aQqD5w%5v!*=IinF zoRnE!H&bkNhp|qVa-NBL^YZ%(S6Jb&+7`I4%ZO)-xG$)1o7545@kRpIvDdo`XhgFY zY4!CNv;uQXn-D}YkGQ?Ot$WL2P{HvlA729%{uUTP({Z600YW~AYgXG>C8A3{@YHiQ zjFORA9?=yL%&KQcE+pS90ce8pzZZ+tT>!;Oj?skt{k1DRMuG)NX(svh-{Hp2#L&-o zoIx)pKU7v5y#GlG0`u3P!JO)|N9z_#=aZ-+Ac*fm@>oLpK0!_=Ed-zXzvT#;2ZF2d z`PpYKi+k#ssP0cJV5Q~(%mU_(=QgOCpWcF}7HeTAnPH$V#tJ^9!#IL~rfijVP_;{9 zbKo4fn#ZL4n}byM3{e++K_G;ilMWz_2Y1^OnBbe!#P{LwEUGjh&ka1veDIt={5>hx zDX5YGSR5LGocLHVWleA-q- zH&tubOy%w~=VqjwXrLga%w!_MmgZUFo`sbVJ6Wry{=~UpKLQBbOf?aRsYI0W$n9Ah1M%sbF?Om0V0mJ?@ zP4t80!+VjYIe@Amf$ z%=<>jciy4YIsn=PeDYEuSIJGeUBo-iT3iA}6SM6_H*Iv3@PpADr|5MNn@xZ+It8f& zkO&ZO!902&trRSN#E3Mm;ADMKsl={=IDAn@uO0%!q2KA(oVmIe^8qN3MrkrDx`p0d zj|2L$d$Nh1sLB|;1Ln1cM!^FOC&ciO=I}rPBjgtlUm2<--pG_W{WxkS7Buxu7I8L> zr4i}Fw~&#es6n-jF>uNGJDC{vti8J6d)6bCedPbBssPvmjGwPL0Uycj15b-IK|oE| zgHP8)|BWLTiAw_F7)SEP)Z!WD_(fI)YUY57263Nl*hCvvl<@lOL@_aw&82IUo(xBM zEOY)Uq+pNPN`HQR}aOs_a+09N4H$&R`ITW9L62QNc&?2Nmfgl!-E~i7me;7X zkS|b3d>_kpWLpVJb?F(jeF!e{o3c&DtS=OkF;@i3J&PFc>FlS6W%_6Zs$|6`mm~`F zRJgN)W(65Wdgm%E=(yJ?GWS``E92YEJ0qLXXW2z#4t<#$B9(EmwqRKMH%X%A!#O-K zTdVyf2r#Irm#v2VfDe``%dX_tHx`|^OIGFC>Tx^$+a<@hb0Urm`=5i^>z@j?nI+Fp zcG4t$Z-BBxh`y<>d}dn*jY<+O=fmhF6CDWf5z&73zKpA+S zt7PPr9hn}NDa!L^{eH!NbLTHX7<9L=b&3YY*4)7<{BiW|mG8ZRyvKf71qbAQQUz*` ziQoEByza*RnL5{e!!uCO8L%%0shyJ5SO%)1r&9T$XM_7|2e-W8*J5u(v~QLDO%@x5Pj1-T}i1G42_hwqY@(G2f)^ zcmL*Nx*M-DMp~=|A#E8YXME=)uqGXZ`Y7ZW@j$EJv#$|PFCP~pH^kLdAgoRoO$(j1 z#ulOw>*YQf?7G-a;qv|Ez?s-ezYLfkFrLQG}n}#B=k2CxaJ9C645(EA}k{ByDxkekTdTLKnbacnJ8{QnqjSxz)vsW zC#09OjpSEOb9||uBMcA<8Qbd-raaeh?DDjAR1>_6#c8VU4iLS??kx64yjk`E??iQ* zP5ARW+DRapbBs*Ln$Q2uMP_oRJ)A(5X1E+6q^ry+Hj!glOk~`s5}pc8r{)w8LM9us z-8g=)L;oQ{=3FrLhBZEmt3~_On_c|$l98-8y~jfkLA|>M%bVc=y0K6Ue9IpS?V|o8 z{tNe-1I8t>b{mzFSfez7@62tOG64wzuE5Iv`lN-s>rN(UzBUK|ys{H8yxE|#OI>x? zhD}IFSnYUnxc%UFZ-xjBGwZ{Y;S*A+Z>WK8zS%K7`KWHDJK*B|js;*svY>as8H`(Z zQh6rGX*GoYy9x!!2Hd4QNWbguWDa}nPLVMw?}#vi(VXGf!c+ie+_W1hdw4c&OZUvg zl{dTwx%ofz2kLOjyDLKdC?=zCU_lPqC;3{rfv5Hx5tQHhrux^W>W8ocH<{i~E-Y%j zP@ z^99V6&Igpg#+f5$hc4X+!Qi0wtHPgk-&S6f;3CD40M?wNQE7oX8fgX9WdW`i1J40- zEWQ^hQ8UImovsTN1r4ClhSXPUny1CDrk&fEi+PF#vS-R z;h3~IUA@;pJy&WOnG<@yZZ1frdk3_D9FF*lHeua6^hZYW2ZwbxTj-DRsqj&yzl%b* zKM5#w+r&j+pHq`!58QlQc?AW#wjfXur>k9e8K~}b#fBgD8;qJQ_W4e`?DcD!S?|px z=I)v}&(4W?_cIJu@I>1`UAC$8b{<>*BV7YM=Oc;Ic^ksunk~Dh=JN~Z4uB0)->hCP za_hAWetarjt>buAr^#s1>U)p%C)1NFM;{`;fE3dbM6)i*jdvqSoNiF4&K9G^+ z7kql;dGn(#K!ypDzHTo+KI$uQj0rXCDFjGWk^CjigM#XW$0UvQo~smq1_dK2y$xW& z`>*pHq-4h%Gg#6`*aJllA^6n~AQ*V!c0WqLVfW}`Ue`mrX@e5Uv8v%O?Wt!7x8Cgc znK2?U?NsJ#Voh`shRcO$6enG&-_ZOdx7!oz!+Q&KgbtU^dZbrh%!4^#&lj8TJRTZd zDgbvVPHhMAU{8WYe0Bzt1if#**Q#&n=?QR!`na(n`iM)n#QaB3A^;`a-8&Xb_CIOY$9|F?Q0#6JZR5;4E3YY3y?IT1 zvGsKx)(e1fc+}D-TetfKd-PDxtF;j3;n-22m@soYvR@LYA-5JX0L5im;1B@hB>S_4 zrJAMDtI=fh z0|tZkBiIi&@>fO>@69`DVG@_i>YxB0^<4Go8mk0GF2Jx3-smGN_=N4>`B4I#8&HRD zP;41I0Y5Alr$Jdv(A1xrOV?qvx8u%TAQp>r5@`0R8wR!W;JaHI#G96xrzseq#Ye?^w(GyD5}e-c3nhKsMIQPUBk9I9 zp7(xzsn%+wK2H$Q1Gb3i3kw^>hh(HmI(_ez>VAEB-CwA=M+{)Vr{ia?`<(G418{ub z9iy30b(uYbYT&`scn2|>14yuKPlRR;?)^ZVGfYe?!ZUAYn_R3pf(t@y$NljesKSPt~AtV15l?f*BEobkYRMe zSz_+@Tt&PxMzM##HK3Nflcnv*yGn;&5tBfV?w;Yb1Z)%AxD0pikn|K0IVZ8|WoL-w_kH@K zdDv%RY{w-&wOl&2S^m=6FEiPH$LPO>JOSVj(UX>BDFz;F3%f=!>DKWk0#l(x1ESGw zS-6E0OSN-jPNB$7`n^pB=uHy41fM`imeDZ@sybLb1{A|E)7NBYKVF&L=|=*)jk|>A zySBM@y2|8U=Rv^P#=b$SEYP;IBZ{myO6u`O;h>u@uXGS^c%0Wk0`1H{fddAG1UH!# z7l^z<-L+2FT$FWiM$3LPY7Q*%?d;G!FpeUXrC4g%OQ^c&Ww=DQ&ID^? zf8o^lQ=K$7M#-JmpFh9PI!g(=VTBfSLZXmL2<(@#?%FUzY;dOPARem^ep~$&cx*U4 zT>RBbf%O^?$i4#(H?v1__8HmtL-%?+$^LqlIg|1lN64T2W(>+0|=>pEnpn&V>}bA>^N@XK`TB1(_SM0@ntrAiZ}o`TKe3=d@VY9R(CGD zw1?Sz)TBE&Xi^_A>^E^Cj@}0xqPsxocX}jycDucH2P`|VsCehgfRe$UjfUT3D;#BL zJ_`2NIkW1Hr3wWV(phI$yTP}X@8Y;4xC4fQ_CO>DL=xY%y5MrWA8GH2LGS-afvJbz z;PApnH2}yQGRO$5mQ3>d^zCy6{$v|}0_YYNbo=Bv+1dposV)X_C&R3P0(bz}j+2f7 z(*+5N0fiqbgiySJhT3aROJnaxE5JbFF(J>2L2L(rb)IlpN5xWbkqa}(_(mX>{6O-L z5OYUdxz0#<2gv1H^W@>{6M%v{UHNHT&lAd*d}6=@$cVuCI-M_(EBXRHT~rfbjF9st zGsTzJU!e-iQ%dknmJ}Z2XfE9qg^mG+?X~L7Je&SJC&wYm>)yksDRH&SQkSwUACwbC zQy}b*H51$cWgl1rGt34tiVIqm{dM<6u`XVb3Dx0utXz%=mAv;9TgRcHkSoUxe#5w3 zt9B3ttXcd#J*9ITtjAks_k^-3gVqHmxsJd*yQ{X}sC`y>a^c9d;r723Q;VxyxB>dK zB7nEBIrjO&scTCDv@{^q4`f3=pubc{rxOSKQUa?F7CGf527>@;u309i@(hC2&yJ%- z9_k+Y@!4LM+2dR5TmhL9m{X8U7KVJ%E)F3V$UWaboI78CSl@FDX4`5iP%s4nS8t}k zMs~^&5C>X;`pf0)#1{-LCjlJ38>6XWH=Y8j?sm%Sa}tH54!_$>3PC6}GfGDaN&v5L z7zDAGzT%8E)1~pZo!PeqW{AH+SyudgxrhKR_PY%JRq&VK3SF@kw|jEUW2}(C>bp#Z z3sZtbZNGP~Je_Uq%N$H<5id>8AcM!BYt#DHA_#$PP?MjbMQG5NZq9O&xO8#PD&P#x zbtZ6B15xtUxD858%&B##qE8H1+m(i~s08Gn55|r_+th!Le6I?Q{U9UIpIV$8&Uk6OD#BO01$=qoP0>BvP4Jr4N?^1?E>Y*74eR^nV(`MpqVNu%?f#D`Nh zD1qcOGKQYZ1U%%+h7;< zJ;ObUa=xncw5nr1le1eAsXRNv^C`V4z?V^#+I*C^rvO);v1#w|fV+t3)ukz_o=mDD zL$bpi^-nmUoo=6~v^vs!4Z6&e;_zRl57=hVC^#u#xUSd!WX4Tlpp(EPZCGQ*PR9QX-3S1w-HNOTl&->|8@{Fh0QVpaSkSkn6V!|tYcOicq1%Z*OjOqEg zgjehX*#|^dq2R8Q2c>W8z^R-=K$EckX2Sn#v7gU=Q9PrK1d916nGO&n?a)~M{F-w{ zjTY$&M;e!(xPbgz;hG=38`Jc6B~bevP_X92Q5JxxyPg}_=!@hrMu1*E5PpE>2_R+j z^add1%-b<@eO!Swadt=@3DA_JFEk1vbyPwIZgq4ie_+>U6r*0_gkc&?C+gNgJv$Vb zeq+4d)abIuask^=9{^tF>QKdGw$5y+>xrVS^f=tatZnp!V?!DYHC*>^!9(r-wup*u zGooTA`9HA}yT_03X5D><74r++<&uKneP;5G+;#x1$e8l*m$HrWjT{-W0r@w8FCZ(M zviUh%3Y?|0Da-v{U6`OoHKr}S=zy+J6{tHP;nx6R0+TffTL;khzdEBGt3uBd&40VC z8YzwnED0sso|+$dFzWN3ukrc+GzLv0GqO=-1KPt2Eo(U=@JW43uiBZTUFaeIxU4+~ zr-;!C4Cj_(4Uhq|gcP#o*su-$PkQIZ|8n~ zGTur4rH_*Q{Och}-vv@XY409epvMK>vPkDN&J7V8LVibTfP-94>S|wE9D6b44sx6M z6BKD-0FOgvQi#V2tRu>j67O_|@JjI1n-8RR!>!Z6iJ;8XkuC!Cpy?zKwbOa?$>+gj zV;4gq|Gf)bc!0huNfD9ol+;=Z>tia>`?k;slSw#Yw9wM2))`9_<^{L~trRd`Gfb@) zRbiZh7XlD)#w_G!akgP!I+2&hg%jo70`mPPe{>)@%D>}VVqIf-7e(8sv;gT7FbW2j z1b*Mc?s+SljBo<<=3~ME`0Gp1q78NJxPKEkEzM0TFHWc3utH(KW8%Z@yR+#w+}o!> z?3g71x!2A3P8#S0XrK{9#;ezMB|iSyywuQ7DY6~w$ntylv>EJi@S#B7aT`?hJ8QQY zyW;4s&sQtU6^X^i&Kz{r15|^4i?s<@^s~CuT{H#*GU3tWts*l9ZC!%q_aj@l$YYT|EJzjX#$UJ{n=M!qZy;Xl(ESYz6j&8opTslzKVHDBK%vzc^Rl&e zrku3xJvWDL30EAgn1y$8U{~`+QW4N)LJjmxv)wSjw9}jF?rJGaJpavyt$NDlFJAV^>r7!odx7j@cvg%nBB;mlORld zmwQ=dAXov~)RQGq3l^i@`f&nv zt|Gee^4>?8a~KDj7jQ5Djnqs;pJB@}Z?65Z?#^?qYe0P`vnhyTc>Z%xW<`Lf>9R;f z5*{I&*G>7Sne-gk61crVVYnl`%yd93#8I6HSwEtgooeRuz6SneIF{)qM`0?uK%{-6g z5)`S~hI)TTkMx?w4_z6Vjx~CmLl}h4U1vK z$%VEy2euN)7_5@#YsMNX&I&+r(n86kxK870dmFYbVDN7(b#?v{?@Lw zP&I+W8c_gPg7Iduv zTa(xrn%5huZwgULLFsG_DxoNwP`96BBcFe<&IUo>1+fJO9n`i{p!O4^2DVB%6bKQ& zmQis?J&^gP%2>&bSO+yVaMYPC-+kk^>LLEU*%uFn_I?MxZyQe2dVB2ZgeN=kuT=5` zE}w@JV{RL6jUzg6sV>pS>WcTi%~JN?t!tw2mk|R9NwTv)Q<1YouXD8Zn8D|OcJfKD^FuN_Lw^U48kxcq>;W|5%PT?^s$XvK>ZQ_8 z)$3!ze^h84aR7s1j`_VBgIJg@S^kv!q zR^TzTz}Vf*Q*@Z<$Hu3@bQrh5h~29$uap2!g`PP9SRw-b7c~67Pm#Rv#b_u27MF$d zwJe-Q-J#>I91X=6iAg%tf*gs@2XgVB;wt79^<*Y+R`)zHT<|@i%Iir;h$ep=sU?^s zm}?m7akg2#AN;Ma>D%`y|9+|YYU!N71DAc%cJG|(O{2}A(Va7hNq_*T?((}on7t_# zC_YeW+4gHlmzkIdN*WT2<@uBo%A8OFt8pS&b6m{E+scYh!j?;h8*0na-mr@7?aqh? zyzJS$7~WezwZw1twaAttdBFE6C%VH}!ho*MPdPXYyz=A_{U_ejNE}9VbSx;iVKao~ zIo+*Upv;W_dug(nyICt;{>>n>MuRZ_LsFM-p70!LV4#eqE{(&lrNLE@;f$HW^J$87 z=V?1IM6m3#l6KmJX}mI8uq>{qb)?yv4FzQ^kR&791=x8wm_-+U%8-#FWi3_=2Qtp9l-Lx_E5kxFBAuH4x{@8}36%3i5{{{6nIjQY(& zXVU!Hhh+5cccWzhugm2I86EesLwjIw=02tP3`Z0KI}#LY%S`E>Xg$Bht)xx$=jUk% z!o0o-`PAwO)?e30eOhE@D+CKoyAZ_?1z_X+*o^p4;1{jO17^~(Isxpd-yLLarvWRR zIB>SPK&3Eox*$=PkDO?y!{VOM=qt)$dc_3btt(kIO7(aggfO1UsN8>L#3f$cMOyfg z6hgv53JqWv@ZjKgxT;ZqqqW&{rWwsqLWwy+1$LO76H@pF{o=bKu*tL07PTsKT>8Yq z`jy2Z;c75YNsng#+#@kSyW`ZjeJ7)I^vYd&--12$h-XqW_(zYs!-5wxrOXzU=X#W z4d4g1DsZkyj2mA%@%Yx(%&R<>rqcyx@9Jbt&C(Hl|=FGWWQ) z=Mh@?ZXs;s55k^U=Oovt%g`NewzT$j1h(*F%W;sKv|=B4&t(0ySdT_6C<&=SHCs<( zz;9-5Im4LCcZQRY31Eu=1Zi7P1z*`iP*=d5@=Xkv}`|9tf;@YV5fiPl&eR$)uZP8Tg%DQ_OCda6W zeX>Ke)x*--bO3D_k1dzj!0uAHrp%^9pi4y3!+^{QChSWkwmPd@cDPuFsMei+Ecasa z7*Y0H;`FLeAVvi0vUZ-x9S?kJL2N*xy9G!UpKUgsXu<9tR<)lL|CdX63^#&##H^y+`t64A;_l9{i4d9HEcxt4c<<94poz1gLF zhWq6=BfB8}W{AmH7{lI?k9s!xJu;?tO z5O_le+|KDkwUTQixpdJc`WoTAHIA(<=TP#Xsj6!R?in9K9$&vWnxDbZBv`X>R{!)g z#xRjf;m zPT6`mVA>bl4INe@Ax1u8Z#{UfE(!TsjLt7QZJi3iqr{Y6Aw{YjPQJulxCIiZ%-dDx zXZ4u{@s~fEnHe=AW86lTKP8fPK#`gF8Z;uEc?7Ua;(&;Cwst0{dX`(&704wlfD}iQ zi^;X>Iq{Ehf+%f;^MP5!+=ldDQIdpM80-)^B_qXYuQ{{kPf5nBQK2H&kC z6VyMzl|>{^^q#HDF)k-4wYP4zP%^iRnoX1$PV+4-7l4^{uI0AmF$_}F6m7UbWjMS1 z5($#0!S@^#iF$^>(N|7M?AXD4vne!^(<hV;qEY<`&Zs4F&;!HN{;MqL^5aNwqF-Y=zn zeL$1MTr1@=(&DHgLRLS}=km9al=^|c!e9keq^-fbKn#Kj(WT^@7GuFBtZ}3{v|T$X zjw8oFN^GDxHSjEEva6sGievlC6U+|lhqh+xmM#P|OOqgN$z~7S&rW8KDc2jH=73;e zM>aN$c^A}W7$|H;mlf6vOFhBI2rwt4=DvG}wZK9QmFkmmp3WFH8IiFT*_^D8{vc=0JbogiFTPe8_xf@=*)0^P6ZK z^XIOsmiO+vc4|YINS>$?-XUH0h%x!QT5%le*Mdt$DHU@%NTTA?)+vbaz{^u!JH_qF ze^&K`IDyzI$adKT^}!ryNQ+KHX*m>>*Hd^wZ5`*)7H)#>EfZjSLR=~E^5fT1N>Rk( zu5T4Bpt3CuviSIV{YY$8m*LDalHL5q*MdeQ1*7$*1$W9oH9NQXRhM=GG&-4{{b_$B z@b9|!^(H6BgL~}%yU{Nf1q>#Fh2t07S zMwXQ7A5u+F06tSi{elxIeOQvMu`cR!kSD~zAtmJz;|{vYBI;9A%uoGtb+03&ztq3z zmqr)e7h5fx4LDLAdg=GN$*n;tCkpOH0xD{`1I0-f+Zz5Ir}0dD;1!KVmDTqhEkb4u z4QQvsjkR%`oX4OoGM+hB>JlMOW@moB7D2?2ZJ7d`Heo3G8c<{}_^9Ot0C&>Xv&KJf z=0`Sr;)TgiE5ubXu5m7__@96{rwDgb-Y$4u1p?)lXtXTR=2Kx}%7RvNFm~dd=ZA>d z&o_~dlU1(|oEjkH(JBiaMWy|c=zvf>*AJ}E>o_pIP7S{B@jR-Zrml+$iK6{xLSnGdJ`$; z9#T*FVG48j9%>m#f%M$drcZ}IMXrvrf=OCjt{U9G7WdP{KkZ5L5CcGpNA_iQw#;A;ib0=!-7^w1&|f($#v4n_G#i z(H0p9Y@T?8|L+t3`DpO_O`A&Qht#|C<)VgM)++ty8a6{l_!YpMyL8)#x?dm7CGMSP zyAxh4b|=PF1Nn>HYN2QjtX*$~8Ke|d{kg}1c@)Px-v6!kHH{K-II<1IX-p!_iCQA) zokOjqU@)f;;DTcoqr1sy7{Z*;dM}<<$FmuO3N&Fu%DP>x+Mkv?R( z=3l}nq2ALt4in^?6GZ{wEL$-HV@g$S!z$MFlCpQ;IkJjEqQ|P^B_C>OXhs*hugwje z{N_i}&Th3sqOk`ej@pTkU5`(xjDVJhWH!xhS~6EN|Epc9(M7JZ&A2sUj6}RyUgwO0 z-y$h`@Nt1Jz2rAwgH~iTMLG=TVf2Zwa-RT0gYxW9OoI2o9qQXYuY2vvAgu`X1{~qOcI7 zDGcNQL5C3A33A&>in_C-O!lUs`#++un`3VK40|oQf%Xp7#!Uu3J?^wjvj(q)`R!@T zM};qx-CtvjPkWHLY_$QiMU=B+-~ohuL+4{Q8vDI~Jzahr#MJ&bO5mpGVw5+umnV-* zSQvN?Jjh$i8y@7u$NhT?{@D=l5>nCqu~Wb)szuZ!<;OvR$I8+;SuR0X6xmvi4-{Zr za~ZmGVFzqluQ5WlY}xHO;4l-UZjajNk#tBQd&IAwmipO$kq9!6vGu@>G=v+s>LY-~ zxg6L7{RpJa^6hF*`vp=CHre~{4XbZ3jGBJO(FjO>FSL8Q6?HB_AHYw%RG`3);dr&^ zwjzu)3@rzXw$>hMnm0ufV&3J2gflh`UUuI?g+5o178%?M*@>)ZElN#LKJ=$D}# z9T0VFiH1`NK+`0}ww}k`s{D8hMw)`Qi0{ISIdgh}9zn7chjt7Yde8>jF7NN~l@(?d zmm+!3GhnFld1l)&;B;@a$gD*g)SV(wdPs*}WM%rQ{D|z*$g7N|*Mj-((83$mXni6V zcMR$}Q%9WB*nR@z{>-x*PyOAE(9hgo{Ri$cQoyVzVlk|rGNCrgIPsW0pZQk~lt1!a z28?GSSU@YbNVeQ~1hNF{)b$g?#yA(|AU$JAGr_$Ly4Td!X65nk{MsYVCE}F4#3J*yCdI3D;V{a$zWbA%SV-vDmn3jzwb}+<| zWt(->e2R)`j2o~+)1$%+#K8=a9FuV^X3)9R#;_K~pLlnX#(aqcm(I}AgVJK~fTBQs zcL%xIjIQ(q?U@iBtz5v?_uo6n($|D5r)$-%8P05XXuyFKT`Bsk*|qf5?PxhlQ^qW2 z(iuzo5bf}Ap7E$erca2SBr{OhLe|f1x~W+%dl;I-c_~ zpE)5K6xQo!g3vIYKDm7IxN7D<6mqq$Awq700th}#X-sYmm*U~mHp;X7`(nxyPH{=# z(gwqVetqE1=?Jb>p#rsvbKW9M)E-W#LusiC)i6e0p%Y5rgXrM8TJr4j?!63x1r(sR zQ8;p{V~^UAPf+X(eKW}DJuDMnYsQjp1rl;D{MxV_e<#MqRP5fhZ~k|AmRi3Q5@@_# ziL>0Ew$RayzM`d*Ot?nQKUKjr7Q7*rD~k^NEzz>ODIbuF>ENN#+oE5f&%;AXMBFT_$^R`KhW>&)4&yGjjte0_88V}MJGZF z2*0d~nZind9n2<;m(cV1PT#DO{)@ZpE;Rox`tJ9BPJyelzkY)0Z;Kw`aWU`}(p)sV z_VD6K>9;DVd(c82;XWxEZ(sY(LO1Ut2}qv|9250kHy_z$)IKB=aaT+=_2UG6vW!nu zmFJPS64u(!chuKD=|x>Wl@GEA_r;gMPF@rWZcG3He-zc)fwJa5k1Sydrt(ht5?3>l zU~gIXzN*CxNx-9kVM3{KIWT9*Se|*W<2sDb#dkOdPCQJcvj7C?stxep4Dp_Z@YbOf>0T%H22lkbfK(gW4K4`n zY9~UGT3#r1);4opz{!8d3eAdVaR+UpDXnf} zglBBT?BXN}K_-+xrN(;}bE*G94tdJ(TM2_di>JUFMaQ+~#{)w~%-@Swh(jQ7DqG8M z@A693OBMrmdO_#VYXA1f;@;ir=M2Q?nH*8@Jd(P(=+@WE&Bvs#9+bp`ycg6ZduiP{ zF*%ufGIO3vqg~hHk!Li5p|Hu6s8Ky91L~V8s6%(P zbH8nLkPTIz+IhN>)-4xilx@-&F4mT+hGzi*)qBAw$kKEG5=M@$|5=oAk}(j+n+_0Q zs0SV&{w_}AYk#lB)wKUWQt}iKO!1U8Mo~36_!AsKXF_}i!ZM?`)kE0wOq?G@T+E-~ z@xZ-eD}vtRw1qW{1(S)_v)-D+<8MC6yXjXqL@*BOa;^O@Rq>eHZ-!{UyGH#CG_{=S zF>D8+fY~HEkB?Bh8h8ZD(G+z5(bFobTm9f2iI)F=uIP)fE(aV~Z9}h$3wo3EY<)S} zCy--lkAKlFjPCulh~&)^S&ldfUOJ;!!YK5~j6yxQS4b-#fQNV)LgdsC5bX9)f;&Mk z`p8icc#PD%;_J^($i-}Qfc3m)q&Ql9wzF0%1N|AP$6L<(a+VdQQC-oEW*SD2RHbV> zBo~`X0iP)lYnf{wV(72D#_kA5W4AN&rUND53JZCMk2;)Szkg88EfkaG1z@uR;2N3TdC}y0T9?aBdQCIh$1bhMW2lNVX zFEe-rEoeZnAExhc0k@AO+7+5vS5g2U5;wXDJ4PS33rXJ0&Mzn>nBXwll85jt#H`?l03$C&ErtdqdyttJA1+_1i6Asf#MaxIJeF>PX zL8^xE^s0SsB{Mh2!$UmgF+NG$HN0uWMHa?j+oE|ufIOpd*{K)gV_ZP$)OC^;#+#ZOhPp$wfZx zO9Dz36u^!ybM)b53GW68$nrpanfhWpW>>=)3`^my>dsFWHok%SDG$!o&(x#%% zT!i(#vBxcwR{hE9(&KU?s@76{AMn6T35CDq31%jjmEtzqfQcB?#VNp&RO%7;pY!`8 z9#N3}t6SOT;`}C(nX?W!xAcxb?9k73Hp?}<2`0h^7r3nQ6!LEYQN+8RZV#|;YG<}y za>CB6zbjI?My(E)>Njwx7^^--0Ac%y$S)e{qb12FoI4Pp5B{E#By1e4t}R|iGh+s=%X%poN9oeLeAYA@Rakr9=uieW2GH zQE%)*K0jFwIyb&fcoj_@$|u}YDJ0Fk z{SW(l?1r{#2wMniA3mBCs_X5X6ta!kQa%)z;8S`sh8{07JtQZr>Pl8-EU?2c9U!~GfwLUajwGhNuW^0Owb1n`(Xg+L2|tGS_z2@ zu)aKW&HLyeB!Kd2^I>!4=Jn$PWYGHYhoG#u)1PIVXD1S1Hs#ZGE(5J6#Bt7YXf6zKTj@5$9?Ek`ki5&pMViFsNuLD~%_jkH$xLv6CIv>X*#{V&=QgHR73``3n-c8TB~B_#vAKyXKAhT*qoJn(Yl zkM8(d%-_AfrS3LUND>goiF;!1Jbn5r-?yKyT7z8B;pU)$%JZ(K{fSReqHY;ozj1}p zM`*H|mgbfDPVaX`Yp<2;tFg99KwsT!5WX$v1{Bu|Ph`k|Z*M2CZ@5QwqTMHXpIX?# zR+BNqiW`g0BY`a8vnc2L$D^j`AhX|09`CR(#~E91@}6E~Z>K68jKU#9^ve)+urBn5 zHnF0`NmJLYRlyIp2X2ccGEy1ki~s)>D(pyePYYEu%M$K<%p=Q_-}W&AvPaNu8@ z?n}p0@HAZgn3CnRpHz>ME~<{0t&XgYzQ#%=pon`GGqZ26wvp#<#TrEz9(03jU21Ay zEy7f=_4RKmbU&9FiR7^L%?1 z*Q|Lb-tUuVX|f1@+F; zM!3&Riq;XG;ba-sR#!V)z4f-rGI{1HGnJkA&C6>))@2gY@v2ErRM}~>*-&<6 z!0)HRQ7N)Q;TcjtZ_W!%_uWGXSk6*l@vjk0F0-e7Nl6^K<$ve!Rzu>1@z>G%Lo19jm3T$uMY-$Ij`?n*^jvZV08Ui1bPoT0e5TN> zBnV;sA;Oo%_pj`Q5o(Ca)vlAQUtFZLIAB6BZEyhNO1IeYg1uAM?Amp!8q2hx{1`iF z2ZQ~^ttGQUQc>SuR+K_O;GoD`Li)H%Fhu)NWo6j&y3b#szyis$v66j{dY|?%v zC#!`}#jQRNd$z+%Fzit>U)4jcLZZYA=B9Xf{(K5d4QnH>@~HM~+1Ap!v_iyeY;#an zWByL%FRcP>rC0a0m?E*&w|lHq%33I+a{(EB27@^szhL;S{T4KVM1GAf^6!5BbE#fd zy5aaZ1LK=OIP4)zIAK*~+!$(ASItVta{Ku&y`h?#f$G{OvG4(Uw{X=uv-A(X{dl;* z&3Aa*{X}|Hn)(eT^XGT_gvlN$DsnHSCvNV48;zyGdA8J}_)>YIwvmjjlcFxmGb>Aj zU7iR0v!5`@<--+uX?M3D1<7`LHY(!QdSI^Z_@-_9PK=CRy_>bSD)aOVtm#z=X!fFd zYM8i=m*19E4AM;Wv%%`JWkmsryDyggA}iD@ek-i|?CjXNc3`B6x^t*^_yybj!*n-AmAiA-X|J-xii;MLc!e~aG^Zaeu655;74 zeK(%{&Zf$KAmuxy^W@g?IF9?T=`W+*F+Og+J6E5u*w3*VI}hddzMs5Vr#cyCW;?ny ziLa-e@f1*Xln_ClwbQs7#7SfupZ8QRuKTKM73XKi5)x;?lK{+md+N|XC`-bDkCa>G zJ8rI~RD8)Ftu+nf*njWsC39AX(Q@`~c-rvH!t(Lnh)uZE?Ue~X24kZ-={HB8e0RQ5 zEz6pxJS-4?m_+ZWdmWV=@3`Wvq{7@XOXm7l?J!_>7Sle zI?mS2D4-Wa(2_Rh&y5|vsx@!^mfk;<{a-wq3i8PvWtGK?V?;s<2>Y|QY}OtQp+%oO zrb1UqC#C(wh5rGe5HD><3MnLkL*Q)GL0}+fRJ`<24-fEl^zP<3^7*QH_j}_`-)+Ej zmv!y5z51C4q0vlA&`R+6Q>OCBZbX=XWgw@C;^0T%fAo#2a(OLyE{Z)*`=uJi&$6r- z^B=F@dXsq3E*NaYuNfFuu&@_CYPbNG9d^Y>2;jnQ z5lQkB2Nr0%X9)ANA9XlI*!|xQEJ*zn5PcpVDLZ&{EcIE#0!jamtgis8GTqvyTM#x9 z(jlQps&q($q!=(rx6<8>q(~^;pqO+@hoq9Cbf2RHkDVy%1K zaqJkFW5pt3XaAafY5SRw1g+;rLswy!u>6q|{d2WG7SaalBX8Ma)2cwT_`Z?jwdBF? z**CwdriGg-Q(hSjm$YA{;XO^7__(nO`JTd?m+-hZTpu-H;>o)&e6z(?7J7PL;+0C$ zlVhteTOW{xl?(LE8wP)u{0HrW1 z?Tyg-Av1KTU_g7$kJDX|J6d875XAQ8`Z*H+Z)wqyYfAJ($DP9E@^V{@lgFLGbh>!K zbX~>!UCS{d;*WgmJASOi$vtMGFcWRKpG&w_O4}6JS zI*Uv?N0auv*Jl=gX{{ENtoN7Et!Y1ks8qA%{n{5L#}3K(GIW*Fd?7^Jk2{onXNa*{ zrb#Y|kyhr`jE}5XeB3uopBkwHL9gkzgegx0i>mJHXo|@-`+Pgkh8Op5%XNc`N9FBu z%8fr*R^JQI6#KT{nS7-&X{nGci~52pmkP7=@n8KeeG-N-V+4!x+%@EdqRv=PE};8q z<889OVF7}dLS01_NK}H0L#38nz!$=kPiJ6 z9F}|UE)#d@QUm1I+2P|)F&|jG4LK~loz&S6qe&tAa+?WSvs5QCu;}-XRpqom5c^+` z#{SB~j@KSy4g}7d+E~x}Yn85MO5=$J;)~xW{h^lN%4++K2SSkj4syT$di)1L_zz6* z=Lnsv9+PyINGYucNa1+h?BAi-+#v4)Y0A z{=j~MOHMzxM>J1A$I4;0pZaFZKlYVH_oR?#74#K(x`*#$yOhPy?%2?jk71>_vDlvO zCh5m}x~Sbok{Kq?v9Z*EAB->b`udyOsJrp~M|-W+o4>hQsVng!7$8N1y@&wcm$FIn z;Vb0%mqQOJ_XP7HZ}j_r9obHy9V|_Oe!m5p-x|pEn(Cb&^=o z$=Sd=b*BEteXLTBD2iWrk7$-sd)#2fwM#>z4}uj4;gUd1zkckSrxW`g^TWr#4rU2P zVt9WU$1V-XAQ!GZJq(Ir-qB#+Ey|sJz5bovdR-lHwyag@DIVEv!*I&qt<%6pEn3w; zCJ<8F-%D${wL$CjL*1GZ_^N!2K0Cc~t}v>DKqMlEE)QDm^1V`AEQTNXdIVO(7+EiO z20rT1Ig1DmD`s}vPPM+*0J5jY`g9=O@jlVd`MSJ6ebs-U<3C?qWE@jaR%BvNs!2&{3M^3OL-vS!|^YFW~_tZyZ9mFjvF`ngCS>!XlEV`~Zp8medWNVnpD zTK6OGWXYns7maz*n^ZR_ZprEEG43Hx4fiVkF)~Yd8R6G z-SNAF&za)e;RG34V?a_n)|MFBqFi{&tqru#kT0TF0G^~~+qo~9TJs22b|%j2R*dSR#3HDF^_eYSK3?c7CEDw} z?L|e20t6X6DPOS?f~zfW#8~I&V?ZZ9e?nxDzF+3P9xrS&E`qetT&p0`R30Hfck1C( z^^qE0I_wJb2G-S2OiaZ;<2)@~O%a(08mbTvmt`yhTI%ZJqSg=pU8v56`+gEWY;m|#~IqtD;P<=R`tlyln-BtA?BD2PB)UMcWr#Do+HR~Owo>Gd(TBS9mxc8N{ zIv?8kF41mX=V}wI2^RBTYj`Q{zu(JjZ8ffRo0>nTOu(Pu#S`~Fb)uiQ@LtT=nECmc zyUB_E09=w9hR47Di^BU~HM1|ytb}h@q$6#%6f>NC_R41RLNXAEb!SEqZ?4xbLM7@Z zhkvt0ZfYEZsT?++kaVBLeFcpBsVFpeYHW?cf5_g7lc}}8Frf~(FeCjp18-u=g1oy!k1Yy-`<#hsk<1B5EeX)HR8zwwbas2Z%MXa08Yt~#HtO*=wthdTGhAA`JxjJ z+Hog;2H3ZMh{L>T!_S~1jmHQJ863zjIH1?k{$>iHBDnN}3qZVhaph$UR*34=-wf(~ zgAYnG+k+`wU4w@(2%+c1V7mq2Mnwi!jO2hGC&{OdTkW{->QZL;xp6<9ua=_(E6-bJ z{@K%N5@-{i=m~eOLfPs|xmXm)S}?$Z-&ZE?vNjqKwC6p1O4$}4de_&YbKkkc=%wh- zp%aV!1@hi>REMIUi9$g9x5-I$5j!wM(&E~(rQn5UR* z#1AN?X25eRcC7sCK>k;Erbq&0zPc19W+qIBOe5xBq~aUI0fL2Jg{9JL8*#gEi{P%B zl+0}dyR2MDom9jKi$Ou}xn()nb5rnjvHhGPt4a}A%oE5dhZP~M^H+nhHS3S0MIvY)C}lFcv>RTe^uWi*4jxwG1RNQAGIP0|SVnn@M%T;zO?xDi%hwHr8M< zV?BcZ83@GV%6E3li0kHUR1x{bGE~0;QiajwXmLj!5gYBScAvxW;5Eprp?P}W!{NPa zqry3G-$#&K;7A?=PhR454$Z&cM3^{1kneKE;1W8`pVA~G!ME~fhMf^Eh719RpQ^FM zvoPVagPE6kZ}~bG_2eo}XOWOdX29gBstEDw!GOf!#8p2%?J>w;=(eO!J)amnPRfctQ0k zO)v2o#i6RjA{TT0v+N81nqR7cN$&~&V3vPAw@biqu-!KPfgJq#5>|=a^W<+DuT@&* zXq-r4kcuzsdLIv`#Cq)N6M?Cdys9-`gRl5@6JGmMk-}?`jXj1Ju>@+IPEPc1*rU2% zP!OzWr^gGaV;>$iRFZnn-i{bIShwQ1PTce1ifsd?-^Psh@my+r*PplLzdrjpG8BMo zdJn2S*sNQ_Ix1(s)hewnM7LWm_mYY5R!wlPpqVdrM00i7& zMc*+t+`DA#h9;b7hb;B&PgC0NJp0LEcARk1Wey#tF+1egP&)V-eA{mt(<%g=w`u)b(LV1 zm{&#@j4sXOjD0DOMEdgH!Rb~IfP$%Z$Qg0(XY&Lih(R#d9TJ4PUP2>0-k9n#Zn54_ zUO9oV+770+#~~Cu&@X?Rs*C!*IOaz!)VCry8#Dtz7i(v2^8DymK7ln{_Ciki!P~!% z1c@SKjaD?qGXTv6{bwBRjuWJu;v7k$g$D;vIEQu0N7FoPB;g<*+8A-4@eV+5H=UuUB;vl^$v4NFNF zeY{evD#WBQB16A~!~OdX>o0o?h^Kjb)XxwbU0qYmLUTtPT%1LAdZfr+&C!uBrK$A7 z)fdZ>dZ$wD@*@R|urN>&)~9)pJzVSfcRyt)S3jRHHR1CwLR*`XucW=hcMJV5-`5fZ z9o{Bmbl_$#e{O15up;%yLGcD_OFrpM_9)d%Pk@g64oD`~3jh?dZoirlzlV2L=CyG( zkDaY0qf`l|Tyn^ibTX{(?;y~|lj@b}oBosLxfUvP@w{8lYLj4W9tGq0m%O&b=oG!q zpGn1G6}7&sQ6%$ggedCD0t}4>_x`$~O=8>a@9+CrN-snKhRXGZ*jfejaBpbFf7;rT z^3B@au}U)hkP2Xg6Lg~IrQ~)51XAg5kwJld_qd!!2s}IYQIK0Ph)H7V0hZA;Nm`lp z*zc8{9l^cM5Mn0KZuor3=qC*pnGRtZ?HhgNycGQ8lV;%tN6AfOgUQ37pHIaDs;(|U zB)^tOoM302E;j37$lq&;1i@z7!p27>%bM!#9@V`u)!VLGdC{2*A;9LdD3o}w31psY zSpz%e>b2D8+xst&XT;-a9jlI&g#S}ZHAkU%@tf!JzHmi8Apy_>| z6$PZU-!#&y^>hQLIhVn$XLxt7LnjE6Y88}J8})w{Z;5t_j92zp#7Y*Hyy!DXlEizm zSfY^G2AP|=tQ@66zcJkRFgP+q#=ZD|Yu%87@6ARmf6WKu#pCRqHzC}~jx*qMT>q84 z38Rb&5ux zplf-{GW3NwpLD8z4slW}KF1HzgPfvOmH@tto2<$9f?I7&c8i(8PZ?c_C&c)qsGe!o z6K6;TGjb{og-f8~zB|{Funnq?sLhc})L4Mm+^|r5e+B1V9kuY!>&VHo?@?!{>tj4U z*8YYfJ3^oVg8fHOx2oWuXGEf3Z5&R7ku0=mNx9TUPduXJCx<8I4I!A;Q==-87S|tr zTJ(HvJ|VnP&@@^Ej$YRc5f502poHd|WO@*JY_R;<*GPzgYGoiM=)VFmbOEz5M z3GS#Jwr%H4?i!rQ%~tfA{uPhpgOEVozdx8cpjKd6`KD7$X!wa3;}gA;~? z?`bw5U99rm=2Ay?!Rq|I1ON%i%g3ClhRdwN&rjEV-aV<@QW;80PY=)A?Bw$O&fk5f z7uTU%6m@$_Hj%fXv+U<*gWf7Mv*%+j-Fv(=NRGx|A0Y@-<(x2t>y_j^j5rQ0f3CWd zzEDue`XSO?My&YBcatKcz9-#wh)tv7xBe8`ZE7q$eCo;yWKP5?DCAa!l;NhCHokV~+cIZCn7_-cO3o^YIXwVn^n;t2WR zm)m72v85%B$KKNR>Gzl1s1!W5J-PteMTRt(9VeLgGFj}i8ALNd8IEXUd!l+QC#oUI z*20wl-HgOA@nE%EF(P=!&+e^KqCcn;G9lkyg|w(tkjhT*XfeC6D&oV69^234J;9 z)3^`UFS-xlNiGiH3oOz@1a5}nYi8?+51fAuPSlJsoNpARye_<0MH02Z8ZW_x`nUls z;_VhvU8cbfdm!B3Q{$T_YWB`3urO3Gia>O3J^dBp-WPQ{Hk4{_Rjmnu91Y3!(87pW zNHPu5AsTfe|JFmbvR(1t-Qu66n#1P@DgYA!sXhjKIIZS0)V`vzmhf&y*P8cc1tFw* za^@Y+;@+(?stKT7x&ENOu$6Y1EWICQrJLXRCn`*~X4_q1^VVl@lRn8TW+4{~W^2o0 zMvK0j@!9qKlu1xy;a^)q!Vobj{M~AVq$(1+24(~*-UBu6MM&y(*n0_%X_qF? zPKDW&REgWb{fI@Q_yK5B{TP`ggv|lG9-9t7ge)6AmK4C*7dYiN^5)+mwSj%p$U~}nW0r%+yp*J0|ZfTLN>e6P?3psB*SS8 zaH(7<$T=c#;K-nA9nR71P4V1>@^iYRU&R4Ye^_L?)W>AoD|7djV%b66 zxxG#KcP1C&84L3ZhR|P!1@hqVbG%k>UWuF+09F)|Vyb&a>Yc+k>qKUi38y(Hp7WP2 z^(y$=4W&Rqx8I_`nmS7sSK+k$ND0iN1ugIA%z;gFNj+E97c)faZLs+dgp;K8t^M_D z?BLP`xL9n_?++#aIvR}`B^czX$|_ybf709s1eFa16|bAGein!YlPCP<_?bl5L3EYY z!zJv_LniTPv!Cu=oSzafspSkv!9k>myHwNJHi?rG;{@7=IcY~B4Yg83M%)M$(O|dVEPy+7a{P^$?pVa@sbrCoW@VnKJmxD1&#+kh-ZD_4o zzOmJ4%wp+-Q{+2NUx*8d^0zD#2A!1N41eYeh7>R#Iwsi&TgIr8D)k+!5E)VfU$R5Q zo4&C}+S2qMXr!*Iz^T`EMOra$F6E|wF>9<`NL%(KI(#xISkk-B&RVo`_xC$ki+;F} z>$Gi$<-X%sX_?zMZqkEfRP#hb?%CrUrkj-cON7Z{A|Lk)Gxq)(}oLNa%xw4NP@1{ zGL!L6?IQKlysUQ4NA{|iE1{|oDiv8L#!tvH)C`K2;#@~f!ZkYb-w!TsR6ivQLQzsO9E^(fTBYDpgbW&FVx}i&A42NG3}hBc9d6B~ z*1T{&H;NR*g0a&}LyHdNYD>gL2KMMrE{^s5_RGOzQ64XWh12Qx|jVc$NBc`R{`E z-xW#@qaQM_722M6I#p!|uM-GGN47}7SjB^pRH7i`lbghC52`nx#^U6l_>H+t&^R_% zcUR9t@%AF!=WHlc0vYGLmMF_J60dYgAKmN*bdkjRC>cd2L6ZL(>cph``m|bXKSYw> zx9IEZ$-z%g4%|+^2kX=Ed&2;c2^7Nw93Y?~5<8%$K#^jMa`XMs3O{cU3$nWghx2ij zh&V?6{F=R_L$)B>FYmX1zEel%A9F;Qe|#7gA#r*HBeN#UkphW^Xr1h0_ zzL|xXP4Q9ZA;#N&MFTnFY5+O zL8kySm7xj88Xn7PLmL0nc^@#uaq5J%(t3P5BvHWNJsN$T4ca?YF~p)-n;Ay>6;IQR zp$0P?uiQhWsp3Bpv#h(mg%h;yY&fPZPVt=e!==4#T5kWk3NM}jvoNwiJf?YY3a>6E zt-gt@%rEw(Tm*$5bY0iHJVK+S5|TTY3a$` zUjb}a$@K`r$C31~aEwc8^fADo(EnWb_i^&Cufa1z3}S;FR|bi(scli9JvZ%TS#O52 zY*c!duUiBG2kgCpw;y%j&$BCLSdV=HA^gV;Bwq~5f;CFHX!)?3CvYaK%wCg8&NG#f zhyLGVjdH48NcmsSngl6fL>$b&dx|Ti4+Kb8xTjNJ%0eTno+*imG|2>)1Ws!pjc*fk zv!ebXC?HV7x*?7om#caM4PdV|X$#~8+kN-Rj0s-3lS=#}<$duPeigJi3>|>*Dk?Q968h#%h`hnNL%cp-NYxLqsT@mKZpu@Sj zh3l!w`c3zK8e>z4gP+P~lQb|s0QAB}50K2*W0 z?L&a37&Wi%%spI8jKXTTMB!+USp$8qgtF#VqsncYK!c{|eu%8618D!0VIcMTM^7iC z<@6a->s=;Lea>)M$tsO;ZGURD|F}N@LZyqM;P20jtlSW(e#@c{15)l=GJ|P<2lfK- zlxb&Ws9&byg$Qfvg}5N}9un@TSo^Zf?XhRML0SHE;5yQKfisLhNbgnOOW!3F!Q*_; z1FesL{EGZxK)d2Ra?^aE?)MpLg0-}mtI`-@QUU%VJ2mgqIL{53tO^394|WuqL9HUX|B@QwjS!6wD{@KC=wT zBE>|bQhFFGCIN{~Enw3x4FtY9TI_Qqg4yae&n(~b?yFtc z3&nts!}r0v=gWz=7h;F{ty0uf$-v>q?*BYOfFwQlAGp8+&tU~2&@Tb(G01`cnsf6O zckR*dk6m{wB!lpH*!iOIGYh^#9QJac08F6PMLu>YXxx5UPf+HT_5tztlls@!^zU(c z)R#h-B5l!d7DiSEzs}pax6-%_3JhX3;>L~poO|KVtKp}EobKB*GQ1#;qj~bK=#K#0 zX+n=5{fi-O_2yQK7V5-5Y#Or4VzW_Fwm?K~&1!qa#-zULdE)iNY2cxGPsZIoTiC|8 z$H7HF4W$U!Q|3QEC5B?8yaWJ;RhjBRZzDppoU<*P9?Sqpke=JUl@4aCEDsKbrMZG1 zoYRqr-tV}0qwa^JpilBB;P6gn)GLw~Z| zSat$oPz!MUQ^KZlyRBvrX{!q*rQ>e4Xtvk!9_Kq54$D`Szc}o~Yc^#;5~$xD(EK_3 zDGQL;g<;}j?DGsa+waDzG%S|Xs1?VHe@V~5d9U6;QLME1xTns?XI~|7Sy~ZbsCjG8 z)7w2+AVIi~lpr9@ganwUPD-8*+%F9(d`2En*C%H&T48rE8>^}$VnGloIG-^1kUlGxq{JG-yMZwjsq7RU$E7aRi7`P1M zQ+os;0!q3}i+Piv5%Gxt5n6Lbb2FE}WYp~WpwY`~-X;$LxcQ&T9!^GHKObevK%*IG zhATpw>Q1)85dj>KXz}V^n67h5$ae+z&4j2LDCWPVi__(U6(5`tL9mLs+%I)9y^E1pwIY>dZ%#~HvzKa{z=zs=5l z{OUd0M!E7-Fbt0URfZIo?qzYMv~>GyC2#jPObnPB~gFM-w(PyD5*cVGz~iaax}N8 z=4lL(MVtw)5JYzu^+;OT^XEol6LJ-Ll6{>?)y>*cuR)%DvKb&vftd*i3i7H5fzPSG zJ?}sF=HuVTRZP6Zv|9-a*S&!Y6P7KRNm$X?Gz{Pj5tF}+=U{((+gcP1Y@akIHqOQ> z{)%JQz=F`SCdeg-TF2dg-+b2!B$NNMDCNb`2uSQ!3R?{!oS@6@DMUob8>7nm1asD% z*t24|fosf>6pwcNEmizsVt|*g6!XpujceYD;pi6KAJrs%xX4S5gK1F$TNMH*>pwTeE=(l`MCF4P~^lCK|?#+jFJllQ!GoK zl-)TKd!s#m(r(_J?fAPw6xtbEiD%|Pxlif7zqa~YIxqU|r%~c$b0@<9nwj0(Rji zwf!C8pN~2dajzNrxWziXb)A4hUJICX*cEVJA>1ujLqF85C`j9gy4lnJV>*w1QG;Ff z1DefcW7zj?^xwJOB#556jYGzzQkjp+PI$-z0`9oQ|2zA7$JZBH=3Dpj?d0Zde6n5$ zYo?Qst!}^^uI))L#@GyBaGjl4zyZfJUuZYW#kXhUK&}12zi+Z_v1W#kti zhySOHp-)6Q{Uol%{YIi>_c0c68s2ejx(*@7M{h_w8}Gb@$(xFVA%wvPeOJ6t*ZsSN z`8Tw5|FZrM$Y&I;Y8Qea#oIvNPaxghd;Lj0`}ssfr_j%`*RJK|?-*K>%3@YHS#I+3J&49k19G zjE*w|defpEmH7DipL%T4n#q1Irg-&vO5>atFuYIkx=MRfB7*wpDQJp7e)R!tvK zOcg9soQ9l!2@t#1o$iI3mhp5hr#N)k`Ij3X|NfZY@@dqV{hhrDcqb-!VHXU_Bd-_> zl?(_D)U2>INYcPb%0IJjsKxrtMSha{$hvtzZ~QJR@o^`)jw3N#z`~<&V4DBR8;k5< zX^%VV?5$Ft|HnUo5KS>YQaA0-t=|`2Pv--kBX5j4v-{_ht-rJ%YC$qB`&7U{%ZMIR z+)TV?+*cct)v?1;H#mZ3_!G=$2**2tgO>$;ukiIm3~hph?`Fha;)j+}P*3Mqc$0P@O!H{uubrr|Od1*X6y&e=8@cvy$ z{`va7%4C|ynjK=y`(#t@72xUblY}8=`efbb9G&JGu*yA?tE;e(t)^@wbtqWeH4ojP z@XdxssA4&Tt9f*pKB`_lGoI%kZAFHcL#4=1_&SwC}>+6pQ)|My-Ko*`*t~KGD z8(VR4UC7#iM`HjfOI>#~`Wu@;S9wZ2Pmw~VFqUu*C@j%WKS@%6xJ%`;vuVzeu9|Sc zxj3h;ja6ks%{RFpW@YkarKr;u*vFMtvSP@oFyHUac1a`|GyTe*s;+ZE^_m&;L^>uu zSq5|!nw9o%j=j~TX8|y6fq{D3vS=i;jnKoR^?M*s8r|RP5?<%vAbZ@svf>&2qn*5K z0&{r}25UmCTEpl=reTa5`*I^X)=sSX@VtqkbY>T*j3ci4_~89?v1-`uk&})a`I9hp zaq4;trK?Jq`^T6=*2|n2?F;A6@@wYPyiRJjeb57NdFFORaJcMX2I2}8#b)sLae?Je z#k?ysXDKNw8z(-E&kjf5c%Aox;l;V?_W2L5w~q?Fj-5&QP4eL}bqy^Yju->jMEab7 z(jQsI!X;xjw^gaMIqZKz6gqnzU=w~}MuD_jsK>uMe8UK6OV7}{MYbc7UB8Mw48pq- z8|(v__ZM-A^%t5=r^Z{FN^^fg)6V*ofv`-_jG*r9ugZGBXcg8*3GAzqvlveLA!6 zn!!4||3i;3jU1FKPU{^9dB=dDwIW$3^JLB1Kg?VEIf`z=kY?u9FReST`00GByZRRX z>>D>?&Dtm3{nZq6JBKNP4z^Gc3!UGdNdLYx>PpxBJD)hTn+%;?`u9xR-rW2|OzEl2 z>P$kZNF80faA>vV__t?`fw*0I_Ptp$lOjDp;Npv2orou2`oiseG`ccWdm>%X-=7}m z;CDEdEecu-6-ltUW)QBayVt9=t+fL$v+D2%wACs?Je`YbYMk(*dRf%+Y0tZx(Dcw+ zsnJDtNtHe_48LI$|EtjP3uMyorOuA~;zATu@h@K7tcpI|1`Nl+mwC~>)>z3V`=M!l zP6%ViD8aqw-x$Pp0QIaWf{U~wVl+}@OWuWJ#@9;oM`9GN#&cx5*#ol@D&E|KD48mv zQ`m!RxA=CR1JX`j)V`Yu!Lh-XTM}&;v}0zY`)*14Mr|z8RozPT^v1+)k}OvzyO2?| zQb^tDgEB#%DhEr+&%&+JXp&IWR|%T|u1Pe+>>s7fXnPEe8YhV<$3c%2(Ip+P-GMy9 zqyP3rWsJItVL5o^s+h>_;jBj?61Q+q;CnORw_SFh^ux|dv{KsQMQu}q8ayR+vW3dV z(Im-Sx2^foXd%|6tAR>U+{S2u)^(5wO}SfCj{q`)t_k(bbId%PRQnG0wFJy{Ti8TP zJrLuYlG@Bt7-&9|@x3`0xXP8)0K@$z)XE6I+*uaN&4B23Xf@yGQP1nqP!+wxi|XIQ z(@H&)$K%J9uAH{KGTa%CtRHy|xLs-luRT}lVeGDMR1L|oX7Qh25x>*kJ``-uRn#_? zcWFLjsfdq3qI`YXkkKR)pRsb_olyI5{Uhg%1a>}KNX(bfdsE-O=2yzwMzv&v$ zEd&X)a6KjZTJ#NQUx`eqr?LrL86w3K-E2l=LQ-6yuIp4#4@||S$T-@)e3UhNP2&2u zeY=IcyDb*12MaQbySII?efT};CN-?VcNhzA zNdJ~2|kNa)>wSqWBiurhykuGp$P}oww1QbC{b&m)aM~*$v3>s z*7+Jj4jwVyRRmeZtmmfzJz4qFxo>cmNkcWYnek;h?8Xzi#JVf^^%U2&igHHy4fc8< znad?50Ye+=t~C~`VbY?*YYZOe4=OwzOaDxD*&cj+#CFT^ojhq^{p-iNl+&6ly&BGE zSEG+CWv1Z}TbP?@bTFKoX)7w)J`bNwmDasuGjDa*Q;J22wn%@f>*Z$Ih_!=PAI#yezAXhkEJ32aX`3{=6cj9$A?wBoBtt4Tewm{+r5WGz^4fQT zyII7tFRW-lYq2trUXx4Y>3a~uQ;zbd7x>e!`H`~d=S}q9dq0gsEz0<(9xP&&P)89W zgrj0&C|xZi+p!`eijmd*NILl3Yj22E8XN2FCq(noPB-qsl*;if#o|an{oOjdT0? z0Q;i*6HT%Tc-D_(W5i+TW?ceOjP;joD3go$}&480c2UFT0ZXnOt$nud#YxJuQ_++ z_gWA=yYFueIL9Rcu-~pyD2EhpiA4zcRr%unu`wFK{aG6kkg#sKTp|<9O82e}|F`kJ z$VS&RjgVtoL6i95Z0s8U%<7EW(3BQS!0k8xnVt5 zH6`Wh**Q<$xfG*Y-eD1#A-P@_SS|U1t7IYW^y0D6!8Jwx@w#(b0l#32q1Gtptt+oD zW_p)T>khst?@8a4Q7Ka@o5iGI$7q)}xU@&Sz4bLCHF!b&$3!l)2SJO+QyR=Ov$hQK zc7vD0M|L%5nzo)D{0V*}ic{;ov++ z)2yQQilv|SrTo1(gLNz~uxDH~D5`HPS7i%4V$GBJSVxWb9tsv-pFpkFOTW3yyl>el zwb@-kXX3SsM49m0rfALgww9d#NaCV;I_Ez@^(DT5&S;bSf}jtWibDO{6D^4`Nz<6O z@%?gL*gZ;)7+R;dH7Ddf%UpGJ#Uedz>MOI|4$GVST6u)e>*U83W=*!=MlpDGb%|^% zW!ZsAXyhvXbqp1e<}qda<0!+~+?(wJ%$G{mm+g`h?+JOb!6jMW4mPqEGlOPdfP)-9XH0I&m7n z10~OX5t@GMY8zqEF&Zhe8U%3-Z)A|oV6#U86P9I+S&IQ8MjDp7K0-Mv=Rbf1R@3;GINVw&HJ|rYb*z{^e!pONIkwz{I%khujRO?(j5wVFc2xX%Twun#Q zHb7IVCO%7od{a{B>I6A9Ff9%7OkrfSI#S+*_IU7B&}Afek)Xx|-tW=Ts-U$>`5aIN z!m$%#U_Esnd`l@W0Jt-PPJEnam+q5Z9W9_PoNdD+yyhO6pM&-iPX-x0$GpZrLCCdV z83`gQQ29#(l}+`Oc$WhWv_EuK5-cTA?BWg|zLn6m6E3^;DXvcX}o=PRVO)dXfn#Kxz-)RMcO3!IzEe@-BEh_ciIq%4+O zR2&sAj#Cea>_2$)zg0eEHy^DiJYJ1XmND-ZNaLXL)J>|eEPC*GmjeZ2e)YQ-_D8o9 z&k>EWg1$4ITy=q=6B#xWwUl%w`(q0(V[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

    D_Iy%{z~5mdCWnL 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

    3oBi&G;&8QjNW{onbIKhMBLddXd^eu{ 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 #Ri7q1HSiiBfC|P#c?%|0{y3rc*8b1X$Uq?)cP) zGGC01$sUN8{5WAsr3b9}-jrLl(}vC$m&L9`q&6i$7_mB*aRD@apiVxEQ7P%WM(wkD z&I5i>ZC(9iu6X*%c)TGLmmC(#5eL9+&ABV}+V0l3fdVst=xjIkW7*qmTq+AEjvK%3 ziqJOOAssO%T7_*aqw-$!vyPZZK>aWq>Uo~pT#63Ibw$uHaTf5@|Ax1(#h`)s2hHao zlqR2vn1richaj#~xWxF?d0*D!-#BcgMr@Fk3q5nOH7*Im)`NeXuJ=(r?Btj^-bwl) z$-WwjevoTWz0>1X)A($kOixmmqjBO_RM@(1QEy8a!|9ppe3+=t<<^`l8w1JiLq!9i zQ(Q}3yBgP4Ubw`Cs^LO?!dugYLS6Ow8;}H8DX3jU%(Nezb*mdF2mhy|Ii^*8VBB*u zBWDvJTkR<7CFNTY=tKu7!Y4~Tj@L9C6Ys&EeuHHxoQq3CA-ac1iK4I2f`j#mPTx

    e?EwbfQ#Ms83S#|zedzOuWV#4U& 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ᦲ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%0A#1dsp}&talP!4h(7u7s3{%=4ZlqT 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%0D%bV;$NfS1&1C7P=5?aJkS*jm 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»x*FSRfBM7zjZgLfC)H_m*MiV1P&{0}Fp1ges@7*!kPRzvt?KYS1Qu7_ z5;<9)4Yq<)*m*rk)s%6_^3%aPdrKe6eEu=y@Mq@n_bI?@!XdO{xWnWp1|`99z_rjl z+MhG}TW|Cl^IKOI`GZbZ%i#dzg$qQ@Sg^s%PR8I_*)1`28Ke-S}L4Gv@H2uR8%g zDlnp*o=(|m9$s_5)F|xL@9~@d-!VvRA^YwJ6OWUWi{eRb*r=G5ywmwSNHM7RQ^NMt$IV;G)JT%wfdue3w_d&XWJuxU1w~+&kU6wo^VI z_*5mT#cK{iE6iyk+G;wp=5a_((*0B`qyIUgWy^zi$g1U>%2{6w>7ZLpX43Hlt@R5O z|E8q%vxlT$B4Hab7N}e%67)ksuYcJ8jb(<_GHRKM4r7`|6X$yh>7$)zqB1k1UY|xf z5nK?j2_zHrUfU^cV*kZPD7roJA5r3DNYNr1x&LR6A|cm0**iz;=J@SIkEcM?=UPZ8 zME5uCyPAjyw2-=Q_{L^m=vce4ntadF{@q{xgRkq6AYI;b%MBsy^Mn8X-+%MFC1Ep{ z-~Hb1e(Ko(DD=R#k4Im(YH_Oi^5MXp7h-_IV>VZ1S$V)|>L3lBUhXW#qWB*NPT7FI z8=Bl4xoC42r0FSVDEPw7emp@|O{OHeU0QljAa?^oE;NKwUBu;RIdrJ1V-7$ejMcXF zzkY2BDaW;Ai3J*T+qd%p)xmrdP2*&j>|c;&Nq7gXPmjV(fFWv;XsM^O&`|h zw62dgC+fI@mw|nLoNB_@$ZzrU{oiZcejV+QRUePM{Z6Pr$%$|U+pSS)PQ2L0<6H=^?#rA zU;dPwU10x-FjYTM<X`;r`++CAtVH=AOM_u^}ZoWJk1S zPL!uWpjoD*TGn=+M{mZw_@U*TJNXd4Qt5Trs$8K|q;3CVfdA27lif(yv5mi4_Gdqa zL%#JoPn3Cn0OTS;3{U zYHUb1W|${HRI+Ai!v_6frl^%nk5z|DhxeYoe2YhU(UvH>Up~^$eJ{siGC2N2kN;

    -1$2@o{S8*%;nI#0d6uEax&oar%$iAXFdv4 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�w?KOK=8c4)m94i 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�o}oyn#}sb< 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

    -RJY2v7Nnj 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 Oej)SHG;|P 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 z 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%0AV3a5;w6LUA?Jqt^@;VdYP{9-38Z)u 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�mrcxMYa;`?PPUzSSGbb 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�_j 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 z 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Ð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 a!>kfC0|lkky!JNFg$1zQypanmh8?$_!cYG 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 z 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 *+)Rz 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 !0F*R2m%P=+oR6fDPp{L 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

    TFi`l2W4lf$6s=OSx6SI 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 ?^tJ#^mgx`576nk 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%0D=cRt{3*Gl4Ma5sCcUNN;yce%H$3~g4d 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

    uW^MSvy13~Y(=8cf|dGXuRf=_&iY2> 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�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

    r^QR?Ue3*)7(#O)oyrN)Bc&y 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:gwn>CW807hYjRT=q} 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

    (OU}#D^Es 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

  • )}3G_td8AV zSkCCLB;GEh+tPCA*Z^o(67RPPnfP1N5HZ$Tkpbgj%|H;!PQ6DrSWLUKHZz%R8(&C~ z@l9HxMyyD_Y;V$(_3re(J$s@6y})T9g#Hx8c(dcsD|^$2COk5+Xj-4|jDtlUN-NvG z*>MHy=To{Y(N|Zpq$M|OtKPR^ z^rp3gUUii0L)y67KD1ws9-0}%@f!YVHy^Qf zB#&T){K4SM6ZuLjPqXo`)9Zas$WDn9;ORPOTpr>1QldV~rpKX4jJ0X(R>e4{YM*dh zuC&XGWk6)U&&USaOwFq=yPJ@`8)L#B{Vu$?ms&cf@4iJ2$6K=_cBGbr|35Rp|2&D38b`5iAqzxgRPJey1P(o@Bi2>?6Yw1;@D}md zM5cJ=tIKEW0-Wm3BEt=_Q&ZBXGBeiYr12r9fp;>SDqJ&ndJ^DrT1du zMUjDWZRA<*m2b@x+h~u`xW2R{BjKO@6c}B5L(Ey@JVn7@lFv9$Ta;{Ta~SR ze9ma`ot^S1Iuy}?YVPFR$xm;UJS!CUkQfbKR?Tak>osR(U9JF#C#q3Oqz1Z*&{Y8w zWM5Gi=V2jxcnlC@omc`8RmBIaWD5bZPI0XGW|rN<&$2^Tj{y)cQEsCR)X2ETbhE~Z zwRuembh?!;umMdU0h;2k8BUA5&61cNO0<@(6PdE?VpdI zwLT471ETfk&3v~QDOMGF_QOYB_l_TEUv5Z?fcGNR1r(qJ*6cjs7cF%b9g+S<&%D;~ zT6BUXR0W)+JxJarj{mz(?&ixp^_Cl{*3e)P?2>4(06I4Y@~H=xJx{0wOEcSG2tQBn znOk>{1a=mFigV6pL>d21pT3*YmNCZDfA?I8G*CD=Qg=`$X(|^)x#T2Lc%FFo~bl$9j#I`#K-Lg~ws$eilnIG#T9q zw|oRuz7H{8U(JSt#+=gfLm|3=9V->P5r| z8+%3b%UF?xPV?V#g#%Kc8@eYIXCC5is46NR5GOr=U=X!n)vhm%eVg;r)~8>42kx%s zYO^jbOhrs>kHE(N{q+vKeFvyrHC;rzN)5)ILm?!N8^Q0ea&#-&TICYJ4pvxNW{BL^ zHuyO?@BF2~r&kn@dO7>>X=@P|TWI;(N2Jv9_e^6Wxec&93mQKhLi^8}bV>%FcC-Kb z<#VR{3$Mb8WxZ|s`g9lE7L6!h+Fq4c9<)rVc0RfNCanU1?HzE4G*47w5Y^|G3k?1v zZ~CjH0Ys$+bFX$#kZnU%0n1-m@F8iC*$+iJ`>;exuB3UZ0J9YlnXC6y57g*f%iMeu zIrjy%G57kmvy37Z$BsHPc@f#w}aA* zsY`>$SEWq%eES;=zgr+QJBs>x>jZ%K3pDIaLb?n?IcXy33n~3;=^rN>qM0_EMYFP? zkUEH4tP7Kd?;sHP(zX+-Ew8aL=6&x=G&q@CO`4H-_g{#y7gs*e*p{Z<5Df!M!mOaT zPZnq6K2$X4$ceIuOY}|2dT^b!33X!jY3tLaIobd@6vdTy<%tK>5hj$+x~2RppFN-s z=N2md-TRLXLswExVTAX_QwMc_@6NBptmNos`j`<6X&S}W40W>-RDMB<6L(6n1ik4k z2C>$|RpS5v<=5@IVsXqA1aEI)TY16Uk55+i?mW8Y9CN2$s1fth6V-0C$7?^AQ!hr_ zDLri1dR41k^?2LUGqv1eMH?OW)urlCnQgg;2vDb~V{?Ri+eeuDcxv^OZU>%pYhCckc{?o{f-zu%)W z^%gXvuK>of#7e8ErEn&RJi9b#o18`)CVfmoZ+%rTZ&IEc{8$5VXFs$m9=#B}+Uo!#> z7?z&YL%_;v8^J1I*4ZLWRiaz;VCYj55U(!X#((|B?3H z@mTNg{}C#8Ljy_bZb)`1B*`cuiR``ircm~+G$_d~8Hwz5+hnznnY}gao$a=M*Q@h6 zpA+fxJ?H%XIFCmi9&x|N^}4R-^&IE~fo+Z#XA``Noo02~UjT_$D{X+6E(R2fwQ6aN zA{etYWGV};;>J@JDgiaAExC7&F~22aPJy*a2y`xkqj^Ci@k(j0@{-Mzo*WiV2d7xO zgM||xnc2>jCG8Am86JIRl4K>QihP{QhYwb7jvpR?w(vu#WFj*+6tOJc?00A zcPL{@@&@DL>%kAU&$#+%u+MdK#LXd&8Ei@(o0(ot?Nfk8L9f^VCcOZ)9RLtc$TQ48 ztv^*uo>Bu;)POQKGEYk8W0-B8v~GGcCmCq5Z`?NMT&2=J1ND=U6hb`nvM;*WJBjdodJS%n;p6Er&EpiV+e2#(={E(9GBi|1q- z2`+ilxJ=u%rt)|03V78Rk|qA_4t_OyHLma(kSOyy6hG3Xw%BS8@H1j*u~?P`BPfV;I5)(^`6o^fA%qHCWJ>8k>fGSQ+g6`k4G3mVU@~m!zp1|l+i3h*yU_%=dO0;a3(3Vkh|Kt8+a2&pRS`8c zW{;)@e8RRM?B>@8t{DU1OnH{QSs!RIYMI7Ey6f@V8_9+TlTF#^dN z+l}(PWH9Cvhs|YmsauX|%~ni9nnPnS5a<)ce2?XXAGMGob~x5@s?;rISV?;}v{0s9 zCv&C%pwQf5eEI2{3S!}mz#Thg5tY^h%d)X!VdE-a^dr_8;A9fvS`l3HG7 zUefUE1&3|h=+4&9D`y9Bw{RNC2-(=TyHDt#;Y!jLwm+-GRs1*2UJweXC$!edR80VTQ{{W5w|IORu|MzeFo3G-e z_Kd4@%?c$EH+%?lSyqC5T|HQmhiN{cGS-n%R8&kb+ofCp6tJw2tj@MF%t>gMWfG>X z%BM3W2PfZCYt+Na3E5A~O3%Py9S3fGBJlJ!Y~ybCP6+pp9K=uSkA-Y<$=nfT#-iJg zymbNl-?%SEuUHPM)kB*YDn);F85j`i;dmj54?ANOfl(75;OwJR1=$=manDj!f7th1 zH^4uIDwh)$y!qf-Ljc~IZb4`FnA50Pp?>AQSsPd~r4nbn?!%FWx8&3I51>^QA|`3S z+YCLDO_DjSUon~exWVN?njFB?=pZxXzY`6IW*j;2c* z2b56D_jbIcI_>{_@>{j$0dSMeZ`?ye!|0N92y?5g&}HS;p_}SzozeVcTtWAiD(~~o zxzDy?0w$vqrdmIYz6>hX9%$G;xF&+@e-<7@BccG3bC#l(xY40+)7QLORz8I-o5zmG z7?$)((pW8I&ew6D7(KsyhENyq?j!P~RZ)u+eWDnA%ZVj%N7!^~+UM9H-)T~?%t{5# z!Z!jcW0<4M2(IXnk`<#|^GJzpzL;P3{GCX` zKiL!h^n`7u!@z=6NuDzHco62f@)S zx=Y3k82i-lFz5iXPp~qNfpeQQG<6wZSHr4Na4tjcc~)V*;lWwqu}LoSFQj}ByON($ z0B{+Fx!(9Qef9!4$6DMIqcW+|(jD~SF^y$q(w)r`JT{s?s}5}GD=_8Offd}15<0t! zS=>3Zw_qoX^o0O*UqxKW8$2^x@r(sSwS&uWphRRzlm$WnK|lQ2wi@F=hB!;Pz!Y9$ z``BgB4dqDJCQ2U_f8^K=Ms{zvaeM;9NhG@96nRVW|ly3g4r%L^TGVvuH~SUvs-#+q4~;9Nr6_2Bd9@Yjl@cT#cLnL#6)E8?~P=^%mi z`Nvm5O%D}fvZ|a*7Dp2w=bS58(lPHF%T(uk;BUY_aFE|w720tR6=A#!aKz-0_a}l~ zmSDY6*2({JxCUl(&;XR6D+XCZCvpeM@~c_HO(3g^Ni8=Wc%{+MKjq*NOA5N=A^828 z0IQ`?D+sB}8_g{z?G|RgQXJ?4d%f0thb)BtBr2te%v1#PyA(J$&&jAtSC=C8z2F%b zx(<)g81#JD=7J}pH${qsGR)_Rq%N>Sd*f~di+p8xdu)Q~`0P)2E>tid$q0MUaY{au zzpsS$-I39g3=Lc^NiQH2I;-hE2r zP4J++6ae(RExpVeP*aBD$LBpdKB!>Mcp3H%K0AOuU{zggq)DkS)%x7T@7^3jd zo%)sxqz4Zv3gz^Z?E$@IE={1!9(Dw}`y=)W&XJH|TtE~b0agQo9B!L0({X-mg>_Mx?Eo4DA zp^|i%Q%UO`x(e%Dr1JJ<`j{v=NMm$cacZ=q&CCJTv&P^y^9&kX2+|o)?BO=5eaB}q zvP=u)9R$e)s@s>DodUzp7M^k9@(*5gD5Nf%1DXE;-5&H^ViQRgW1-`rFH)HP8NdhWE28J?i(!f{Y)vQsu?P$Bv!O^;|LQ1NB zeP7aMC5m94<|TtVAnC=T0ennsNoS*rVoEEDn^@Y4H}G5PNGWuJ`A{_F0PnkZnggNMcOf(AjA-f8gG&uaP4DZj~2k>>k!^klR}_y{!( zO)SEMr%$FAm@QB7UP)kG{tN(O#}AoTpurMzn8PR!EW*X?+O6)P9iqaW=`HC6K1fDm z1KaDY3c@+%t`?Lk1Iy1R(~_CzqhU{Hz4R{2wB;~n0AbOv34aCNC~>fR5Svk&jjqHs ze;}l*blpm3*T#N~T%+H@)no3=tF!I*CTJi3=ep$|vlNz<6slvln?A6;dxf-!uh{|T z5te2OM!*nfYwtyvub={Oc2g024omVu+@=HGqzQ`0ACo?X##kCS%Ma{ws71ku#ekY( z5^h8;HV)SN0-U>ChC#EvMAd^b=r zdF)=;f|=z)L2PWgm2URdeN}YvuK|ElKpQ=bj7P>{cYd%iWy84RiHH)~;V9^bAXy15 zBV3mmVAb;d`Fmf0xPTv?5ZhM^f&T1bB>3tES6*#!4uAQ!U#C5 z_=UElXkY=^H_#J|su|cV%ed0J=o9#AG~pcb@)`UhkX{tD^?#ANy3QpOoD?RbMQK9xi#TXtCab@-=Q_gtQ3nVI3# z!8qa_fYxTqHeTaZ`3hi?oW6AK4fj-niukF#4U4s5i*REk9!RjXTi=kKOw~iZ0Om+~ z5mQ?uSxU-6S=CE-kCthln)%dl4&J8BC0MCU!(M;rsX^!`fR~2I=1w>)7)+YhaF~39<~2xvMqV^0iF9_kzYLRL(Z>92hW< z^62-yA$~iYL*?PC#%{~r{Jo`1$L02Cq3?=@YoNLR0M-Nanmp45D^rOk$r8y_QtYeA zH0YbWZ;`TGDIG&Ts<2|ti9ouB6Xa?7+}=6OAYJ1!f<4#*g83j9$S^1ga7 z`zdw_3^f_u^#y0G>2H|@p;U%?L|R<*jbkS=oQ@`XnK-R{sUU1pJ}5Ah7lfuwhMJ+b z21`u|)uE)iN-mZ|JB$U58)vJ|vznF@D6$}%Z<;7$`OeBh*NW;vxglPoCC(wluwGE& zFTF!Z$h$3Z+a)16Vfxf4Y{o4OqyOBSqzJb%Cay#Kx6 z%Gs|e?}X>ACrsM^aoKup5`k>=8fZT)t@K9Mg{Y70GM?fE??<7%%b>__!E!- z`&>i%ruZTvO|ppgn2z5uNy-s{?pe(Kp04>x*mTW;Bih1im@yF%mP35=NF}ROGLQhb zaB)b@&O;cc?riWjvTNZ2IFcdpDv#X^SF|$;TGl+CA0<(u4DGm%j z{zL+Bdu!c=Z|Sv7etgqyO0jbx-8w&o)gl-qJ~_oFcM(QdC5NitRXy&|p?avd(Lk|T z)tUhsH*~&1Yd&i6fYiAKyPxW2fKS;+#A;L3RJ=U1W9B^7;!M4aWR5E=?b3%zy#jwT zH2APvHpopZ**VNFyM%U+l^^)4{r>Au%Ub|Gy#!r>|8z*2RQy!vuE8;?`{&)o{GUj< zE_$sGLe3I*!i~9U> zmbc@Jx6+tyt!v;ZDB;!W4D7U-s;{%5;r`>RHCk*<(dM$M+{t}frf`y6q2_c zttoVIK|5!pqQVr#LLS2_-m3KTSlTNu000q_Z%fwT?+fj|yHY5a@^N}l^0-vF%E6dw zDF=PB!E7Iyt0~ob)~!CRW+N7rz*nAz#mc;TkjV?X&Rdrdk;*J}cnulh4-%I^061_m zi-$RHKd|aUqL-*vw208A9Mgzs4WPD(g{IU<_PSY|BAgf1iUETXPp>QP>xhTy3~ zHXFoFzk)|U4k8;OR6usZ@M#*SIuB@#5ztMQU*EKPwYiRi7IO=4VgQ?b=;Ft4GVc}MEP55%os8-Ka;t8O2Bb+eBEsLf8pIvG)f zp#LV9W>v~-1~IELqTeE<4z@k#WV9-tahAKELpdb~1{rUL$B+-{5Vj;$UtvaCNx+X8 zHSfXDeGIKjk@G#EREfZk8}i~Et)UN8-Ia3o`0>-ENaF%cj8x&$Oz@9{IqiN>uo!X$ z$VUYiLAVRjW+2;PFef{|`Pn+E zXt4{@0YU@-(aQu9qhp_n6%oXsLs){)vmd)%a28`dMR%ZNm0Ry2rWCtm zS$yPai%>`nxzELMF<3ZU{(k7*XRCwJ{_b{djv0k7P~T4nv=qE=6ksbmZKseqc|kLD z%*-7Y>)F)N5ae)#f2Q;P3&}T z(~bi-Uhtr17%75)e~|t8IWS|?ff-{J9{=(+1x3nr^NqNhGJqDe=l3r4o*E)oyx#~Y z*JmH)*d}!c37C{_5v!!_#TAj8cI3)c^RK){?(~G=?XW3>_HCOfz2E9gn4?&rsuQ1Z zW;rHRzT+s@zvB-JsTB#SfL(kvkUxw7KS0{d7;c^m>0=P3QWIj=84D&v{U~h{pzFJa zcGk4>02BaNCy!XUEUL@}Ke8?X;YLCewt@y0@mEFAs-koW?qp#0!N?g4a9#H(Ow6G>nl;G$QnYSo1)`4fM6sEJQ+z#K4u>Vsh1+#`tm_s(qf7`OJzz0idqPa$nJtt z-vAfVSK)-p5m$lI&5MAf5diV22LglAO?i-}oQ9suE==Xj7l^S#Su=0ag?b-;qWJqg z`|JX;XfluhXFL&{sW z{O`PNW1ObF8 z-;%!CZ6IaIHigeHN=P%YguW0oU=Mj2U{CK`N%e6z6%|#HG9x)yRWfTP8!BxGCDlXW zzc74B0YwQ0?N?Cnl>yn5hM#`plQ4BuCezG1PbHipxIN@^9}MJ2T5I#hUZrfXU5_re zIj9JjLDN9q$`eQg)fP&;K}lTxW@+DHh8TP z{tL-#j;WW;^55!lumP`vJEo^D;I&AM-MfumT>D#>d+l8k7$iaR9zZ%J0gP<`)qFkB z9qTEBgl7%_ums5&@!&&%IBvNxOyNtPT%vnLS^$v~7Xbv}8_R~!)3KzNP~=8l+pug7 zboh?nmykV_-uQ2ej?5EPl+|Bm0k66*~gTw#yFJjn`4O`Rr=WFbTv6 z;m^ND$!Ngsi38|O4!Ihjw6OZogz5-lI5O(Nj13u$Az3)0_hp%Pz#D8K2dUAXahA5-Vqk|2IuVs)GM_Ei{a~g0;d1DCO_pB!<&78U z-IG#)$fpfKCw0*23Y6{A>9X9>+#%hx=?A(WTZyR(xFD8E0;1*sqq1_E1DSdZtfb?h z2*OfGp^@xs|IbAl+l{s-^Nfe2n0su8|D7H}cQX#1NbbT&0<|(%!aoHzW-$;NKoc=i zY~Br}cX~LjI+uD3bO|p|6#|TEvu(y9HD}ZmxRQWcQ>sEL6{?SMf6WVci5*0<_~SW8 z;T9pG3DVpna@nns)(kdXX1Ju#xaXp_5RRo%Hy4)SzOSC_wzoIyax!~S<045ACe)H< z0RZ-tJ9CJinS z^di3?^XxBVN&Lo?(x4NQ1l zc7Hoq4#6>0)cX+bZ3CUx+XE`{Msom!>S|e0k)^}7o4d^pgTa@%WdfmU@J%KQHU?(fIMp2d z0t+B>@>*Zdq{S40UK2H<+$uGZ9n4&CkXN&vDOW^-6`}rNi%9oREzzX4N-5a&k*m$R zsz@g>n)9;f=W_9*)Oy>HChV93sAU>BfO)ro@c1z_|2~ua>n7?LKk-BrZdst=%Vk@B zN$~U&^I8Oz3$kxO#4e=uJ&}kYljTIJ2pdqm4Kj7Pbmx6`!*G=CyuSD6ALZSG3gJA> zvHzd9;|vj|l?DJyj4w*ZN`mDJGQ`pH~+9_|ed*+f)ivhXiPO@~WY^MZ$VQF01~HjJHI6Ev_gj0u{ij8LaSZzDn2?>V>o_&fu~Y0kBoV^o^!+`f zMve6L5MBm<*0%B{jbR-n{?CvN6AMh8q_FsDn~W|kEv;pRq5vZ%3L2UL!jzJ0Kqb|) z8K~6R%Lz!h06n1%2!!IH4kRUOJmd2ExTL z8?IXt7~DkKcK_)GaCZP^9eDs|Y`#6>9)xzINv_}%$#vMHYdvPwe+vmn5umy>1OnCQ znUQQHPVWFH9j%lqB<2r5V3t2xA;7y~1b8>ntU)huL3mE&NQx%?s|tEeqKj1L(r-=b zbGO}^A--=q4@-m&B9#r-K&0JKL_(F+Q^{p12-tnQDtLvEg_o)ZUJ|8yv^3H>OUXMTg@|k~J76D6m z#>tb|qyEZ7`tLX5_Ke$@)%(z2JETk%nW1%CHai7ut3k?IUyu(0D(RpOL@fz5K0^_N zYjrTuZJ4p z2kwMT1}y{|ZnIWd1xV)u3|gE2vfl1hMG!mn<7MPI{QvVZk`rMV;C?+kKi|E3cGoR{ zNuV#I?JDmLsn0Z1p$_+bvc3L|D+`Nh+}OxGbZ%vD+>j0$poY8?iO>t{MZOiw%B(^i za=b*)2|@kFPVR}K;@g{OM6n%Jq6Aq}A`!%F#;JhxA+VB4v)gF}v6NlO)Q7;iv;EXt z;!Nn1z7;rxQGL+s0^7=gUO4#d^S(cQPkJ@<+yEJ8Do$e9eiGSzbvR{7Vm{)l0f!Yf zY2gHyPwLzn7BKtq=3Yo|A*)ZZv6c93CSdN#t#k_)q_ct*t*`O``SU_F#)~3f_0R=I|DQCo? zOuk(u<|6<{hCpU0FG{&X-5~Tv-R^Ek$^pHU6qsHJMdZ^Y?gZnMdPoVJLhBn4==!;L zo;XCI@EK@ht?AVIBj0#7zOr)+%z)w` zkkkAa1v{0N=<*ro#q90-&!Ct?anzMt2>33UcV<~=B#cpo>fJVI?t?c$n@$`cNVUDe z)Nk|!O}SL0g57mnOuI&MHGfAQUxfJcat+4Jb!Md6t3`ns-9vdS62Zq<6|oxQKJbxb z@5@JD^FjuC*G9=ULNJ7sbyT8308@dlVM%5WCpAzKeM+q?4{8mRs%*y=KTrJ0 zNAzNOj6gc=s%Gl`CFrqkN-e5h3=asCGF=VS{I>-Ce4p2O6m&U>Fl7*e{a~zTij*zE z7@kQsiW2p`$^WtcQa8^mVs)@ugbp!)w3|c+NeyAFJ?1cA4-JAc04l-U=It?n5~6tA zg22AuSa|E%7UKcB#s{W8m1fWsJi}?ycw-|;bNLwHiYkNTx??P?nuo+;a=3?)!c#;A zrESAga9c8(ZwUONRD(zcFE?fmcd`S3=0NstFrUm|<9@<6kmA?o89Ce)M>4F&m* zP9!o)55n?PMC$=G$bjaezr`(!h2Axct&^tCR-Jb`V}eqDlR< zS-NC!qKi(-tKAHd;QpwQJ57UB%pImnE5muybkN6VIj=0)QHSbqRzfgI~rLw`(N%^>E{{4|k`OJJj^Kvu1E2RSw zz)890nNsY*z&S~Rq1hmI@`?N=UO?(P?1vKBWSJo_J~1xp0EudmFCWI#`|g}R#@2&& zw40Pq3F}9Ck)EqXa~oBHUK%N>eOQju%PY-kOuf;-_k{*$P%mw^ku(Z>;}y#iJxw z)YKt)%0R^3P$G;?gI_E5vVY8mM3gLGIZtSF5A~Y9kY2>ft_o9_+NZ93J!AyqM3Z<> zv!Vj_ULhHs3=%k2f&%6oc zvof$q**rE03;s_VMc-`=^`I4@Je9ztf79QI-@4mcqs`?zUz6=S@_c+TV*=e4QvF*S z4Ug{0)+;xoco=kB=iMURsb=P0JIuTXEqU)!rey*tCaD4PXTUb5PAj^{e8=qaF$#EX@8KqUX#7(`YmL6)ncH6%qBzROJ zg6Nm0QQ9+$Y1NTQYH1=t0U-s5 ztt6BI5qG=%(sB&1$)-XN8s@mmkLmcHzs|BBf5P3MhUTzCl4#pHC)#fg!PWl+3=O$A z1|qq>Y5wefdq8Urc#*$&eU^93$ z!-AcX(I?f5ac?5ux1onkV4wm5dsT4W+%7_yR6&?VhBbL}TXsj%S}ZPbuWfgPE&*6S zPaGI^YZ9b-LeXk8FX&rN2^}$7ZTa`V9@Vwab!4Fcgj{igP{V1yCvYE+wJw4CJ{8v6 z3uVb(xOaIYnQr?D)^FucE)a%K0U8;DlYlV4OR{nQNSh#Phr7Kg3SukFJ0hi{Aj=Zi zqcP|8A!mdOn?21t)arkNbxaqz*#TBOHO)L_!?LyZ#&8heZC&mLvya%8YsFnwdTG}V zNl%60B(JbO#QUmpLlHYMW~EGc>ny(n@E=x-rijWYcU(| z?|_kfoa^&G@~;b~1S#}bQ7{M^!&6`n(#N`VbEXT}JtV_;i&ojeTKYZ8yR*5vt5^Zr z^JintFlQaMlz*J;2+Fsa&2>0jX`XoZ^Yr_8gyNn$>^;fLgly zaHdZR80+?L+q8;o@sAz^qhlvPHP>NPLWj8FAbxzVKP|nJc!2SQ*)u@E(r>21ipxIp z=uMlk4rWf1W0Wk%E5q1(%Bf%H9$&|4^T++ze79(3q*lY_JzI_fJ7kj##71kgv&$Sa z-Z0QCKEDp*Lw7sw{^l}5K3r><;6r$+8~7^-#VsHZ={-|5b=Ct|=mUUl7o2x5xauzW zoJBNVfM}q*Y?8U`$%O*v*R}5+^d;+TSzRv#2wR$Yl_5ELvR4f7a1CA#?MhfUy-O1b zUekT7fA7|Lq&M%xflFW;sd1uuzA^|nweF{T=wm7NUtOmP6L-)=SJjRq`4RXEcW(!Qj@e8S@GzSR{3mkxLe zb5AEMB-_3IEuDd)bb=UEV=|CXEDLNhlpq2|Kcy4LHt4G39-sFa%~w#)x*DggBi36H zLyIKeHD82FU)`w+P5nmj-hu!)`DdwvusR z*`gG3`&;!p;)3Bbd@HY~9=qs1I>E~8|A zKe<;DQNs@&rs&?@YBzE@Nd6V?{C-BLjv$~1fx#ZrwZnsj*N2-A@y$o3TfGE2 z`e}IX@bp^B#o0%Z;|igw0LXI1$CqDo^i}x-FlS*kMT}`B%;^}-j`j;XuB8uQ-;y7# z?KtxG!0v7TzEwNDCk7%%I$c(reuzwAQmFfJ{)~`xI;)&@RD@Mfdi<$9#)GxO_VaqN z78*t~!%~Jj&3;$#7k6h5CB4f^6THhRwVu6x>1JYs>dT%~VoM9+oFar=&z9kjnjLxda~1CxkWtAmTU&Tmqhu{ zUx?8%s`rZy^#R2>Br=1RAO@#c8)F=|_Fny2#iUs*>m+KIW*J^PJmrw~J+>v;VB6Yf z1}O5Kz-hRA%HXn0^yRu}@gJbMXvkTy3wK4od~vzQ7-grDCcV_t%paVF6xmCA2(H@;2GERrGaq4Fsu5sRn}GR5!g}d#wNM zR#t$D;*1j^9l2{EgTZaPq<|yNVp+dmTb|t4SD4p;1_8=A}4JF_B@Gq|j4W4ckT z8!1XEPSgLfKaxvSw$Jh=AoW>K>65qAw!PxK;r3;>Oe0#U$28Zq@(t%%`F!=3xq#^ zuQ}OuSd@R`MT7WQ{oRnCk$@^QFr$Yun$*ip@0EPl6~sk{1z5Q58W_z>`&?YY(+!CF z`T3*9-T`0UeoN?H4dVWFVJO^)LwLn=tV6m|nB*eQ+Ei&&?OJ`Hp!pTcO7cfP$g=e{ zf)3gV`cAL-91cv9nj~5uQVw&XqTH+=DXN@)|Lh{=USM;_0UQhdigS75QkiK*oWV0A zo`i0Vwf``OFPa7hOs!ddbJzYnKYn{IPpMBCY zdw_3wx$>7e=Eo%gQ~{{u@`*<=7oZ_-O}$`0A!hXEjz26h4uHjcQ(O5IN*EeO0fxx~cNPEr0SSyEBiL|)fL?yL88Tap8 zFx|^IAdwq^H>5IbU|?eMXMFtR_Q!VO%HT_MU2ddL7tZ)P+<=%+iQvm1^tW>n=ed3? zizM@Rhhyzk&DPT}a5Yc2Y-j{hw*yV#uh$SKK>nPMwxQ5?P`0dh8*L<1SKE<@WfkFt z8R;j7YhhE1;zydQC(zy=2)Ni_K_#L+H$gC~+W#~p4eg>+y1S`uJ`2=OgPI=TuClH$ zzBNC`js0g@_V`fw70&L`E1TY?{`NunzrG;Qzj+a&W?|_R?08$&wiXDH5MPv9W3-=D z5W5A(C=&@#P?WfD^9f8+)fa~&MpK61L>bu^7O3vTi8*Xpy8aFE)*@-m^e5lrz5QSS zUe9;1iQx+K+vn%@d8~P|1;}=vxhaLVz5*tM8%8V6e<1pYE&vKqM$oub2k*KK@@Pb{ z9NgynwUiHBx$g{iDyk4BDU*B8h(_{-ko3$j3@`4-sVdiQBe9hKzb8D2I#wY`^%*#C zfcE|e*8=1~xa2##c5ZenYDug0mAuT|#lmU6{|-5a;1jOWauo|Pi`R!(HA1&+zkgx< z<_C9$+51%VjW)Aux8>TfZ|yq#jdu8N{AE)LBCq@Ry~(!uC};Rw_VdoQ^|u|qKX^Oy zua;167<^-mL6w{i{TnF1@I6k5a^GIxXF<$J7QfDo(F%42{ ze5*GQ4;%(GH#bFw@z)09uY&o%{-ksv{Eo$q&9wbmz(2A7jN63&Ab8!6M*Z{4$B}So zDX5o?-`iEc5h!?(@yP+B1uAE4m}2Cv{ql?a=UMV*BBCuNRL~5x^MF^0jNBgHUm6bq zD(W*1z*`p`?9zx+l8IAQvj6@*=0xJoBav_%17hyH6bU}rANKW&w-6xvavH4bW1&6V zVp00cn<5B~RzPo}fOmE0qC>(?VGmJoN8qS@@r%BN3r6KtbG4~e1d-&K-k`$jdFix-=RuP#X-}9GQ*M6@#n!~`%nC+rmv{<>Kp|#}nKoul3xvg0iV=G>!PtA#e+?<10g)J@@ z$o*q2wFZiCQbyZG*1i*1OX9M*Y8G6)-*3`y{%nc=*F`qjq6$tn_P~Xz2bvn#=NE5d z^3EVR)B5o6c%zCBxA_d68|MS;x7Q?F12@ znO?}R$<{*)PJp2NY8*jAek+YSlJfPDn=)XS}@lN&sAr36m6 z>R$8NbtNX8nE5Veva5$@lD7VeM+9Dk#70&qOEp3S(o?bIcUfM%Y{(3jVdPXS z{aHY@4oR^XLklbqSIU{>nNC9VFWKD!AGRc@(kKX+3@aM-UMXuBmw$U#daTpRJv~ld zqC*kMXu!tcQ)1TOFxc%UQ73&A#R0R;2w*;YfS*rIWR`V$x+$0KvLaqxDFhypcW=(7 zdZ}Zuia`CpO2#k8289kWiaQ6Fj08ApQO4y-F8jN|4Wyao{!H=@#c$R|OUj3tb@%pJ z_YJyXBI~aD9=rNbwQ%Y;YdPhvE2#~m`>T-!qFhu10oDpTB~xs%BO;(89CJnO={V{NJ6!ovtOHfPU53-{9+xOLb5q)7J^?s0efO)!nnjuxY#XO zet*SG<(X7%?c%RGUr0+6lJ7jLJfx@_A5-q93VDIBXlO5Nbsl$u{R?F~a?P8q^!k;1 zQif?h8^d$`tB2tunj^5nP%4gSO#DV}m|=8emiFAdv(MSL9==WS3f0s#p(l0jK7Mr6 z=6sm&y&urA3*=0kx7AOLF*E}87`21%dBSmJk#}d-yjO2XGtGQ22L`;741C75ZRO5V zH%UZalb!XEp6ma*3f{j(B+irq5*SEr?xYV5`sP8MGbntTB;sPYg+|WBxZ2x0M9N&X zb@#FvB$93S+s7Rs^3XdepG$cpA`@sHoO)QuPj&Zuj-+6?5A2oO;aSRK2_`QBT& zt9jRxbC7zTZZQG+?S-+#Am0!fh~+6HogHZ)Kd;r)&2M z!basea87$XUtg+AG0T66q5ibyeo&NJ6Yr`2XsyAxdu@C3H!96t3Atmv2pF) zjkxOSrhIMI|HQxU2=JM%^ve5(IIh7#r2*W&8f3c#sTuksVyE(AsBcbv>QdA88>7Wk;r`E))#8AECBHt*Hz9i3%X_VH;~yWNqT|Oa0c6+oT0NW0CU}Auh?Rlo z>Td>5w}T-ul?gj2quA|rli|IX9826QZJ8#d{I2VQZi{wFfrY~XQ*p7hJ2ha&KJh+d zxPgngS)a5O9STs72|{M~w$qW@7`Qhjq{xF4#*&FUIi;=&w3tgsA#t}#Z>|0uXGn3z z_R6zU3`zGJgHG1^(EG#-CN(AkxgnCvEK>V@tz9G-B;$}(zth~8dw93L^yZx@b3kRh z)PDWz0l(uW?ie7m?bN%ieP-=xaZvzn!%l%n%-Z|2_T5?AZ2b3)Im1IF{*_1T4GE`d zvlNI8YJuJZ_M%n3LwC}4-uHH;7pLJb2p=0M!sYKA>s35x9%Wa((WqqLuI?FS z7tmKD+FbUL7=?jB_q-I)d~PGo6}W(}zzAUejd`&G^MwAEs7>4U?O~d+{m2+Sr>%~J ztMH#}hOyj=@xlyC-$&t(@$a7VtdRjzDB<`VB7c;koG1^N(?@5MfhUd7mT3RUz@bquFm06YUj21anl?xdZ~}y zMayo0_9cad5KthBJv?XV(t1e*=L)y2JwV$hgRYk1i`T2|B zQ}(voQgHvt(qJEfj+$k0}81Vz?2j9o*_wF|`~ zuP3V}NwbcpQ=Zb`+_)MDj8HCGI@-{jY9*YmU*+dnEDCl{l%McI%1NWw?`8qV1=L$? z6QoZ;2z-QDM8cDm$g{2G*_*yl2ev^nbCW6cn}V&`CkO9-a9#5VKX+Z~n*f{^HYTqm z4)M_7w#MCd=D6@x^D3v)T2cO~SO$b%wk4bd*gBb6b+ z7XsCvX+Y(D@NKm@Li3xbU*@R+r)A9%QL^~3PTtA+F3nc^l0G1N^c3=JM? zL+Bns82uEPDM6tixc!isg3A4Us-z!{jUAh)xaUyBW&TML47C-`DF_COXR-3IOI)4 zeChG!d^`rHw)#A{u6xoO=yA0hU6N8pPYl!^xQ zc24k1)(|xTt(o(E5UMmmnr1TOBFMuD7YdP(1D-|@Omphlt0F~;QYj+wedg|&U#Z*9 zLM{$_N`~R5!=za#!6BI2LLSuf;L)U~cJqt7b3BAOfNW$4Q?J+mIfrJ=5KzA*JGb)L znUhfO?`)~{qO&eM1Q1vxZe!GkM^UQRe5~eyxG?!Xh{fyTm;M+BKk3uqCqQt3T8c+iUy)5+DHV{(vZsyKj zrz@LZFC?YgXPkC+Y`0{Lp?sRmDtTZ)W5s8Ac{bZkukZQpr_KZGy5Hg|DCVH$ISn#8 zl(dNg8!~Qw*QNubL@3U+NE8L$z#8zZepi7~!=ZD(eK#&>585xX3m6FZziET^bqZ{2 z2xbtq0Qdzp@`~-TDmGZivqemI&>^u2+Uu-z`MpWj`$>}b1DQ4<|7n)XX?|FrqSfAd z^hb*`Rhb8=N+=iOSazI-{OM;@!NkxiPo{46)VZj`EQK8%dyCs>?OqsRb?4z)oB>zA z1s*yZbJcZr+kf*3-$?~l{P!}=JAO!T18$^)^lN9q#*Rbd(M6s42r{$lpqGoGuxlqb z2HDtHwQsX{hHLzjXh0PSGyZqCirH|h-d}?h{`jlFT@3h|2%~&eP+_XM^*%*POcq;1 zVMiojQ{vEt3-J2p_pJwMxi4aQH$S)fK!YFgU{2aBVFwnc1TZLbyq2ewrayq9MPWRX z18qLg=&vC984}dMVQ?==YfUSIwIzkU21EejiIsIeh>8b@3VU8oR4GXmHm(yff21{4 zWdXV>LLdK1EaC-$toReJlt@5A5ek@ru9(3=T|dN|-=#gotmO!42FH-f=YloGW8jd0 zVB(Zi)bG~p|Lt3T+t7&m7lEN=I2@A5h=+~lgQA*ki(c&DJx>bJtDoOfM*+pFucljT|?qLi?K3xxroJ|1k8u%EgXYus?!PHfYfU+j;+MtT;301U3Tg{pP$NrZ+{ zv8ncZPMii|6l}&^0h&#K%8cUG2drJrLPlRVDaeUl0%NJw!gdA}BvT-PUWl**$O@L$&4===k+fo!NkB60S^18#=Gh5BbGjF@Irw&qb4H&9a`ryb zHSvkaXSHf5L|b2w$`G2R(;o+Zr)Se7Eog#dUKm1-IZGdN`5JJJkm=%bY{#9pwOs;* z7H&UL)8Tf8j$d$+^`5--|6eRsN_P}8x&ZNXk8hyJbq+UKNgvE9In7CZ#G^?qiR{c@ z*?$?166xqrn%NO8@_;<0r9)Ht+@br;~G`PG` zAC@iU6Ft%ejxO65T1}GW0N#W~KZSn>KJXas#f2y~wMa_l$cdi1dP?fGPsWdP+gl&^ zlkCCVh-;S;$)I%;nMQTDa)|ktpx2-0gP-R z063)b>=dEfb+iA)J;(2(&`#a)5^nQKERR=JB7E5tdo{$6mhRh{^>}!={9qVPM%sl@ z;TJG>{l|FKFZrKu893q%!BHCZDE9gMlL1hT)%J-@JsTlWE!dU6kTg{L?$>@Zi_jD>MMF)=jcat$S7rd?n_!9hL%YQx*)&q0tZmEUpm>LVBehD*>qc zu*hWaFru$2Vc7gGQUKP4HpmDSf+bt=dY+-TdTAgORq`w-wr$|J90E_9PhilgZEe1F zbu)UO6HPvn{Ql-S!bzomFz%?PUe6KgtF4ctqE5I5B`#b`6pZz-cXY zg}L!S?Zpo!sdpe*{Mdxijs4&~lWn#C++MnGTC49QT%?PaVFrET6M1mmc5F=-zwTe} z#|S`x!D)yZ1%bObI)Va}=#TCrHrmtQp%SOAHrP6yOou|6p$lIc+O%H`4#`K+;J3>r zn3`^)5SRBwXx*QERT)LXBkw0vbkK0kc6E9O0#YD%rlvtb11UyBZiK1Alb*^T1?VG; zniA+GLgFL2Ds!WnK8TZeMTC_#6KZH_WQJMWW;(%}ZEn4nlmMFTFt2A#Y_|OIj3r zfj42=_o~?El{iN5&nC@~_6&Y!lhtvor;0WIyT~qv?>kp_xBq!7cJ4wgA3D_Iq2%M2 zz|_MKw3WF~*!A3P3}O6tB1L)WB`_=@H!lc?NQ5>n7V!DyX3%}$*|(lry=JaGZaExu z+9Y7A^oaFI8aOm!ExNL`l`q^ar92g&U*QcP9H8^xDkFv`TFkFKqqG^Ti+&7imAl7j z>E4PZ7D2>-o(c-3X%oJydPy*Gt5)x^HShCNtas50A#lsf&jD+`@(=zhaF|%WyL4A5 zyo66taTCtiW%bo^f_MktQBDiC3?tw193$2k&bN9_1F&-h6e?hR8^?elmcnw<9ND~Z z$cRYAc;Dy?sWnL!ySH8MBZUw*5?!N^=M1wpd8o3E{Wl}+P~i(ZT2g`hdtoX&TbmWm zzs^&Ry9u+>fd*uzaxkndMe8=gF<>==bhY2BDzdYl(gmk2sI*Ujz(x)nIx;{$`7qe= z&Y0h|)O^3~yvpB-8R=Yv`t)WdpVb7_4k^MK%m%9aoC|}@7gc!<5$sIk@ekSQpFM!;k)0#ya=yheKb!I*ROZPk~S$`i)stCuDhqtHw{VWK7V4<3lsM+pU+ z6kzPg-vzwXz6)nK!$dUxxaAU7i70S~OqVlrpcMCanZ)o$FwWk^e+VbZQf!!#2>$LU z$QV|WZucU-PDAU0tjJJiY>Tsg`odVC?Wo`KLRUrhLfCA3u1!3`i6H9*af@A?DT?#K zcCz0`obB2n1u;`dw#U09!_;$Jd`|qAWjfRg(St;um7In(0?2s^OcRr!rHuzifPw32 zzWtnOI@jTl51?OJg8Ynh%P((kcs>Xr5sQ1NA%Xw|30b1*q)+5beOS#lM>>pr_wsMTXh;Xhn zUW_lW!R!Qohy!Pz`%G(pPu`-oSQr9R)q;%~sQABMLg}K&U;|k5bu}+8babV5BG(S& z3qyDAW=)umQ`Pf%|1SO(H=vi+U(JfK07D38zK*h_kj1W=x)FB+?heC&y{qc&{Vhb~ z#_!)Xy~D1%ocXCqTU*ut`_B}47(*OV8N>1HdcF4W7^>=vm!X~WKj0(_p53{h-QFdm zIHZ};j^Md1-_NIZM+B|hO?6u*(7I| z77UUu0q)TN^FIIP>kn?Uy}p%}RJd%vvR`qRFGy`oid>17bMW7O+1$YW!j)nwLU_S9 zo=pn8bJ8`7iD6rEY=T=%?=h+;k%cIV9^CI_cy9OSuw&snvLRvwS~{`uYL3LLBh zkl^~T-tus*q&|Q0&ZifdcvG8mmef+;T!*%&24x7^1ndl5z1Gvcj?*cLR7wNa$0x@1 z-kyb`P75C>>-KS6Y|WH-cJcyb$-=JWw{q`%}YdVviF+_Rb(DH3Zh%(EyXY62MXn zp5gO2?S5ABtrva6an)?gefFXYQL|m_OB0@_uj{uiTo&I^9HCv@ls-kd(ux3Mcus2J zv_3#6ZBGnpgr~((sIO+z@Omglq|#?_WRiwA+3B1SKby+^jB?7e5U zGBSVHyYm@wI^S>K^ZVmG&QYD*-tX7AuIKd}Y;+`o7k$F~rX|cog@?=W`-3%-MFQOoHHh)nXbW+OXTo>cJE)`;-159&zHl5xL$g4 zeytF=fLPhn(;j*5#66#xTSnyst6g}t_xx+-s4O?KRwVft3CltfP634P00ZIV{RfY( zjfTKjAnN0-uOb5;bhl?A32gu@mJ6ZOnkKN?lFQHs4hG_;3v-K6|Abp#Kd>^Dzi7Df zwNwkA1Kd}s(Q69t9?&4E6fh}Xi2~iFqzWXKLnJ1!lWYXiidRC(nUyg}b{Scm8Cjwt zC-fL?;Mc^px$xex$O?ndx}mPw;e6B~>(>h|i31dyfO>>;gJ~%w&nlMVQU+R#z)Z3Q zn&K@=a9K$M5saKn3D^u#0IvNEYJiS`hVAY6oVLXCO7MM3(HZB(ocKa9$&xh%hr%(2j!KQ*L)nVtoBq!ShJ3?+f_V;c2;> zz@FIJfRC97RRg_!^{HPKO|AH{29wpNj6r@pYrjcvSsXVnMIPo!6_#n;3wNsK;tj9k z@``#8*}`4D28n1>&~0^qcLKAQw_K*nEWC+;D(0s(C{YfLTB02rVKt5I%AKu8i#6bw z(_4c#`*NA;g=GTW-IYd;fi+Y4SMLDz{{sE@@_<(rZ%QAy&gy-Nc1GM6yw7rV*Ia-= ziZrm8`b2RB+nMa$KyU(2L0HYsYM@C;+W70$H&ETpZ-=CF`+1HeXr`7g;;E2$9i+F| zL7e>%Gt!xpr``i0*b?$4zgwr$sj|B-F$HrObY4LU3jiJ4z*mvjbNax1NT+_8rWm{b zG43_qV_e@}La{g<#f<*LaKM>Po}Iae@!2Nm3)j}tmV>${*sha%z1>+Y-C15#L~k3w z$lfTAW-Wv9QKt7a*orR?WYReqjbJl+C}R^r`6WYD_+i0YsoHv@WM=-#kzISF_6rQ6 z>$e;OyyOH~wd+$N{7$k5*sca{M4+TnLfh~}!&M{}13CJJ-y(4yDypW(HfD87XPFBo zV;|6aR1vt)(~<=VPOfH>Nnn@Na}pZcd6unIUXXnY)l~`9hdQza>|9fj_6Cs6b~tYA z?W+lFdkPp7IJDe6jKCLUkjUQPaz?hgP>La;<;$waGn|Z4Ns=y^S!6i!hXl$+12LGx=rQ@!#P247+sY&z1`)36I$;7!_x*Hk}h7@V2MWXBD&GW4l@ za~+m2m8ss+ohC;yX*PX=w?0EKonLSJ2$iADk-_E*r*Pc%{LVJBT2pFc-v^frUIjuZ zM46x6t<5|YtGXL!1(FC<6`L}(zgW4up6cJ$7qyN!<+1Y8n{S~B2)(N52?jr}wy1+m zu{cZ=Ptmt%xK?DbZ`U=Ft=bXmJ;>Gg?n){Bsh+q<-t0K~nVN^usR9EQK+P6}1i%R~ zp%g~F+?Ryb&HyqzN60I;B!M1O6%v0c#32Kj>@crf(?~%4vEf7;@qZ@24~0%wtI7uF z>@S6xm6U;-6~ytf`%s)U1d4L8;^+g9>SP(~+{nVPxbNCApTg;4)A^H~@;uc5(p%b+ zYbH45n++~#Yq*!dBVGm^pf>ZRF$}T~8i+fPV!A}I6Usq*9A5-{gYCB2py=R!X>;Tw z=U6qP;Q-TX#*l9U(uZeQR;%QOn~`jzQz1QI6}0&{-F!lnM+U9v*SV_kl_Ls>EAJ^t zepE$8OTtbg3oi0PjY!Z4_mn~N8*j9k+CUInp^7yj`NPclSG#MKe=!YC>|^N71j;GZ zw5N#gtJx~Q+zX^(8%<8zBZTU+eT6dQcA5Nn2tNlX9hx1orYXRr>7)E3(b153BkV_P}7YEna}3|Z$0e@VrP;XiWjGR6!vL6KnBlf0#z0*Wr* z^AHc#nC695lW#}LWR<~gPo1ulSs<4zuTe1YmQSb4wqnfBHZ14Ht|wO|2w%XKr6eU^ z(Qfj{4oIaSEUg}PfrL08=Bt_+;SlMxQDRW6BECxTxqVG;^W#T_bk*DMWW%Z~FwgT- zGS}et(J@Vd-p!3bZ*gWl&4XuG!QqTKKj=ukw*lMrNB-vn z1;%tHZaz2wx*yG}#M>9dd+owRS#*n->PR&&D3^GnRZ0W;-qR6e=snyQG|D>YiNaG{ zeDleTsq5_y2G~i?V5abWB(>I`huOlfCx3IPVatZ;mHuQpLjtLZkkOraCB6<`2qL{R z|8&(-AegU4G3NR}6L@1H`b@$+T*mD-y7+|}ckrUP*-<^@H+VoX2Icf&TRHFCLucqg z+&`KMp*Aggw-j(cj$~ndZXHDwvZ{A>fBsA%m!wN8_Q!gFYjiKwt zzk1RV%!8g}c#1BAt&d;cmZ|n_>@qYi`L0F9OyK+VHIvfK2Vjc%=^dk%_ToDb(75_Q ze8gqdi~?0O91tHZJ+vHDm`<3NkxdiiRV?rGI)6aHj0HPrQ&(JobAOu~?ir0qNg3HX zDsz0BJ2jzf`s2R&ak(+-@RKLQBbr%PzvMBCHxduTgw+n&!=FDWW@JAoT^z}K6`I^f zO}99>wwgQbGBN{^&Be=xaG*QRFqNAOLVdLzT*U@Gk|b4H_B>NOin7HXsIYf}aHDPn zt#MjlfM2y8Ih3)`dMk}-3QP6Y!F{NaPGx1QFxF%{9lbC+P>7=f5cN@915tX`w1pB@ zy#cZ!!aUcJ6PBEFyWJ_{lAoaH)<;Ra(6~5s!m{5Zc*{_31bOi+`*N>cUMSTRn7a8) zcJfxDwO7h##1OrV?DA@<>3gT1o?bsMvN&3%SDo|PGPiot-kMcq-g!|@`5yAHC~j)8 zyj~c9KIU!iKDpdt73BY7uG(w@)Sa}_|ht(VODvgbEa@uaa(q0duz)< zVrk|=&Nz!i(;U2l&0xhx>z{hlik9j>aW@$~cRBO(#s2)9bBe-<+7%C+CuLuDtMEx?|eha?$Zy+pg8h}^tI-4t#-;P@k<0o31PHk^IY%gUP92Gka zj>?Lr3=x*?axsKTL+l8^j(Ar?{eSxA9Kj{GmG_UqKkAIFUBAsl9i7`JxNC=Uks%PE z=P%K5UveR>5DmvxK;I7BZ`(J69<-J!Lp5QBe`V8V#TKyP2C~9tIDVf1SV1f{v&yKh$3=67UZl{=6VaLZ%$n#JUU{5UEzymx%``J)v5Ncg)|$ANDEJ%WuFD(c^Gx~Q3;5I_703yz03OkjSvukax!%l0`FvX2Dc){>bHjTX=c}!} znqoX-=K<}30+2|W1~P!D8pGKET&UFA*8tm(`sR;*z+QjDaFfof30RtakH?75Zfpfq z*KXGBY`pOz{D{OX0AAu>)$tUSPbs%hBv>quY3l|$3Kdv3*sW|JHh)g{g$$Zfzr&3M zcHBycQ$3sv38n31x&+JmoaM67vu|q@q4Mw9!nh6a%n9~J4b?oofCP6$7@OXgx%RO} z|NThwkOOTN)r%wG4a@q?6b33=CCgL>HB{)mQIt>nVS5%Chw5LM zoAs=yBO`bSbEYl8NU~;oN?BHnkLxZ1?F}&p~#oWu)6GAspcc8YmpZN+;^YQd-!CJNhIl2dIAXRE8UeI-A-}AKs zLfTGH?3&1eGCo&f&d1N~7v(b@^ufe^HI4r3Ots2a%0%sscJl%kGi-2ll^|3*NxnSW zoxZ->9jprncTGTE#^WB6(o9VAulubXxf>n+bELY3yHrTPrC$9)9GObT3J{hKK!G}Q zu>6G>kt~+qcD^{TacoRP9AcKS!$MUl#4@s(wBYg5)&gTerE?);+_#e*!XK!4q&I9D zU2*oLQ_OHtY(ML?X}Uc5`Tacow|iGu+{l^;i~;FrA(K%YB369?R%8sDvY55kbbwJOF#eReVWcJwZjHu+ERwN{4W1IbtuE70|T_B=Hn}6`jiNh`aP~ zbo=9l-bOeBW_T`2V>DZQJMSfJoz_?fVk?}t!p5qK&OuMPkS z%l+}I$r8F*SzsPgDXa;xOX~-chWyQTV_=8G$k zK)lO19@ih{CFp@jPY+xbU$0nBbt4N5V;TIaUy?V!4eSZO@@=do2C^ z1A#Qk)X7=doUre#^`JBV+tn52by#WcD#*@NoPU zhmt+F1sA^KJD%p@Cb<>an|W%xx0~(r!c2GYfVmf6N_sCcJ23=b@^>(S=}LQ(Wx6yI zinIH8s6B~eN*9$`tr+|l;rwskXBrQYNN7Ds%;ZjtAv?7Wv!cvI+?JyRx0aq;^xK%# z5xd;;b2>tGon_6x~z>_E5 zSy1U$P$Omdh{REB#9c(dUvM28Cb2`Dwy>qgpvE6kNhRblLFhOZ`j8icwLwsMiug=( zgBOSXBtB2*tJ%HzEbl`XjBVNh0-7Kc z$D0UOe8Fg~Y+EA#IUXvWWGKZQUs$D$s@Z|V+++N5g=vI>=n;p?FyTYNQ0IjCky59% zHDb=Qjy`loIa*AgyMYcn=FSeYTastN4@9OhL)H{}Q_5^PN^$5!{s0GQi}0MB(8Yc=H@kl8kt4bNbtr2y z)UAF$zk!vZRS|u~SZFd!((|hL4LHFDR)s@XAT#CDOYfHUK)McM1x~Gz%)r2G!@53B zX>MjYY#dBq6S*DMbztc0ag>v*!z%(GEC`Tp-`o57puziW3}_a}WO(YWZJ( zqt1`-@R^&E;3r=U2kfAqOCE+g%iz)#^Mq?!FBCH_)wNX%n&kw`o1%8_H z`GyZEcpE|nC4pC#0VG3PWoi$l7S1g>R5O3k7SaNf=?N0sHIlVG+_oR^Idvlrbly^s z++n{Y$zT;p7DneX3(O(te&Qe>r=G%x;3F%X?W!{j){PKrnu_SRur3Q)+AM(He;Hs9r0t}!d z5^cs>%2}XlKmyQgm+I&>>ymYM9dNu^pf0>ryyQ9R_@&{?X@v|%1*_J=+$@X4(J#`| z@j-ED=GP1#<Y(?O&|)&FwT++HhE_BoWK2(CFdQuMr*3byzbve>^DNMNV398h{gv zfyc%>g>CI9MR3-Z zg~2w;uk*n|B%r;~DihjG!{AkR_SOtRYmd=!GA6}dDl`)}Nkh{d%u^Ap1iDXoDu-{c zU>Gnu?xd(SfdH~*aY4T33LTm&fsfyhQ&EKoJS?Yy_g zEr|D`B(Yu_%F|#;k&oytOOXxax&!ide=(hPz|Oyqo^Nk}6JH4%5|23HX?onjL;wk+ zWH5kE3-J&5hTO!l=#>yMRe~IZjHYCl9mfD8ic+y9J$xtBiMM3cVEmu)@y5hyM2NMm zh%QrWB<`s;ew%ms5t5HQ|DHgxYs0*WO9r}bGY=Mm4gS2vwC_OK+=@{xXF^}yfM}`> zb!m%w;z)Ta*aOQB6wq!#KlA|J%QE6Z0Zqt?hX>45#@3YHe%WH{sFi~p#?XZ^qyuN> zML6X=IdG0D0vF@!zMZ3&EP;d8^4aW==jJR7Da4a80IPDsi9Vqer$ELR13+H)fZa@I2KUD=1Do@{p#0q6 zVsK@H*$52i8*7$kRAHJ?j-%|$wGs@3gE@b}o@@xIjsQ-FW}%bEh`b^@v3YjMQ`5o0 zw5csLiuN>^9LMXG~S-sVR2sRXQ3>H~HJ@Ph7ZXdh;P?O9; zJ^_{fLOz5a$-J9}Hb)w_(KB1_mK`KG#gxpPU;q#D$wHCKb7u-J5?CP?_%JQ{uoID4 zIlBAmr9O#^xv+wf^HaDScakkm_%*EppL$hRub7_9jL?6k&?oPnE>u5Mt$+k-D~*uf z06C{J;00WdW@Xh%XP=f9K21v?I?Es^bofI4K$Em!G8oO5e0rE(n^$Fxk=w}$WGtfl zroaR92GXRlHky()v>q)6z@gHS#$pG_l_cSMdhK37X5oi9#p3ix#Rvy+jIvr;YXiKbQcz;-a7O8oOUid#zSj$ zx4A~?cG44uXQU<`iu-|0KoAc0`ul=h&pk+#h=0Q1NM=&U&vzy-E`3h<#%4S4f}SvR zlbYZQZJIxZk>NoE^MAr{*s_8}M&pvn+QJaY$82uJ3Xd|Nm^U*gkAsRX?Yt0@wx7KN zA!qx3rW-l(A(D&JViv?-BqnvNo0KyJaG`Pz66ZhT_O0{@(~5rdzS7PN?*q=b&T4K7 z)GGTp$@~2_B7uE-5+SDI0Aw-$p6(`oo{R3jpeq~;xusjEE9T=O14^_Lr#2mDzncni z;xL7ns{-?4=)Kk+CBvVWp$iVvC6lsY1@a~so}1y?i7Lo=RE;xgMKG&yQ>7)rB2xtp zFE=;ki>LW~-1}rECtbq|D^~Z(P=9e%FXs@dsy%x4*5rs2v~J6*nbu)d-x;;Yi=wKy zQQYK-lwEMPQPe`TQW;s{(jtqOu{`Djoz+T)(5c+2#+hw^5|&uXfQ57b@fb02t9EH2 zh@;KnfZ)?ID6q#z5>o|bRbia&4Ezzh0hqzIuafcjOcOj8&`8bgv+BXm7^p<}06W02 zah%gK0dXH5%!f$V0MjTI0+$8*nGP~~!hnn7=LS9f+(aa>BYuwX-V6tV(37VrIgAts zp@~0sCUe{U$SHDbcwacFov(SC=uD0lZLRd+SNlC&FDi&t+~;N3lR4}6;vi`ANUy`h zcR!MGK$XMwHdQsWR0TL}`(YNUR7O^gt_!&O?X=7xrU%eFQt9Vvzuet;Y9y4+^*NW( zN8#dd44gJ8J-&aALyCGZkQlG`D&6V^H_>%7TGo3(+4Eb83a(nEDgc4DmcbxpBPd%P ze=A2!7ek#$DI)B|GXPtczVa|*zc|dXo}}C-G)7z?d|71=SG0TPCm;0tt?9yz0Akn(1pA#v@6CDBforNG?QSHmVjn3&;^_k=-Zj9;S+ z#(_@rm61vc4@3OeeA|WOBbB^LLqbA22O3}yzmXlWvZ+Amc&uxyYngJ>`Dd^~{JiRp zT(8>AxwqtiOZM)Z)v?}vQvRQ~57g86d9E)JmQHK34D%MGh<~&t(YQ;0==6 z(wKpsi%%852JS7Iqr~oO6V-IKpJ34U4erWXI;+=c%Ecf@MKy(d+{0%0tlLX+W(R>3 zl?)~EJGClLGrUMY&MoGso?@knmQSWZy$=Cl^hXDtycyW(gN|beS`c9J@Knr5Bw5E- zR^RD)h5kSjL@JPK9prSxk=&yLJbyv(I7bs5@Bv`I`CCV2yR~w|Y8^h+lb4O*M=Z%( zEUMn{MY+$@QuJ^RvP&>ySZ+HD*F`fv1*C*!f4V=Un>rz@m90LIZ0A2tJ~jUu;Ev&g_%nxevTx2onr)y=FNA z^j6OTtJx&jnsKT7Q-w30G#Jvzl!~nO(ZfXElX-;y=fS{#I!j_Q*>RVrfs^f?!@a<( zgbw$fOVudJ?2}`}r0IN`P^SyHMByDnnq5%05tiIvVuNWpK{NepqU&{{%~S6Mo7m#t zA7*~H3?#A%<{%_h#;`l1No9I5{^5J(^T6cQ13MBR3v~IVERaYg z8t86VjT(P?@Mz(7Kp%Bo_o%SmEvkF|f3HzWDjN_O?$~mCGFIO;l2k zF_MXXR84SceIeA7+l+>sQ-sYAp;D}Jmt!|Jn?%Rf5MIp)!El zNz~zB*Pt-^X}!D8MSQG z$&sJs56+ZC>1_8wQ>k8qxR}=XqJPNd^*Th&*eY~G7(rZy1B~r5vJ2f&b>}_idXVf` z=nFjNZr|0hpo4RjMC?`!ysoCzJYcy1zNkd5{yb9p{gE-zTrMK6JDwG)5omZe`+8aI$9?A2Zh-p>?%eg3jy zo^N~V84PUE#E1rB4Iyu!ZJ$b1;Fsco#(rWT^4KhcC z`tZ(>L{9*sZc;HrCY+NM_4Cjhp-$GE5T&iDU}Xfbm9)V=d@>qUslr2bM$v&H*JHa^cW?#6` zL%IbZg6V+XHnD)6Q%Pf*8N!x>Q3<^eK?BZQw;^2INT)^)vtM8YSh=KdpumP{iW53*$lJHk-FAD*6Ak1Jxd=LTSS- zlteang2%B44llB&nX0uzIG_N!A94;ZE*aNLn|2!n(@nGM1o5TTj9ZMRI5!P_aM2=-Z6vW{r`#Rm6-*qQDKgXZxI)6W$Qifl@0=KShO=_&(6faA0@-~=I z10FwPWdUlADaKC#WkGDJ6xbQ5-yFEK+}9LJwrbo^?cIDrJFbK(bx(jXs3G7{_P=(K zPs|@c>aBHjyq_N-?!E)H&=M0~q! zz78v^n;w1fD=&KL6r`GfKu;dV)aN&}#>xA5TKL7vUcv4Drz5Q3JUuL$QCe`;O>lc$nH zSYb*q=I9QTDl;B5*s0w0cHID!E)EYtYX~ji7E}Pu%5*TE0fa0WNw)`-Fd6PSmRn&noZoT`>4GMt zzfPbb14PALHtPG03B>3b+S+N>N1MMolQJ$69l}+7VOoNrY@!Wvvx4f(@g$<>WyTjy_ZvWvdNeI&0+i>6k0nZ^G0r?A} zz7?6YUYtrwrp-Mq4UNG>#N_T2K3-}zm_Z18%lERuzlzWNb15tD3qo1HR>XZ4x$A(; zoObW54Q;h{K=Csk2N;LNH;>jej|FL`w*S?Uq9(2itD@vV z6S8r`$a-#$U)4eg5iq6pC+o(h0K*+185u^=S1jj=NPZ-a0~iwxXPzj$%jF)xoL>W^ zp#(Gmz2-O%gsHR&Oj{BXbG4U0zeOTDh)k~~8}ea@Wqah3rS1+U9E$r=pj-1aZKyh^ zW~}@I`V>Ekiz+2W+bg-HQy%n@g4?4a*GE9y3S^P<_pT0&_wG3%L5xM9M~4oW#D`}Z z@a)*He!$=QHR{4cMIdvsT_``;R&4ip3#<=l_URqAUrZ$rMawe0zDVQnUGwnaV44e; zuGr-O3m0N3EavisBJ16M{vrRPG|bF54pW^6bBA_3ghq~%P3J}Oi3cz*+d>WT+>=0S}mmh?f*h67MJg^e>sACNNenP!JVOmDVLQ2<#># zof<)nQOZTKU^uZt?O z!AaJ;P%B)Pm(=T%2W1oZW`N%P&a;a9P(^#I8&0RU*iUohh`8rBlA^o<$_?w zb`Ti8=6q}?!1e8kms<8kU;%_~A3ou6XQ5y%!m7Y4-s7m}M~~5%khg zXmZ|_EI70DAULf<^^m=(wE>z+p}adjyQ_}l+ zg0Oyvuy(}jPPx-RHwyn5PgCdMLR#&h*P$&SNe~!GE7p1%pW(Le6iblJP%G(_hAYhy z23K7v)O(+7ga-J9I`1!;OL>%Tjddb0AslWd+0(VA{BBB4O~D-)L|WPcd9V?qve zR#aWo_vK;oK1qjCq}1H6zSq7^896PSh@iLs|2r)%r$3%o?z0~84!voagpdrC0QQoz zNXXzw;j*I*dMN$FII60D?S$ztP9SF63u!hUz)TILmpXf*~uf$hX`cV`!j?f-`74X6=w4cxpKi)0Mvt?0goCYc}B%;p}i~wCz)#*3z!OxDr zN3oiTArK_)S}LRs1nPLJkR3c3#buXm{xk(rNg?eroOx2Ks;@qXnW{S%NB(VumHdLF z^6oZ6gktw`0wEC4W`F@GxUnj3=^<oz0 zIBs%7jZO6ls76U!>cfqxx8}POyjzolEY{Kk=*89td^vx4ArN`vNPnyMr08mo6Y|G( z&wH=AKes|Y2c|8?G3NxOPwN8eTJpe;OcXn;Sgy4tFOEWdmtl0bxj{@Pye6~pVa1RE zs2~7oC!7=Tya;~3;#jdZ3j$~QtD2BsS3m>COxZE-CNx~f6jX}H*ct^ z?a1*dKheFv`}=Rq8AG=K)qNuT@JRG547lT2n{Kh{-@kHK>+8-;-$8p)%k7;-4txPy z|8oKYp%SFH{CNDNl0=_4#YvAZN;1mMiQdY4D3+nVkFk^RGLF-OL0o=D(tWSaNhMJW z`kyQA*lL;x8>qZrdjVa0A*`?C)>;3Mh=}hWS2w~NKUO$?br`S;yQb@xWpLsVI)BtJ z!i22@^XlXEJL}`85;Yr0xWo7V`iG+yL_C(51c5tqzs^~>e44yuw28br3yO8pM`-B) zHxs#cfsmkX@bsWUo}Xc6mrAbY=U4%$IKfw=@hKbTG{zbOP_N;&F*(W{JA3P$L%&W9 z7#IpgLab+mnghty=WILK@Re8hXE9PX_y}>?2PiQYiaK5oMWL=Y9uv=uha4BQUBAzx z-R8b#VNZfsFjFo5d|7vW1L6EzHI{~U$qy$>J~wc6{!MTDRM<5O9Z4y#`aKJOGpZ~QwNw%%wr-a<-uURoapxj>EbCt#-+%vlU%Y4n zY6$)D4j{I;Jx{px8z49!zh>nxVL3N&rp$N_T{8Tjg1(OQj(Iw`Vtx^8~Z-Y ze9wpb@nvNWF9^{9g2dx+Z;>Dz#HywMc2b8E=AzxB^+?pQtOdl02vK&lhI~$gMm%wU zq)U_ja)xTk;P-%sqT&mRpw1bs`Tlj{F^!@wDg{$n$8K zZ&}R*D|8p|^yIwhe?Bv=+AwI@W3{&M2&8|tjoSq%6m`Qm9PW8HtQ|ns@UhBZv+E;? z9=3pjNwL$-Fa9VBO1)4*mdpp4U|>n-9{&B2Hk`{=J%?%u;v1}fzQ<~3ag@i?t9``? zKA+?e?Js>44}Bs|)`7z>L)rX`oS3d6=3{b9pGq9;Ea!T=wwyw?R7A2w`kijr?5t9t zvSZHf?Uytnc+aM>-lLxOd_(*5cl!Ok`UASQ!ZV2egg{P+W!OO~`{*#Ef=gDXPHCd_ zTkduj$%V3^`^(;nOW#QHkH&3ESnz?Qb83s~t61GW1;KD>V;-6lDu;5}Q~4_7)> zgy0jlgm%D*d49ki^wmN%^0VDSZ2IRAH$#5qvUML|dP_q$o(i2m@pqDEHU|iaF)Avy z%WYSVsqTrpaW()`HG%$8`mrrkY-^ECPUOvwC`RK{ECD#ny zwguQ-5K=Jxs3TlmT@8|M+ed0u;Oh2XpDLU`)Z*zb^Th2fxPxTry#~vyTUo*Ed+M4$ zUjfl6oE4`r^23^65kjz~cfmJ_MA0)-%N=i0^(6PW_73jg7KLlvkBTIXWwXu7((r(! zXNxu|7_UI+j6|KE39=@;7*rkZfpkas$eEkhl5nz%810yW>5IDlmz38o8s2DWtBdCU zIOLV+`3Yy(r;r>Z1ATrQ*J|$@U~%X!43_toq55l4B63VbhiVD0pids2z&2outO;K5 zIVarrKk%KBM;T@{7ctaQyARJj>*A*`Yp*&-aMDfFtL>8?sTP6|-L_;jG)&NoG=>V< zoVd-=P;?0%*HwBGh?4lyu3)^}|0XBNVyZcWf!50x%Zp;}iTsOWW-y81^L+Bp|JV{7 zdf-#IMuoHNh!@?@dE_J-Yl>2V z38i=H3sTg<`0tVMzx)@GF`}<*2lF-Pk8dE8zLP9! z{6)w4vx?o13i;kT*Jqn7nQO!^CNLy^!K6#m4^IydM_igEX;07k9}sEp_cN(L>~tX+ zkIPOtTTiGhNl5J0E7Aluljtl>uWL5g);I2wndA5rO-P(LZzZ0mb)6J&GF!n+g=Ep( z&CUfZOKwFKHy+io$Nc@$lY9B$X-rc^R~i@rYwH zcvRDy$?~sc8ztGT3M+r4Alch2vCzNd7?K#jzS3W2oepN z)(#+uECXpI35=k-6#YAI^!c1=ZV^Ktin+-i;|NGvE&Oqtn!wo<|>rWb(ZIuEIGBESA?DM}ZHTW&B zf+;nay~}PC1J}Wg z>87rKzA*0M5tEQCR}eDmfDY>9RgLGN?1o7LjvJ`E3Ss#$R-x;&&jc})&?6z~`pxgn z(YKp3n}qxGNJLC8s_xVGqCf+I0040%yA%jFZhj)Nvy}!)6UiKd(-ogIey>ud4#Ncx zvINoBwkrX8ZGK5o{41T818Kj_8^gkBT+^7&4Z9BbI+DqVQJ&KHm8fnv94p{z*x zWpohjnp2Aevr;;MBLyQqoSXNLD-pjV6IUkKvxjOQITziqcNG2SJcC1(S!F8QOBBdp z1lXPtC$H&5gS1N$jEpoza&Poj%jx)WB)Afa>2+PbbY-e+pN(kq5e`=cf{iNAvW21M zFyjk&y0d)@bhNaM_k1?HD!_gW*i7dHwtK68#T5BfJ6KjnIMaK{n~K@{ED8o@hJBZ% z(wMRh8IDj=Ghe)rnATJm zhlj^;!#F%W2r3_IqWawO*L=Dg=LWarPWI_ z+49TY;HT&Cix2qc@ABH?BLey;`y~$~(0+NU5GP4=k7-`E>F_5VM44<7$AfEVWqNl$9~6++3xXpc?5JO zPZ$&PP(GLkI{nX1lo@o+^2guAtM1{mYXhy7cRNt>f{fOZ@t^L_o1h)Tk3|b1_2>@m^+= znNF7C@8e-f%EbkUqv=VF9tkm?&4oK(?#pd=HY`Ghjhr$g-rf~MM217NoyB%fsXa@5s+UoN#f(GO^*W^-Gd3}tIi{_dvd)j^sZNH1<+4uV-3L4$neT`*3R zFObBRa59&Mw=&Zk_kS8&_`#hjivpgHRoGndsxmnF+ymtH`&W z!!Q_eYSbr4?p{XwaLweO@TP>9;DrBXIr59AG%OJfvnntu4Mu3{Trf{581`hy0;5T! zAXo?06--zIUcQWmh%EguZ+jy3mfysBnt10W^eluzmHmSX%5_tsy|YtwU|fYjiy{e1%bVFyf6IVLE(xrgW= z&zPx+sQCBpEk>Wbn1$h5u~~}Sx}~755)CN?A=+`S*S6O^cvCt{x3h@;`vd>&e>uyN zUAGXlouq+&>}p5FpIa*s6@OLJuL2A30ma<8fBDvKVq0U~0yvDvKbDLCc+)X>#6_Zp zP1X@Th{Z01O}k5N3?@n{~vA{P+lNzuuK)gaVH?(;G8C<5@7Bb!Zvw3UHO>2#!Q;2y{&`WW%h(i$s!HjyX7b!TNC*6}Q zYX~!s(YNx`YddFqd2hq?iyQRE1H_7`Rv$({?ypV0%+2eK;PRTr{8BPmS|aLsf3bf> z76ggr7`(b57HIqJrC$53ZR?yLtAXE_H+D6lA7X+XHWzCEgo~QVxDQS+zJheKXCIL` z%L^Ud+{2Z9&gJ~c>Cp*0!+3!`i{$_CC72~!fK@O%5=4t+Er16Hq4x>ayFiOK+s|;C z+kP$Y=Hr=8ar5yH;y{A(wVTsmM~3@|k0R)Q{U?w{0BHEw2?^#cLvmcL{k*c2vhOs@ zUGSvxOdfGGMJQAxYwe40$N?UmP>ekNLt`IrCCI^8u`VT4SoU?o1r0~!RPj+6z0EZ; zz#XDz9=}&M2R^MyDdEb72`~!YY1H}M1dccoq15RXqxm~OUEFz~nQAz2Z_ald14pP5 z?cDfMqk+PMt9U}iMw+gnv#t2}_*m}qiQ3bg!%dDV#5);oFFIE@bWyV#P8M`QHjU@EjwLD;#+d-2a&+14x}(a!US8>wK333b*aBw!!_jbV=&tBO14 z-fTN?q{R0m!(UB*PT?a9}@Me^U=1iyS-aYX62i4(-4 z=3KI&437cLMAZ=!Ri^`LPw6^afwIj7M#GnUG7skX9;pPe@&SY=)sth0js#^@s2cE- zX6wr3$YVA4U(jqC^*#{SQbZj$EfrVGLV<-L^l=JTBtQ;GeD#fq9bg=qMnHBsZwvc2 zGMvs2XGI=rY?W-Fl|eIi*#_#AY`fX+>9zwa>*k?@DJ9d5E9-UE*xUItY?6S1A+7=l zK`qR%7zX%Ba+wK)qxE^TE5F`>&ay;#|DH0b$FODn_eQ5C$Hg401x0^0OwmWX&d!5f zreUt;Lc#KEXRfhIXeL#pCORxL?U-P@3O?cYbX63OYC}5=J`mPcem;;O>ZWrV*TaFt z(29E6VWG%OJt?XWFNC*2-HYW!0s72{x& z{x&&vy(?L}S-nT=sTA%(M>(S4oz4S3So1aiBLN!a^5y0TcMf`e`h)ax&xs#?JJh+X zfYtCw5RFIz=NmmZljQSEVotrN)U$!S+6(SVatm#UI=Uj=pwLaNtH{wo+_)@lQ?K{> z=i<59Y~wW4sh5=pa5CeMNDh};%`ATf$R*E&iEs)#a9&}1&RbD)Ib$C;5C>8a=LsNC zKZIGdBq)dsPTXR!O+C!E=a%}{qjE%`*eLz`=zrg;&NJlcjwe^PvUa$#Q#O2|E@ldw zEi`b-e~*5EEg@=`IhV)7Z&I9M%>TvYVyTlm72_DQVd3n2ljESF0!$PN>BiUISMhi0okdT@|MHFbO`^+&~ z_Dj4|)XK*51MUG`*@SE%iBwN?w-jg38ls(6=DV!YM7es*OYXf}>e^lHj%ER%8&V2Q zoMykz`F}s^-K+L@@BruMhYY&2>fDaW{qY$gXoGM$ZwwLJ9U#T}ck}+iUgm=L2PnEO z3FHM(UDJ%=XHVxfqPkXgz$$&;6~=2HDqe2>kuezW=JEZu(75`31<4e7DM&V!0TG}i zWcML~x<>3I3AKcbAVPyZ(gMCGX%GvN=lp)A0C8Mks;qax7^H$#+9_AsB{t!kPmjzz zvdnyt29vHl8(^Eyv1vVxQM6yIDj4-c|HxJY!7sKHS4weK;BCZpbO1t}`gp6AoZE zuz0H7Gw$Jd%v*n4EBshKz0$ev)4iBT&zh}oOcM-bC-0a_t5_J+TA_oIbcLDbS(9@Vtmp4Ex zaNZT)!NH@`VUGrAHk^fX;3Z!WnMp7B7TJ?g6pa-d6m^81v#a7Phu8I@hU3&k@<*DE12F6WNKI&SS zAy?$nB>O^Z+3w;lmu!iq@^bz1X{)B3E2)EZ>!@yRj%glwgsIh|&FRz^2%;COsF6ec z1cB;jem*8d?;^`#`uMxoHk>|t>grz?7C-;r|Ghmc$kTZyLCaX;xVd-_UJ@E{4h>{d z`f|j_T+)q@LKW{(<0Bw%0W*n|fqGN=^=~vu*-v05PoWoAp*V;dU9jiPjngYvtY<7vJx-7sW};}yz--HDea-(d(yuS?l{ zC6~!HVuegQIVm_t!M~^=7iD}{_%krcp5r0L()0sjaBR3qu9pXp2U~)P&}ahrC5h2I zyQDsKh(ejr;t6l&%d(zFYpK%_;$l>EOb#Wa^cbXxZ!k_CEb3Znu$b)GSBnWfXa|$9!tnF zR4jzGyw}t3>`tAx-u-*e{^Oj_{%m%w_5D82JzV#7U)S*6%3DUkjuGV&A1-&SEQ~JI zj`{h)$g+|2GUZ13TNaZ?o==tk`&a>d5^@P)WCIahXl~$oe!VtwGFKvv?*I4&7BNZ)?9lnQg(H^L&MPLS5A1 zuxd1lSgU-;Aq4$DBim0^yO4T(w+bvCG6WPihNfDFGnlnaYP8KW>*Fo0oE>py1%iJ7 zXD-;0KAS${@DE3`wr8wD^Yy{>M*pJm^(#C8-;m^(H)brdHex?llJSN>rtz$tMqzEk8%& z!ex$MJ1(A3Sqr+*d+h?|)$5lCO5CW@OP@lhl`AP4dJ2=lJ=2av=xRRTp2z$~I05ok zBU$OSECx4-1Q}?0@-bp&TKv!IJ4fOze;yEn;SEm>&Z?R~q^X9^Mkec-tU02$3r(w z`^(p?VC+2-9ty{@?dmJ{-LUM#f?xK&TS5!Aw_1(S2WL(~&P5w><*EtN#0(nGqg#zh^{IEv(7+XKW4kdCI%%rI?$xUX3%f5Vdwky|NS?-d=3^6ks zeM|0yR0!+w%r$a9!#y|Mv{qOxhxKg`!Wd+a(x{#%_EYnZpb7|(k}6*ACL1)p7YG8p zz0QQ*;6CulN4deN9IK-D&(m%vSMp5;o9vg7eRXT-wr?`e!65NkX}>Z3JKVxXBc`rt zeKiBstFqO`_3yZB=&UyiSs&OZD)`HY<=O4;WnarbEc^J%zu!mVAx>E68D~DE*iu#R z!`Mw&yM*~Xo>3_J)MuGT%r>{Ot-H5D-y?6lUow3HiUm!ndDtv`2YWL6GQ3^h#a9l7 zaREbu24NNK_#Urs(X%E#KCYAFt<43qjeD2z1e)t2#kk+{#2r-3m!2ThJylGohI%Yy*4CoHGLQqH|>V zZjc2>?FEmT)z;ssYT0R)iP&$ipov$=c4Eg(sB6zw5o*NmDYU_dr$5*%#DHEu`*})b zEQCw5-P9;i$rXv*7mSme)BBRm^3Hwp*k|wy{pk4K?^V~qe^_;K`Y>b59g!n!Gcg_J zmC?m?>@e=%i9$GDr`x&qF7pvO^X|mri2}BPqz$Ryt7XyP`tW@fur4u-s82qxa+3#} z{w=v;D6+dDx%!sKG$5nBc(+99igm?>jzP*nuQ8`~AK(0{+g-HN_6-oJ(=bOuBpwmPuF^IQOTv z?x)lyjoX2kuafWL3{8_2`JbI^0@B5xpY6D|2ac}s z#N8OO^dV+#Y!NA}VrF%1IYj@MxGWRfM5p!Px#C*CZwL9ZS%EHFoGJg&7KP7eXJHok&99AICv`k3cJqMVCjCiGvPWP~1R&!mO51{sUVQ_aUbMQs2S<1yIn z&>YS(nxWK2RBR!^w3f0W*)kRiXFm3PPQUjxmzBp`@?9h1{ln7Nc!s({0W@G}z!pBi zwxAYTG&T*!k$DNQB&suwY#%=`(AoRlA0rOe)^bo21qc zK=us3eOrscWYV5vm&6&<1J%wxiT_x6|22^OKO2tYM++FE6YwvtB6e(Gq{IHnRT(fWim9>%<{Qg= zz1%oX9Md=BPB3ILBl@ZkJ(cEKueo_{tqq#3Bq1m{95SM48H&mQkOdQ zXYTQwHoFF{Ob>`Kv7)9Ta>8#u+67%wAdWN~68+clyRej)hh%(?f%sK6Uo4Q1CwN*} zFqAQLm*NgrK`mNmykY$gJ|2qtWE5P5h*x(1h#e|Q?3BeIbwS{*@iEd9u`Cz1;8)qh zXHTha1*IP}p_lu*G$(7Ju!mk0FIir1dGC(V+cpPpUl0Vs+om+m?_#iHLjiz*l5_Y>rsdY4NTq zIQM|r?`qesT6bC2VxD^P$t#dEoiv7mERo%L;sX3rd&5VZbhFLiMB}@WZ7_s+$pD0N$yVrkO@K4{za%NHk zpme6a7OlvT5g5SIE%YblM-N`sZarmuo?|o6;|i&fAjPd8=W95qKwUKK(b==_FRmuE z9}|dv5@(Z#5xSYV0%Y(-bcu*?Y>3NPG>(*&Q$Uo=Z+nK!BREjnj`dNS|Mg?}XgBYZ zSQ=0S)hiJ!^)Q@`PxnmY&J;=#c^F_o3m$EW1mlGBsvGSQ_@np8A|mFW+Cle%U_0!xxV_Qf&nt$i{Q)qMVi5gvnrw%{m8TOV_@n80g-St+Rix>*Dmekwx zRx8?s-r>HSdFI1zBBARnHh^*m{*#O2H~+ke;l6|iCui_BxeEWJ7kcJa0B;OpG)~<2 z0$7c02U>J+t1r3VdgFD93wpn|DW|b+9YVAdfC;Oi&pvrowbmoAH}$k_V(YYs7_NlE zb%f~%kDr||xYVrSR{T}5`v+LTc?(s){>H=~t$=@A0mj^hts=9RNE{Ng%x9&l7nDD0 z@realJ;F&y32C68zw^j;pg=HyGZ)yf5$g6qwbi9^VkqseIvGV$imvBo0$IgW$x|GwbeOb zXZ5FwyE2H++a6*+0&vGFh5_lPH<+qFfH=GFhFEqTZzxn{Fj>N0^Z}H{`Q(g3)&KTW z@oi$pwwI0PXSL`fyFhM^4Tfv9c~iz4R?}3o`s*8FOA?gVF(2mlU#+x^NSE}q=I5gb zdqC7Nh)GdTP3#ls_G;pz`}&?eGM&ZBvjFeJrg*7636y7{9BYIB;X$e-9f~EQH(tgc z&p%OEI_H9mJ6>~fCX`t62d3G;s((?8Z*oPErKsxgP4t#5-w zK>ghQbPQ3SxCcCjz8_T9EK}4%#&Eg0DIIX|gk5$mpcgC(-zt?Gj?3y?FP4lG35=BE+r$7bNM!(5K+#k*$|{Cu)2KTPGRmC?~e#vTbZ0+dUXiGte8LBu%V{RFY1V zUQn|IneZ$$Cx;~|B4edrvTJ^a6hYu(XNv62M9s2YyEr7RBq6$ldm}xbZ`gkV3>o|TX z=2iNl9li`hxxMjuV~-{EAUrH!dr$jtKU4r=va_66b|I+4p(=L>MjY9nr6}#M9)n_f zj`W2j>wbD0X{3^PqU`!gI1g1e?I7r$3dl(iUW4YCr1Fr3o%3=>y;*s!!3s{IPE8ksmP-y_NjV+f zcnC^V8hR?@LdTiRk^igx`F9F9YrgyyA5>Jp-JbXUxY6I{fj@=Kk}_tfl-YZ7UtT7q zNp3~i!Rguk!#@4Em#5XoU170C3acZ%rmmx|SiSFh$s`!l%pGM5TY*QXlvAWnp+#OC z-Ui-g4O+V8x@GWR*bkX);Qq}5E^()13YC?l9${NOE8z)rEJ(LP+&r3X9gx41Q^tte z8#+E3pnwy`ne+disTveh&`}zob4L|RtDB9=m*|}R^k}u#3GF2zs;-wVFA5GEHwb^1 zhHk3)Oz~3Tb7eKw$M>0^6>vV8l$_T&2naUgbF`ON-9qj(_*N&4_@nn~q-{xhFl!ad z`@;oAH{&wi&&b7IUfjSNhyX_dHk4nwOEI5^*!JPPXM;h>Z7a4~lRrC;A@y0_uk1CW zE5tRA_#DmRu&qe#bGa|q7jW0QabxsAdi$+_yA}J}Z{2Sm-&G|p*?7DVvKm+4!FW?! z<^!^mGAiBD@^zNNzq~-caM|983gePhUs--zr~cs{|9aK==#b_-3)ZE!!c~qnoJz_P zQw7vNA4Q6~N+}0ljm%n-{78_0{MxUb=R%_ip77-HSPg( z?`*Y>AjUaTLzO$vVgUsjouL8iM097(de+qWx3?L+k8O8lp?Abbc`1q2zq|@gAx_Cj1J0&(HNWkve=14-bo0QSJj#sS&qGkx zp}`D1{Ol^L+3Pu>Y?Eg-^&r**^@vG4(Ly6Rl9Wxb*m_9J<1y%0h9roNe-#MwH?{c} zt3M46!ED*Cw=NX@$EVAp<^CMQ)^KWBHDE6ws2T$CwJf(pu=}aEv@G5rNE0tS;!=bw zR0a7Y8#Gg-Dd~9|=_lC2>=siF5}(ZuSwO*Rqzyw2*NyaW7{iVxHwjc77Ip97q!#$( z6`+=PkM{F)C4=(SZ26QU>r+Hv%2}ETMjLhXP|{x#8G3-&#WznEt1ku9C!gc@Gq5WcHCHF;Fw>Lc@@LPY zONWuB(I?Us16Evc?JZzpMSyq#bY1!5NwwF?U}$umwGQ4zlSjbgdP|ccj+oFW)hM{F z!$V0T`&gu;xS%UOE~SN**i3ew7Dns&%fbIkTg+#Hxo!jS*nPK!?;9Q!W53U_goaTL z!6`LVg<1bT%if(+mu(+E9^8@_#u#v&47@8K;BuLDqt}??)-VRoaBe*9T|(sss@gGU z5naTtd5;Hix3pzgsrmY?pFk$kMHt?nobOE=P>9#_WIY_-@2B6oywQGixH*${CIck% z?`cwcrRrhofE5PC+1nyjZVN&?!K=Z5`{Z%@X5vYjk0RRyK9g1p7t-QC+o!a#3L4=L zCR;=d%n&>BmNKM6$2dnTe6myWmZ5^NvW0qZQjFh06e!K@#&@L$UyH8wReVx$Ie+Kb z_|QYnd$IS&M-4n4Ks)#eilJ0qedpO`CJiaklqk{VRM8Xkxzc0Z%UPM3t}Kc-vZS4n2+cbUg^bH?H6 zRLR?8xh4H)VB2`D*(j#Gd}%dh`Qs4z!9W4NFzVU8229s+bE=%miw{DRV)fRN2L<(MO)s zZl_2G47->+*Tl32E}hp;uUFYNPo`@8bsLXS?JH>>qE?Ltc)yDtZCrV5+}m1jc;w*e zg+0l;qsGn8nkzhUeN3Bne}lf9dWh4eESZSfS(96{#kF`_$aJvwuJic>r<*#ifkn=- z=RX9t7|qC+ev=Uc!M8m6u$Fx*SOvv^zLa(uY>ED*zjzklHsa^_hk@?@Ca&;xvZ5X1 z`Yh+1lzRXEHrp8vu95Fgp0@OM6Xy%i8ev<^P6}N2$0|?QfC~OOKgU@PQ(v;=$cDO!*BvTY?6#U{?qoaX9E+Z3;=@z&@#-MkycuL%=#HXP@X$l~ zi*Dj~PstI<}`IPYfi!P^s>eB0&N`Y zI5R+iYWe^P!)!ZmAj9}FJAJcgvLveTsk+^V3MiYb#vP|B zui)w9VBsQWVFio3`4S*o;U?~|yMQunzY7C^^1--qWN*wW-Z6olvgi4x8haB7qoiUmxH*fM2k<OD2TomDe~u^7xQJbfTu&=Dm+4M#?3GD}O*fG$XNjXbLVpXb7+sHUx!NkvMP6q`zIw0+j33tE z6&7jQnCYhnvW!l&ZnsJsNhkyQm|*CCy^BBPV}lHEp7ixiPNh%=?|rG6ZgF3-A8E{n zUYv6*qyXdV=Cl}x*+WH9O-4(d{L=D#UBA83%b8r=vrIuj!E!_%rBIwswi{1MM~}h4 zfNsenNmq#xqsA|wY*-a%c`CN;IUBMtWX_NAEnGblDg>X>D?h~ ztMvWuMY7Fawq(tr2eJi}7nkpCJ3Qy7%Frs=ZKTz`C4UFA``!R6YeB1s{^>0;=YE;; z{kh!uT}kGChx;>I$Tc2?l_C$;X*GUB8UJ!IXYu_(DAC*;DgKI^dn+!pa}g=kzOt>j z&SSAsM13E@UK=YGPZX{Pq-yM_uLdqS4OHzxX;puz{A>nE6G%M|5OKl4XM6~S@z7TINAJyNT~_s(+tTKlZ zyGYRfPddr-y?2eeYdG;M&XIft1nVQm`OeOm?H9%QE<2e!qjf2-jq~I=7D2F^H1Ds@ zsIWUYB-$Up=g{OASy4vMbMUm-HIY?M%?4QC--HrtU*~7Gs!HfUb#UAhI6dWhN1sOO z@p!%LSqFX}9)3cZWEClwmrAPYDtKa;ee12t-oc6CT(<_%HY}COW7#q0xY@j+IyDjyU7Rxp0rq>&zs)bAgj8ZAHlQnxu}3Q4?kFE#7m4Sl zYr>>iJ{=W(t}Lh)S1mL7O^IlU(FOodiE2;Y*e{$ZPwY>fW#sOTv3essR2U5{n(?l- z9gYqDJPw_T`p!mXS=CfZhqv7+U|V0AO`Fm%ILUU|568X8mp9gecrm6x+A62=$!jgt z%}RbH6trnF*9{5tz6k1WMo)65^LGNvUHl0V9o6}R}-Cv0l(QI&%L4? zIjWjFO|zc#dXkT5AD3)A?nPGAN2EV`JC;(asvv0|dgjB6(%{w<;{dblgY8Wr%~$V^ zUVCH2CRjx&t3ox~(S&Y=pX&4}{ke>x#E7A5>*ZUa(j#?ejGIr3n(T~1OPCR1@A^7w zDPs_Wr3|XL30*l>CMH)g_mD*Go;MWNnNM7gXXGt(j`&QSU-k+}$zyCO^xLnvN8Q`} zbC1P0%zB-%M`pNjFXg{(MEI@}^2`U#ka<&O(2Et`Z)Cfdz;wl|a>?Q~MraF?3OURQ zrUhb_{TM|+ zf%L?jgN2@A8k}_yee-V$t~Ly()y<|R+1f6}G z>iG_EXPlrVd|pX08G{$;35&u2J*CEzQ!OU)Cr2j9v^bMb*fpOF5v_V1D2tPsE>&fn zWH9PeQ)(aQDhh0Y`Su~qkW0S4p9Y&v-B%>OUw@VMU`uu!_aQ^&HF~bu9J(i``V%U6 zV_f4Uk-ToU(f_wL(w3L_K7&XG$LCoiGH*1_L&jb@rK;0e)#y&MZSt!TD>Fo`3XCb=ORqL{OI3wwg4pwoA0I#3@@`lVpX)74zYBsPC#Y ziRL8301T&go)2Tz)v;RQnF9(E&g|D`D;gOBUyD<^kSgVn^m!h|A@R@+B(P=IhI&D7LPr!XWk(i>UU|Tgy!e#A`?As7Cy4A zY~3EUOf!Z)|GHsDk(cat_Bzw%v51cmYiUl`-Zl5@i)ow+kkR=31`H8xz15O0m=~^> zFq;_tk|gcSZ8M5#%_oeo?Rx~xX$s=6~itXo461d3FS;!P)9c?a(S5j&IK)uo8?Awv{dWzB#o;NL}O-H*@ z9~K#Vy1s1tFk${_{o8Dr2>YPPpj>WXRXQ3HrWoZo*AL{682j2?SYVPV&%F(vjVrawXsZ;ss`?J zmtz|rET~a^GE%B&%u%gRlfnqg>J5_6O>aK3b8I0S*~YZ}y8R5z`W(k(O4QeQpUE3H z8)36EQkgHzkS?r!-71rPYgjXN$8>=$8h7q`Uo)ho5c~NBcP6vaK4M1GWI9ep)sd8s zfi=UuSr%d&eCf0DhN|`pA9$s!Bo=iO7x{7qhsMxTwhg5h{quz$OF#eZCHOgk&76)6 z$%B|dUGCw2M7y6fDdif);NkW<;k=9}NP{P@OARpUvCkoIfZOV0I4l5mRmIi3wA_kYirELCa1j{Zm=5PZAD$QBuC?# z%j}ej8PTg{Dg`t0kM}qyeLaJU^0gJ1`oc>#j|M>oRPVgC-YjY9T-x`uO?$OBo`WHs zcEDNtv$b(-BO|om&$ut-Y@qkUzUFMT8XpOVqzY!czNe($T-Ye^W*#ZhpP?QUo?%MtL$N2Y6r@Psl1ewSAFm|V*#y;`t+oo-Mal@K~L0;KrQHyrO z7^sW|p~~4HiF_Eo*l|9EO-R91t7lu?u_bNI z&$>qrW>a_6^ReS`1aMsE+zyESjnw56ZYrO@6=|f`ngCfUs^6kKUgxGdZPt=Xh#!mE zo{RGAO*P-4Bj&%i#~4^gw7B7@gk*dpcE%!H8G|8G?j_hy-=OrPT!`wV~4o_af=rGeVjMT8K&QRDa zb&fReOJ%UNE7sUQExLAo*3xxUgU^`cQPFuTopG>i^|c(|!onNyFu`V-m-20!SxWtS z8!@u}VAlw9k|KIA17n2#Q4pe*s$I?Je=^32vCIput+qW!^G~H8c#>ay@!t8tMf=WF zZC<9Xev39W!G#SI<~Iau2PdecNF318N&;D9<>SDI5*hJ&(^b`^j+)%A1=n4^;yt|1 z9YRT6mxEZ{gSZkHyKBVFK`-B`be1&>TS|)+7OyfT9Br-j&2UL5*kz3d) zIfW=ys`RmDq@aWCM8b8{J(Dh``UWt0nyCR((6b{S{ij8q6$q+WR5;Rjxq(yr+~+fe zjXPr_?OkWu9{6mRuSW(UH@5MW6&*%kSfZL=WqB_7z348>W@{5VdV~Pha2=<<)U7J4 z<-a-sNPw;6!2fqK=SMRBDGq)Ace2{-b#5FX&ck;x;`aa02V%fu-}!4Ff=yrwKgd#A zqU^fGhl<&x6J+9Ala2fkp6^ebJ3Cci#lVeHF4qSh)m;gFVrzEnF4QIT3?o7u7S-^S znVr1jd{rP3y(vl|3@FebGj$+6LuFe%!#0TH@*#lcBSRo?g&Y?b6;@9;_H}S=@N4&J zs`;SYWbfE5U^@nzm{ty!jaYROl6pRAG@#gK9yKX*HNS7aK(^Vnl`BnGI9=ns*c*Oy z-@_0++Bvr!+k{4qX+4Y3+j*3}ae{9yCGG39{QUE& z_2;`A-k+Y=oC4}We;<&Dwir|Mu0gs@W=f+$P7hX)}Ie&1HYG`>~URfea* zr@%FBnTk_y8`x`B<`-TL#k|<{ML;Yhbd8v#DPd*U)EnOZg#YHIcSe215xlwPZTO&3 zLY9IN{8<&oa$8?ipZ7Y~Ixy8x7-+IWiB7TzOOa}U90SdI%(P_=vdHMO8|_vdeH!Cx z0N{X(`#8X4!GxF6zfIaX&jQGf6aZDEmw<8Uln_Nx2 zr<#qTF4ewpo9kO*;VrE(pvLO`($rZx-@)#)IY_QAA ztToj8LCoi;;2g|vP;Ja#pZ<_dtmF0Fw+B}rxYO2fOjy;c(mL>LOK5|FqX|`h|n}=cC390586k zvQBRkp@!*K#D+jP&%Ox+!_qMc`C9Ju<1;6lu;753b%&~@-}MEh4jCk!37w1am8Dj3 z=Tk$BQ~2zVn?~>3#R=yQ;=oKewCiNPP4$x~&HznIA$&c#HXcS>JgyvfoN zk$mZJ=cC1bj|u#rWL~QyxGofd-iIL zl1REs`UW{l*Zz`LcW#E^&hE@_UGvX|d~WO*QM+75uOH5a3uGY6cyT7r#))}>12gSH zQVYjUmV?IM{1o1Fj_I$N<-nsdecqX8M&Du}`fNyN`B!?4y>FaMq`AS)?vY1zS-}Ii z(bkE!B>JX5{#HN2H<eVrSa;!3MeX81NGy&pB3A{^s$Nu zt$uNn(g9I0mDq1!JK4O;dkrhd6VKh$j<&}b66m`P1Oj)mhDghK&&?!q<7HoiU{y!M z$v&sicAu%b*L>a7qDo?os7~#A?hkieV$0c(;HGw9c|<2ms~)y53Iy#sh7H*4`e9MN z{{f7QEbiX7h87&NuA5qc;PpA$b};l}V=%@~*RnO1Q&w7a4WSy7+;9382ej!-PJu}J zeYNnl4%%9`WLz1tKqaQ?s$aMM%v{E7mwPH064hPnNxnI^y_MQco zwtw&w*Y>@Y2J1Cb*0gaIu!qdv zK`OwYV##N@ktQR-jr82gI9Zg>%(@q}K2O~FtrEc$_h&p&dNQ2d^`c+=p3eE}4ZGhE zYGXBK&EfQSlj@>*TrcW8`q1fnNPvvPw4640>mUK&aPjM&YE!S00DWJq!(f3U_%ZuH|L)V}il-C-q%BnbIHh$fKf4w`N(Dq~F zU#C%Tf5C`+RHV6j>{NX)2Y299Xb7@gQ~&Y_UC8Z3C5LrUSp} zMN1aDi?S~{9l)__8nDV9!2aHv-bK!Nt-ESmU%FH@46LTcXPhXVTN_`Iucz%wr!k3` z^~4NjVusBOeI6OpyORQ0PNihXW2aPhedQ&|VA{?U>64^1a567Waq$}-7vXoA*5JHW zEl%5_6_pb^(XMm{2bJ}X-8H*g`UzuO;+HG^ zlHU0tmVsw?STc#QymRjF>+<-wh6>uixvB+>%`eB5<_w(vHrFoSSpW2=-W9o%{suos zhu=*R{vZFY%BuirbbY+~6|)|$6AHuD!$qMTT>gh4UeUoNArUF1Te#GbY3Em8zEd#u z_$rsy!D>=EK6TQ%CbyDRH*t;Q^GzLGFRrUqug#E*XFu{`EDcagSm%&Y5}zwDEsIv8MMI{J0s*s-mcu-K4E@(fF2QR&1uI2P z361Jnl{-9_?cnODgd+S$t~L9IB7(L%9?`7~gi>M@rWhhS{ES?aI=qjTQjQ0xZFqT5 zWN6Ao$L1V4BS_(e<{*LW)~0;AnXk;5nXLe zW4A{(cZo_FJzv8eG$1r-)v80m-#K|6%aO-~G5LOMbwh3!T*=Q2>Z%{#Cv|@?t&#G zn)@ARqto7_jpv0aKCSL=nnQLrE(-Zp(mF>VKh629{=tSk=j`lBjr@b6BXSSRw`w04 z`DiV6A%#z@b<4x7*4-A?9kpHKdGqg^n)Ul#yXV?++fFZykvP1xXi}Fe%gRjVN#d8> z%7OWzefwe@O+TQqZnk%!#zV43f%H0wvx;4Q>TVR0nOi13Xbjir&8LHp=DXZ8yij{_ zUKE#znAndu_WKw7XCMU;`ZH1u73i8OR^Q0jf2Bg5(h&zQw(le;kSL5V`#6JpT#aC} zp!U+M87>cMuyj$r*5kx@;&Dx^Fg7s)5+RIzW)hw1ZHMJY!rlC>KIpLyT<=F=N|ZC2J+lzeL=hL*%2 znNXz>EGp6$z53}%{B-O2=0F2yAInj@zlzgnO?X7z%mQH`6)QWn#qV*^Zb(s;*6);% zR?g#Wyx}0-UX|Y=*YtKQjk|vnyq-BAROnqsY8Sv9hc%7bC+4t2mZlmwM7RrmEOQDk zb+8tTX*_ZZv@hPJ%w?~2+MCgQ`)RBckIkFhE6R=Ew4?TDr=`oPQ1Vio?6CN}DntKl zc|5mWJn=kh0K@Yzp2U8@T~`vX0Cc)^=6*&T=bSn1V)cmzdv3UELOMbj%hV5>%?W?Y zStjpv1Mi3{XgfrZRW(MvJ#G-V|H9Vhm1A~A9_#iP`OnZHJz-yBMI9(P#beP6t* zj#j3TY91fp`wH_isk2dVLujvh?U25_DR^!1xI80Wf8X|yj$S>h&=zCoagar+U|HDe zFX3KrB7Zqx`elZ%749~sFzVYTD!3IunxZbQ0sYq*H5=GXx0@0ydD}DIcH@Q6xe5v=9!r$)yeA_Nw7ss^4b<&wkaWOABLyy4pUwB;V z`L9rpSD5U!0hyD`?R6U({?o4WPkrjIf5LYRX+_$1E;j&Yh(hTk@vRa(Iwx)?Zm16b zB8qNOWf(?%hcTB_s_G1uc5dLx{|0&p;Jvj(%wlq^HeY*##&xk3_dGQcgVE2a*VK?z z3A{E~+1(7Q7jSIZcILg8E<|@Z7Hl9~#dpN`2-wBS{RS~5Z?@EGhoR{+#_;VW;P<4I z<*B?wn323g9jtRf58NZ=@lRI22p|0T5?=QUXtl4#Ctp;3Zr88fyy(YM@XB?&85@ML zJyq)q>}`8G15c~s%Ngz(b$qd8__iOLfIlBI6r|sXx1I}|#5&j*cBY6JTkW1m#EF-H zYdw~D-skggVC{7wqc;8m>@h4KxuB>waMh(Ntve)pPh9D-o=o4iXI-zSSNr-cYW(k!yvK7STqZJf z9okuQv76ZM_YCM`4A=_io4*kWx+IT94F8P=yFZp(d+K`k#9Pq4gKT3!qIvnka*@!1 zSIkdH3948&Bh3)8mw3vO38=I^cM5uwthVvejmeMz#tcG|xbISAVIU{+$x8>w=RVF5Y$FUmd&uHdeCtMOLPGorkVT7Ggg#i;vT(#msr(0<6u^ z*wytOA-0^t#U{c8$idZFwx&2OWr9-v z!Vln59k{yc%mEfog?8o|dpl4b$8e>$04XNK$XcgKW#TQ@&$y3S{d|}6n}6PLy0IGj zHWTp+-8H|Y8|?o%i2fA(e-lFf6i;u|apazZ^@ikrQAY;mZbNL!Xi=c`2`{SYfApAdIvlC3h?7^mysiINKjZa=2v+8|K~bH>$V}L2Cy!z=e?t~@eXRZY`0h}Y(|b*cd^XV zE%2R5#1sgH7>gCLs1>M$qK`m-_w%&+!k9YVfx!sQA7lWK4;8IVg6UTITBd_mhooO8ligYPO@_4GnZ3uZW}ZXQF0T!Ak9Xms^{8-ES;E z#&5@c)VNTh#^(#_6UZtjQA)6LeANt!Ke8{k@@qngclx>nNPRd1OteUG8par1=hQ9M zhOy=Cx2NwbFaP(w9a zqcK}kz2=flTaw0z+$tFUZ%76t2?FEVgHbzIG`QFew8Y}^l$Ps{es1rndbI!HQo+>z zI^P4$wzWEOd`%#ufa?0K`t0K%p1%l!KVm;QCToex)qLydQ)~Y9V?0yTeI_VQgxNdL zHdlkHabx+OS?@pykWj@4Rs$4^cB6fRa}@3}M=FKb$=r5XPz>df)QTs)S|C9*L*Y{R z@`o3TPgn2a(Ydin$zOH3zb{K~7bJ)tB~=Cyi!_{Q;gqkwf^mmX)u=!YPh2(XkbB$9 zqc+W3xmeD*6GeNZEwcNTg2sA8@)%&Bmx1E(04KXVhRMZ2hHPl{TKn^t@*>t=U-J1_ zOrE!1UH|(E^zVa^EFTBE8Qd8NF1Fim861g+OJ=+Pn)`-z7SgdG2fL+jA{Pmx07Ak6 zzhpAAsb+ML4N~Ms9VXAZ{?$urB#~7J7)`uiO{&5#f=|Eej<%5SYcw~slI4Egs00Z| zV+aJfM;WHPm)@S>`t1!l5{@sm_G{9cQ~&z00xL79wKYh)%PD<{XTUPYSY0l4g3lkU zB~|DEDX<#7TFb}j!d%l@Iva{yvlc_&HXJJt(Ws9tQZ`&AV93NGrAu&+5^_hbHb(U? ze6$M+3b(IF+V?}WuO60tTqsVqNMOe_2Wm1lHN!brH2BOV0fA0RPRf+^t`kHaLuQ2g ztOhoWc*51P?aVbU=wf}PXynAHg+IR+76>=YIP%Q#ylkvQKqAx6Kl=ZPRP5oqn8w3~ z>XVJApsG}3u>zaC+8H>LvDMf^AhLGrlfu7Qw_uqN5LpB+cn?Awk=S?#F*KrpMb9$%$cBQA_9Jq|78$1=U`E2VbZGMjF#83XQxx<YIV zCTa06I$yo|*sdI*6EBP2k#tIS=RjDo3pGJ?QA1`NLZBl*o+pDP3sgprZ|k1ji_YKQ zd$&f(EiRqCR8Ll_#sf{11KK+-p}pt^0&p0Xt8ce)bp6(mNVX0coy+dF7u%0b3&l2! zYJltS+Q9OxNVZpF0w<(N)Pypbz{yFOn)s$@2Rm2W(|{UQA)#UyMVD_Mc{JF4cuVG> z36tw4WI{mcs}{V_ALP-oLFf5lVvfQ*=9&}N3Yi^Bh{8GpDxEpt zR}vYbk!b@gW{+OazQlTJy+)EeA#;X#8^dYvH5XSV8t`|}hp@jQdh+$1O-dVP#kO?O zxoWYIHUw7t8nSiy?#b;e`++#@oj%hSi8fFXJhc(b7M{%~Sw(~n5S9Ruf9R3eQT|u* z|0&6mt)?|7D%a&i1%q@g02JGmhi`6l51D zJfuog2vc4rLDA zan6M=Gn56+(+gSaULcd>H-S z2_}0+#Vu!h5+=uInJQC~KXm!}{p^erO;klk^$h;uC37p-%B-5wiL6(J&I&^5ty#wv zRl_^8sBx65wYpBR7~(pWrwJ*zFbQ(PBvcHT%!p=|O|;NaK|JNG-lSI;&WVDo(#SPy zFQaCa5(OsT(I`WAF5h#t8dT|bPzfZfj*pQMzHVMK-Oq%zkua;SU}=WyX?NA5ODJ(a zFxOm9Sh!@y&j<3~Z|yyCRNY=#$MV;Y*+rQsb7pWbB}y;i-jssP?AjwT2?eujzk13} ze8PBh$w?!5>#D2*h{U9#ra4C5l37#6;l*NRmak$ed^t#nC_KZRH)m0azOzP*5`_d~ zPCa)bE>@X`TayWaN3}kCf4Z>mg$tJ1sjZ@j9MO=lYL&cJjQUE@X}I@`IddaFXBsoN z{0MSfw%dM6=FpzWmR#3K#<9jeqwu5AM+y&R3C3l}i8Ul446)Q2u>JK7NQY8IR3^UU zLtE}2)fH3RPqC6HjZ<6CYKkF`0$G#BW_Gg}vi2ba?Pm2%D?Wu4H2d5EXRh7?fqInh7wA67r~%!voUdAK`->sh;2RH-QAkJKIi74t$Mz{){!%i zIUdhRcf_6TeBSV1Cq}md*6Hf}L0DAjDdu&x2?GVOF7avK+Zi9!Ij?zdtyhPAtlENN zUx~vBYh8Ma{dj8;TZS;^$ozsX@EuTyrcxIGF zZ1)ijER-D|cT;qdLk?!Y(8;z_LBG7F_xka;RUE{y?B5srU;orLiArwFmD2gwPux>h z9NWQObGl$Q(-%)!Gn3HWNR~UUqJ4aVl^M( zzP%8ijBh1--M|jq^8#54e^Ru}>G(c-gYJPsGNc%fYBuO|>1kD_I|gdHJ-EVMxhtgf z#^<%{A!5N2XNsCbAR_L5YxrBrMw^!W(~X-bc|$&cbh6sSWlp_|2pzPmAR~|bZOXqq z0lpd>`{(z1g1DwvZ}ahD{qK*3Y}E`b?eP+#)M9Kb@@RAiTp9MEi>d2h0DMPGn=MRS zg9dost%Y=-pwKl){e+v_+*wlQ%ctJXAy}aQeCq_Wy6Q|*WH*aUz0n6a`GpCaD8f%r z7g9F70$U`fyc3PCu%$7|mNCr!2pI*^lv>0-jG~wHevh#^RB(hZo1m9YIzuF<<<@Yk zpDffALzmyo#Yf=@l$o4R<~AE4ndS_@Afn7azA*Vv0>opY&`9)eFM3p#@=Im%*QtPB zD-jxRDy#dE*cB-7bzNrbOo?fA=Vd#-L!pMJFr*=ero_HfIJ09ePYlj3lX&Xq*%Wzj zIrJ=3YPs2uGtEqM(d=uS)5C2sSX0rCD)>5WX#zu%JK-eV)@uhcz37|%9!9kbkIyVL zq}C&fkd>CIiLld4MJmx+?q?TL1{kC9JYU?Q(i`Hg6QgJBPp2{NiZwWoockahzbV(X zRodZmo5pI>5dQHXFSfM$9M>^OFLG`%yZOGnc|yFHDrA*RQY=LmcjVDT-WzqW4aTzV#H{8&<{x$#RbERXFD1SO*PHIN&L@?3eyuh1aSjfvbHSlc^?SiHA5&S|9seIdf&xOU3#XisNZbU(w`hkpKjjL&vcl>EGv-`%tfx~-~egXTg6Fsp}(|=s@Uq4vj%cib= z_*BM?GN^zp&v@-Crt!tSWGA@q9^R}mvR->gOVl zHnWuXD~9XK@V+fKn+lfbfB5pD7{4WXp6k$;OE)!`lF>P4jr1)@bH+W^xuf=I-^~uc z;k(CwzJNbn#cE<=*OQwT^aGpVv|#4090FaF5Lj!0b3tF+z!pG{_ny%milO{Uj2zni zgg0Z#>Ux(4Ifl)e<)r0`g*2=jLlwPq8C=tvl5MF2?S8{SP0TChA{jZYlgrV~8__rt zYq{qdI*UDA6zhEWie10h7=6z~-f~8D@ZfmG*m9*Nod!2flZ(CA5XfdB?en=5HG-JdpOf|H-wd zffKddLvUtTK230UTB_4S-Z;Y%9@msSv#!PT@t9`UoqMz_M(&i1=uJv5c}uVDFBOxw zot5iw>hM6Z#Rltf)-2(B?X!%~Q(y z-!M+SqK|JL=`0C3p!3+amb zE1=Vy;XmQRcZ>JxN1pPpPm^OV_&C3q@L!)VanV_Kf=@V*$n%m49Y9X=sX~plw80zx zoxMM8`22LrQdZ%VX=c9<`b(dg&wo2JM4yQM1(|NWi`V+sCcGdW>l_KDPBDP2|gXu-EyE zm}2b|(`=pR+H$q{e^6jqGZvu*F9$?E`IvnhQJ2~LGNi#OaAZ7b7uWWWtxk0R$0f>> z($rRa9NLQZZv%xKIm+AGX!Y954BH;DTGZ3GZhj#6_1vifwWEVBGTU8yh=WTK@0w1f zoljr%N}Go@`_Ua6|6{_X@PrgnlP~{qIIGH;!m99Lc#eABxlFw1O@_WMbeh_CeVvxG zPbhUJl@HtnXK|%VC5inW!b3Y@#xgotpLqEA(jT>+`{)dH^%qz`A8N9$h(;Mp%sZ(R z&Q|(!yX@xdM=!2Cy1@SFl1TX1j|SO>?_=$Ym%?tis>u7I{mkLZ-%q)$=KQwF(~q7% zDc}0*ZNbn6w?)KxLfr7bpOSr#Zx=4fqG6;#=gJiApzxt5(9KEmk3|EKWf_YWLWhty zPzb(H(yIAwE&o%M^8NU_pO||GI#oEA;ZSbvAv^BQ%of>wY4WG9c&omPTfbC>q2!<< z;bmOEH{Eo#^JFe8S{}}`obuzr{reXD&mZ`I;Wz&qF!6tm<-cQv>?q}ipjtUs6?_Kn zrdc#UW}3?8@H{-t(fd&Yk@g~2npl})FzYp0S}FIZPxJGKtGZJFk1tzHdY*t`hi`m? zQbi=fpr&@cd#<4B#Jq@`tNn(W?W+uLuN>nyaCQr{xNi0Fx->(gCNM$ZPiJWg^9~G# zJm$atZ@%Y`Z;Wt3RIecAzl8`nLUb8*Zx*1Y2uNW^LtT=neq)-jQt-upkQx5;*Osn^ z(H#Nh2)AAL&O3XOj4{}ZhK$yVyyCt9K)enk zTDb_*dl@gPnEy9_S(SeQYGhcO?4)(Sc`DVYhcOzlH#otp9J%k{y$MkWxMHSted#vE zX(qLbno05vSz8nX6F2?&)e0QCH2c4wT##3zzs?`{D!Au+iCH<|)<~jH0P)aT?Civo z#t&!NqGg87#y`EtUvjGKdv?q!G*NI6Ii>k?=7i$dn0{_6dy~kevRW3E_ZIFtxyM*T4B@WhzZLBVym!4uVhmH82Wmx7y!N@ z0{iHYJk(-;J;i=!y5CC4AP*4^JgT6z{x(H|-fD;oNZq{dkTF!vqWeP&M2L}4L;@Hbe3s|+cPNT)=jz8Z<7h#X zigr73IJ6!Z2L-$tBX}>tSjoq1^zJNHP5!Lm@1Ma#{6T`3O0Sq^ zbVZ;vq}pm%KJ|Lhw14*3FR(Ju21@#?f~8c3`!aQI{-a-?5KfS$zn6ZM)m(1iDFhI=ft6AVhBLaa81B1)I;V(jl^8>}9g zDCU6W;3e&72q?V;U4!6!Bu=dv&ljHXM4YOPwQKe@4BX?gVB*%5vlq9uYh#8Cz)pfb7V!8 zxKtOe6+A|q&IJm;wWS|3KtA?7^c+F}M$&_TJ#oy8frd;&V~WNl>4XT)V!&`7%SraI zuWp(N*9wAj+sv`cJpX&_$<&KhDjIP*Waxv5-fw)S>Ayv6jXN6VH9(7#Szw%br>Y!1 z7ZAck^idjCtw=NvKo!n;>*;rkNuejSy5 z44?n`3CAW%lh3b02=%xqa34Y66Py4VU#Jvzkv#CbWBs=M;xqvKslQ+1C_%xLt#T9i z;CI^`{yre|nH0Xf@o}{m_vqS#twjfd3^Q&zGaho4UHy7vRoo5PaF4QxLwCkv<)+`o zL@>N1+3(Jrf3=Id8FPKMgc8ppV*Lh!>ftN+s#CGbWSxE(m z7Cpam#f;kQYkl;SLkENqkm2G?H;(5DM6MMr}K6t zkpmz`1w_D~;2i%x*tmn&mK?AAtypnoeH8Q$cvBzy5Lt6bLO%u?@`_bzli7H8j#TVP zRO?08mHUR6_ppjQ4 zj499oJBB)Ni$#~Z+>uw#R|(Js^LjbxF~VA6R}E;Fq@U}$LfG%aYqwd`zM=nICV_Jt zm#FFyQG96tzM!sq5P*bz@e5aM6m5C4tL5$Pk*?jiuryEYzrP|;WoNUuTHuyb3&xHt zoA&*(IzeIjW)?4N!L*s!&pzFc|Hm3aMI?hjt|Z#pK!l{RShsDAY${!fr4|JdevsDg z>>FY&1fu-fv&Gw3erH!7rTr5E2V{^27l?kqmDi)VJR0G>h%Uuk?cr<|`EbWSg348I z0AlC-fW2;`Ubz=7lNbBpgXvq1G^ahto@5}Nmw5Qe{~acXo#7a@Xq`&(6S@+`REub! zejlQ0C2BgPmBlG!md~9)d>t|Wrp_NIUN_yF`Omp=Ea5i#{Avjy>yvDB68t4KU$Bq#TRPp6c-Y z&Lf}p*SueU1h-B;bhly@xPMU8OAPX!Z@>GwtuA z4qWL7k-SidYjh0v0~B8hbyUrrDGS#I9=;oBURxR3*W3t(_Kwv`N**6G+u!ZW7-Jv% zVrsJNuEx*d!Z^f%i%{%K<=wo0cly8kpVKt$zXDku0Re77WGVtylPJ{!UVM0R7oQU( zI>pUEcoai*WCi5@*r@I@9Quv?N`ixez-FQEOC(jA;DIFz{N#=BX8Q^5NbVwS|9yjX z6VXUM9%2BzM#&lmE^f!5A{R<#DL;Jz1cnqyf<)y2SwY?GMnFi2V&DXVyM&L;oON9Rwo} z2t){^`(Ku&j*SM*n$r*`uBsG>^57A~D&Tyg6cfj>eeNBeyC{!0>q`B9S!N1H081X> zjS->hI3QsPZu9L0UZNZb#Zb^_LNN8U>U+DlA2NBI^wfdp_&zWCjZ48pN*xtaG5}jo zPFHOu;AMcDO{7@H!!*XmQ%F`Bph(BGpNdw0@F86(kkzqe2RM1(#oZ{2^p*{i;M9I) zIqeRAP7EIsouh^R)nTSyeOUzL{gQjT{=o3^6~iVa1TpAnhC`Dk1kh#Tb!s)x)-0NU z6}!orqq+8n&GNG^L*!Ujt`sF0dSXpXs%&^Dh{xP*^VuTR{!Z%Q!HEmHH+i@T`v;UM zDFF0tU>;>zzjRArKFq7>KEQ|MU{k30IK+l`FnPo{sz z0tBdA*eV+O8#{0MZ;>dbKyvwpuTbCtk}VxPe4_jhw)GCu3qoj<+ZmbV#jtcI#6*0| zJ~aHs@ow;2UI$ot$C6kz~nx~Yu zEvul2OEs7Q{cj_kIj4V2BECHXYJPHb(fk4y|T%BZ6icBP&Fp*%V^OOd_;qt;T8{|J_!q_1tUjq@NwSNt4b35)>36l(tm-tl8or>4*Js7GNuRLlSXw;V{eCh3VZFDawR}n; z$DbWf?o8())?_t&AB}5$0nInHUGO2MGq*hzmTILb=7tG$6M_?qQ3<*BM~t1;NZUmb zE+6jGaQ2Tk&#%xt*=@*=3#b_GoSI{^RV_c=yijFK(MF>F`lI(RFhzV03jM3=N&k>c z%gS@Fuc}EqgR1PxyZxrzFsOZiS-gVQ6kY@;y}q%llahzy9nA6qIV4{T`!yE6YE5@Q6(C`ZqU-Ydbl!r38^ z*&y*LgLo{(iuar3-;_g%x*v;?%#NkpkDSuPQI0Ua&@~AL08y<_XjDJyB?158>OU8` zs!*)95vO|6(g}IC?1gZMMH9~B8KibiFaR~^&8-rvT^sq!lj7*P&WLF6V^TQ+xf^NB z+lfch-8}~jRWz)GBNz=+*=p=kQlmI^`*d`hi|qYI5tr%&`RpLXK|u0a=r|otajkw0 z21W}OLHq6l`)fcKW?R)=A7pNwvrt{Ub7PXw_)wO4!{F{=fYUcaAlVjT1?Y8kIdyKE zIjDY|O)0@(&F0lJ4^=Xdt3xD}T1UX*1YO9uzVChr~W4Ovbb0RLXJPJz6$V|<@ z5UKHI65vRq6GCIhP>B$SALOjXY2(0KRqu#*$*_}laZ8n~DhHF~A)-=?#{r(BP>$LR zzlq9msC><@4lWQ&sC(p^z3G?1hgF#hl%z&K2K%-kK70&updDyu>1BUTIwdM7+|P2% zdglD1eBJ}+XCG)T+Be<}y}Q)QQgo@QYUVo;}Q$c`U2}6 zD#E8JxVuvhq_2us&)28Y3y274bGfer+`hZor@&)(Jyf-&05~Fpc6@M2$QMarIMRnB zn@6jyVhaI()==C@t1Wwx{6@fN`4KGBc#d>{jAQ&%4Fxn^d=NITK`pO=EK!oRGjfvP z3mAQpKw!3f>tLj2bck+I>{HQr{mZE?O1Z-S*=f`KON5qTv7prx;_g$)S3$H)Vo}ST z*>HsOVPnL`v=z)=eA*3EYxeP`K_Mf(uj#==hD_7=n0C@Y^|pxJO?E2{nMZ1gAu)1@ zBD%-#7FfouQ@doq{E7BT;+uS-8|ERKjZb`;dt#;xVvR{*{g~i|Q!5soQUhXd?Bu4e zwF0X?RZ;LnuyT^{p{9$9Lm~a2t`-gkTri*;{UO1jHYAtf=*XKL|6-lQsh90EJ4pJ4 zXk@RVqnW(?(JN7};y&1l!rCmd6J&3kKHed}0umU~>M*FQ0ZsEAyt@=Sl|+h&`XF%8 zp`dJzAO@fBgeys&(^{OJ{jwXH;ge0Y)~Yw^-*zFwQJqBdEiGOP;n;Ze7Qdk%vP*93 z!q*>heG*b~wH2>{8(ngqmcuqq+b#_?x1nSqWXj{y9AHHW>#l^%D zv#$@fM&|!|BqOnp0@sHZm4t#lrL}D5JOl%iu|Muxb+kl&l;rIjZtnhwb5JyUg@md% zMdb2vzlqxyJM57=pvHdyrdnG4exi0sns-$ODFuS%%b_7)klf5p8b$BYtj&$m-i%Q) zjT^G}rGdx1?o?SAkNPXMP8-|x@rHFQHlN!feM^o-`d$@r}Hl$Spr(YsZS)U5E`m443XLMN(lIC~6)4Yp+uk67F(%zvk0dmt=h zAD;CSG>Yde-?6!3c6L@;n95cGT(}0q5P7U_h36nqN9j{2&-VK$41QLG+diev-I}&4 zqL-RRUS5bG3=J~aS`;O8Vq&<^o?M=Z)-Q1ncXV70So*f+z*v7+WMGY3o876gmBR7N zvHZx-U#p2%-}vXuesut8%v~-B_&>+18IC3EjM^$zB!d9B#d<(rPWh>`jKWb?y58u_ zmCVExmZ*ng-n$%atE__23F4eep#E~JIqF5-!z!)|!{$H%)NGW)*~)BOoJ+N`nF$#* zArIlInRd5)^eWCxTF2!X&13>ZsccbKMo@c%n?iyx1X$aSIEKeDB5RlTm_rfS{3CBc>92!Xv|*S^n6 zI>)*31{cMWO`1mK70wrd@1#;xuy_ZMAkpfEL-=!B9w=CHGD+N&cX_fQ5wh*isnjYr zB4a8tolAhdOqaFT)CYP`2+NIcfbThB9jVUW8cAC{a z29lX9Y?%VLn+Eb`c$UxmP#rfm7AYSsS|%9)i|&ZXXPC#=waduK{n3dVm(fM-&}XtPsUX z^<(yzBiwR^Q`@%N0sEn%=AmC16M|{?2>f=#5u@_CW7Ag-RK`A~NB|H!5Y3F_alQd! zRc>y}_+{&vj%o#h2ev&8fm+74KQuaXN+e&@&7Op^J3iqs`tW?0xg?n|rW6XG|JUKC zIml>#xmi`ORY7eZ-J>V&60N4XyRMgAdOb@Rca(Jz^F(mD zSlX8i7OM4Uo6(j1aHIUsf6i~S(WxIpu%64B$#r$Zi&8>1PGAZ-4pc{kR&(Y=eIx|+6s zKa8&(#q1>9olYnm=YY*TvUbiM_3W#to;sbi!LEM6AQ96Ze#?U)^j);ZrLZOshKo`6 z_rRtWf?P@Z3``fbvOU8xrBSe`u(5M4J>Dum^D){Euj7U>^)w%SEF12_snc+YNnt)0 zT|b%Z5r^#r$#EKCM<_sNQ%NfrZ=ySs4_X12QJ#<~dVF3CPxm)H6|IDY)ULs#sKUKX zM?m}|L*z+ygQuc(qsXq6mALQlz%3=fFv*fG#24}zba$=c_+GtrK&$@vmtM*8 zoO)nV%nNM`t@s>O+iFH7Z+UsQe(Im&zFzj4T@D&{r9d>)$b-0T3nl|`lCC21SR-A} z<}tjB3_zDQqV9rVuZ!L~ly`Ist-)%4ZCN$4Lrmz!@QAehy<;ZxKIM&RG;3KT9!Gzm zc5on+%*>e{eo82$h$r`C)(e6oK)^2%tXl!SWk1W$OA>tg1qo}Pjwg1o{mUNLWz8ct zsi?8K*xQY!jH{}vpm4bq2C zlKf+Fm{$3l+61kw@@h_~agv5B`feC=_Dqh0M0^%Tjr&}hH?O!e!#)hHb?86TEU8Gd z_w|-a0%57#ZR6HKsT8%!G##8%Vp(2QNVNYu4w1VDd7N9a-I=%jHEpm$Yhz)qQGc(D z3iucptLH-%7Jo)jr=pgG%8}BWZ|aE(+&Z&U_);nWd;n&pPGrBNpY7N%kx_1}!xj23 z3L)wX-kA>%xmoN|>)O+H`#X28bg5UH}8yx zw6rIo4JN#z<&$509e;@~78HKvx|3x31`T#K%#q%L1160@B&nCeHJri^`wI~n1FEV- zNHCPY=w(RQajG#@Vyh!iLix1kxnOiG+lFe)&!m|6*@FC%37VjBNAIm8E`7q<0Z&cF z)44MXW^raRSVm>7hFtE|O$YPK;N1`v_UPTcUFS8a_O|sZfL*6R?@je${zC=@&+=(9 z_HX?K_XSj3iSH5rios_pq$!T+eTnl+R}!QC@cH6+{p(EcR`b3&0IkN)8@NxMchW@~ zs!Euct>)^0juY$?ztU@upmBaub@6O?mG$hy4zaV>diz5zx27-DuyxC(TYQ5_q`$B> z_>k}Ck+br`E^o+9)bR-#-J(pKkL}i#bv~a*7i-DPrT+Y4MPK(ee{ZJ*0#K*ADWB*) z2Lj2a#b_)@n5BgYJ3Bpqo|3IW(%8bJdCvWjgwNOdzzA8vsYvfPTkXDBB-rVXzN9pN z{pVz!2hW?*Mr*bb9!Dl;_SI5!9_}C zut;WKh;;ms1*hXn)?9a2Su^VKr^1VLu^6ov6E^AN+CEESeLvmV9$ELXo3HUpS?8eT z>pLIckM>*UtilvcK&0*eEHRJ9-DQ>fqM(dLEaP%wY%4pjKYjZ2F^V1Zi0{166c65!man-HfG^%Wcu~X`kb_6Fo)- z@934QWvjz+4&~ae8tz6jPAh}CtOGoWJm+wtkbJic8S~I#?Vp>|f4}YPdx=10IqA!3 zBwT;C;yypIbTii&c$=Ws-s{2~WYr(IYt9}Yuj1sg# zKI*IWCC%%uThlWCZRh-|JI;@^g9>8jE^k=!Ac56Ae=uQ~HQu7i#xm6DmZj7yfve^$ zSIn&sIx5!M4)FCXTV(C$zMZAkI;U@kMWc6x^&2nPx`qHTwgd7Bbe6IA5{LtLZPLt+ zdph>=zQTwr{QUJqJPnlknk2JZ3HIFuH?ElN^P3Efl$S*;hAazH^RD9Zm-J+*8oX=H zqa~VtfcsT9A}&w;#vZ5Cy3heWwz_>tJ3XAvzlgJ{Vi*<@_;G8o3ZWAIu<*pMAK~<~ zFOe{cUAq|V7y`+F3tHeuUBP#`WvvRA(#!3&=ji4$f3PG`!u&Z<7#7*riI^7JL=hD% zw&xl6VvHh)wutB+g773#;Lw?35;{|`rTh{4%5NpF_Iv@ona80O29`JaNvf(>m!7us z#XAe=ipibf$lK?)78R9q`jtjIR&__&f%Mxbjp^PHX{a{ap63fCAAvSFIZTD|HVos} zzDS1Rr#`WWUZlHT>`uZks(qCqIiz#d z#^{oCQ<{7-`j}+wXTh-Z*hdz*x2fxb-_ctJ?Jp_`@#be*cO+9#{$%}iuUnt*RdfWt z+MVRHodx((!iUv-ZxHXd)BG@|EACXz@)BhjZdco!mpGL1;kdl~ErKdW3J{9Egu&~V z=jRDEoh$Ru@O#C;uQ`dC6xp$W+QjxY0P*_i3JssYrb{+@e{MmKie64-3`!-4%nJ2r ztz=o-u(KH+Q$+~9%R8;0ymh&?=ZBwF=L9t0k22!iwoR9Xnh-g<;3f+UiIL#3~8438cb zm{j_dFhuRFyh=&(&b9zaq2bl{t+(0l5uNJlQr?egA(fv}heyiW}TuSZ{^CzsghAo$82BJnBs- zBju2y)@(;p>#XB3S?VSn4dOVb%tlqEE6$Lb4{Lzx-J`d+o1PSe{VUJqPy}q!DWH2n z>RqsnSJCmsfM>L-17T!mO<}G*B&&Ck=|{>%D&@*vNE5WiR~hs!O3Dkuz*k(TT5w<% zljR>NVfUWlr)q>aS0AUk)3%f`UbFo5ZN6ZLi@fK!SE`IBBI7S)TLM7{N`{`~51;kB z6dXxy4BC3cy;3-DK+{y2sLl}GCIS$`P+b?G08$!%Y&*~JIcD%Z)H9YESHmT@dNePq z>VzUXVS|0vyZ2&85>}-;Kcd)1PQU+#epg(Kz0Hw|j6LLk~SDLms7w(>FvX@+@>e`3viz zL*H=$ch;UeI;K4O(eBQHJl8wtm)~&?R2AM{*sB@ToH_I5vmoO1jV`rmWE~3ORR+B- zYhSj#I~7@qJD@eba@is!l8z7yAp@Q(<{eiCgWKH%W@r1Y)pXr!qska~bEmn%P1vPT zrB$Bg*34&2NiUdvIaSR6{E5-Fv^LxJ@WS|NK;>xs)_y!(KaXrYM~6l0q?;JaJBjKT zaIofeE{t|(5lB+D-=rDi>9-4hca{;(%P44D0QNR1k9XfomvGIn<6*%ecp@K44J}Bz zmTJ+crCLyTcBPtI&iB~|j(f8tYfDDV!;JB_tA5<)e|6rJ(&Y~Ptp)Jy(f^m-?zo6C z*Dvi6F$(=zv zYNdSq8Hgqx+tBPl_co@T3~EXHo*+_4=|Zs1PM0pFh=k#gB$>8tqib_cmw$g5iQZuZ zPW$IPoGe;}Xl1iR7tn60CVg!L)vB`WWApQAh2*bu)BTwO5kqC>c4TQUl2%G!B3_O` zpk}rY3SZV%e+GS@ZN~Qjh-NfC%@W8vlg>KjqwCJ<(ahRl5SY{Gq+t;e!+BUL`Hb#h ziaJ$Mo9$A|5ExVvRsm}GL=m2p*T_w^8u##qeG=?MlGb561VIT)e(_=5?0VAQW9mEE zsW!Si_M8f%SwdwEVpsoM^6`KL056|CE=#k6&FlQdc?n5$MSO)4 zA9D_%n_{BQ<%=FIAJI3(yycpS7_M|u@QpPJPZ;<9sUPg5_yx@Z9{v2!k`*UR8Bfsq zY@!Q~*}i<9V4wRA^Nu!s zu8LLgWAC_!lfGTaxA<*@%FfDa7pza6K^<=FEx;G>y8^9Vm~win+q2KM&$r|}K+Z$s zbKV1K7qAzlz3CP&di@f=JOm#2iuGOVz9!?Og%cBvNQg@!)r1FMeJ=ZR@rF#nxpZ{L zppDT7xBKG$x2kJ>mvRdG(g-uS}-`rp1>Erz>$4`%MpTMd?Ra1Ll3mnSZRoQjLKKgzQX$Iv%9a}w0g zzhe@%A`+S;MZO$k%Ycq|g#e$t;$tI~Rx~rwFIvqhndG z|9tfT%42?+oR*)pzARThdHe)$B~qBD%U}e^sh;)h8F3j>7}^U=Q$)pz@{6H&KN=(B zuH0td&^?j(qHk3~_Pf)a^L(`zE?v6bS7X7k(MU7DgALX_i^+w;YD+EV7pYsfWtYh4&am$Jo;#aAcU)Y2X)?Gzs{6?W96x?$shX`_#_e?8Z(A-$FCNC z$d-C`kw(~U)f!k?G5xgjH(fgQ!#A&1U^Q{PxLWPP!ub+86pWj+-z%!wbUShBKr`!Z0_ zI{hf5Gwxj$uZIHB@rZ6{54FkxPNAD!oqw1I#)NdyE0j6fH8vsT_B04Lru*pdQ| z7=ht-4))nYgb9&~OQ)>h|Fz`%f>p2}UrDr9F*sDXpY^1TW!J7<2G<4%jvYX+g=ea? z{cUAs9+ybxxE7tGDw0#%H!-yL++mk))>G!_PY}9tc4A%mRy#0{Xy+bISrDX^zdvZd z?FSk@-ymPZfi27HbR_|RAZ{h2htGf2Efjf77uY!LGcXwZ=aNl<$sGJY&^@~Z9iNPr z>(#~H6aV{^{W4wuVSkY?uPn;F5qv%PUXhoWU-o-yN-v`FN+KUD2l@BsJj=>b&h&E9 zSJ;&Rb`7D)5m+E+7~>~(zn}cJAKuB#l|}hc>fXCQg)~-WFw2td+9PeuM2b~k^U-}=@<8xCmit;NLpaGa_`p`D?Ka4 ztMWhHnS2a>Xt}Oy^3Z-djbQWd?Kj6j>dktqWkOcEEW7O)yM4A}<^p2Z0bQmKWd(lg z_2b`}8orUmph0V*hEqU58Tq0tq=NxjRwJTcQTLj-zs0-nSAv5zGebLg#(M8>3n(Q~ z50S*Tz&qDiK%!UtSQC%E+CcrT5OKQZijBIp0wE@!G6uWX^;4FG?+j@v?LAeWDY->c zVzeY>qxshjn<+^-G{`M%8KA>H<&SnvQ0#S;prYGU3SY3T)idm0;W&VBL|l7xkqK#@;La^E7^W zv{_YXFsBG9yldY5me|M)x3r)R`5>r5=h-PkQNm z#iCJO~SqlC4NJ}m62z}sCY~Q6j&B6vc>msqK zA4Bht(9OuEMoog-csMY9V%%Ec`1XI4y#F{^nf_FOXho9tEQFzHX=(Srjj*_=P#P6* z=A%o|eenyrLF>#`^3(>LKl3H=iTbXUhd)e9Wp+G6*jC9_+nXmFp#j;^O0WmT0C`-6e_R;+6*%n0;b;N!Yr%l8| z4v$LeNwAs?TbvFXNU)o=T|s1bu64b-R`lK(-DWSPz>s4LjTc<{A#VL=&jfO!vsqM{ zzfb!gPxV`t@!yy8>#MBvl*DTn+GILFW)c9YpH&M7Kyrt{6_R$OpehMEz*KN+<8IVX z+N?%z_WtUWc9}Xt+krq$&`&UO9?;C946(Hiu{LimmJC9|+-IgNKtr*7hXkXQ*?Z9i zhd(cx_BUpLEtub_Cc5J{Gob%GovHtF_jCeFe};Xv*y z5heb^cec&XJ=ph4_PULpcj#qH0>T7U!N&lH`>a%H|3YG(Eq;29Caw5Zu17y<_MIHtr(wMVP1RY zeHNAE(Zs!kKDNcMmNZ~WpIpRy z{lqi-fUC^krMPPE{`0ff=Ex-N*-v9}F-<1eb@N%h{WXrQ({A0N7?CJme%JWlVEjy7 z$M2rukZb0}IYsEdRGA_&SSLV4@o0iK=UNqWm6Fo}yMfw)e#|`wtG=f9Wkebq$sRGS zATVnHzaC*ULEIs$6;Tb8oL*-B({%W|N8;$Pa4`Zpfi3_3xLr-*mvD(rXs5j@x=Q)IG7lv)zU<&pUZ?f?PPKW1 z)z?omx)rA7p$G_&>i$slz->P>|NcPaHT2>yT7TUj?juOz4%(V_T%HosS0`j% zUnTYQ+=7Whp6(bZnbuyLUJ2u;ALje;hz42I#Pef`QHxku%m>?rN0te!qoT^TU1mLB zgteWD$7;O`_rRCJ)Z2b7#(<+15u7)2y~{?JQRrFPc@JwH9+h+cDRM)ZkVEA-bBF(4 z;LK9GhL<F5rDN=FT>@ z8q46m*2toAwF7)bocH_-nee@9^}8rfU=Om=wq_$e1?;Y>y>wkXw|QlC-V{&n#>II zA8Hjm*}$ztU^+GIM?O!S4sXwl94c&`S}!k!n*PwLP6JB+_PVr zOYevOy?j%4;j{tj`xiu((#gxqD(9=&@4LGr`z+-sy-21U)j5HiIXE-H=y`Kuum+^} zF?8<<&sp+)%nOoZaBA{vzg~tJRjpjgu9ROsq}f#Ze{Oo1%^Vh|Tg+Z#*?5=eseq?4 zzc}D%{M~JA!0~-L)S1CMXPL!t_dt75c!KKOql1#nlrQlv0)@r`3 z&2veYfnz1N%6bM~mQJm0nR_Ws8okm-_G7frF>C%KhJ<+t4fq2^-U#5u<*oY+e^{Ue zL_9SseA~a^3{zV;-r4?%rufQs>HKr?ELQ94ugnl(RiX9dR+0r|`VF=Z$!5|(-XY~O zU1^L_IMf}Qh_3>KIf}I=niu`*@=(4jA|Y{k6E<3_IM+da^vpusw~l)K%jTRsTg{%i4vZj0FTZdqaTrf`Rt z>5u7*#6848nhPH`Oq=ih`US^)3YBDK1<$+z`GCiV?;a7I;n>G>1T#ybY(o4XklJ8! zybg{1P)L=omwx1quH-{x-ls6EX})`Id}=)W=bjazpn{-!^9u%zovE;@HfVc$F7AWU z_*iF!n|!*mV$AA+F$j@6j&^#F^j+U{@>dJ}Hz4Lz9 z5A>J!q29bDU2*Y$k09TEf<9Cv-wWylavc$hGV7HF^4j%x;Tdom5m_Q|5`BP+1H$V* zDE;ezHzc!OE{jm4J5~VeGAvl&p-GvtmF`!2VklwK2o2cu7Zq3VNK=fn7n|>?O4Pc# zS=XblT#S{2{yFL;>%gqquL#U|nHd8CrEPwzMULbyV>( zm|*mSbcSqDCRvlA{e;3v%g2FKR8+*5E*W#9I84mtT{ZcBxrrWUq7JD^Jl;0|?*T<* zf>+bGmo;+A=JJ`Xv*clFJu&m(R?6EPH=bzj3%eBkEQiXO$@}E1#4n0_4D|XO!gELe z8XAaLF`!FqWvkWvgZGh$K2e}#e`faUz%lKUa+Ie+YS7b|ky_=dE?e;Cn~{O`P)LYa(bkEF+wj9;jVV#9YWMEl zXTe#}ffMx1uzlq}hQS}!uS?hwIUhQN0{7peQS5^QhW5|$Xl}N7es+pIe+s`yv`CN( zUtbs(^vCQ#)wB}=o-TGP-vnOSeCAPuWr`RVETse*{*tttxhm79z`-)4`EM7fzqVE8 z1SC7MmHth`ll3iy>^*>kGw5Ulht%)$KBd7F?{g?R;=gusdc749SFtL!D zhUSXSnLULU&J#B=G-X^WyxeE|v5AGNau?n@Uh;rjBLDM-C#TkiD|3Xaa0+%gfHGb3 z(c-f|#UHaI!j&cjh1dKcBR$sZ6j(YLapczES%rT1_@nBF@S=MEb7NiN4_^M?1Cs+U z^_dQvq$4-iuE=3{*yFVI?JP?AE?!)kp+usHM?Rk-ewM}K05m@jfotcD?$>;PS<~dm zz=rU5h)Bc;kKeDjunulCZPiJ|afH!EbYaNo=@H|_O9#eA57cg0GpcLK(DUhrs>QB% zDRLuid=OI*Q}H@KCZ^t_86tKi-z83D{$EWxilYw0K8{0=i?yemB~~MWPGFKM{*BqNSOB4BSWF}|9ol1E35tVr}T8add)wXSPyX}Z?-VNJ~%)QOm$iVyj z(u(~x$trV8VvM*8*I*1HpyAweO;^Qu8*|YW2bc3K+fBr_+NGW>uT-JzOK+c0{NPRVxmO1p`e0RT53ru>}0h#qK`E00? z{b)Ns=1Ov~ej$KLWn;ETXNIJh`!bBqTEg7x@|E;+&&kFcc0wv+0ANh<`MWmAHavA^ zw0xG>W+xk!n^Lg_B3_Rn$(fubrj_S;6my1ZMRWq?w&h!M38S#zKoz#lpJ8L{Ic*vR zKoPDfZZxF4-I zv5;xViLax0oI3Nwz_yXz+|g9GcGGfMx)09H#s^2khK?T$P>nB8y2g_}USWsyJnIq} zp4#kf@L&kOnhH*gQvAC?XY;tm0TqqNlyEblpQL8)cW}$C31%<`gloi z*yvbj=gc|lHjhOB{pv*T_CZ&B@JH9b_&l46O8i={X1-T}OL>JPb7aiMb!l6`xx>37Juz!Tg|SmRaTaEyfgo^H;fcpI;u6xXS1@xSLGgjBJ8uX;sE*x0)HZLI~M>ZeT!21 zrBnXGP1LWaycKE5U~vbgj^Bmip(KLLtNGu%P@yh-J`;>;?`ShS8(4 z^!c<46^wZ}YqiAPQbV0A6yAp+-^`_5s^Ay_l4L0ICjw1ZLLW-x5$THm8V=h4HstQd(bey}x*xA1hR5oU=ixqmVmD^Rul78vlQ3JrDX2fM>y>x5WPeyOTJ}OO$0h$!ZCYdm-#~h-QTXmlbH!h&b-&h#u8StN1C~5y zOev8ryWkqYd4lC?oZDBppyMrUy(Kqjr#7Y>Ga0(R$T1XVxEz?Am(GgVEoF81o~%^K zw%PwJto@Mj{qSYi(V28thXHY`N!G92q!6$|iEDE!vCM@gDFg!6$b`wibt;tKwNgz! zY@3IZp2E@ln9Nwvo(MOl@?-; zT#Sc5ja`eHA#8YAw$Fi!E;Yu8os)I(_COAk?#x`b@D09qZ%9#5E-cRJvj|HQVuV4} z{0B_?p1AXIIycP`>K%W=8j*XI$_QYIT&GhCPsKPNGug(ibY?XA3F_C81Di%Yy`yjG z*N0-iAj;hzimEBbrp!AN&Z2C3haQZWx|hpYPXc0`r!aH`H1}0mv8il|K~$Z zXJk3~(P1mgV#_#(jfNGsoUU2!PTo&xeEn@U|J~*F!?I5IWs!0w ztw^|Xk`$lz>k?wOYW#5z?xuZE`a2u236oH>U5da?9q5f`51J|aWm1_I219@p-ov*f zos(spTLza*eB)svGz5{PwkPh@F*8nX@WN?sujOSl}nlf zV84h8MbvaE-6Dp$QeeKXqVOgV_~FegqX7&5lr}SS+@Fhx^P=?`_(T( z(I0GJMtw~_{7nPoYl4Z#%oflF>>lm9@sG-em5tm~VplZ&dMvDQl==rXFf22u0d!J- z4h@Yl+Y!+6U8x;n+ykK3ncT=otEHjJ)lGM2r}=BD>(GMR9k00Iw$mz-86#ITV~R2k zU^YxWx-~)`)aM$T-U5Sh$Klx3Dw*dBfGG|DgpJrT#*}B(=HL(Aa5_>cz-T|`Ud)>m zf4h;FPLuv@z_wjK9oxN!t~?o&c_Q$^Z@9Mk+?`3Cruuv|HZ{{9@@5F@PMNd}`AuFl zhX9HCcNdK=d(??+S~M6A5t0s&*UB>qOD>5*42mYwsH%&@PIFj(Bw%qY%LqaN0TD3W zk%E5O*`_zUP<+aPRDG;xKpDxUlt?{bN#yEYCChnI+o=uZ_@^w7)C2-nq7#Uj5ePl_ zM3KN;;j4={M2~OcWfWdT$z@Y;E`Fe+CKPlZvEgAD3nUFzA`f5XnvluOS+DKHu_}`M z2}J8vt{?v?kUr#(XE8qL^Y+Bo89if&{OXXA9s(D;-KoO2Ud&#~(1rm=<#Juz}R_05w z+qvT3jaI!VCDbg4N2FMCAvqt6V_$o~nnyXY-Y)p`+p{U&`z z-Ah1fYL(?|TBLK;DG+?eYA0tn-xO0_C9Yj*)`Mo*OUa?rS>4Ap)1Q&J!lHf64g|9T z^h#Xh(R~dE0heRlItef}OsOcsCGLeY>T6Q9aEaxgbCsu;pqXiHsOaDu4ujtk%&%9< zTH9ZAa!RUF)bX_)w36eb)fDHpG<^6xG;7O`=M$cih+%b}oPQ-vBCjYIUlCtssB%|~ zeSsLc=F^=(cY3(!Rw)9`0ll2_#usnV9J38|nO(W~Ga{-otEZDFiql<8ysBq3Zhk!v&!ZeTwUKz|ifO(nnHidiJD=j{Pfmt(x?sV=8CV+GU zNL7QGHTCAXBgFZ9D2=RK`h{2J*IJ(PO(`S(3N0L;HK>=`4F@=0@-bj4m%$n+89Xe!lX=0?6mnnuQgH-CltJ4bMXUD%-!Y1-C<8#u(OYq`2#@^5TV)+d&^`|}Ae*==4l+aO!$Zvc!PzTDJr|swOG85p2sfiuxLnYx zBu$NQ?S&RfeXvtrNNz~hVUj9ktm)nIk^ckrlr_sFQotjlXnF@${hLvv`+W*VQ9c-~ z<0KtJl~6)-Wzcm>ih8stE!to0%jHIUW`$k%&1)@l7}m7Zrlt5*2mlIU&$NI0N%-s8r?u0QJ*af&FJf|Pc3wM>9$iRn8fz3!6qAJ~ zhTYou&P}GWnF&~)+fT~R5Buyh{mAwG`cVHl83uPO{I@BMl$bh5LS)oHZe+})S_$2Z zGj-9TMV>1M4@5Ev+K;CSed*eb>+T?<)d{CNv*xjcAw~q3^Az(^N-48)aUCR9vDq`j zE6Tx8SOjbinB|W#6elB0I{Fy;aQuT17C36z4ICVJX@Et3id;Ccj07b%an3|2W^5lE zI|iYe8VKPT#MOD@J{*Zmd1kDqX#3ZvA$6!8!{j$0Ym;;tO-TtNNZFA- zY5=lBp34obTz9t8cUdk)vh^UzLFLbnOcMz93rx?Wpj{J$6wy5*WYu?DH{9+p_^1qH z+j980KZMov9s-FYonmyH))p_PXxxN+Qq$3otqf4ApW{DyoQ3(p_tlL^t@)>AH;3Dp3dgE z^(xB&&_zhlth~oXUpJ?3do+bNj|x1JnEOGKOo9pn&R`H}$3Zj5AkKl6ZXzG6ae}w7 zo0{@MrkefOCp$OfIiEzExGoz2K9}dQ<|-j<5_6+ciuiNq&;OBi;qZ?YygMV&i*wpB z_!p4DmU>yYbm|@S#R*gpxljr{nbL%yluJh9Uc7g0bG8hPe3PfsYTJQIZKCU^*}Dip zw$QyRY^7ZU?C1BF57Xe?#6iLS0oJ9J2))68+!MJ_Xv_!AmoMgU-+DzcqCf6jpz+d| zpLg?Qw;_ZJ3*k9aJN;x{qRABRg)Yg-gOmKP^9PSZ>VQMEz>*oMS?f7}LT~~&XnSQu zp;I6@LMqr?0F*tDL1dTfdUY;e9`W|E!&t;CUw%p1W$l0`8fU*n2jvrOnnH8}&i-TY zF^)=pfHmIg{e+CB7^8UwyskFz)Dtl5R)%lEZIW2ofBCoq&}^Oi5ig&9*IW78C81Bi zJ~JMTV*0BBidYn7{Dpv1ka8uBntvhMhlE20R0~T1BP9>r7a)CnHfmfXdJ+6AM6FP; z`}smE>>?EHTQk(jeMb%eF~&fbXsM7*;(jl#W~S4F-g{J&&+H@UJG%9;ThVJ9HMsLe z?VaRKlDpUwazI|jIp7W~H9Dru0@HaXaV)El&lu#~{>LYn^1c7skw2$M^^vo<}}c)Cq0zJ2Cv9Tbd7(@gotaA#s&z_Uu-OY7`-x z?4WpO6BoNRIP1lu*Z#thGz;13dpxsvJ)OKOt+TS?$PPmkew8LCH59MRf(545L4WsQ zM}DDAK}r8-gYO?!y%H(s#`<&J`;Kj&yzKv%X6|f-&gBMlYLJbhtVOE~suNkjTG z48k=bX!H?F5uT{^-0v2Z3!>%nm;kpy3MZH__JLN+i2<9f`g8~$tEDO-5^|O^X((p0k&1P&)*pwur?D^+Z>$OQ znPTpQ>IL*;!8fRfd?x_{5WA2j`gi~ty?1WvZ!XRms{xYu&+)S5??^&F zFI9kTmTnoP!QX^1q4iw|D5o+VW)evQpRK3YbN1MSnL4U-O4m!6?v5aY@qq5a<9sM! z*`ouTxDcP3CfcaP)}#-*fXSJ>F9M_{?w({j2{4`%c+YY0wgvo?wV(Ovay&A}GwU;L z4%Jy4za81k9QjB1_fO5SWZ^awvGwvt6jSB(DmL_Y__B07pYW8J7rD~*`|q354Ep5@ z84IWZFd{;DpvG`3C%(~kUNy{cV$+r~ihXd}rQOokStoouB2SCHOK|3B^)Nn#G;&es zUCPU@K8bk`Boy6o6a>4#Hq!o0lZNKPN59G0YqJo0lqfq^cSHG&`HbVx80Qe zgFMUkkNd}`|A7*0#RsI*-sKYs7!zD2)*j?EzOd{rwIfIs$zAd2UK3$+9)V_PhQ2{@ zw7~dggK!^|n9PqWGO}xb%(MgwzjBS3SZD#6syK`86SmkOB&JTBWxX3$kyXGh>DT5g z3IQml*xoef%G~M86*q={Ei^BC|@o^sa=BJ8EpX72=j&U(YqqJeYZfC#p&Wj zVw6~d+*%rJT+$EZSy$M(L+t$Y2To$uOgh;n+#Afo0FaN8DxN^@bW4^RFzZmDF;NVq z5~2cs3WYq;6~h(m&HiT{FjSE03IdBUDJpWaE+xMUJrUPx+p^vG!v*4>SEB?VLMeM9|Mw>3x1Xq6cniL&JIvZ1E#W)agtDnSZPqNK ztH3tj_Xd9w*PayG(0|CEiwI_N1kl|OD3?c8Z{q)P{Az58EO3- zj!=l(J?ZjN=+EnW%)_TM2WcPC(bIePBt&SqVWGbXP2UUoOhuGx{UFXIMa7B?-kZSA z6Okf)T%q~1p<{HLhK_0Ia!!p|KOCa} z`el6~1?tKps2vF>J?qKJGuU_x#(1Nr< z#NtV5u66rN)cjl7+!ZNMO%)SAJyIaz!a%z`7*)6bN%YJ{^-d>20QuNe);!y}ECP@4 zaL6t$hH?P2)(S};x@Fy8cngROIbxxS<3Y!U9)yTcxDxn41VznkC)zVD@8Uv9w`$P* z8af-f3^TwpdZadRY0p0j+HW7&y@+C~S6TAeQv~6GYw=)d*L}|p=JG*F02ED=E$LB> z62)Gvk8&Y#ASNAyJ%cYQ1#iWKKHt%bZG-StBAB%2?@o>iEXmO9JMy;{037y!TIhU1 z?w1sKw?l2NSlwpKkcvr#gv4s?z!}#`>_Ha^FC7U_G0!DZD9RhQK*dQO5@_pb(TPztjSp;(rh;%r!YBfr41&o za&p$&U++bxNQhLk<}6J#x(D=CGiaio4C)8+*MKufFt5;mj98cHv9z6B39n8dh({bb ztXIvKZXGDLPTgkk+NlZjaS3XeG~WnGNBL5+?Z!Caho`$$b7#*T!drO)sOGWep;xbkh@G{;OZ4*Ke)9T%5f^6^gzl+vGD`YgB z<76gP1W_*QqKN?N*hP|bHAUyJm==cL+HJxsyCEFpd#jHw{2rr4%JUo-F>N!dcR)E3 z2_=a7ffDgg|wjKU5Xn73VkgT-tkHXN#aCkjQ2?5)(UNZ1}Wf~dv9;Oi5vmS zV*8F*xA9dve-cx*iI%)x#Z<1*nn0zeurawW%9Be$3aCzEDMM^knKZpwM#NW4c`j2j z9f`S)NCfnNc_!=`jA4@-5(CxLR)uH?Y;<87rVukp;7p42rhkC(&1s zYu_DDb>IJAqSPr(RCY_5O%)j_6ossgy*F9eq@z@nQ5ltxnLUoZM`VSFW3N=?*qal6 zuXopVeXrD&@AdoM_aFD;E~(4;eBR^rdcK~ctPzRwH`yp2<5b6tRKtROk#XeAnKL4b zJFUiPfwKh-B|M>k9ac&nOvc6fNY$%a`}`xtr!4PB49vt6J%te|MqfoCkD{ zSz{3p_IYS3?IM%@x>o>L;?PBmYAVWRB2^TVp4jX=qW{(*#6g{pL zvY21&@B6}~%&CUb=;wm=BHFP#)^GiNRrbHVNu2KvY_bLpp->2atl&gkY0&Zjx~KqO zd|CkctPe<7&19Hv#lh)>50g?jFyzHI@*eDnX!>RVy~wt@o}d&7Q#`0Y^#%zEfda6m z9~if-%SGX-NR*F`q>&f!7i@gB6TegC42Fg&ykIp4(`1zyq>o2C%ypQ|Vl zCPqeJdIAM7y~RUdN#$4#r4oxbFg1ehN2kE(4BYUCKeoUjV+egJGWk?p(~W|P0TLG* z@?O$_i6d&HbY|17!5w4!{dX@;N!XZTzLA;>mm*GPMucnz0Puh{iZ1b zTLD4f&$um;TVR|0qOK#WU|n9b)H^8>)v-H(Y+uYf#KOXYY^11w%W?wmdI739?MKci zcN04FFgQdcY`OrPvWCTzbNe;AfTE5dr$8`hPC%I|C_WkrnmD*ZvWV@Z%0#nnk(ovP zQO}C=x=>@i2g4nNxdLEbolny>`#5tuAj1|(Z=eXz3*6OBI+8IeKRT;l>eet<48?gI z0I^6eajDPW+;PRRu%c;hP%9FqHu+ZZ_OXnWyRiy?!7)ZUx;-ZieCRTfB_AD8%A|cK z-wo>KIq@rfB1pte_b?ku|C3;a-JFM@)R_(f98DKbo{e1CDVu9TU+tf@u(SPH9e_Ss z^t2BLE^QJ-wLTpa!zm*k18ps&v`uj=q-|GsZt@YG)eY!% zAMxz5P!l1pWXCm14l;HCu`%?}tS9a?W z>bRb%_EQf3fl>hkno$3#zETiRs}R14a23UCOzdIWYdL8?YPrR6jFo!KV=KHk5xEay zlT@~c0o;a&9M?@UOJo$T455Y$PR~wj&UdBCYm8xcCSqOP60pT_(8LY^>^w3K%7ke! zK+G~$8)hOXD1&2%Wm)7V8jfh#T=HOy??e4mytZtUuw0x1Oy5n#YpX3e$z|k<94*)xwOMY>?9ri6;25ePd$a_`zi6tBtSbZ-r)0s5tdn{#34Gx?^*!8} z6wPIz*wyKE0H;tnI6gXtIS1;5r*A>!HQPZJu-D$>IbaV$`$Zp_msKNwBY{GWEAL%j zhH=B%xQTP6Nz(z_%(};LlXQ<*)t3Zj+~|x2O=?z&ivl?(u*K@RclKEkn^DCK$2vPa zAg+PR1(RMmnxncR7#AqqY2^m;zkm_qlW)(Bdu1$~HqJIcbg>y4~h6>l!LJ5x=GmI47aN z`K}la0r&=^mD&u&OqY54j)_|y!;Vb_f}B(J*J&`#sYf{-1(lYEX78=6%6~kuaYEG3 zz&M63HFG?sQHkR&bB4wA-ACgsSVY6`d{zN9QAbNTw3a(NzC}DzE<07A)o0C4cNYEdZF1p z+&{kiw2OG|=@(*P_AB|gtMt@J8ywoZfhBt;GT~Uwg_M-yxwm(<9r<^jxToLe$unY5 z$j8Haa6xO-y4~!d=Xe2hWjClKp+27mi{0$`Q}uP1z4}jgJEhWHm+~^U*a8O+vov|$ zq`XX6;S#U<37C0-%~)X|`_A@m_lMN%U%pu9gVWiKL|M?!>a-8#9s}<0k>ampdC%@DroO9tSP7^IY$J zxQs4eWOk?Cj8EQ?o9NbjpjqquxeU8?`uo(Ib8A#&wNkbv`R3S&rv(_V&nN<`eh?+? z7$*%$?4_{;DE$DC4)%vB!hfLwG_swO@XB*swQ004TcB4q%zWojRXNo9LiMYH>G%5<6QeEcFPW9s2*QXP23pboR%&!8d#RmO-_dvLq4 zKE?W{3(x7gZIMYbleCPSAzgV0%cXlPTh2=CxEMyheH(@Et5=j^iLYGGvaA=_$(8l+ zaH3-In%&aA2fyMsT@od~S>Z}vc|Pp+lk)|)%*<-0HuImIe)o;|GAx$8ixe02LN+r? zO6Bt-V|#%1UcRPadvV|G)%QS%@B#phvO768$9Zy>z9Z{!ZK~vLGK67HJHbmEXGG(# z$Knn3rr%=J0lnm+w@`Z!OpS0Vh+|f`G|f#LuZsc3#!yK{{E1@3i!$xM>dhoLa;rZ+ zwG_sZ)djYMN^k42zAZMM!wck8?(+g=)44`C!%&`<(L##A*4g0SYe#TH92&!|gc+aU z3r@p>8`H;4I&4G?#md7-A^1U@jMIy?4q;ri`MrcZOyA|oQ3hzH* zG_|8qn<-kibpR#@*252rP2xEl+S1tNVd)JJ?j^C}X_2%5E!Z>w^jf^g*V7Vz1EsMaQxR}b9` zu&*SLF>(%Ei8-G^mt_-jhtmas4wbokwD&&pOf6af0D;O(B-Mnm=1%J?#H{MtYrt(c z`ylt62C_UD%6a#D@V^vrZsSCQzae=iQRend*s*KTR0JHhr^oH1;xj+%9IZRe^=cZ= zRAFCPR~`&7fJh0vxVvT~guwFXGwN=T zptO{n;Xj>HxV9^M$BA@l5e#{1@fTCL@$UyZxRCn`ChB%sZyDmKcV!gw+jPCY0w2q;yA)4L)gfa3Ja4GgM0FW{v7R#bs+|-_sp1W%LGF zKI#;!sy$OoHl71SE31q^FfsMxISErkWJ=5E^34M915w!Umeup?(2v7xyy?J~Zi~>l zf-mrhQ3jUc86Dv}`PwHyc{WR$0YIdp%M{=J1t43b@!U9E>+ti3k`XCdE>x2FEKN_o z;uHS%qyOU{FmvG`F=4nXpD(egQmp{`_smgbQOe7gOtlr6oWs(rA}IE6=CSKN43?EQ zL-GY(IWwJ2#|ZZAO39vEy3XcLr+9xg4QYs>^_m1JX0YvH;q_A? zi2>HaNVshsek(wdH+#it26s7PGj9ZO*j0~&cV*cOE7=OB*VgUen*xrd8`X_gyhyXE zZ4hSvIRO11b*|&D8Ms=Gn+2Ut7dn}%0Pb-U zGzT5`@3p6hqa9A|EQc@9aHN}cl#jM~mf%IZ=?$EyorM&6 zMLE)kck2H9WSPUsC119Lg^S59pLG^(xVrRKYDXex+$!C}?=(h&zWCO1W%%`lnvZ!oeBqPjdmP zy=j;}N0x>9J+o=f>bS!x<;{}^%{;*7hA1@#q$nE5$)s%F39@EyJWpr24_2tUDQ_+U zzh%T-#%stu+P~NCg&dnId?zfmvmUNNDOnFJq*GJQ@l*3nif*G^!1m@EC z|GBAWwxU#V8ZYyB^ytcTi9^uTH<&{7GmzjU!BbH^;l-9;=Hb95GrvuQn%*iz!jFww z+g`~TtU>Q#)KaJ(l5N09w1RF98jPJ;XPUlnX6YkP3NC|KhNtUTdApy(6P5OIEKwppMnEv zU}0|BTYkT2!ZDCs`AfoN6ya<{r*^`d@-#+>B8Y=1?F!zkK%gm-x>U@IDaM0&V!B`3 zZKWY&2XAi({JdAWM5Q>!_}vTr$4aqPwI@J*Va~O2`Elo-=s(@@TNO}-^Y?Jm;WoeC z_3nm!DH&eiU1kU)tQEP&(+lMOr_2RnrZ;z- zJ~#=1weJrGsD!0C2)^mkOew?|Zjbd-8cqyWcS!4H5WLml){J;Mh;K*-^YTFt4bzty zCV(B{XR#(&;H$v#@5`x7sByq4cTF_DXd{W*)a?F#Xz$=g>n~yAOHCYHK^GTmTg_nR z(B2_B? z5W5;$*m=1Ny`V%{Pk5>;@hA96q{n{iiRKAXAp(e1h!}N%Nr}qWkv#$UcvN6Ru0F63 zxQ+5neNX61Hm|(`t@U(^wl{J@x}i>b!&eK%69S(_IMpG?80?)Yqw6--V6&cgrb3SM z5s1XGfH_ng%$##n6F%@0?cVYpO=CGY+mSZ6#oW!KZ)?(8qQw~@P?%so;2rHD^sM6$l%}2*rrM(cjia(dix-9`!H)be$@adR(Vua# z|1@~;>7;;Q-F=w+J-jy!?#UjA^3;c?hiHcT_U%)7Pz>{)!;V`uU;^#Vt!0P| zO9X;fr?PLXY*+IYc}c33P>aqUm{sB5MMmuV*X`U--5v9`Dl)>^0JoAydrz^+KQv_6 zpxDn(Q`-PDyzfS62;PHwq{EE}rATQI3~iim>AEewi%6L9?&zshrp!W>4Pw{vs!!7u*tp=n8m7VV9aS9 zR$IB5ER;(ls8La0A5PRJ_@21^VqSOU9_LTkxpe3IRekg83*gr|KoNrl6VSV)yc5hzAYlps<^XTTop|8lbOM&AmNf>d+%h zGU-GP{{ZY5mfYQlKs%tbgu-00&doO;h=CcG!`A0A6;2bBZzy9d@kJcDA$QTWN4OU5 zc3$!I{h2_G^9Ggq{fA~wGasYK^qMyri{de3_)0FBFvNqsZ%TtVC_K$mn)m_6-W`^t zKJcNpoTSk^1??zckrKc^)^A+6s|SjXzC5x*_Hu8gW`MS|e4D(?s`G0dK@UGf#Sit| z^?N8b!P>+Y42O|?0LJW_9E{>*g}YhXkEP#QcZX)58z$jS6=0X`ZlyRiLzKiim z=kM>xiYYQeFb|Bo@&SiXf`4CZyiJKO*YQ)@x@;H)gK&^$088+4LN-| zfL44Mx;e8X4o1LJK;Vj8IJ@J+$ld@)mFf$TTk5*h?O{);Do;vq=kLyQ0^Kn?n_oo3Wok@>cIg|;(Z-iyi&>oHH#Y(daCv?t3jwq~+G zFZP-x^NO>YSz;sbts}Wu{eE`ZUIFZ`cAn#;sgr9TaBO?aJ22s@D-#z_6Q)qFNY{v-(@R7r$q?iu3fEzmD47TV3v zFE0e~&pqc5ibJXN*_M&*MZEJbj_Z0Ly4P&$Qi1ZNZfGTtt4EG5;j!A#*m>en=q+uy z4ji6=zxLiM8&YW$^_`J-111`nkUku~b!0(9OU8F7jwrI~ZQs6~O}!uwGm7syPi#y8 z(mL?8UJ&U=VTD?eu;z`3qzVapEw4Q%Q{8kGvzievX{1I^gP~qg{{+v}K>ZsE9>wPf zBn2T%I|b9h*(p+u|i}xQ%XYuM;lgxP;1^7a%0F?5`b8@UqR(e6xO*PlxWgpW8)6YygE%>lg?; zc>4h`&!Jk5-yZ@a`rPgWXj!Uw{nI38Id<2SG{jr+MbBFdqI1wz-GEMZ5-P! z1_Qh)NIcJ(*=pR6=RII^$tc$^U&=?CBn}veBU4G6-}jKdVC`WNp-T=-(G=;v0J~K6 z@dvy>ah2}yLyM+zV~IzLTyFYwLv~#`X)oJIj078_UL6{;0RKDrwBvAvXU{Y?o|AGK zPMmRmKveacTPnCKLl>N029}*~(hXr}Li!{Za2W|-_Fkvcv2-3DP3~mp=qPP_x99Jg z$~|*aN5d^Eh%J?!E%@q2s}>Cty;wNrNAkl!qjSI{^-Fz1sux(_}`;Vh3;ld1eR?ch?L{w*3|0! z1z2t7=N)Md`L^CiMUA5n7K?o!i{0Qv6R+cPpK~e(P@nUe5(c527>?-5THub#pT24k zQZ)S~1e_;Y`H8L=E@}522g$DI+7nN{cMU?(4%({XBiV-IblV`JjiiB-flChA8EbX0 zYB$F~b;Y&W0yNSfmGLc zgM$OOnbGdnV;EGN`vjCU*ITmW_ol6?;u&J42uvX z^>w*m>=CGxs|->=Sc%~R7JlqD^V%+6)h84C%F><1{R5j|$eRerwk(iZEqketoK@4B z&4>128YiR4l1C>`EO)^!K+brb^JI<06PW%S2YCB z2JK??miDi{Rb4{T6iJf<-@_{2mPal%L+ZtHIu5?6(V&-35{-n zBm0D3oDehWtTo2J9qP(= zw1&*C1K8)~;2{VDAaV2DsSXWbbvQtbXBw39rwraR^GnraZ@aV;2M=HX&0t{{A%^N8 zfEczx_K}s9_~P@!jK}OJKG_)?6<-C;o0o0il*;qRvpU?;#_-=PSY9(oVtSQwPkMan zR)7nnLm@Xag(DZ1!>#w8u^GZD`uJPxorHUywqwu2!Pj?JY)9zuA_}3a`D#|X=Z{i> zQXU5ZP`UkI!5i&nT`MG`?2Z-TPg2>_x@4uMDWiE_Ax_Hj632shWcw!IoD)CH#$V`7 z@CWZSepUO=ehYAAJdyq8)5Utir4Ry+5N){JOoQzdsq&_;NZr5r{Fk1=vBz1`G)` zU6K8Spa1LHC*>nB{fCW2ZPp2*I@-~NDK&U2pU}B82s`0~!7Bw(hXNS6ql*tQa}~vI z0v}QyaqmbI5d%(yl#c)@pz%Kuv;&Q3iy+w`yz0yK7OlVcH^L1uYnbw?J5T!s+kM<< z{k1^^@g0#kN7|UU(T4LlevuVxFO$O&*Tfpbh@s&y*HnVO>}gFi1e?U%zf?a%xM6Z$ z3C7RqNZj$+HSjob))>SABV9VCOE5^j;*ofa4>9{%RbhiIcCYDbemCN>^RK4=&jsW& zPhR4*wYE;TKuh*djqi^y^51SD=E+Tnunna}6BHb(uf(FQ6@2VK%Ql>=iP} z&Ih^5h_f5qSYl{s*n911VQ#u0#L?AJRPzI;yHaqQV-&WiBrP#-Li}@0;B_<&a(+t zJ20QV)`#Cmrc|m9Un338d8nQSs*z?u+8=bre zE$6yu451-|??dk(Rx_lXJ{HP*rN!}ws_XCd#GC~ORFw=Bd;7u{=f@C~dL0c>kr_LrZN9XLmMdJ?$Yc&kA5!%~ zpNP_(C1EOb#f~-OkLKJLn)5>*M`})gbgntc`i1<*6LgyvQoJm?e!8@jIP~2e;P*$; zPb+EVZ+%p7NUQ+7IV49#Fb2_w2(WM^KRxN-wH`=aMv@~;1G+pwUJ}L>sDA?o+!-{{ zYJ!$K3b1mu$B!SQEzKq$`-$v}UhT^mU;yclh|4T&hMr}atXvxN;rL6S-`+EM=D+Bu z0gZb1li&RUMCUpz7Ou(tBIT_pa|?R4Wu^k*B=16!>Y zfPI{0^9@$E-g91=$B(GbK%5W9#W*-IZ!CZW*AR|AmYq?$ywJ5L0bPI+%>>ODxe6_DXKoT+F)H@CG&2|mW-+Y}wh79UVO zs}Io0#R5?~r}rLRhXF(Xub`Gt6?w^<_Gn?Z9HsQZ1Yd>+`G39y=4uRB@u(wZ2Q22- z0JeUG!a)vdM(bhF^*w!=U(K?YMRP{ zpL8SIHznyZ<74z}{%E@2Y5NgwA_7EP4w5ww<(7PZU_Lfv0L9y66nniRy(pH$u7I9e zMSiTQavOoQ^?biI)thVom+RoKZT^H^BghO~2C%udqY8iveYXdPWr?;!8H@SAdlr6( z5ks8*QNjHp2C#ka8kT96eH>zy&M^5-G=%2Be`bEE9AJk0eqIYYXiOB^dcyu(cLLk}{F(FA_S3(3-!49tp zGB-cEHp?vP(0}(JWxj{7#GXs3Tj7=IrO~g9k*c5}(=50j-H#W!8nbdlz534h=}+M% zMvDjfZ&fjI@c1!j_^jeMoX(;)_@289xPK?12IYr1LSAr}LOLwCrP(+*IHoXC8@E?z ztR;==6OQx%=eZLkW=;&?Ifue-p!@A;$pcR!gZDx(P^s=|uyi07mhAz~K2qqxVHW{s zOO6F>psK*rN$`Td@a|8e+8B7!PvCCkMhXR}08`-L`RsZR>BrT|dd{(MXpA~y%~7KARMU0!$}ZUfpl*)j5V>gM z{S>>Ul6_vIfg@rbf>!X9M$sB1AiJA%@yp>C>2v}U75kBt*3qS`OZx~+NWL6C7m02% zybrvdsG71*&NXQkpQC>~n|#hvIMrZ09{7BD_gE>j_N8@2w9L+EziSgO|I*d|A9mD( z3q`^_D2f3cPi~FaZNAoNzKVQUkMI|U1#_^YkmEY$JsLzI0Xsr^+0^pvUW5ehWcHD# z;PAZxdkf$}9EVDE2@V+@3*UyyCLGbdQXmBtqCkQ{@E0O~B$}4&JjGC^J}|h^>fN`0 z|97_+m;~{HP>HmdvL*rgBo!#EZ?09MRWU#RzAyP#*IXHOkhM0R{`}yNC!-^_7E?42 zVt{Fg&^Cg8hf5_6N2KXt=u(KONB9-cap^#ob_KL74WK;?0|hB^ zN|ngM@-+hu3^A>a020JSIS9?Y^y7UZ_=}4TsXGAF{2;hAzV&K|K&LZIIX_d|c3-MH zZq9{jEZii8o%*EH(@z||&NZK+Q?~xN%5z?ufRAc5-vFf!sn8IqHNZe!I;3ipIre8|^gj8))|8x2^L zXrinEM3_}}22Mv7)fhA_v4FzL0j*qfhgWUXkL&dNr|@Y*qWk}ukuf`Bz5#-V7793D zyAT2BZUEvGGVcFwNYs`t3q86#lzc;;zGX&crb39U4kv)BkAM2(FI9dLrfq500DS7e zLd(ygKpYsv(v88tGT2p?9EoTpXmu)*xG!{&&Ey0971^@d zF3D#*x~$GwL(vdS_h%x+9}iw=W*gAK=bN7kC46d6`475FA1*Q)!uUirHxYII(Cs1n z-e@rYhE#3MoR@+pUVeho4c$O+`|w{4KG#a|98NJYz+P!ND#EBI`ylxKo9@?8X7R!=+qGWMyZ8Z;hM*Tt9G7Rwfd`AzeP(QdiZw zNgh>k7%6t($&-myDaC;yVLTH51EKXjL;(jCqY(=*stNfYo}?QEervZOV7FJxz$a&aGO#V-qV0R#=*OuP_Sc1L7`1W*Pym?X;@n z2i7BN@wrg*$A{OEttCS_n(=S;&;h(i6m~a(ccY-l%C4!Y$+f1=H9ao{ge!P23R4b+ zcx+MqGZE%#@}XQq7IOf&>XQnWVxj94^_*Ee2R9|3BG_7Wm?bSPDa77%A3Yr%o?+(w z{>7>6&qS$f_LJfPD*M!<6{fJSy&(5`(9duGPc<-frxPfT@$Z93sDYg0fgz%O0rVXR zifwOR=Y=#l0zS8;C8*|JetHPyz{6}YIPFfV^$SX@qfff3sHmtBv<7IbuaKw`1C+ol zo+}tph-yhkB}udY^FwYGIvY-(0GLuN$^k*dH{|yI@3Y5^9`r=&kjL}JW#oPNM>)O}V4B$C) zTL1sxTxH?xp}4Flc8=zNJREh_kPZm1`lss>TmwI621$n-2?8DvmqI}_NktizwLx@$$#uH8AfntWQ z=VeSyfoST2o_$Xqh7~=tAR|17E6dTT_$*CJhM~-07qPngQ}Mp-t5N0JewG zprM6U+&9o+5|y(`(yhrngtI}aE*RC+df`+PqaZ1`I%H=^nzG6^gdIssr?DFTv~Trf zF$SrU+W>?gjDmW1hUaR1qhz*?=}pMVH04wu+1gt5RII>jcjUb-;de5e7PS{{70TWe zxA`T?1V@hSwAMWM!@Zo6*$4QeQQN;73nkZMZX!;XF$pjII#!-I*LLj1LfcM{7^r~3 z2^O$?+6yJ$#~}7MI7DUSAYJ{~_H2lfz@@{YNApTIR1fY6%TcChf)^$z z;u&mVgpN{C)4)ujH9Z={_LzX2A$)ZQi4nmIOB;`y*P)={!qgeYY82CK)^)D+xUsQG zb7BytAqSw+PDj2y*ejBr=*aiE2iJHd>4o9k^vCxh>MhXMp5OEUn^AR!Y_LB;GcF z(~)a)Srr!gH@K+9k(TbfrijO`jqaAR;AmEX{q9PQAXPQZ-pjaf3bt1M`nO=$Sa#T; z*p&jRqRQRcFc{L&lz{U1;fuCBPr#_)Jdu8+J;nkT!~#8-N^RK6_-OA|`ZGOWOmke8 zZw*f_O39d|)nz#M_>>38e5QB}UO5DcIEs65NX7|Wm^9RiWVRB`_L$a*>G}bZ=cKnp zKo#w-BkHVfn9`Jb!+qfC$k*cpm#hb&c3RFi# zXAae*BJ=a~4Gyx#tZB@zq3qA9_gC(5+d|+n(A1gf!p#=ky;^e&y26p2DTm6)P_qq~ zYbPHE#5Y^?TG%Yct7f1Jsv|1}8je0-hP_V!a(~p^%NXl5q+6{d_8G>9Ze6W>95eIr zN%cvv+aT=J4U*fL6W;CJ=C7nck4$zeYEd~Dlq6ui(vN-z4SZV7@T?5@KdwFgzgM#V zuLq8zP*I5(s*FU59r{2^OO!nl2OZG74#N(`7Jq9z^%oYpNr*VDY2B-=_TrYHj^?HX{MkZpEHhO4PXO|Le=R=9?W3^BPZ0t}UO z!)a?jUFD3Z#N6~?DAN603nrc%@9IRs#5txja7f_mRnsm}%n-hIGl0jVQC)e?8IDQT z!ctcj5t>t#q+|?dSu{g{ydl?%YI=z1Lp6g&Kce0m{NTGm*FKQ z$K=}_+#Ta9Lm`54UkO zzP>H7;eO9w1rUC#I(C9SC9G{YezBHhf}>VYH*TIR!N(UU(8k5(Pil

    2?!Q8Dt}ydjrO6(y(c@^WMn7Q9sL{ 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

    f0=kqB=j0fa6OIRh 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�c+z+j-Bu5jDXOrw-XXecXWJvj7u2?DzBj9 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

    VZwnxI_XTkVEz%Ax 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 z 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%0AqEB02bPK%##WkUYtq4LU*k5 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%0D_+P5oW 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

    >ZzEBJ@Ekg_-`0X&J1MQ^z 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%0DcP574II=Y{OG3EGAx<%dx6F_| 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%0Ae5l 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
  • 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

    5&&Zoi}AKwzP}D;mYIndoh=%uMo`7!bI)i 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

    1ExB%=9cP4UW-mi$;Z7o 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 z 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%0AB_HFlYoR9tzySY%gwk@{3(tIJg2w1W{#n zE;G=`+xI2Fo(KB0@4~eOEhJY1?X}p;$q3{Rr0MYKl`#Zq&Oq%pEEJGRpIyomt`dJp zUvcS#G+-_EL5+1*Zn=NC1OUyfuz8jG(EPFi z8bv9Bd!KSDC+2**)E~((=01~S0GI{M97=It(wiY!`2XNV3r#6vGceS8Q2rajgyd&+M6I2*_7n3`$o$;av+x2wQ0ahV+#H zidK80%i|%hCd>z%&R-?6#_&SWGTe$V`4AFMgN!7IZ%>759=@w;=fYn0U)fU=ZPcKJ zM$_be=HKm|7z+x*vXy}abAZwJax@rNBaWH^kCJ{_hKaYE4v$c#J*4-mHTN=NTUmz~ zh4ldbdb**kLYd&T6NB|^1g=>xBGdeySgXh^vZ0ho%(7kR0ERK70Vp+t5$|hSY%BSC zw}X8~a<`K*Q}vmHarmC6a*G$Vte=x71GuUjLAdJYfN(1U_G6q!$9fU2YXwiX4<0E zI21t%)-I0aPF6v3CLI@x z35mC6y7L;+i=XOs zid;MJ@M!Blu$sTv-6q1Y+VyQ|_r!8;d<~vR%_!nHMR(QYQ@?KbUNnO@)EJQgqSt#Q z-B*J`G5lW2mp{fe(5r(QSMF?&?*s^2miUWxs$Z2iR6pc(3}$M`CPOKfel0cB1^3Qn zjRC6LcX^?DnYU=WkRbaXoU)(pZz>gO(%Mom*O1r~=&@k%DnddSDiO>eXREaUs>%Tf z4p?DL$zh;Dun*`XOwpoUVVZYUi?%xt+^>aXzG(akanojm0s`YF6utD{waaQ9A6x)K z%?b&%18wd;kkp$kW?iCr8ew~EVf11FewZ0H$+NGUWD9P2-ecLyk5x|AvGYwQP@q$j0uCk^?b{<>&q!`o+rsgZ+}`3|8Ja4M87C^oT0m1+>bst_K@gYKL57a&bsYYHre(MlNIr!IuusYfeyrUcBlywxMus-?C8BotI7x4I8 z$)05T?!`@oS=DuZ0T3G@2a;V{_#j@i!@llC5CNFna(}j47gLuS;}IhM&9@r;P%@NW zn(bBaR9)wzUg zhZo4{LSQxTX6Z<}pd_CX!$%4EOy#Mrc9IeRs92~|nsOU0ZgZ@lq#Ry<86oD+SPzzKUq|^>&3EEo?g1lxBYt@291UMEKN>H@R zb#fLM8X8xzBk)9O!7E(m{6iFKNugA&6}vnB0-_YoZE+fW7F`-4!O&ot#0HSUx&cLC znCZ0x#Lxzy#9MJ1eZG~HsOItQWK0YmW*IbDmR`clh?W!NTZ zZ}Q~;?tGZVf|;-MqT2ns8oV~d#!$J<%zPha=97$+-ssn)$2jp_$wVkWJ(H?l?pRN? zEa>4p9;P1xOdGEd1@9jzpoJ1V`{}9NcDcFQK%XYi0NDciVrB@~iekAUQlgVZH(>Wz z6Eqxp)R#$~@y}W0Z+~La0rvZWs@0>;Ck_RbuLFJ)|D;*0)qUET9$nBvTEVLz2dFAl zj`wVt7(g_h2A^vDgxLNVg$;)2VyK|THSXu)(G8crWDBH(q%d7ju4N)Ou*exn_rIJf zG`v%@F34*TCCRfj6U+{P*+#vWXO@?ABb*1HO}w^p7Zy@ByX4E3()X~-$kN#Q0zcxvY5frK2oY(*>4MyukFtM6*px9U z#Hf0iLVOMUNm`^cBMq&28{nrf;52}qa@NqK(ISMBcbzjdGlR0#ZL2j?q81C~g`Y^aJ?WC6c_5x{IL1o2K+?lOvjO?V zUwkar8@k}8y6Ek-Pd72FgjM6y6tAM?3O2liaHx+Q+m{dJiib?f>-0eABz8kNlZ>5_v12OF<%Z2i&)=D=-ec5yC$b3^;UjlmvhA+Bo9YS(l(jV56}< zjdav-@CPi-)#!E0M5VvHzW-dsGCZ|NBMM-=n2|h%A1WyOH=8WIt=%1jFQd7aUQoX6w1% zeFpAW_t^5D*w*@0#VDY%jZXwFyD1W-slF_~Qzgomp3g^3=hE&SAn%bm)u`DEP}P9r z{8_tBO7z`n2AwJc5P3z66Z@U>z_SfNxO525Q}=U)S`Wxt@}M>W*)d1_!=u|hNVL}u zX~+t-4NkUi_cbc>7ct(@Ron-?K7}=Uf?ReT`ujj2C%fMtnFn+Gr6I=qIwOkGoPJ|$@(#CVsG@%^!fdbiG;XBcU><5;)Ja_X$; z0pu{LQ{t#jBJD#2B>sgB)VC!4gbMSb& zpqT*0gH2^XZuva>;gpBQ)kpa=d1HL?rzRy~d^6f+7(uK~=>qkrXHxf4ylvzG4F)ai z0~4ReA+XdvX}|KY;N$ zHkKm-B8YClHaT}!n`j+k!T5^_qr1&;+BH~)Sbwt^zjZucY@dY!I?vxZJpH4N*s0&7 zi#5|^tqu7Lju+a((-~L15AOY*pe_YTJ#q+r~qh)KX277 zzDE{@_nf&1owLe-A>d-u2hiFSu02gzsy^-Dvf`v1D3SCa%*#Ne17=*=0!J(J@(a() zUiZ}*OO(@Xmk}Wc>nnr1BI$Xo;b4>kJ7mOZ>2v=>=t4C}3q9(Mxw6s6BBMhz>eBmr z>=eB)S;!A`(S#6v0E7Y`Y+szUdMVCyH^cF<+w`yGQa*FM0W*5 z!({>_-rrRRJrr7J2T0&crGVSiT~3uu z*$u3C>@+s05#huFwBmYC?8AV)D3wWlpiEqH1uh*oif|IbefC^aMA;G|i$m^?;v;Ew zA@>aF-@?^9-aMd@^={dx6M*ZzP{+HmFs#n6*0gknTTaeUT+My-RWGorKj{yD#_TFi z`)GHxY6#KOFbp#5l>-B38;p>rtk!XHYYI?hE zC6@En`LoDDr}c*6VDnfV-If5VLPS;3Cn*krBdaG4&pt^+DufgnF!S{6)Elt-4}p2x zFzq8LF-qm6jpR4$!e?|lXZwLSan*u)yX1c06K6fB1PugIoA%=)L_A`e9%viz&Aw%n z{Lw#lThJ(5)osJ%DH&|igyvKvl%$AucJx2K5BZ9r!!f;cSp@v5q#kXz1)P?*fE#yD zFKZx(V!RiX>_z+~&I<(-aQqND5Y%S$Q~`wzTm_Ya%JGlm+p-eRVcn(N)7P1JDqyL(kyH^9JcdZC1tC|+x65s2n-QP z)2OEjm<;GaRz@UAp4Yf^CLjk46bNlG9|U)!4_Q@Zd-=v+ZJ6IV|8GwKm(GpsL8Ug= z{#7jt(g$sl2PzF3W2qv-q+hXrbF7ZH657LupfW(4Guk?UWk&vRTy%vX4NLv- zf*`b$Abu|goef`FZ0vK+aPu?dSPNhvB}3N6zvT`j7!Tp3$7950AC| zU^7|h=s{kEr>Y18MiQb~k}?RSXJ{}xjdyR8uzd$*I{<3?fx4wi{{W48D2g%G;ZyD5 z#LDB@e{IgB0CLe5!y%9-nP&a;-&VEBZooSUUg4?g^+ zE`7yHEIMv~IltF7e^nbx;LitNwBPX-8Tft zPk*s+5FHbe@f|M+PoVW~q3ryj;VffBYpvZujX6B`103}j9D1Fe68OX50~i=e{;UeI zPgIanP!vO=fduy;6p;-`Fi`Hn|C>m#FDrmkffdmp-sB)%keWd<{=EH2-+YI=IK*SB zVlrFU(J}s%Kf;;M{S0TG2Ji^SA8A0;W(8?Xd{y15VE?x}<3HM5(xb8Z&5ejYhC}bb zUeYx+IgOehW!~p#UIJSSq*eG#2i6_;L^IR>1!o2{o&oenD${H|ye>2}HK`#(81R>q zg|?c7YCAqdx+0L04K&y42CJC-s{jVLv2F|calYqP!kKNPnQ2TGh3m)Lv>=KGGwuM8 zAQpO>5qfwQDtbt2h*o9vX%G~|w~IkL42f$LU?6KC)M}7U;KLEB$_fM~`R_ufRvviF zCBQbDMpc)_l5QbDU~Cj;Lo{<_7e9FGF6ifVRZ&yWm^}QV{!>)pNf6qGr>Zo~l!2J;!x@GMDE1cIfYc-E%?@N?=I$ zA87xe&A<)J5%t`Vau6p_lLVq@;^kzdI=T%g&cw(An3fe>*jM1g|Law+T2$Ncf!+=A)TGGzf4xz)c6(nxK} zsw@8XEO3pxz&(h_DB1nq(h;J-L^asiZvFOG@IoWL(574g`T!*=Y6^fhjCTy@U*)=Xgfiew!odr*Pd<&A=$<>X=Rxp8|6?r26jH9T?^@r&o)aW; z<@xew?a28HMz22Jow^kDxjnII#683%D`7^)PRDpOVQ5Av*M9KM`0cfSP}CpeDw6uW z-uLfykkMZxrE%6<^zxN5J5JAC`AH<5L?ZkVKb*=z#bMm4H(e#7qom(xUp#tBdM7m_ zI~^ZWW5;7VimP`D5dmO`c@2wG(k(j%^V?u-O@S^9dIM$Z>FZc%S*igaRho|%f9S^M zB?G5bANzb~_k6)e(>ld4DX|aA@w4%{bAz*EPXF!5@Rch@&#o8j;#?TzmXZHEDeW^` z*pzuhcIF>m^(I?SbbgxBT}?*cWCs;J z?!1MR{njye#H_Ym3`y7-^b!Rk5lSLlW{{xy`1(#}JOa$s`pe0KO^IWdQ{le)H`VMN z!rzVFb85%(zE!iTapPMvdwdF(6leOzIkTFh$w9#Gv(QD%f83ehZ|Ub(6fSGuw_RQ2 zdvfK+`&zlVzy3i(3`pE;J-%+$2fWBaUF_JM_vzNBiSjoMYW-S&ItQR_QNYE91w&R6 zB)FBvJ7rTvL`54td{E>YX8%am*VnHH4Y#_>DZ_Scf#j<`P;jkoXM*I#5ZUCXzrDdXC^FOCBSlYFy$Kz#g-cf_dsyhgyCWOy z`ZL3$i=|wFq;1iaFLOX#wI_+!#bdntK*2c(e7A1j9*<1%@FakQ@Z5&Zi?VPgK^OeT zGYR{p=4s%52h%q$O|d&0@S&eBy8gF=tiBvb@eObwS;qFd{q2FgMGpt^0)wo=>I3-* z>aS(*uOhcl&UzlG&D*rwrj!f;;M(c%KokX z`(M8AYR;NTi=xGib#i}aq`R$Pr!J*;)2*5&8q`b9pNWRat4tDSoO}IQs@I}vDAg%K zuAMK{1vpw*ciy!NnAnhvtpYmj0$?s%Ob!A7NgXDdEx)y-d5i7jtq9{yQ?`TSbvyAvg&~23dmwW>cfp*ucKXGQbE9wfjv?xHA7DI}B}z)ZJ*%G`nlH{c{L#}EKcx7&$z z%a-2G!!TDc(L@({IM{dT@+ZZqF3t<<{4gr`pWfG(_XV9LyK8m( z?CAc*L#uY+>YIx|yyMB`^)bt<9wnL`H5?@821aBz(FcLUkXRmqVH2}I-5o!QL1$L2W-8y!V~R_S|K*aA@&Cob zpxO2yCvZ=v!<^sWY-)+q5G_SGHGL3X^{j&~qu&<2AvPUL%-`GL5W1E2W>J-Ea4&gJ zPfr@aZ_gE{OpkU9WmJGH70ihm*;E0e1VR9|I_6=8!=y(!G-C3j<=odSTCesMEW2qw z%nM}Yxg593=iV;IA1Tc}H5mMmVt{wmx0CqKzq$19YvB%Cbe4N{l=1zyUtV1$uEA-X zcXRo`vg)gXL~)u{!HWL3-oLupN<7{sA-*?_94a@Dq55G4)edeiETqIUH$m}HD3DC$ISR^tf5?|i!x5xET_ZlBxHuEQ^Kt!mr}+bp2q*` zzqc5~oj=8HWR)E@z3ZeI&V0MxbiOQF7-kF1s1}!)M(pZrH5O$kAAHi>sOd{LG!kxA zr*QVkr-n}-4%5-n-qd>yqv(2?WF~al8dbxiw|GpwA8dAwc%+(m@)$5{u=s|P$!1A^ zZ+8s?;Pl<=t-z2tkr(^dQWmx3yX9EvHJwBb8J%7_`>S+~S}f)3W4Ri4L#Q_#w@iMn z)!EHwWfon!>E*|D*GrdqIgQdQLZgS6Urf)$q`i~R3}BUuGV~4|iEh6opeyT<8N!g# zXAv)M|Ln};1vALMwYh@as$x>#9jYFl?96-YGI~>XK^X=v2}_0K39A;mdkoLW5|eo6 zJ7(zTwf!M~`SWZ3^65Gjak_cwMMJzlm=i`GJ&*Eun0AL(jYr~sqWhw=MQ1LiU~xJe zCcUtSuNmMIJzsq}nRjcYYPfR0Qc>!SOSQGBu4_MFU8{8+=TLRaVO#@B+tQ3>r=?%0 z&hswmS1a+VS2n^Nm1nB)8ZbsGKyyTj{_moS-+Qc;1B;8`*2AemVDEr`eHE3T0D|Vlx>lYk-xSfE9-!$9M_V@qa(C* zd>Zu)N=I{vlAF?7`|FP!<*ju2yE{R%EBi*HNZxVzNa4EM7VVj}@v2%an(^H!*FH3x zUU}UkAevc08ImH%O&PHl=7yylI462H4nP^}QE3EgJ4Zgz%vbV7FgCF#y|JJKr+1?Z zY89=lyV8xTcZdbOHY=bG;5qxmk8*QLAsY{qcE0PS3{`^qX;@{)L<_l)JLIk+xea+a zD~6K$_~S)Q=BpRZJ3+!A!^g|BWSkzz;A32nIGwWtVieW+dzLUTcRA0^Qf{7JsJ!rH zS{HM`>M#ODmvqBcZejci5atFN!J=LOaXCn^>^wqSx-4MSb3H&0;x}%WoIRK@Y?YB( zC0Qv`d~`(O+Snb_=J5h<(U+X;tz?Rn=QE6tPN|7S12%j(Yp~-dAEuKQm?fusR?-A+Jq9h&S z=3i~Vv~6Z&{9ukh_v``8NP6j-*WjahJ^O+N%WbLm;4qH!-)tn@OdP*x>oRfa3`(`c z6@13iYuM6F6)DkbWBqTc&KLZtqZ~q~3P76tEcEWJ4`s!{a`LzC{P+~m# zam{?VeM6jzCD9SoVzi-gdkdKl7A1z!n*=HEcd9N%ML&cp|Ep*#$PJ}>-4LRmrEGGY zJXD*rh$t_52=?WArVB*Mp6fywH-BX2YBwjP)v?^xCHlLF3+a}AzQ7suS@gn%0&-tW z$4$Qk8U2|Tmx%=WYYgV}9%eXWdROQR79g5kqeSwDExC_pkAteEc4kOJR8sa<9lj0V z0$NOoDt{YB;gspR3+%5BMn3HL{zwn-Sp#4mim*p{R0%cE{(l6=-E?ZO!BWP4Ajm9- zIwDSk7)NPq+LfPYK8}IH4vYcCX0)P(L+Z)R*}|xMQl}#9s*X;t;i0m4s|Xp`r$lPxqwif^VW%x`68mNDiFmK14LmKbm&| z%EqoMDVwhwmzI^yozg29gB@W3<|VQ_PfRcwjYIvEm$T7GqoyN_drEGs43@O&ly2#A zMGOasN5%s7PZK%+_dA}~^*qw-QSwf8bn#t`%z+t@@be=uv-Az%>-WsRiqgbnsshpt zrkwtX;gb9zVEG}A{QLi+%hnIKXPt#H5_k`y1TTH8A)frgc4?;?k7P)9_PTqYsSM%k zaG56nV$myQ;pR0TtR505)Pf9W{1 zAXU=MF)Fdj2k3ZI?ePt%$*rR4twXV~Tviv;zpv@fuh2E?56x~^jNXu~TFdsuk=Vu* zjujlwPv#1f(KKxn{S$T7CiHN?ogFSGT8TVE?Jk!Sr#?kZzh;7%UHjFAWA~BN)f+`JVj#b{XgT4j!Ie9kHi5 zGDI!g)ze$iMb^6OHidM0=;pHtQL<2Wb?$(Oj~u^yW7)BVB|ss$lksp`UOAoz0Y~1n zPI(tV2-`iV1iss^l~?iy3psbVL(kY!JJb5U4?SNT2ms?D@!~&%&)uzj{jI(Ss|Nrd z0oIwg-=cN@OfFJrA=< zas!MErDjvSW`CDPP$K~C+IJI{yc@V;hbbjf*6gB`|5y}cZZ@fYEQI%HiQ?Xn21Fqui#bTN_k-ebc;0CqY$_Xxeb@p(3?PqE1HvB3P@Er1xAfq(W=n+cB zW`qd`1n0Z7FnQ`?BND`|;h@}?vWBBg_1T%yhWOZX z&u-cFDC=+5{)pMnsI@3p;?-c8lkYD4vksNP!?6ijF3$lc?3i4_j zQHlYWL)ZvRYY{Mg7}~cm!z%|T3v+hu&L2yc0SduZMn*ZiN!?bW+dk`EJDm$R+k z%8zvBX+k)1QEm&uQa}n5^64ubwx@~_kyg8zBx(G0v9>X&b;1i_0oBmb zS1m#784O9t-X2eX7+6Q=GAy-0*zHC9bgHF;6F643Pe?em=yGJ!_Z1>}MFA~MV$lc7 zHw-I_6@-*-A6e=8_#30te54P2eoWnSPr~jAGS?jfmtt}g%n`&DXxntd zdL?CX|K52rb96Jz?&~mJYYqdPm0`T}u<`p_$N5hK#Z+rtLp8m|$1{{ijlUz*_0#DO zQ%#TgG~Y27-W#oZ?2MY1@niMr%bQMbOa%5|<+?l0#~};dLWV6ZDap)l6J0VbsQxis zqqtiLh@<bQKg(zKJ{YcmtZ7f+F*g6XaF}1kg)SgdRZy(Bic+ zoi<#bSY5IGZKy;Ov}Q6HrLVu|r)~ZMwKm)(<%>gp5l{b!cxlq;B9@ZDv?d0Jv{y`z zLU17wr=63&VJlY75XJwo~l5TPJL{lwcnl`Rt!LJ``za38LHCFn)neP4arO$ z49^+$Q97)sXyo+gsR;4=o8%UhPf1T)Wwr*7m}#$TFlG9Ao#nCo2tnPPI`?eYjSN@m zKQ+Wq~2NONRLflib!y`J$eJj3xzN`YG08${!!)naxQBr*xg(k|P5L zDnbRK0g4w3L1SbA-&y(N@1zR0YB%o%;%E4pdffb+abmp`sAIs}VHn`4t;%*FZeXc$& zxik+v-MLLEOCj86-=~2uJdXiQ*2}hW@kz$YuMhCTdeL-6 z*o*qF*ZM&As=GLFyVUz4KbRfB2ZVU--N)`&;}k(J^c=+OZM2cCu)!oYw@UsdG1 zUt7uAA8+W9LgA7-Jdn02h^FFzT0A;7;6umrr0*QdZ9h+$!`s9xBPjQ#Y7a9;kT<9P z*aW-oLl2-oWC{&Y6Qx2z4<{n((UdjXieb6|(GI>_)ddLoC-E$W{5Lpy#1 zq0i9vTw8CsSlv#i!M_k!FxUz~R7c?cwULZN{KQ!c8 zkZyVUN8`cLdxgQza@R(;7kMHP8gQ7EU^2NfbmO#~PD9GFzIKE9&F#X+^}q%@gV4n% z&>lVvppk}^bZj)ck}e{^+xy6L3Q|geBQK&~LIG*QxjhhRT696Zc>sR+)XkE$IYxNC zV_cQ;^G6+*HpGuz9$3=g9WaZm2rbYNF*QF)a~FC=S!81{&3UH4pn3HJgrl^GNG3D@ zj{C!syF1`&*I%l5r>S4fGMYPik^u&7%gmU-tWD`Fm4%F|_W z%0izTH;&r+vxY!ad){Gy4XP;1%0IM|DcET0QOMbZiHgodi?&7?j=h)^L*)#y2&Nfi zsyE2dn0Dr7h1-L{skI*5@zaC-A!h&bU)+h!5c+XGx7GOZaM%VFcILTY?T!I6RtE6> zT@5TB0QCv5h4=68zIz=m_UDBf6|&1}dUa2f!k}pNuC!nSE3>MkP+xtbfqV;aFH#_y@iXqu+0?OA;o==P5l98B#pUo0#82oxe zvlG2*weJI32F%o(3+FKtS5m4ZhX|fkQ#A+Q%uc-VqFy^vb#m3#gxzb1FNAqm`}GRf zfJ&M&=o4H3khR0qvNLobMx*OC6$}OR;4O>;tNWS1a~u&kh}){x_-g;; zcnbxPvJv7rfPI)o*?$A-h0moSY(4{zcX1xLX=Inr>H!fuZ2yH@;DNi}@5IF4(X`A` z5bLntVt4EEWJqnCAc8k~Wy#g?R}7p+y8NK}5~}*d?cTlZ-e9Wnk-W0+lQo5FX$X~|G>v>XR?7xYq{dF*o6?Ez z`cGM;P!eUmWbXa1X3l#HK7#5%b|ZY;F?|3r<&#AlYOebIE)-M)s(jE0-&tG*{T&#X z8I_c^JkxK{0p_Wq*^i8(GY2v`KWpyilc)^ua=*tfu5v$r)q3!UtAb`Eg{gfnfO?&L z<%q58=|o0n4gN_pAodgh*B$0$oDY(B@g8#*+OxxtUQQH(VlOCWJOv4LF#Hz`T2r2a%2zxjz1uV&>XZDm zFMoR!ttiL}4#t(`{Jpbj;uWau%^o!?u0Dgw!7ifY1|% zNiIZz?wA=ofippM5ZPv;Cd7Cl;Wk}_11nQZ?}2}G0KYY1Uq7gr&;dX+gqr}(=cN2F zHW_9(z#zs$QP)c!9Ch7ItGkB_+GArM?|pn};S7q(!>UU%h+JR}n-#P$7@0OLO?28Wr5L?FPU z-kqDNt$PQkoAJ=abOE4T!v|IO9zALT`J6tyGHBGLuYzvE(zTkt3V_T;pwitSBgr2f z0q*hYF72PgwqGv(uiRTP!4NXT8wN6kS^|D)2tZC!^?5BVEvXUE!?^Zl0(w9c$5PP|+SO7swCl>1D~4c@ftMD} z3}QOuFXU3MUz#6ocs9vN-w#unre?n>Rw8yUCSykz4*Jjozbu4Sn{$xFe_klXd z{ZRaQ=rTsqk6~V=Aj*PHGy#VOH z+h;A=FvzLY6t0g51nBdG-}&;wUoXh7_UKpNqt@L4Ev1T3VY+F>0F{pZm#*M-_B9@W za!4b%sd*@eXxZ^XV)Fv5r#{R>K!ICk&1Dv`GYHqZ(kpYi<&a47Td=tEkg?}PFs&SX z2ob|vM6yP%OOChXz3j#9&nSJ_ys!~MBfU~s3Ge7&)t_dv=f<|K< zvC%SU2dTtL$z!7+?#Km^owN~i!lZ`mn>RqI#%dxR3_aZvb5PIg*RNxt`xUH%d?q^^ z+_{5KssU9Pvx$TdA{SgW4FshOEU}|JK z1rycV@e5#Pwk#k~bs-#v^>&9mFZ^mJ{>k^ylqVpm#sf4~0!(WyX#GS3_<8r@WHN-R zV6Umg+6}BuGO7%%&eqiUjYeY!?z;(EfkgbPErrsfS}Dzk5Fjs9*%!4UgX=b^zGbCy zK5qT0sH13wO;)G*L#SrQN(wArL_~xFHaw!Et0@1(E=Lmr1{Ji={%@upesD3IPnDy+ zFiBMbL^I1~nzaWto~h)lU4rSBs?cZj$hlt!xrOr_TW= zs{wMTeNMq;lg#;2Gmq*T;$(syj{cP72)W=P(LAkqNR;#XY{cdxkJ)ry+IfD_0$wkl&VHS^-4xZa3yWfmh)y)(vPgJ--VHX`_jL^iaL>^T|uUx z+=uKt$Xx{u&mNIB5JMGKjM*N#-{BXG<;X|Tb#qQ*eeE`2TD3lmAT7l0ZVe6 zVk#N|IM%5PcOu3F!paJSB(_)Js3&X3_dbq4_wumHGe zHQvtA(C*VYd*3g-s5RXS#4=9N(~H7%F`K8Y;G3YEqN~517hnM>3fQFS3N5T1w&^^& zV&4-{87@42 zkG22arf=KP34QVi(+DH7*P}}i!I%f9L4+15BG@BRL^|TUdQ-vcIS|*tIrW!Hoi7-`u8J1bRC(MyZi z68by?0&FE=6*%7{l%e&ZpemPVM~9TVlbf#`hr&|FTIXxQHvo>Yiw^b7@MgmvUN0No39Y@ zrfot!`1pF;e^V4iZy2!t}DF$u`nhZQ`_r-3M7; zyCoq|3-(O<#&px-0&%yWgWwFlfi@@S;1A{E?ZUmV6Xxe+r|FCdEHzwsqvsrseqy{=qgy2iUN0DMfgNO-WBfyCb_=r?xwYg+oJ?`a;> zm^}?#DG)jF1D0y!sDIVARNOvJ$(I8z4iGBmLK4{3xd(HO#91GhDkIH_7#KvGBXxpE z76)pAD!qPHcT?@C$zrvw#28)6N3Qz;bdyJ~N zjo7Mzj@GqPsEk+)`HjJp94?^jTFyEfRaZgw7mrL8W*!=YDd3iYsS#)dLV;s(4GJx) z?|kPmFkqNjsN(#aF*T(`Z-Acd#Ko*uAj{H&9+8Rej+%PlWlWwg7+be{=;jv933qZ8 zK{X%+P9m%39t?X9U{qd8)+aV@VcW8Fh**EumC4+al<~$mUkj|gmX+ZjvxN)-b2sZ* z{jWFDMM#1)<=lmNraHP%a*F*K*GqSB)s}4~YK!Ec$k46;l)iJ*F$!-j0`J6>G-Bbj zb7~81z?xtOaFi?ilw>#`VsI%MwYNOa??)0V9~v=sqt?^Fcc~=SNJlG82R0_%I4Y&~ z&WBVpa}x_uL)tlAG$V++Tisb?bTxzy%=HU}kg+Lk3SdIdl{#zWlQ$18i9yAMViVa$ zdLxe9xrfcscrgmn1?IU*Pwc32aR3viMy)caXAf`1v{AEKqZQ72JEV7k4GoUC0{&&&u&ida(IBn-$CQwq18Y7O6UNgV)o;v89l)3q!vbC zaO+L0D{2nYmq=lF0dyzIB4t!clF;P6&Z*uJ5dKt*SV4>H8}*3SBMLB);rMzIy?S9j z&{~E!Dn~376G@aGkh3ro*{5+cK-oPbl$;eP2^)poL>B3})bht)4R|O{DS%lhNS5i^ zDm{AwYj+%q-e%15HLq@mj}v+daw;9Dhsm8P{C=_&3q^;e^Q@%@}{je6(1;z<~i#0`yk&|E5L91PQ zuwTS1yKAy>fI%rz0jObJH^Glbj^;I$pHj`u0HM)Q0ZC(Kx!Vu7)={h+oSjhE!}0LN zA68!I5dM1nrU>^f-1uM9OX}0;&YXUV;(e`!W2AO?kQ!Ru2}F5+T#qnLa&e%M$|qdkb$Yr6<22@Gey+EvU14?a7Ma`rP9wCs!5@s#Gt*U z;fT|cCc^IqhnWr7&K)6^;J6iA!F|DYk8jZx4IP7;W*?ic!;Ph%Ov!d-v{1O@iN)2@ zmCo}y#w20ldKrZGK?vO2O|&h2t10)!>TFl~G5gC}zAX@GhfNIfbm#bXBmpzWQF|XJ zgKTWC8mMhug%46i2^gk>WrQr5MGO%uU zqMIDl_NLTw57CefSV99K`Pu%BV{YW~9k0kjH#Fz@jZ!0-l%YkdKXZB`2MN2p8-Nku zM<*G+q)sr$;~heWZl(}X+5O7E8q|}js-C3o!2m@jk5lQemr$Tk@{=V8G6$XUR6Ay* z;;F98bbzRpRhft}JsPll6J`M7LOWLgA;=3kp_WLx_;fM?MCe{OF+#X0X$fL%*(k>5 z2=Kr_+)j`ldn-Y z%#y7rh49;FLOO9siiu+K?4PNGI@|loJ$%h2zT%GPA_616y3`xaMT2s0wub>C1n7qC zn=r;Z)z`N?H%i@nITNNtv!oTjD1Au2(gLR#;dv(=NFA4ffqvxeTIVF(c92T1qAznQ z8pC{b=KQjSc`{QezbxWD9K)3`4s?VeH6n;abS)7XywJAgJndXvuh{GV; zv9qLY&WpG(9c{W`|Jc96jeMQ-1&67cyqdq^k9O5NLkRc_NOM&NQOZ>@^!eId|IS6!+D%;rwg75UNkkowOI=-eXCSU!5~ z+O_VE6Iu5S{Z8b_Y@&L>-t+o)2JkJOfh)x~d*PagkD7h$xg)Ckp2G3cJW;UBh%-Vs z^T6_X0aMlc9IY;Q2qhgJBJ>UUcztmgmVRQtJj)w0(WGf5JhEcB))E00Yum8!)rnqNFoDb`EE#bpbCQ;(x7qKe9T$Ii1X|?NEvj$ zjWL$VtJdEZ^?nP*oK}ep0*}Bz2P+umaH&Pb;?c&{xcSne8;8`itT&9NqKH#g07&dQ z1ie(?t?0d2h-+@A!~N^WO>lJK?4bW?1azDlq0l-$k=n(Z2XHoM!Ai)puYyW=MLq2j zYqJCTdVLtTlARK>`wu~|kPjZ9w+#S{vC_ygJdcosCRY{CrzSucODpr84n&%kv$V_o z?r+?DQLuoQ3v-A4dJmmBb7sQvgUAy?Ytgq9_5<3B9{&$hC@c|qJ2~YXSdw{o&pe*P zW#fT|BkVcOBZ-IekWb4lBB_}X_gfL#^VTrcA&D5N=@2FJ_>S5eOC}D8M9yE%ucb>S zmjCz>!6zVbntwxK8Vl%Xx58%AEd|!abXT>nU`917fYwPe7JQ3YN<}3Ml%t*_!A4=I zfMYIT7>|2{ULPSWy!zphjUWtWk9eKs?CAG+)}PgmSuX8Sbur7>;uMq+S`xFmL(sbY zvVXWc-l|Y5*AC=s`3(1 zquEbbd#Tv6N*ti1A`R3%S!n&)P?8ya==}B~%h-|jH0KSc4X(C2K_a4b>O>^Yw*z5% zgyF3UR|y9uQ8CRgC=kRuo8iAPpbK2l^$hj(Yl>zrj8^ZQ zyeO~Mk<^rnC0?i)!I<-ZHPN3#4heF-@s;BofVe<%#J^Ty>Eu&aqds=3uRFM0c3%pJ?Tw~bouhGmu zfnLA;<(F4AprU{R3xV0T_p0i{`}gZW+&&tC&=8QKNS|!ZvWlZc49>p zp%>V7t0~93@)Xp(o559g6{6Q~SU4L6gQVx}3zdy42g}|qgW-(nGZ;9bcX1E&w>cFc zC6QkumlrqrYkkh>oRVRf|~$Jl7;8yfV2P<@ApSt>EJLo6x`(S@y>$=0}hxTvcHvb>p;E4dVsT%CCUsVN~=OP|cM9KKG0Q2tCp z{Wn@SaZ?B>0N&IE0HBhs{suOo;~`m@f?3DL-XGfl_PirQBNaQiC@nyP4u9VwSu;yM z$u0b0kd>uy=~*cLB8cNAY#q0yML#D zy)D~^JgAGme)4AIb|Nwa$3tRkDA@p?zN|i(zw=h16GnnUR zjI9{aQWPg45{KRk<%P+f$;<_>s!OS*FGKRRAw`*p9$!p$UK1l%wS0^uOA1$B5vk8C zi0ku0O=HnYltU6Pj_Z2K4KjIx&|@Cb1@%!juS1X)rXReI*MuE9|4G5Q7WSKDKM;xT80;*VcXypLRscoeWfbd{ax=9z$BXEic zwb5`9NU2(DJ1h&OMFqt;7f*WU$f7fN85UA;d~l?$0eJ)AV`!DqCsD&1qxZ)^A zrgB&8bKE3Ek4Kg{w>n!-%q8s45R=BHe%H^X|G={OZFUV8hmvzgo8}@-jR1UhI4bbA zOM{DoPZlA-6;e%6OJ;UdF|(2s|y2UZO)51u!0OmJ^VraL~Qn<-)<> z!lzSt0GRGQSQ}W2i99f<@em>b5*7MFGJ=_6)#}cq^B(4$J`%3%^4sZ*X5}w)AfsW- zOClZsI$sz6QDmeN?ck7vcex;RP{~CII7;Lda@8^d z!eX*X1xaYF#w|HdPb0VzLG-wj-9zGI4&&ICIpAhhYz=C2M95Ps+#dJtO<7mWCA#UW z0y8D)-9n(c)9}_hZQLc_Y@w3dGX$?i0@diD1N!wY2Otc5=YECAcE~R9t6(=)^=kwS zfD5Oo0Kj4ye}wSxas@~YcBStMy{Ctk=R7xhn}}KJTn|;_g39Z5eczU`gRcR()$-j0 z6ICR#u=j71RfcyD@^GH1uI9e+W+zu$4Q)poKDXiBte{YSLss6(xj|qT_P&+=oY%Dd= zlS8ap_YgZrZq!FWA3g4I(890E>m3NnLVS`u>A0H%;nr|@ecV`|+)&~7K>#}t3bVA} z8M6dtFe%$@6-B@k*XChPjV5->*-0Vfp14n(7} zXyQFad`zT2n&;{D@w`L6Bv@RU%CY; znKb|o(G?a6F-k7?+3>g~cU!37bk*Ex@=gt*t6AA0CYPXC*R(a&1yI0%G6T2Pnsfr~ z=*+%~KuPO0#09x<%%(+b#spp;#70o%B_l5H!K{A*b2(VeL4)YmrKLGJ5}ZY4Bkx)} zk1Hn#B9ve-P7QLSG*|)c*Ndk4)9#pp>w+>1?L-C@_be=S;hR4zZcUw8Gxc#O+Tc!I zococc^f?^4El&M%k*Yz0K>4}e?!V43_qF2lfn$OvaBmo6jXT0l?kRL!U)C)P)IZUI zn~6|lJqNMiktqV)PK0@)y`}87aq31z0Rs5fR^5&vxyyX`tXVPf`b_(ir2E0gzuIVXKne`!M0}H z^*fm#Sc1C*4Kc*h9?o4+ID@C^&6g?o^zJl|g%3byy^{>v+B}SJwuDMR9@>^usQP?U zn#J^^ygA|nek`(#yvilmAIW=5V#ViU8525QVs?By8WeQQU9qYv)ypxh@HN@zbiOe%Ld) zz3PVo1hfk6Bu_DW4)x2NsW<@T8r>91llMJ-Prh@?RsQaEfF+qbPx6m1!<00YR{ti_ zRNS%qh7a*u!*+Ht0hn@s^x+97(|O(m&MWsxXjYARp{2lR9;fHN&^>?+EAv@G-S3Gg z%fahvIbRIL)b|rM{`7Jrlw^>u0Yg_|-wDuqjA_zK&81mLmxk1yy@?@p&*@NS*$lmF zI1m)?wR+j*cDGdP!Slq3zHLc=ZET^BZ?m+%TbE-Ek>zrME= zF>~lQtMcv$FhtYdKEWLO6bzb$Kn*MAv1`?~!u-SjEG$)_bTAOG)skU|hZTZ1;BVHt z?JR&Oj5+Ak(4m7`#C9L<)3HOrc)zk7Z?o ziEa>9u!mG4xGpm&gLEu@;i32;AnQ znO9BKx-9H!sTbvvEIqOzMS)A46bVqx&*?^3JEC1A8mhLX=)ACzA!mah4KhNXHj+C6&vWcu_6ePF%*U) zDbqnSRMZ3I@QK0|6QxLGbjIY?TLcvv5=2CloQy++`qV%8z+HP!ezd37J%@rZOZUME z9<(kIe~ROK9d2wn-Yy5dn9bmU!!9@-8m9gJUw-vWf65{La&21fFe#V6F;SW8(HxBh zC|I;sQ6WCV5+)49LJMW^&9aoUx+g2e2=CgRM6ai~ep=?>oF2f9=7DOXU+#Abw10gO zbO<*;syjf#&GmDn; z>X5F&HF<+3QB;;hygZX(QkmS38!jx~3yHtEFLi|Nz(M}0;w^FG)r-L=H8fFhq`we# z+q4A#D3kDa-b&5AS^cmP|3XlPp@O;n6!*_-FqQRdx~?OKLp%MkV;?3D+q!MSJ9>O7 zFPXXpAuS?^BQ!ujJ8uCyMByO)$fbo7y0CXU2ikhPZ{@IWa`m-XY}mqI#^J}U7CO75 zZ^v7Sy03k6)UEi}uSXeo+)k8x-xdzQi2i`mB7;)=mhshvl&Ck`Z@qt-`*AZ(slK43AY-YBFDBkc>o8pS}JL=Vbr zuKF}pZ@!lS{OggfQAM!gv9>n z5C>9qgxsGipI377JW8WFjC*1b3k4&S$N_MPAMic^;*fan-o41NP*bD0k;caXjD+O_ zbtivVOG-vFmoyvK~c`!b=#AR)cf&~rd#CN z!Sw_xO9mr;G9)2sIl>5u3@As%VNp`qk28M%MChGJFT|a5+=sv16mLHvticR%t?&qi zK!wp}qPjzDIv#*}pCmc~p=vDXNUCVmK@ERDIeB24c<<`=DEgGP!0bi9BQOXZvG+F7 z93(n=pofiugdG7>pbG!O&U38$smMO?Eh|UN9Di8hC<2(45C%UIH~(nEb`A6eVtC~*+oL+%tD&g0QiTBa1Ah!kgmcf zpzAgQSrbC0=IX&`$KUgg2aS~1msJ6aMyR(ctxuY^q=hgbFf@RsPoeM~57Dqv%gLl4 zlc#Ub?>Rc?zpCvbIrQb1-krpG`1dY_4R2UH6&2;^O241dw;lA~^Q zm`JufXV3F6>t%2=BS>d2D$67hj&M$i3If)G3=9TovWHG7=ug>xkc_AimCLRbB6i`2 zh|xRwW$hBj2o5 z_78%G-@em-NXoSCx-?N9JgwnUh#O%*+SP$!bqy%Y^FXV}<=(U42vHaUb|C}~PQlxN zbF*GXb{vrbnTM{AT<-+nun(tIFgHNUZ6rAO>Z)ag$3~Q$2Zs#dka*;r{*#0tsA}Gu zTD!u#j!_lvIe+M{b}MGQq7CLAA&O6quET7YbZrXXq3vw$(slisBXJiACuK6*m{M-M z-G$JQs2rxyWK5_N6lM)@Isgk0N01q)l81MR_u({8XgJ#`y`O+$`6pH@WC5KutuV9f z{Z@JCAeP86cQYB7&gu~bHM!9iF*%HT-J|CWKP;OjoyJi~PC|1?$4rhj13MFQn}En& zRWLpG0)nYP3-C~Q`uuo@0?-iqmr?RP_(|VO-u@V<{pEp#g0_25o&rbc@R9dr)CJ2e zKi!Yp@)}T}z(LzX7Y~4>3IQM7W)#R*$v`_JkZC~Z%uDzV{a&(JN$l70DSvp;FaImF03F-@Yl|*q ze?56GLRO!oaupAaD)*0Gp553HMmX8+t}_WTW6zLksTDNVrETVcxOtY~scHgH6dDKn$G z&=U~1zZ@R?6Z67*8qu~yCck`&R-x~TdHV=->?i>G$+mu7)9Lb09oQG^PET@n{UaVT z`s#i#wfk;zb9^ziUt@(63`i^18kn~bF4OSj%asmHiYY=6boe`}C89XE)Sp2YHcU@` zOtg(&E?zcm5a+xwf!`gU)=jl>_uBrwH2W^q?y1;(I(c8q@PK69NpS*Qibfx^p=ORW z5sTQB6&tLwT0=SG@w*upMG8FiqMHjIppbq;V&!^ju1tQb<1gg$NxdGX4#AN5@%t3ec?X-H2t@Z>NA{}b z)cF?4!nN_f*ZV>fMTirRp~18bauqF$BmD~W_`^V#EN?eVRu!*4bqQT@@d-(a_Oohw zyG=~lZLDX~uHIwxJq~D7H6PT|!On=y2OnhB5{B8aUQsZthv}B9*d(qPUADeLw=qp6 zCRlUrTY>vM)KV;X$YdZOUgbLg11>q&@+Bdi7SuO}JF-j*EK`|Rrr~FO(4hPd&U^$I z<3%~WrGvU*kKxkhF|S}`{-eCRPz4DL4NMCU?EY>{&n9#;qm+}qIYdkfqY&%`!hoLh_z{h3_xZn0-Z$_2(+cP@!>O#IiTgbH>+3(z zklPOW?HIWfdBPSP4Ab%`6u{;+RKHAj?5&!qR^4ze3BnSpJ9efb{Ysv-ZtMm4-%~b&F0-KC5d`{KeBFl9nY&99>?+<=AhhTfg zX7mhyF)|67!0^#wUQQ_MI3aV1DPd&uLB3mNp{u6rB+Skb(#aYwGbgN0jRQ(h1FQ#V zs*d2CiaUMr`)m2rK2Zy4AcKEUT^}a?8Z-L$VPXF?&EygG)DieFdcRm#BY&x9a04&~ zPS8s#UgWeEZv_c;f*SMzgpw4?87O2lp-9ECHfu9PtBLY`Bfxb|YDT*9fChC78$g{1 zlR312SD_Ey8Ipyr13MJ((nZ(8NS;NzSI;Q(`U;8dhZ{{25hC!-pw%yr{B`gYEAmQu zn#dTc)-B5SC)CVEW|nK{px|XWmQ6yO9c4mL9+e5>k7bXF(Wqctnbzi$ovVP2ju8kv z_G-)4oqAy>Gn(X;qZ43Ou|CKBSd(qdZ+PTssRKaqiST~E6$IN&E08GU*~u##rCuTp z$b7YnH%hZh@A;$lphlm&${4P2FGt2;PNv~zR}YF8 z4s*|`s=)9lxEcCWxntjGBc{cB6%KtkNdM&Q@MRIS<^`UZMXTmrxf_#1MAgkpLyzwN zr|Be($atMx+x^$kK5d&ZPywNGFd}z>%lEHQd4+O1&H;EE{Y4lh*kiPsZwyl~ z_>zuxw*Uqpt(9c!9xsN?#yc{0f6ZF~$r zdj=~N-RI?emFZs0yjNDDSISjA2H*Q{yr|UOj5+Yx{Jmcwqg_8J0X!yy7gFx}4B*jd zFu-jv=?hb4JZayvVt~F#azA9&0&3G?e87%t!cTU;uLhbj7t2w!l!b`g(s=oaS2L8E zV7y_7B`2u)I71+)SODZSEO%bxNW0xkS))Kj9BG%tR$>FIS8UYZT^hYtc>Q^Fkkvx7*|t&tm`p`WVAOdP*b@{+-VQ4rWg>Lg_31CZ`MJEjF(l%>sD zTLTU7{1lJ`7zP~RBhu+9zptab56fDTs7azsIABmw(b+DjqAjfuJSBHNwY)DmEkH!Q zG*^@9txiq2>NUhanltUo7maMYJ-SU`3Y}rq;J?P_?_86ZXCm#CZP$5|q2s~m-)0T* zT0)LQFv|3J(Z<@O1yl(KArz@ZCWV5}<+ZJ`@AifAdkzXF)^yOv=DC_QHF#B&FVfH~ zt-%1Wc$_1o5^|Gbdu*4J^x=0f=QBjT_))LwF}M_4j)R&%dtpEi6H~U46oZB=USqi_S~M0FcSWX| zAgf|UTDcT<4o$juPb~Hrsu~#(`RyniWZ^VEO(JW0+5T6gQ*nw~%8>ghYDpiPxFYEeTmV`xE-zmz3n6m!*{q?>vAnN1N#{70dcKF#(*B`p`OX(i3Tu{qGw^n^^=$ zWhPhwJ|LnbW+toD(&w7VdJ|xwZqZYhRn;n%%3TYi6Sd71U!6!{J(}QZz`+Rk<-5xi z#43{D4Qnr@#9dRripM+V4dbbN{?K=Cw0poBiZW_iNm1&k1 zjLv5+%U9%b4P!cRTRxMbnIy6)B?;S%vKo)EfEk)9aM_s_+lIM+JP2@3nomMp#UUVf z1DUvoCWE7Zxg?NDIx)vp6udeYQ^r=4Fcr;AU3*gM!SO(i#7lIk{$+;RAKE|MjxB$U zv7H^@$b3vG-El-ld2o_pU+p2h%tLAwh0>KdNYj&Hn_4G|_BAvt>ORHp_fWI!c~+uC zycyM>Ps0Q%QffwLTengeNs)#z!?%5l$`^n^r&7S;n3ix5E$PIH74a*p;z|x)$z%Bb z$z!)c81?SCmjKEQX-YnYc!zP`65V(g42iXzlWa?hU*zn}$CopXSClHe2r6uj^}oH{ zk4@;$^Q<3$D;SS83gi?Ok|#XEV#uA@D_zK@zkRYDd{8w1RRJ#N&sxTBb8RE%yuz0tpTp2*#o!_|-JK%|^!;29;j?ozw) z?8p6g9`IJVrO7{cnd*Df`Im9f8^t@^!Q(RhB~Fu%DektX(+v+sZSIOvFKV*YT{IBK zqnV0VAKxO|+^ms>`gfImJ@6YEBxY=5$LDMv|#jSijmmNw%t~wrrw%^PF=3TWc_*dOJVTcYsmV zB#n}D^3(nOkgz{m_LNwmsrtT@F1J@^(toJfA$Q`_laVP3qsj48|EM1eh*b=B5y-|zcV zDnztbujf22F7)#aL(3nnjgv`xd!)?Nse#`8#vZ1ty`|*7$32Aw7E=4f)D1MBv~-aj zPbnoU%eO6Skjx5V9{n$8lK%8iLi-4S@DzUZg1Z)Y5Tp*-EF2_%@MUj_NR~-ivUAt# z%{kxAYX9CUXgmV3DpFb~Gt;b#)N4 zGBME-fG-*;uN3ZJzK#+6YfSD>5A}=X|MTylvWh(pvcdXq(}L=#T#!64sG3_{cx@yW zdIUj4=8;v&qd$CB2sJng!duK=!ixkCpPT z&fGZrLGjFX%h3R%?59GB{i)`={``F3@Bi;#FEW~_5;y~Z|5m}EQ6&1)g(Ozx}?H+FAxyB91JBF241L1Zd@EwPI&PQ zp^CGk`9w~cmy@4SR@aQ`M@BsHy{*@Y&?xa~iyutbFTKUzpZ3#3efd!&&2}h0(gA}~ z3mG%g34~W9$x*djIZh=4^$5`}QpnG~KURN7c|YN3i5Giaw)g;DOP=+>t5`!cUAV9( zH|;?Ihjl|$8~H&Ll6A_@o+Nht^7()Nt^ejbDT-(a3;J7ccqQJ>Fo6tUEc>J9Lw-~7 zv9WfJHq#=l${>!LHj6)mbl<*>-UE1|7ehG#pFcju2k(_T%|1HX-Gcc(#MvIj=G!ZS z9>ciM`egN)wMmw@1QJJUuOeeD38mS-{X_rl27vA2A%)@KzCc+SQUQ~N0JtMbfzfYj z4%?h)c+sTVVtMcPYol=ro+aS+$334nNkfj%ZyESpv@I&>@e`4%cx7dDbTxcz8y3yc zM0@ctkZ3oLq+8Sdc1wT%QNP%#;t{g501nJHM69zH;hK`u0O?Aa=wNAC+r@V}n3pSO z_yvN7{b8M~j=|-YIO1yZ*-sjaMLLd~LMJX^qk*!d(t6@}2t}@Nv0$J z!u+vXOv`FG--biMoUq_OwLrgrh`*AS5PGTG8KRNRFn_@hLe|{4s>GSmyToE9IW(ZN z;@?va!+L+aXdxnyf3ux4aR2fi&yZklZsLi`&C&;I!wz_2WJ@bOz9h|{s#=y+i0zxD zJeooe;7p>Zs_~a-?hk+epZrL^s2GTlVNlE+$m>}%aoFb-w>*#KMl)X$)&Civy zJkU3S@qNT;u)cs5*0_XkH%|iTxY{q%@!x;gZ(p|Yc`?ZU1>S&FgQ-`QP-nU3rK(~O z;SR?t`)Dw~{eO4~I^-q#&JBGIxoSBHw(b;$0mcV8;*C9fVnZc+t9gAJB*a8xn9S zI8Tj5;2v-OfuF+?(rT;cCN|uX0B^9$4x;Wbzr$l6>Q#^cWK+_WLzSc>xuR z#8bA5U*e}#LG*JkiT0LtdFxVA;q3|8#ba%8;yhxxHj^+ac!$G0ri^MMNX6c`K2f=Y{qzWK|4(*Si*IqznZyzu}`QZ7B9ONy)aneV^XY_R zC+;2zu^i<*nm5LpLbK~!M2CwIVIw^>V9ctoiTwTw{?@ks>T#qZ@L-mbH1Gw(Cc5$l zp}i=viDOtk;;`}gWU#s6cJ#JWCA91xq<$jK_|FW z0x)MnCWG0B`(=KoL?Q$}rgvFyX=iqQ+=4B(?`A8q2WyQxGfes4Uy*NKs`d@Ri{=Lx z#-P@LRPIcG>I7n+&*dJ#L8;HPVb!^cp$tFw`@8vLzMwaZcbJzJA}RCfQaC|Oj_kOi zc>MCgk7*S?6)ciRoE^?Xc_usFBw7_uoJ22(;*=Cd#Dn>Nbi@)^5h8>x&_uCzTn*+> zhmC>?31&>qF!w!5P0@W9X)N|d#GRGj+x-9<*cYYqo?m`L{(13zI@;L*8bMs0L4KSv z_5d2n#LKILh(p}E^VW-yd$dxRQocgYmTSP&n0QQa`hT-8xA8&J>G76bXQ@F2Fz#gr z+?a;jc17l@hdCL8&z`ZJtMkw6mixnn!>BKmR%hD$E^G8-|8^z{lb}^x3(;7{AMUD@0urx`+#K5Z`H`r(`~CWw z6np_@Kc`Vx3>Z(0fIsw7nfLo6!Q}_BNCeNQFNjJ}+TIukrVal2T-^}a|KyFpT?|wP z`yTh=V+GY+NpL!ubCW$qRl?A#L}@7n7bx^#8v6Ip9V!gs7qZ27mO+1cB)xIGP$M5o z8_x>MN+3PK&bWz|6;+DF#RgfEm;0!R9mRK-Xr~;vB~5w7RtO!0BEp zUZcIS7tmJCdt>G9dR+?q#)15sFyI>-2k#E(qglNOoi^AuaN5p6(nWnx?K7|-xwDO~ zE0?Bd-71tKck`D^|MN$pkkTI6bdaUb=UpMovY-j2rjS8tz*{o&&N^B)OO?EfygH(z>x zR{;+w-SA>hcc=;ZV#~vC~(kEI8A` znr{AjZ`oFgD9*jcnqJVl#EyvJ#bQrCw6QuVg@*;o$S&R&|C{%LZ8~8FWUfJ|{HrAf zR7Gl2-UB@bpGTT8K$kpd2H%wefV&|c0N)Ta@OIWWccr;fca6sIh2w80EruL*N95~_3~)WlPP7iW#on4t8bl8Bo}pW-Q3>m z4d-xqF2>haLKL8b=}n-a^bX{g$(?J}@T^Wq(e5ssmp^PJ{J(iMV82}Kg+hBJAzhd^ zaK3qC!pzI_E<56eV~PybmD|r4DMF|L(T=fx1M)Gy;W6j^*@k?? zQ(re{wJ`w%*_iSf@y;Ur-G|ME)2cXO-FVzrK384=caV&wy8@cFLc&p^Y! zGv`0Yy^+M*5hQcDk4`Wc8Y%}e8YB$299Nq@>NIv^b`%F~`VZ7ccl>UPz@Ey{L7ddo zX7Gi3=G&BJ`rUBP#js!``#H9%r_H_ zsm_LSb(&p3$er52)-fz(vr7@h=dr#zP^m;CZs_+vibymzqqiAcy1D>D9jG-QfTj#& zd75_!j={l2$eUzmD+X@kZKDdypO-h7mn7@#;Om%2&1ypw(+2!bOpWNQhb+TyEDjv! z0aD;5=7*z>f8HrbBw$JT7sIIXWkY?h>(k)L#Lz;Z>@akpELfM>UJCIOP>ybZU5E}> zp=IV^{6zKzap^%&7u0W+BTxQJmI<3N(0_t=nCC>gZdP^b!9Se5f3sAPYWTDgVTuI$ zpj>PMKq;pF>3+vpCJ^62NH8POp;j$kUqH+kwz6pj@ zCFS2-@ZbOPBRqtOiX`PAjMj4d>6<8MG<)~w^LO-~xoq62yC@X+ zC2*9F5h}aL13Y5}b&(ems!wdJljV+1O>TrYrX{o5S*E>rudulb28oeF$`Ca3xp70! zDd^-mGElUvO&`IQgf`vCnu`m@FMpd9=SvV8#}M-Sefn3cmcfID`bp-Fo1p0}X#yP2 z1km*+dX$Q9;2#--pngx+x>qk~4Au5wTYPvYSKk);x8Xn(JRD#yn_w`ACUO{6E^AVt!!EPs3_a71nDoHyhcY0X6Q9`{ zNrTzy07F}7>6bx>-~AweUIkcJ8u0V_)i>tV8-UNs2VGywf*XSyvV(}*LZ}xO&?&A1 zQ@2cvic|!l;ll$6)Ci$>y&zzu38)HhKKAFP6@toTo95laGyN>i+(1E0_6$r(s$k9o zAzI703Hxr_!6ux*Nt!;))v!_M$Si~c*+5d>L^+JdP*s(oZF9sdJRJx1Jqe!SC}g%L z_gKoS_}b*VR8D7$mP%Qq&tswf(cO9%WKJ8;zqvdJ@_Y78Z=sv;G!;-uF&~|Q{BNK$ zI9Rfc>MBS}n^&HBs|Dc1qn7qq7PKdJ<3ku*Od&3c>$i*fdpGq9V}Wj_mKwPOJ!1lL z#@?W>j*Tx(9m?i}iCFQ>We7Dc_r${^ivn02ZP`Kx9oB~qNaoYWK(3<_CYA+(nOs!m zP%kH?xr&I{#4)c|>I(S6;ETbH^`4E6*48wGLdL`w<)9%X6Fx~3sN%DMOWr6aAXkxU zvTwWj_ArKry`Q$DWvdy8k;`MRLx-bWmyH+y!aE2F4bN%X$hTM~kmBXQmSBpLft?)} zzk-N#L>-+o)aOtay(5MZlj*9Z`t4evbx8Dju8!+{1w1u42oti@W+FC%SNrJ7))tdr zgyxE;?||e56)6k3P}!hB)~fhM&Bm&v)y#$6{C;dTeCZ*=R{j18FQCok)Z1oIxSehs1sD?>yg9g_dpnIpm0oM>=!ngX!)ZuvuyWGpfUEF=%4uiZs zalmdjYcYi#9)qep_eT%5ne>RYgdK0`S6~PjZVdRrO|CH{;d1A**T;L-nUHY{*yIeE zml@^ew~UK7R*E)4!4#j3?&)_VoC9tYaRtn>lmQMop;poQeDdtO<6i6%ok+k0fNdU- zOaz)*p_Q`Kq3<|V9InBvpan+)V;bVB%F_RpDfq)Lvp+9}TaXU^^ab!ab70b61JHG7 zG6nQ%BmIP!Dtrjsi5bw>;+nK<7r9IA0#&VnuhW^<8p6{5;La|dlgh?eIjdg<)i#EtSVJ^1fW%U+`V-%~ovnWjy0+Ea z^!+8qfW~YKBv*_bJD95)BR&OhW!OroS&@31LT}T6G>9rArVjL^`BV5aDp> zL$}fbf*iV}yE}jTbq42-gM9DY&;0(nTn6yG@AEwS*?aA^*HW*I@a4tAIGbT@dj~7^ zxrbWQMW`4e3FgF^4SoAQM&)vtxPr{#eQ|>=15WgXF~q^xM=4@dQ8~&+vSL;KCe_J0 zu|9Gasg^%KjqSf}^fPa4{|-%ntG}{#;1~jua2a+c<*s(`0*GY#O}q;Hedeklq6= z@kZg!a?A!x@OPRrY(S0N3a(0VdM-udVsc#9TaLqWLG6+a)z#tmoIu#fgg1&Y1(j~uTt8x25L-7#2=OisY5(_0=;d?jXMF-AJ!=JD$VV7 z*K=q67rf>zu9v^xMUD?h17PZ8@0G4cpdc4T@&&SsnhWyGUxjOUHf+tRF5EMCd%C_N z5$RPy7xYkgz3mb{!QK}QQw+ZKwhU&F&3H7tV?ctT7SN)FFocheW1lp_I;^! zdBYtxBAqYV&0%8DCU^YQ489y0jFM+LV>E{^hcs8gOcDxk)Ct-7d9X1G2BE%aiXxm5 zi8O#h;`G?H`SkoM;B5pNv}Z}WF*Ath7GCq!trVj-;F>NwC3&s^0$*Ym14`dtP(p*j z`#puC@RhI5a6R$FG&n5zJCuV6y*J!CYzS72+!Mor2l{a;hnn8#`z+i#W-I`foz-V; zN5UWPtw2VK(6QG2uQg-83Le zF~#%?#h9gVnrZtrq^W&hr60d=BqtA0-tTZD!GwGBDR>ok2U|UWna}cP`^{>Phd`C` zVc+SnrMuIaHFUR5WcrZ#8)?BIOn3#^?$OtrR?~c%`oKTKuYi*U`?zvwxuo0aM)n3! z;RL}xY+ylZ*LpJIP|2J%qBv0*84pt;9H4}Y#(@~dMKFKW2bEx-u(eT5{Kwb>S-3b2 z@btnH#vzj>3_VAHzOeV&Xkx5GUkjwu8;a;0KoFs`?cagx+`E|xZ+`awc>%H4!<}i5 z%QDKDfSpY*RDMEGgZkUZ&>f5kRwlqvq$_}N2?FY5X7KClbV9A;eUBcb+}%|T6AOQp zv}^!Tdns9nx#{ofB^cNgVI15a?1-*_)|GJH9M-T;JZxD494sVIyH;xAU}k_JLPtp6 zPhuuY;Y)qiC86wuZPut5p(F&qu=`{294StIjuJ8{r$f#eOLm;g!>m2#&`I#--z%tp zUv@fo0(-0g)Xo|$ze2j*o}tK&3`!$)2{Og|g)|Z|W@UX?o!sH0TWQjw9W6-~d8B#+ zL~1*2;abtQ%&u>|kQqy;?OSf4yf!SYt7;h33+E=5{ws18mj-X~WYv#U7J|782MA=| zN7yB+Ff52IdDy6E5p|b^(R=2m`-u=_g4k^gisSUa0z`8W%EaqGt@wT(X|_zO!g0HO z5+mVYq{V(U{(`=&0Ub$&uMwcFuJzne4jk?bk@HS&kb+Z8oT(O^=qL|3zi~(wW=Ap0 zr!{JjRHr9uT!@&P@vB5-_UuSwLOGix5H!4CST9GavEK&SVHX|_etvoA{F~t-nEDPB zBYPlQ>7|ng1~fS1RdkF{O5Dmd;h#Q`j0kiIosOh!0?o`KDhusGyG2bZ7-G;`+K#_y z{i3)&s_E^oEX@4d*`a#vzF#?^QB#6q&FFGEn-M!2z-eUyiuhk`$8?o3e9<7uB^hD? z%Pf6eUgM3pESNwwyC_u#!E~s^O2vq#Zpdf@RvvMc8igTDs0Lk4pf7{K;MGG^9|Ys7>R(|BX!%yl`WYNMC&<&8_eboc$)v2?@yNe6r6#9q}bJQsI?VYCRv8aKZ% zSbIw2g3^ZEfo2#a@q@b`=rQ~+TgO^_B13aNZ~X&buiKRcO@QuNTJ zKix3w_p%ycU~xgiEb3-D6qqpfxT+?ZtycRhQhr^kXOf+jk+)W^{1EFR%6#m-WQp={ zx=&(U6yBC$fc(P&d-HNS|6a&;Wa03oehOrzOVqW}iDkl$3&jkH>16w4F)J@sNXH&w zjZzX?ii?9mU5?@RZ|^Kn$WdTdk|P6IVRm@k1Ro{)-q`Rz^0gnfEBc^J#v41bqo&_y ze+mNkFV3fn2jyJgkJ0K_rh3W zHQW<{toBo`$cS<^=gg;I^A>H%Q>_Ns`Vf$^bqHE%o*ol(QQJes%?Z_?jM*vz1i>W` zT4URP(P}W_X{;S`44^*rg`dX;2AIMBjl3Jl7@_d?rrVv@v-8Lq2XvoDF~k9mYG2}q zy+R)ZFgluJ?l8}PI&8T<+62m?caSCE$3aox8Vrk}UxAeJlP|H2RP`#~5@~2U%;DAJ zrr+HqVe~Eq=Sr!$Bxij^D4_5H*aL4Qm)H7(4Ev#2uJ+HHje^D_b?0jTWsLdizjyfA zh<&b}pbH<8&R>?ChZyI3q6LgiVgrwZezC3eQE;}$;%{j4srp#pnoKO}?}SE@axD+? zlqAA@xvl9xnkV= zTv?)6K2gZ)dET?_CUbjw^W`DY+zHT@>&X+V{D!J1gJq#kXDQG6RIG3n#Fm@^t_fKk z#lVsh{Vk){x1bRy7_K2h=@ffXxKx3Zk5!Cn2SlCk%1w0;F+aIu?;jGp*Z7cf*VcAS)D#I{;YKq zulxB?`7s08Nx*!wU}C@Ar?+)Kh+*)mkfVYX8CxcyX1j<~ey>21ioP9N&o~5GJ))8E z8|bD-q!|EQ?lYIaK9Wz-(n---ACNp%QtqGU1D6>J#f0e>f@x)0uye8lmU+@-aphEe z44Whcb_(etpB2DzE@&`UiqAyFK&ph_RZ2`Mlk$C%>uccH)9fvuDSY?CkKdaQpRW@B zx=&a?SaKn#V#E7+FglZQdCzPeR-CIG8pw*q3Z-PM zwEQTN@aIRCL0B5aF-@C4p%p=Zvl3ZqpYZB=g>biHG)~DjJSu3*EHCBZ-YAh)sGS`+ z2hLTTfbeEQCOCr(KsfHly_83GDUO;$(1f{1dx-A;oDu%MPYb#U?>uV&oK5^2BAJ&V zE~V26vBm^0;{1^on1p>7=eLB+O~4fc+zpdCd}k#@PS*zv1jt~?6Y^~?#qigJEtkcw z{Ru_C|HTm`B3SY{Vce;A7tj00dvUca0P)T|u8Pm3hY{<*SCh~#MdaC#TKCJ*F9iS6 zbHep(#$W{aT|ZbCd;*ch5OHCSDA|<^xN_A&*})2|djfIo4Gm4d&tLgU=Y?LZzH$mo z;`wxszM1-SL4UXz35Vsv)f5+m2fpt`DVeUY4GxaA+1^TJ;rZs%0M3&e6cM3;sm#9A zf7u(wa@)KklXwrakv2>R!V8sVO)RDV_ns3g*ae5E@_gwrZ{XTXT^Fw6N`tXv4N!Qp zf(BhOR3vN`GuU^z)gj(%3-|0n%q1ED?O?_}8MF{^fm4Tf|Mb&@cM!ES+U%P9UP`JI z6G5ZIyp@h>!*aU%8l!zKqm*!0v!*xjkY8Or%P|z`tNUR)w%Om~<+k5RWp)H~A4AE|TkNR=0FWvye_1^9;I_P~3GT)cyhcEud zW7!=Sz+3vNoLrg~iggHUjON%BXu-lI&?5O* zHh^5%v0^q_5nbc66CKjSrN14Xc5E|id@#YSweRPDvEVH9RB?B#*fxs~xUir+H>npb zKh5n4Vjh8GLb`b?lG1cMi`S>Wgwf0E;{$K$=xy_I{^5VR^t1q`05Q~9z?+$+@gxCI zC`E7tD(W1~9!(a)?yZ`6eLOI6}HO zjr- z-%_~qbef@=))Vb56EKEfPVs4N-gQ-Kj)k1?!0x-dp?AT!8BgLZ|t_h#|*D@8}@S$%Eaq@R~ z&mny=_K959tCl2qlC^zRS2!x7Ig*+Ui0?s=AD_Op6J9Nuc6!7RaM z0)6w<-D>V@kO?%fvA_M7n&prsgj@YM)?Ek7)Sp{OlFDwoIQa<_6=N{xuuI{<)g8^! zz3|`@$&PD3pDE!D7et6R9|!LLv0^Zmi?DXHM!bm0yd2gV{qPIcLt~5yv`>%wjb9b;^xJ`8!ij8 zBy5b)C7T~&jx}+vp&X4@p2ycZE};jaSd&5t1$h-}K} zuu$7^)AHPfwA7A-%=J(+DU*fv^1)g`_Y=DDRO4GnUVVQp|LhAynrMqzZaWK^2?|C; zp8)#uY9&nbi6K9G3lL$ekU6W@*V(?;A`Ap{$8x@vC5Pu|O6W1)9- z#v1~S>6($|9~b(2!3bJ0TZ&_OmHkoZkyGVN`hKS z^0zpv&9jh8lA5rFo_xXR6|d;czYh&P&BoC9C3|#eFd!K-jr&hE*gDMqlQ%uNkzzrq zA|+`6;n`|h|>-WoRA%lD@o`xak4a|9vp^94N;n;Ov65h(QvT6FLk ztRf@V%w0YzblYsFQ%NA3w@IJZlRd6MHb#=0KfA@>hxBE9oX=OV}M8+90tOKu_ zUrWLdES-5l=}$uLMSu5pFX?Yof78tU51I65yTB-+d*^F;>P;EfbtaLxfJ@e?m+m{) zCxr1V%=XWY6;no41w~EuM5SsQ3R7h;{!RMz`)_Z`WCe$LKAtDJTmGg0+oL=p(njnZKRnqZ4#sFZiO)ISqVhE#^^i(f z?<`rM-|Vam{rDy1IHiI zeq&otBccj_f0F^fo9=%0i`T7JjTuZI#3*rT&-6QAW3k@!zS#03Ee63UTAvpf{KM>K zH?Kd_>Y_KNJz==^vj8=9lswDqZuNvmGvQ`QJEN%K1_t%%z)5PUHhti zvBtiVm!4j9-Ym*~%d?*LE9g66O38wEP5W;@;QOz{nm2dP7CY?k`_J(sW1{Vn31~JK zFv9~Q_AA}yc>&cy^{&(8Tvlvym z`9u22UPLb61t=b@Q2uK*xbA12vk-Mu6vBz2%c_6DY0R)&2RNqj#Oh;_whM;himx77Nt7LD)u zzGtH`$Nm(kCmlpClMhb>b8Un^Jl)lx#Y_vLgqT9vuWov6S7KE8hbnw0Uv*#m_jl&* zOOE*)>#fob8UZXyIhG$j$1jq2-33j5a4T#8s|mx!(BqCYpHpM%GgE9MbX47+@?sP9 z7k~Y8q5l5Wvsj3_qU1f6n;)0jlQ>oP^xQBV*Gk;%OpW8kMP++W7DW;pPQi_pdlmOM zX<%Pig?-?DY`EQ)`1`-~-|SFo4?-a7#-k`%oH-)F*bPy8j1`Z51=J2Q%At7J3o)wd{1At_*>MEct^o|n*7=;h3{_4yDc3f_@m@- zkx!}oq!NUiK5&`d47_k7uUx0`)u|zejiC%X8||3~F~T9b`2%GC{`1l9MX=&w=x(U) zWxw&_U~(Un`**aOYl&%v=-o~*x0||4WT&NS2o=!8D)_Sg6`aWdI0|Nr!aCmf+g zb5_uc_VRB{e5qbbFMJUWU`wWHG~h*%FnYW8q^D`WC4t*fA=bPzoiq97dH}MF6mA>C zsp(;t77MtWZW^4xE>$73uwNBDE5aKqE8dcQS(V`B;Zt;L6FkJNy|h8;^L0XXPxgr6 zbcjvw&i>5e?Y}v1-{16KfB60_#90V@Swi9!G7s2ZN7W@i!h$J~HrSmWVb==)qi^z6 zuA|TSyVe$>>Y}20%Qr475#ZJ}3n{kSR;1!kU)(=iwzPRq@}4BS?Jo>_v?4$hapo%X zbS5&IkGo`*{BUU+FM@Ryi z-DDh*Hk*En1YkxDP)J4DE=?D&qciV2kxur-Y8N@{>f$5szNXF+KE1h6TLn2sLK>sF z{5ra4@pXcm+jhrJhy7*2vVrIMW91}c73Bjj-@D^K?o}PelK`P^5TZh%ZtFa^a@Iq^ zG==#nS;hRO_3-d;Bg&)sXcm;dAW&$*h=n4jNg#EECwjJuGmz_ANq=I^3qTs4&|4aGSd9aaHuse_-^*lW-kd7uD+y6{j z^P{|cm8VB5I7W#<)V5>0S(k~^Z_P_=fi{sHPSUnma=jJ!RN>rq%kQ;n-*m7vJXfH; zcS5`VOw9Gi)XK+?YJ!NVOp#`W%R zE~tN5aRqR&cD=lFb8T+Z60oa|_Lh4WR)U)4Ly%|aD$ZNrw(+in;S{RN<)h0u^p%v! zxQm*}Is?_0AC6#;oAp(c6Q1NKX{;g0BR18?=Wkr?oX$6B{dh7+PhAK+=^i&~*F_q8 zf8~>J703i8W-&8Oy1p{}X?)pbCOo};@czpO{&^2_lR%=p9|vR?8_u8 z1`^-Ccok$~z?WH`o$}?uPP=~lDMpovA)vg2iZ#o^>ez9_{H~STr1zOkdXz!lRrU~x z45P1F7S+SG(5A1=bpT(~#^V-k5uAA+S>#*A!g+UE*kPXX|C!nTHJW_8d=ET^Q2zWY z!^N9_9E#n$9mB(^*PyPtYCZcti0Of@VUnQQY2jcap)&ne%>fxpKQt!_+w6P<<&?$! zTSd^Q#t5WzWhn3D8k!I9#G$ z7GX-5e)SOYF0XB_g9CEG*C!r4#>B^UR|2O zKxD{*_LyRseDMo%;Obc{@torl_{lx>?Zv%01MtYf!Yju%-|#c^PL%dl+r>n%RXUh+ zjKf5L-LqKUrj;U8!`qOLJ&5xG*~gr6HKlXng-%3|`2$C7P)1qyNoy42>SUFpSBWF6 zuFIbv(hcJ_Hy;mBI9X&mmf50S0G3ftvYH658uEE#;fSPad$($mL093+ocExfm^a$1 zGLQ`eiB5k5#DY4>vf@zYJ)58CzghF`9&vMnI6fl;(->C$jvQI}G`-q1{nk`)^#WJD zb}Y94c_Y(o1%XS>>ggt$(2dn%&@Lh)u{cxuu%)tbGv#)MU4o`qpXKk>jc+(>N>N^~;`QZQg zBJT?Uy4U2@dv)`g%fKi&o$`vh~I@VjhB<``HbS>5JKy0?z@#GL9~Jg zqz8(1a%B!lS;D9DZh=59Z$92O#8=J~t_SxM%b_8-#K#|^T9b9j8Kpik7rRngs0zb% zzIS5UmU7QdOkXk>>Vf4LKa3mJL(-ve$hTRZ6c5zs{)YMA-iW)>iNDi&c-AXA5-j@` zj}u!}z%Q%Q7_hU*=dCa6B6z3vmv@q2!zTH~e_ArzT%VGJVwy8;+my+f+T-H_m8H`G zzFR}5e$OBsS-L7qMAP)@a;&D&w|CFh(yvY_=2)J$tn)%E09jIcQh+|_vwDQA`O8M= z>J1jT@;y1)oaUk_JLs8S?LqU{f<%|_4XuiIA5&yi5l&Cv)g=quuc@zmtV+|r|F+SK z9vuszf$*MOYPsvube}2NVf_nl^#SW@xfaYuAWCuQg1|6d=&A{AMYPHP?iffbw$q-9 z#*^FfiQ8W{0O<&UltuSKr-MZ$7&WGX6pZxaA_Jdt{~h1Fp6k_gQRZ+oJTPpYaO=rT zpeS?Bs%UJ)u~fkc#A#Gg=r<)65(PE4=sb~0`J4<#9s?=TS?Ty-IDr!c)$vM>Jf|2{ z8eAz^8=$vw$$r%m26ygJNX^6CE)lEL%xRB6qI58zt8{q+G|y6^zIJd(0W09w;MX>8 z-|>rf&P%8)?@M>Buh1#ShjXuAF;A$(Z*?Hydya!hF?yV>`uBQ{dM|jOz4)d6kWwAN zi!{T|c>UHiB)cGNsCk6c4E50puN zrIh()Y3Ks`pSkxx`>Olqqt08;j!MVB_+i1C2q;;Vd|VzdD`b3T76M<@y*0^M`(ZxF z9iL#yvL`Gfj$J^uTFe6ebB0!0VP<^1XS6u*sIHPuxu<`vs3wM1u~D~LG1dF zpQh7Okd!>%LEwp)?|F$Fd-B&0x*2_@PQtyIbIz3P_vb%}xT4;Fn{l;>o(!v;-+`uv zSM8lsOz_0X$*E1>w72Z5lQT>?2&cn)&(|wQ;`p)TE}A0*ka+TtQN(Lh0_d;sESQo- zlSYAEwL%W&Y7q19^fuTy28wYq=lkG!Ma~?$^&8P5QNtkuldIbmgPR|7tN8d_1lHiT z^S%(8A402uY}a&OC35iqm-sD2o-9%<^!u|sg5jU8q(CVm2jBu&KlY87IyvkP<}fWG ziUK>{yKoH5E8%kRJ$ZvRpeYOz5aPN=TX^3pIQ@lhwHE z){7BA4Cf<|WaanslR=DB{9Ma`+2IV@uVR&QTd*68J^RwRA#2ID0*@ZZxK+u|N|a&s zTPaYrcVOY$EIh7Jd+Z=&QOF1fc}X4UD1me63|l3z4%>E*YL?S`H;aJ@EEvjHz_720 z5WyiD#h2)v_Ks}qY?<5E<=ZX=Ke80ZYF>-}&~p<|EYOL(8_FpQlfQ`Tvf1jQao?xc z;=l{srxYi3$BS0*jlFU8?Q;aci>`&#?y*0d{>+vu3oBkCI*svIKupd!tgjM3;5O{*1g{j?=HU?$bIh?uWf^ADjtpo=CB^A3>{WM1A&Nu^0~qSR)FuTIi$svIyux zuMQd6WvVabvu7HOhHUh#R9t|(p3@;n=H9Rx%?^rQ&iq6l&|DLQ1sO)hRzq)Q6a^EK za$)qElg}#W<-ksi22P&9#*^To1%g!qOefFDtIxLH7F%upzkKgeC-LOUZu^DXgQR~w zOabkbdxtNP)}B$I(~8a9MhiHvv-)EZTbfU`y%36`dR=i)ubA z7WoYB#c+7b7*+t!$1Q*4**)Z%=Eh}G{`Dc) zYfn`$ z)S<{4}+5s3+~e3 z5}aS3Zm5hn^buQgK0E;j9O<;z=Un*-q}nY7Z#HADZ}|5kDj)~{cQWSH39ey!J9NlZ zJdw8SBPrl|w$mODnw88n(SQ{DWmm}L;U$Wl`4mlgcG+OO9N7uI+nIryMn7=rE@)WG zdrbj@Gg2^+@eszV7UvEPw&5UZjNne#ZXM13`p&j28y%k^Z}^$p6@tJ1FtrgO?1;B8 z^xfw23%JyM!AmC=yj`9fIh|4Pw!rGF<7F=>|Fxj%Uk1s9*$?}8&Va+UHH6%`Hq#mg zxb^ILR4~`??=*$EjL*BMY{MZXK;Uru&I#wHLeTLUf@xf1M>+5=u79@w6x3RN&Q}gD zzuZ9}iXOple5_T{pDX4Rt?yCxFbhs*b z4;qdj)XO5HJK0s3JO(7pAyAYMfylRNk|Sk<1Og6se!(Ja5ph=vW_49P z2$XN{__G|>;#cPcLPQ7z-bTmC{hOcZufT#qEN@+qwS~d=cdT$a(Qd^YYOzX}{w7*K zm=n+3frT|0gdUB7m@B%7=I+SVE8HhZ9}%$Ejzh3A^`4v`Z^z7yG-4op$YmHsKteT2 z@0bU^({iw(cf1Ov*&coUFTu>sOO7|3SRu!T{nvB$zwf?P-Y%$;5z}@_po5V!$%p`jRua17sc@lU z<#2c4(v*M;$@db&#$fj@cUKl_qc4OnD41h`3^UlM?0}Epf7;f$hay>nEb)%dnFt6` zBd`Z9V;$NKZM}5=>!#c-q_V!cgp?mJ&>ID_CTQej!l?LrFpYFEBU#!1?4lze0V81B z>wzCnG)jkbG1lm7(enDrM9*lbXlCNv&}+?5j9ICKzc;@^w%Lx`>i&iC9fCgCiY(h=LLKja}L1mNQxc;<>B0f_Ay zG{Uej?>mSrp}wUzJz5O*B9a~rf>~mg_F7ko7g2&8Xc!>n^9j3IQJt(wv26|lZw^u| zvwmtL{9`llk&L$BDqT7c!d63opZB6~Q%whi%_ce&p+wkcb*2^GEUz;`bF#*lnHrvn zb#9m{jjs;577d-a7&z8)I2}pn0n;tkX1m;en{RebJJx^2}%7wYyX)6xRTe*GV4(7I#gBXF8OVx^idZlzI zceI;5#t^V?YmjQ31AFNk%l2?FOM{tXTlRq=@B3eQZ74@WQf&~epX8d<&qR9DL2I0? zHB}(OKEgM}$8*7cK`K_F++|k3Ir#>3MWg|gYfSek=5v3%WDM*5OwYcCaa56S8~_N zy-%C1uUaAd5ZXk~zSuMuGk??qcsh{NDw#z&@7T}^fFwdNP>$2PuVTw?vp&x`+R^Y7 zh!!6Q#y;dqKP<|9V=9~xvN+)ndQ2u{>`=NUK*vrCps6en(^7aOr(W&ut_H~JL{VEq zydnmMc(RPxR}R1ZS1-LC1jfvXhMn9<{DBwYgV!#D2UY02P&87i$>k0$VJ)Q54roK% zJio;7D}gJdJX~F%E8mh~{1&5177|ER%W*pX3>2Nwa164IFcADRA7L}Hq{~Jiu@Hmo z77r87Lr#Ny_Wp;`DWUEHEcq-nE$_h8EnKc6PStTwJR0G;iiEM!k3=51U|~FbYyt-Wo=#oOp^$%1(%F8yxewYa#Y7u zv>%h~18F1!{FAe!S^}nh>8Kx3vHG47J!wt3J3M7{!V^rlwILh_UNL?{!KxGonRkUwjxD${7M_AW zVfN@6csHlVHMkQQnT@wK+l9i^{-kjdt~O5gBA_e6^Kskq0(cdOKRVnOP;he|`2*;A zq)cK9@*c>AeF?%p>#Jji35>| zuC?`4RkFPU&|m_Mv_TN-n~9FErTimiYlpMJ$``qEXbnFeMN#zZ2YH0zn2rOO-&C;!5s4zRX1s zzfwGd)OwGz+uqzjrHAl1*r!9Kk<7g^daY?2tr>#1O5h9QuUw& zph1=|6(i2M+oc$q$;jOG4`YfFrzD% zYmE!Cg}#_>qv6D(ve{-QKkkiHQ>bLcA$6^V$R9Pba$7iK>{j1;+HYRg~_d!bk{THyHsgRwPH0Kn6=y+a^i z^^MJA%rZ^-fIi8S9fkmNfXYeP<9V(={#P?JV)+7{moinmQB)PsozB_U4^)O_kkomL zKn#$@n6O=mGZ0MEYmOfhl9}U-3w6PZB!!2G%`?yKy`{^1C zuBfcR2xO3O@RhH5$=1wDb}vWV_l%jUmry8;`9Ntao$x`&IR`EaIS^*W@T;=3v!ED~ zy^JBIs~&BuqLeWU335vFkQ4wZo8ltYUUrt3FOAPPiKML?dCh{z|1|mtrj- zb-JX4A|yP$%he^h_PyvS3m(iafi*voM@`!mi03I5I~|suO+{sVUq2&k0W@u506S48 zD|-_9f+EB}~j8@Q3HxaU;J|nEDpr-nF=%Z_JBgXeosB7%J zWghBsLiW8U4pA8Ob|J}K>~cHXnT4*w8xHA%%Q3>B3#$>_kJA72^yCD!TQ3l+!&k5qSr zx}oV2ZBwV3#2s-+lcgyC(-6p;vy=^k?%r?Q^l!N3yX4_%+pnp3KhbN0PDK{I2xHEQ z%;IaeOlZj`uLM3FOCe1xV-Gr{?(H>t9HdinvtNbiPWTXM$)=EEq0Xv9`=u_FjLQOS zGoVX0eZs1DKc&fo(w4}#u%lbwp&V1DWL@1BK+KbCT#mz}*GP9_A8YR?dXpv7i=~k0 z$j&c#qZi-&%Sl=i-8qYK1xh0|-1YA45P*2#t_?FEZThMclmo*b@#}(Gj+a&OGl_|D zP=;kroLaI^0Qwo}xQ=T5$Lw; z8P}|Rb3=nhsDbIT4qQ0~USE)!ik<@*II#mP{DK|SWCk`MRBxc~(DX443fved5Ddc5 zBq_xADH0{1({J@=%m@7S32dug*rfx`i&1r!+bB4^N#09mrpSw5qxs6 zBPX$X-AymZ8H0t8z8o|>;Syk3Tp84BqD@7zZ;!JmeUig`4N*dr?NHYuXsHI-^rzAm zP~L&4AOn;kl7nZ$0WB+S zpgUz3a)Qe`e*MkJ>~!3^Akc>tn192F?@xA-uKA$z!dVZnV&eF>_g7BI2hsJi zLFZZFoIk!vCQa}43ERo*(iczlp8u+U>rz@-y>QZzb4te#qC^7EsXB45FRDScFNVMo zFs%vD0*^NEFq0?t0T*%}1X>jz=v0*$)GPw>WyGcpGg{0ksWTsRzQRp|NxN-1;A|F_ z(Pp?)7%JpCsDZmj*(vsF@LV&lJvj|5kjPOE`4mmVh=&w`8ea_~##mvx!Wn0MU(UP4 zv?J3shaL(*(hK zMbgmnQGDi$zJqGk6LWQ;M|2kpvuhTWf&oPrN5GiLyg@xs>J5GI-7%!Xm;xReLpJ#W5zYSd+ajr0l;>CIL) z$em=3{3&0mbN8!yC&nqyANw#e1Ho=$6qF-(PEd>=L&Z+VYcISQGJR^-~A)!)o%Q?(AZ78 z6C>^kTJn}uUURHS1=w&C+&L5GTQJ|ob?HSHTPM`1hjf$tGX4t zps<}?TUjTn3b`iDFsi)%_VdY$X=M$QWHG`rE26{z8l&vA3W)M&#oJv*zOQUFR`w{)9r zS+yZiP<)RUV$JQPcd#lHXKw&`^onbxAzdpUg5vtHxofquK|yRmgAY`d8uZ@OKqfPq z#=mkZha2F)!Vq9IJL(GK@~qe9N=|gxai%ABcd-~mBgrVp={&5;#Y#PuPUs0_<+Gj4OSe98Ui&M)J&~Fj)g=p)9~C|fWKpdG z5A-~-AqQIA_)*c*eEB&dZ$4M2*eO*V!2EJR&h>8lfeFq8;oB0`Q`K(nxZFl#SYAVpIs*IMxL zE}XT0Gxi}4(LX&-LQ zszChle3e2c-D*^GDO}GOfLjrm6Gf0>ESKorm@|-bznBE@f{xbXnz}QI^DyzyY2*$p zrs2u2A71E%LFd}?16$5<&rEjx7bDGFtdJ z&aktCD3hE)jJ7wTu$89fId)+H?ke-fbP=qFK5)jz)spTP^Nr6}jsbv_8FtZ7?2WRy zm+=1~SAH%LeusQ0trdnS1tWL-_I)hwsxz2*-Bs4a655H3j=ZO<|#l)YrWfD8 zS{L-VB@`MQWg)F9vYt>|qcOR@P1bt*Ay6pjvTjvB`qpe%MHl!7MgF=c60|^Beq0M!|Q1Z53+c$W-2I4$DVzA6rYGO&b*h{)tRFk*(lM*+2dEW{1c%&aeb zBX8}D!QDcq$eEbsE(Xf=EKnwFpVF)jCLR|;_yzVs0+bg5MgadEZvwzP!%T0@7-j&5 zK^43f$eyXtZ|kaTu?w}G7949%IbFmJ8FgLAWjJA7Gx{HvN9QhISjg<}J!7AEE)_7~ zGe9Ok0$EVrVmHcS0-%9RMl0`jz9&Ai)ILPUIIY^E<7zd9a%Bre)hTM68%@>@IboV8 zDO594)99;f<3?XqXcksl&0({#LBWJTOPyIa9sc*bcPF7OL5w&^W~a|~*i5gzBBlKi zk)>sFgb+3uYBOF7ECkYo<25j_z#6{Hew@d?4bL)VV1PRfB}3HO%7RVyNd@RPwjD<@ zkX=+G_=L$}V?u}h)YzXehSL+v=;`Pty8YFacF&})+qBphHqb`WJ^p%#RWw##1}WXbr)Tv zpOC*>inONy;{SkeFZVq4)P^4D6SdG7c4EynACr^C2KF0EeAZbQZ-?3_2(>_x$8hw= z$NbMg&dY?b)?5P=NWKAwj_-Fbn!JNS-}*G{>`?SH(Xc?@sIzgL3(FcHI?HfVBBT0> z8AgSM*X*Zz1sgA;RFnJBq{JLamGmYua1{l}KVAL6_e9SG#1zchX`?+l_Z&J`V0YPa zQUy}6YCDa_Z;+?MnwbW;8^Ff)Z#7&gVwp>ztH1u1$h$XCZRp|lePm-(mHs$YTSaY#_O`U+GzYT4>LMUnPRtLKs$B#Gna z4E3qz$65#Gn_G%1K(*8A^7VM=hYUBTM1RVHlTZP4R^UWasfIC1yzg>~W7_elM2pM} zWOpN=`I2!i1KcV;qYu6u!?{|dFYkdWyobjJ~21zPB zR0sj28qhfkTulz8mA1FH_5tX%G6ikQOt~Wz^y)j6rCdJ*N|%0+Z_V?V;~X_biUqe9 z0L5knk|PEW@RG+ErEirCzq2&Ea5A>)K=QjgK+}*&d4QJX@&>2y61j=emuY#BSSauN3S7y<|*BWyYtnd1j_m6%@vfSpm}8RKqZ zr|$_T@k&wP+41hF*{67NFmXv3Jq!Q}d-eD-`0OmMJA`}3D~alL&|au17^jq43-~;L zYu*ku)>ihaYPd_rEdtRp=(u*(W?oM^Wf1V!eR-b{oDLAcEY03Autiuug<2cdBZ}`1 zm$f^A5tM)o;7Z0-;38~;$49E?bvcIe{_$#gS4r-Mv2d*>q91u0I=S1D*>x|hPg$iS z&btdjLT>8bOnJ-0jO}35lx(+N$HZHSa!BTur4|J$%3ON81n|B%kk_1^8n^1FYXdrxtb&DVV%J2v8{p%yKrUr@U+!cJXzocAU$O_iy!>Dj zv|qdFUo=~=dsfi9Hrc~uljCjnuN8bR$MZMr5k?w}vP5zK5*QCVJ*PiZ)vhVuAs=#9 z;>*I<9za<+t`H=HPgLb^cE$lU{T>tpW@Ix==PJi7fQ$AX2=)joFna;6>{#HKWSBDD zE~n?lX@9v1Pcp4#yU042$^raZJ2p6rro|6NL*2V^L5fL2t)m?PsLVH#IJ5wG-m-)oym zGo69>3*5a-6_%ivniG6l3rT|38w(B_1AMikcFCmYM-0^;M=^zui7Ur;0CA!%Tf+c= zuFptL@6^N;P`#W6!xiX-wLVoxk@*~brw}5?X6Mr*>0G-|$|>PzP~_Rr+F%;|)Ik>1 zrZtf{$4EcnzF<45*;2AxC&Y@Rt1KTYJ2Y+5SCg7;40(7Ss5+`qoVevmwX@SbVdA*w z#K2|y@lwVA`MRS%M`+9T$Sz;)ROf`SU|vi6G+umuEl*hGrJLvvhnX<%5q>annMSI+ z%E=;5SkN{VFm^^j0}-YcrZGtee^$ElBY_3Ny)J8*NtB~(fb5}f_>#;X6b74QIdvZf z50LhdkTXseX!1;`?&M_#e^zC49N)K!@O|7(SNx?UxuXr57~KP+u3CEL_5wI@NSV)| zFjpPcbJz{q26e(^^bcZO)mGv{pW{`Mj?kL}{-ddwyKh7pEDvS@Soaw?1) ze}Qj4d`Zj0#=U#E1CE8sgbV&=k_8)k5Pq6?65QOq^9>xSS1DGjZ0Co8>dxEz)NGgmnN22vdc7(+S2 zX_<)1CE-5j$Ic{Dt@9}r$*Jv&>ohWd1G2MYL8EfzLJiY2es214^=G23)5zPi1cJ7X zgx8-d?cDMEPjm~aw5DMqPUdkO9d41#J4eT$QDK?2gwAtwVUnfxa^dG%oBaZ1Vi1$_ zS(wE+)vV4E#7iNUQm)AUx`O_iEVY>WFaGiQerr9gaJ{wL=@BT(EM%|el-Z{}dIyvj zc*#I3?lfwFu53Fk>xAnFPwP6u9e_eFc}Cyl)m$w-NwH+gbM{tS9ucOXU1f2b#d+YO0zP z)%|uBQ{6Y3yE9wZMpMvwvw>)*dsCTd`4)P0_u(^0 zzP-7p*;xSf>1}aXfd`FPg3|Qb-QrHJ%>P|_g7DR&3F#2f154F(zhn>$U5~DpZk|6L zlC($o!&boj#627mljZdwI#4W~a^#>?^hrQ=UkEOG;cqAD%5sszxcZ9#1y=SFDoFYy zuF+jxOH5=&%>k_FjZrg(?sPlQehSTaPnuRu4*NMv$$yML+`-|Qsd@KRQp zKXW8`{jR`(z}!lFUXd&Xizd#V0BbKH!F=U}BQIIThJB2s@lw(0U-Z>q?%MidI`9UN z7viayT1{lTITD^WnhdXxhTCXoWFT7~%F>gB;;zw$XTEzA6f(u28p=WG4Yy^cwB|t_ zqt@5*eC;GOLmS{;EYe7Pejcd1dlmvRR_mN%VM`wU%B*D7N6xjr*t7q{K+P`N)FgW6 zh11D3t@H`9mJP^>E@(m0JHp(u&>G{U(?H%Gl{KN;`e9I>=ixyJ!Z+{1aiEAu#}4p%psZN&4cq6;vPINq?>_u~4gj`~ zu2oez<#2W4p)rp%qXRE!yg+HcNLbH-78}BSA zm8O3WD2hBPC;}=XARr9}f`FvbjYyXQ(%l`3s0h;C64Ko%3P^XibW2OW*Ku~=-;6u4 z&i=EXMR4Rf=f1D}1}Z55!cm0r#9=D@=&qA)^R|-yxjdLa@R>Y6a*k}P4Z|6Uei^k3 zM15tS?*bJNcJ~es9o4|SBLqR`wW9L_&UD?Wl%p%LLK?M#&rS$g zF6`=h%>4&{=m-x`HSXZclMZ3!^L#4s1s+1T72F*kqk<<$waI|M;@QdobmQV=fseio zGl>%GEpWC7h5_R+2Da%op0_Q~)v@|{~MGBGY)sli?GuL8)0u3?W4>BCR05O5J zP?ZZ-CyX2d0WCt3It(Aq)^Mn3HSvXRs9n@OTP6S|^ajKC=U^LH=FK9c4s-1a^}Q4T zrc_U1c9sZXyAA%pu=`D3^ZAT0fHbiq#=rl}r;4hn#tv+*&)dWY30QdXA3YL4I!-q8 zx*#ph00P?s@0l1tHh<&&+*5ptdDLOu3(C9qPikH#1H9PCuMzgi@5~gu`F?Tz1*d3n z&$H(`{uZzV#4wu!X@g-%%YjF)*tOm0U0F<$4n#Xz;OU{=P<-*j;ryvDaeS*(tc5h{ zg!Ov_@pGn9_0wPDC4efNCjl8-_{xv;@FG@p{0Hk0Gjx`wGjp~Y6|xJ0fM@(Z%sxLZbZYFE)c$tpW{{8zi>ywVkAdBT+K!lfh@9LcfEFr_ zMw8-D@gl#Zp>@~5W~Nk;5q6~rI!)_N++V}v91t)val_CtBpZ{EU>xp>%n!;{{6a9d zT9Kjx=kZb?a>y&YnxL*e7a0pa^S41JNQ@t(ap5DgH4som|BmFp@sa+O8@ zUmx?Qp8u~u?BaYXfQr*2G7HBC&!nm9(fTTe^IAfd+EA)(7 z$*XFnN$`1e0hw~xQ{%GO3IY-vK)>3X*Xg#5)rZk{50E_YeKfQr|6&3*77Z14&HS_d zT>Xt-XJBYY7v%EPzUSf}_j&N{q0eos4=gGrxUd6?^yuKEK zbN1M@i!bg-TW@&f(MxvfYX}e(KtJ@{{$f40Gwu+k>SabFvz9P`SC4hYk(P zp>vX(OHn*|DN&OIefc6VbeLOjO?Z?V&+ip~@~V$f`J)Cuik-|>ydQrp!8cU^2p)1^ zE*~1zt?YnA+?Asxf&^x0CZ%A?hHEbD%`pBtZNRX` z7EKXwIh{ZfFEhEfQ1q0jJEM5|a%LCQW3Wq>z_{i+`~W@w+TLLY+mH9+$LINHXQKMi z*rd>0Enfw!Ip7*(p2>=_jc1t(a{Rp(E4{Qv_cxr2gT-2;U71s`PMP<2lY z_M8%sfUKO8%2k-L@3S59hKCWqH8^aK_nY*4;m% z!OfC|0qrL2ENxuXVa)pw=zkw$^{6Y(!altX#$zk)8Bh)NVe~j>Ae@(PR_)Ne3Kk)) zMd1^PKmOQ)PEZ*8jfT*EPf+pdXi)TJR`@Mkyp|wF+k5H3{E$M56d48!jazDk^O2K6 zQgB-is32tCmWLS^q7?K{7#7`R^3M`UO;#}wc?hVrbm5QMwGi~FWI9ZR8rTN9txmbi zB2@s0oG9-LKYT_G!d|pOtgM%Q&%gVLikF;Mz4hvx2QgBbBuWHhUHJMjpH6*YK>t*) z@NsI7-y~clS}OnI3L(3+vh{Eb55=Ejl1^w`CWT;Ykr*w)P&|p=B%z%=8#HU;1{0=gn@_iO^gb{EjU;4@*3;EDm7n}-0g0I)Ifrta&9P)H~X zjO9m%d%FN92mmy3`Facc$Zhj!vTwi=y7ma*^@8QOc|RPNU+W&%0BX1@4Q0k%-&ge{ zmoStM{dPC~57&w3TDcNvGXvPH0+uV38bWVhVr)wG=c{5f0A~aVq%DCys5}P-WGg`L zn_6SrRfe5)&XY(dB%lKh7U4wIOB0K~<|fC25hNc{K@&Ug#{&O@qr_miq+8zz)Wu}V z?JP54>(}glzDE*1@-<&K=9=^Hw(v0-f6VNEc2)l4N{z)~71_q$QFnnc(B$+rYyaaS zg(Ebe7}S*&8^F5GmwuJtN1Y%NakOw+Ex=o=hC=vZVFb2=Wf#KM25db-vW4-~mwQ1h zWO8HRHv>E%-|M0wF{=}GjZt1O=q}#z%dj{qpODQ|1~=$)s4SphA*gqR?FXr&8vtI2 z2CyoX%qM2HQ-lRDZDSN%;4+G%M=jbzr9E^{iD=lFc!JA^g7kJ0F9{!r5(LH>5d{7K zANlnOkbJ=aoZL4h(PQ7A(D`d7-?EfFNRuUqi(5!LD1rqI2ZgaY$cq;Vf-rFrMK%Ea zI|ygv#DI!|Ej?tWR0wGc?)nNcRdR;RXnyZiZ^$!ZC{h5y=F}7^-uZ6B-f4)DNkO$C%-#K z2|A05OWZ$7`%JwXD7~-ePxY`xaf)$EFT;YZTxL^X@F{T9PO{qx5Yj~vPLeM z66{H6;C%=O7Dn>_A;})605-(#OX;yszJCM)UiI43$!c7>W8Atcs>xDhb01D73>x|G z5$_Ykolqu=I1WJ3SXc>1Nh8ySZX-<@8JPgNZs=(2#}#23FZ1d=#f3D(!PgjA*(5&a zG0tAS_a2U@9=zD306>e|k}ASTeJw1IL4{30`#p(827u>NK=Q$Onk{2UHT8=J#bXl>1RVDGIrXX+V16gKl1Mq`_p19QUs2m*@A(dMS11ehXbmWywpmVqy6zVvBim!SMi)6|4k5e$c3=j z;Lvx2PvP>Vgf6Q{<8qkf&ADftv8rD~h-iQSN`yS03?1@vrQ@A#C&rfT%U56&;!6r~ zQFBN@@rUF0>to@LM{0U%Yd@>+fuCHyY7?!aa8!8Ifvh;7pmGf7r38l!HP`va}b81LO%@Aj`Sy`gXq!&*sY}=rL!qPGV@{xRqI=M& z+R1av=Lu0Xq~g_6tE~Sx=RFUvioM_Q{1kxlofLBU8$us~n!etUJcLBEj|TEThFwe% zwD5;dfPaCkkTpp~5v2l9PY4A2c$k#eH@}kZrp2$;%rs=U5ada#Zteul$^%4X3To$k z^$+MUT{IqX%w^?VRPD}CQGzk)s#~7HA$CwMDntXJe2_|SMFKB4f*{Qjkm&Y7_-q9A zp6;HIFq<(xWB2-iMj@*<0{%ie5AZm1c}>80wZ1vY5U!{o6dvbK)jj^>6YoQZfH+XJ zl;7hmCX1`#U_7zY*JpXkYQ$5Gl*5+6T@~fZCp}D3={JRh&>55(Ig~sAN?NzEklA0B z5=>jzW_iV)k}Yc%_FWx-#E%OPyrVChd0PQeoCS?=0DUO|NWO$H5WiNNOw_Qcj&He!-eAdw5i%J-#!4)TTm8@pd#eXbuOZb0BiaVWK6uz z&7}*~XUU|Wh()=Gm+qopr*YBv31k@sC>f!4Hs(TK$3obH&bob})Pcemia^-kDMQ)Y z145(Y97@zBzA_-t;fFBwH7Te6SYvV8JXo$YYyAVysvLxO_XQ3 zAPaMxnq@|m80_OWZ_9NKCmYI;D?&kQlCVZHx_ZNVz<)(0!q5eWl5IFv3 zc6z&C&yGKhwqT>>Du?8{*OqsOvNb$fKFn5>W_=@|Dv2KQb#vh)^83WWns-$n{M(Q zDw{NlGv$&`b#k05S%|;J#~>eA^n<(*(xqkXh(pb>=x%s0eqHhuZq$PkvhL$y8f$XI3!r4@C5OfHXc5ahv(17d^A_8;oFu>>HFQ zjvNyD+v0N{#4Gr}9d^1k)fRVcK=q{$BiMnN>&c)o4W2bAfUrX7I|NT<^K{y?$_b!1 zH=7bZfO!EDl9*t#&v;`6hB+fcx4kakS*xz5yOD-@U9e@_>!Gh5)1cJs@lXeC3+km z?c~Sr<)@tC3q~WL_KV$KGJTmVYsq2Z@dsi2M9py}{E!Q2&kRvASk-}UF$n4?+Dc*J zV&F%PMbJ$nRqD~D1n`zA{vad3z*MupW~dJ$?AlG?6CE?+w>bfelZM+4W5lv2+oV)m zQHDw$)U-Y0^j5G|eT%rZVd(T*wT;tn@Pcd;EB)PO^lmqkd~^(~hypPm#rGtG<6wj) zdv^$9{;%`>UwyZpV(i6P-FcbfQz0--j>kYv)?(F*F)yFgSFummoM>$b6v?=3@*isZ zezH~54Ov-NQLb1$Fj@@6L%qa`Tp$Oe8Ne5yVo3%hWP8o@Cs?h~G9L*^8e9zsxWV$G z8BN37y>EyF6o}KG8HQumBJFwE8sOh;c@(o%=zNla9Il!zd5acGs4XlWO`*M}>stme zQiG+AXBp^VCgwc(U}kk>c=alZJyj;z4>HE=FiUBY?4qp%Oemf(hR00A4SiA|WHH)6 zAE1jj1ZsZHSSeIqHkNs1&^Kh<|@GaOM;Qg+;V9Gv*9G$0C{)dT?xJOCXS_LU(;Z0 z)c$U&+CScIbN?55REL?PK=qUC7W!DCOyI~85p`(}%F<=kv!(X4G4<7tdnNdTO{}8}u%zP+zcwXZ07}Xw1A(S#(_3cp7Qe zB9r#9J@mD^G=Sjt1D<@4`(WSms{VC8OW#@5L3>!y_M8iD(5C1s$PWbEq8*yzhXHT) zb?GWcrUA=0^V4iw^sjG!ZbENK^N$WB`9{}Q(A%@x{6+ysa1K6s!UntG!9VZil#dUY zFo;Dnh=os|G;9v1WC;>#h#tl6DVe9KZwQoY@M>fWzMaeXV_Y96RbP*gZ-Yc^eH}LjptC_~lW@Rx@^@4W%6N)~kSk&zaDgOtn8+AfAB!sdGc7)xQ z)HD3lTYTGW`QiT(H4#5C_qcM`q$*tGQ^9?;!67>Q2(9(}K2{B65^UmJ*UE@GjY9v# zP`)9}D3b<4DI+DY=o;aCez~ScBxYmcZHG6JbazSz=p!dQc!g4>V7Q2ezI6q%n8M4R zZ>wgJ^5lEOW$B7S^h&}RN74@%@XzKy{)h&j>I8vkuvo83p$HH%!xwBOtPj~HJ3hIQ zB&!o07q2-Rozu%R6G@WR&=X5BtAl@B#XTeawt}*&0;PDo^_Hzl|6+B)1?{mQcT)^f z6`s1nvHbLBCYkC)m)EogdoEEkU4(O!@2=#2;x$I(vVmdbYL0g6G9IXjlb2q#r}GED zoG3?GyNNT!-eTu=X4|Nae?g`?s@JT3xNiUbm#&!jChKMk!D{6dQDE9AzP+aIj* zBc?r3GKCpxukpRqF~fe??)c0fH#qA{LiZUcNLexJ_L+MqvqkRIzDz?W-0)y>3pg`_ zJ$2p*<{#t=sSO8&7&P^hSXKmQBgj4!q#GLf_PMHLt0}3=;`nIBs(rA^Dp=2o7e})n zp_|nM^$}GBKo5+&d5+%L)&ln&3|EB@SMC)Qxa6y65GtKCAD(OoY_xCTjb=gV(t^I= z>yjgR%^FqQwjj1>c15o$chKrw;Po`;_~UbN7jeqc?i|03eA_h(B8?`KrJm@^paqE- z;lOzIm4JafUm6+A)OqR93)ix2bBSZLJ{UYq{Oryk1k`a-MS4ZS4C9BN81Y57zfIsv zQ*16$4?Ed^yJI`RR2;*oJHbDf(^#G9WZFHOni&tmK@EZayW7DuvTyVmNA8p4AcKp= zJ&}bUdx!t}osA70H;9=0Qq$2C>QoejVUR9A9{o;|6iO0tqGT(>dh|lG>3fCixhy}% zgJi(eFeh`P>8@$Qn4qi6Y~WXwR_+cE84TP=jQA5}tn-XMoU0yYJiH>;oyq>haj+U#>vg4l5LM+(bhyr>?lMYBqc59mYtFSXn;0Iy*iV+(3}EPw zC+5J0&X+9VEKxkL=>a>Y-|BfZvb*Wj*Pjrqx?e(`cjBpDBq)*i>-7Y19?IK|xjw(z z?DS(H{@+*mNWQ_*Mc3^VmQx-NZizhTF&t$$SQ8Po-80nPHmcvER~y0Z%~=(aO?l*h zOWT_XZ{Q#B%(>sdp}L80@V#z&{;Dclqa%PC9H^XT+k4UvW8QibC9p4lJ^A{%(4%C2 ztn+=Pa+ld;a&SPpC4OUh)Q#?*{usA&WY~#wk@u(_w?ez}Q)RMZU{^=Hf1#z&e3&iS zM$5!Sq$tsUMp@{GI}+EJOC+iYnv(i7oDb9zEACDj&vZuG;3>(*7qC zl|hWbQ0hKy-RkAqCn4foeCwI2+>hOxB6YuHP1w0fOYbuA4DITlOt}BzAj2X8;+6CY z-4Ze_lMbnBe+Q;LPA`MpuP*hGK1!oHSTcqlBantVjYo!s?)cfO0sL=#46@p0+Yh

    !kMY?>aa+$O~j0E8vPX(Jn_LXn3 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" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/binary-search": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/binary-search/-/binary-search-1.3.6.tgz", + "integrity": "sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/llparse": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/llparse/-/llparse-7.1.1.tgz", + "integrity": "sha512-lBxN5O6sKq6KSOaRFIGczoVpO/U/37mHhjJioQbPuiXdfZmwzP1zC3txV9xx778TRNFENzeCM0Uoo+mE1rfJOA==", + "dependencies": { + "debug": "^4.2.0", + "llparse-frontend": "^3.0.0" + } + }, + "node_modules/llparse-builder": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/llparse-builder/-/llparse-builder-1.5.2.tgz", + "integrity": "sha512-i862UNC3YUEdlfK/NUCJxlKjtWjgAI9AJXDRgjcfRHfwFt4Sf8eFPTRsc91/2R9MBZ0kyFdfhi8SVhMsZf1gNQ==", + "dependencies": { + "@types/debug": "4.1.5 ", + "binary-search": "^1.3.6", + "debug": "^4.2.0" + } + }, + "node_modules/llparse-dot": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/llparse-dot/-/llparse-dot-1.0.1.tgz", + "integrity": "sha512-3e271C2LuDWBzhxaCUDzjpufamoEBuTYQz83QyMixI/i99BntCEk6ngHWOhhDb0XdtNNh6qAfRmXyjgNP+Nxpw==", + "dev": true, + "dependencies": { + "llparse-builder": "^1.0.0" + } + }, + "node_modules/llparse-frontend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/llparse-frontend/-/llparse-frontend-3.0.0.tgz", + "integrity": "sha512-G/o0Po2C+G5OtP8MJeQDjDf5qwDxcO7K6x4r6jqGsJwxk7yblbJnRqpmye7G/lZ8dD0Hv5neY4/KB5BhDmEc9Q==", + "dependencies": { + "debug": "^3.2.6", + "llparse-builder": "^1.5.2" + } + }, + "node_modules/llparse-frontend/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/llparse-test-fixture": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/llparse-test-fixture/-/llparse-test-fixture-5.0.2.tgz", + "integrity": "sha512-61KI5J/b5uyRktD0y1EezleEW6UfaxhHkn1adLKNVemRZzklE+SpLakr251qo04kb9jN/ytk8lllgK+yFOj4cQ==", + "dev": true, + "dependencies": { + "esm": "^3.2.25", + "llparse": "^7.0.0", + "yargs": "^15.4.1" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/markdown-it": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", + "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "entities": "~1.1.1", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/mdgator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/mdgator/-/mdgator-1.1.2.tgz", + "integrity": "sha512-S2GvsLIznUQ2McXfpe6BCD+IqhnRuHcBO7krqnvnsHgDpjjO1mLhr0vZtVa5ca4WZET037g3G+94DznpicKkOA==", + "dev": true, + "dependencies": { + "@types/markdown-it": "0.0.4", + "markdown-it": "^8.4.1" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/mocha/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/mocha/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/mocha/node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/mocha/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-color/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "dev": true, + "dependencies": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tslint": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" + } + }, + "node_modules/tslint/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + } + }, + "node_modules/typescript": { + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", + "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", + "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@types/debug": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", + "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" + }, + "@types/markdown-it": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-0.0.4.tgz", + "integrity": "sha512-FWR7QB7EqBRq1s9BMk0ccOSOuRLfVEWYpHQYpFPaXtCoqN6dJx2ttdsdQbUxLLnAlKpYeVjveGGhQ3583TTa7g==", + "dev": true + }, + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", + "dev": true + }, + "@types/node": { + "version": "10.17.59", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.59.tgz", + "integrity": "sha512-7Uc8IRrL8yZz5ti45RaFxpbU8TxlzdC3HvxV+hOWo1EyLsuKv/w7y0n+TwZzwL3vdx3oZ2k3ubxPq131hNtXyg==", + "dev": true + }, + "@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==" + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "binary-search": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/binary-search/-/binary-search-1.3.6.tgz", + "integrity": "sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "llparse": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/llparse/-/llparse-7.1.1.tgz", + "integrity": "sha512-lBxN5O6sKq6KSOaRFIGczoVpO/U/37mHhjJioQbPuiXdfZmwzP1zC3txV9xx778TRNFENzeCM0Uoo+mE1rfJOA==", + "requires": { + "debug": "^4.2.0", + "llparse-frontend": "^3.0.0" + } + }, + "llparse-builder": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/llparse-builder/-/llparse-builder-1.5.2.tgz", + "integrity": "sha512-i862UNC3YUEdlfK/NUCJxlKjtWjgAI9AJXDRgjcfRHfwFt4Sf8eFPTRsc91/2R9MBZ0kyFdfhi8SVhMsZf1gNQ==", + "requires": { + "@types/debug": "4.1.5 ", + "binary-search": "^1.3.6", + "debug": "^4.2.0" + } + }, + "llparse-dot": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/llparse-dot/-/llparse-dot-1.0.1.tgz", + "integrity": "sha512-3e271C2LuDWBzhxaCUDzjpufamoEBuTYQz83QyMixI/i99BntCEk6ngHWOhhDb0XdtNNh6qAfRmXyjgNP+Nxpw==", + "dev": true, + "requires": { + "llparse-builder": "^1.0.0" + } + }, + "llparse-frontend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/llparse-frontend/-/llparse-frontend-3.0.0.tgz", + "integrity": "sha512-G/o0Po2C+G5OtP8MJeQDjDf5qwDxcO7K6x4r6jqGsJwxk7yblbJnRqpmye7G/lZ8dD0Hv5neY4/KB5BhDmEc9Q==", + "requires": { + "debug": "^3.2.6", + "llparse-builder": "^1.5.2" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "llparse-test-fixture": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/llparse-test-fixture/-/llparse-test-fixture-5.0.2.tgz", + "integrity": "sha512-61KI5J/b5uyRktD0y1EezleEW6UfaxhHkn1adLKNVemRZzklE+SpLakr251qo04kb9jN/ytk8lllgK+yFOj4cQ==", + "dev": true, + "requires": { + "esm": "^3.2.25", + "llparse": "^7.0.0", + "yargs": "^15.4.1" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "markdown-it": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", + "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "entities": "~1.1.1", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } + }, + "mdgator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/mdgator/-/mdgator-1.1.2.tgz", + "integrity": "sha512-S2GvsLIznUQ2McXfpe6BCD+IqhnRuHcBO7krqnvnsHgDpjjO1mLhr0vZtVa5ca4WZET037g3G+94DznpicKkOA==", + "dev": true, + "requires": { + "@types/markdown-it": "0.0.4", + "markdown-it": "^8.4.1" + } + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + } + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "dev": true, + "requires": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tslint": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "typescript": { + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", + "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==", + "dev": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + } + } + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/vendor/llhttp/package.json b/vendor/llhttp/package.json new file mode 100644 index 0000000..be715b8 --- /dev/null +++ b/vendor/llhttp/package.json @@ -0,0 +1,60 @@ +{ + "name": "llhttp", + "version": "9.1.3", + "description": "HTTP parser in LLVM IR", + "main": "lib/llhttp.js", + "types": "lib/llhttp.d.ts", + "files": [ + "lib", + "src" + ], + "scripts": { + "bench": "ts-node bench/", + "build": "ts-node bin/generate.ts", + "build-ts": "tsc", + "prebuild-wasm": "npm run wasm -- --prebuild && npm run wasm -- --setup", + "build-wasm": "npm run wasm -- --docker", + "wasm": "ts-node bin/build_wasm.ts", + "clean": "rm -rf lib && rm -rf test/tmp", + "prepare": "npm run clean && npm run build-ts", + "lint": "tslint -c tslint.json bin/*.ts src/*.ts src/**/*.ts test/*.ts test/**/*.ts", + "lint-fix": "tslint --fix -c tslint.json bin/*.ts src/*.ts src/**/*.ts test/*.ts test/**/*.ts", + "mocha": "mocha --timeout=10000 -r ts-node/register/type-check --reporter progress test/*-test.ts", + "test": "npm run mocha && npm run lint", + "postversion": "RELEASE=`node -e \"process.stdout.write(require('./package').version)\"` make -B postversion", + "github-release": "RELEASE_V=`node -e \"process.stdout.write('v' + require('./package').version)\"` make github-release" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/nodejs/llhttp.git" + }, + "keywords": [ + "http", + "llvm", + "ir", + "llparse" + ], + "author": "Fedor Indutny (http://darksi.de/)", + "license": "MIT", + "bugs": { + "url": "https://github.com/nodejs/llhttp/issues" + }, + "homepage": "https://github.com/nodejs/llhttp#readme", + "devDependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.52", + "javascript-stringify": "^2.0.1", + "llparse-dot": "^1.0.1", + "llparse-test-fixture": "^5.0.1", + "mdgator": "^1.1.2", + "mocha": "^10.2.0", + "ts-node": "^7.0.1", + "tslint": "^5.20.1", + "typescript": "^3.9.9" + }, + "dependencies": { + "@types/semver": "^5.5.0", + "llparse": "^7.1.1", + "semver": "^5.7.1" + } +} diff --git a/vendor/llhttp/src/common.gypi b/vendor/llhttp/src/common.gypi new file mode 100644 index 0000000..ef7549f --- /dev/null +++ b/vendor/llhttp/src/common.gypi @@ -0,0 +1,46 @@ +{ + 'target_defaults': { + 'default_configuration': 'Debug', + 'configurations': { + # TODO: hoist these out and put them somewhere common, because + # RuntimeLibrary MUST MATCH across the entire project + 'Debug': { + 'defines': [ 'DEBUG', '_DEBUG' ], + 'cflags': [ '-Wall', '-Wextra', '-O0', '-g', '-ftrapv' ], + 'msvs_settings': { + 'VCCLCompilerTool': { + 'RuntimeLibrary': 1, # static debug + }, + }, + }, + 'Release': { + 'defines': [ 'NDEBUG' ], + 'cflags': [ '-Wall', '-Wextra', '-O3' ], + 'msvs_settings': { + 'VCCLCompilerTool': { + 'RuntimeLibrary': 0, # static release + }, + }, + } + }, + 'msvs_settings': { + 'VCCLCompilerTool': { + # Compile as C++. llhttp.c is actually C99, but C++ is + # close enough in this case. + 'CompileAs': 2, + }, + 'VCLibrarianTool': { + }, + 'VCLinkerTool': { + 'GenerateDebugInformation': 'true', + }, + }, + 'conditions': [ + ['OS == "win"', { + 'defines': [ + 'WIN32' + ], + }] + ], + }, +} diff --git a/vendor/llhttp/src/llhttp.gyp b/vendor/llhttp/src/llhttp.gyp new file mode 100644 index 0000000..c7b8800 --- /dev/null +++ b/vendor/llhttp/src/llhttp.gyp @@ -0,0 +1,22 @@ +{ + 'variables': { + 'llhttp_sources': [ + 'src/llhttp.c', + 'src/api.c', + 'src/http.c', + ] + }, + 'targets': [ + { + 'target_name': 'llhttp', + 'type': 'static_library', + 'include_dirs': [ '.', 'include' ], + 'direct_dependent_settings': { + 'include_dirs': [ 'include' ], + }, + 'sources': [ + '<@(llhttp_sources)', + ], + }, + ] +} diff --git a/vendor/llhttp/src/llhttp.ts b/vendor/llhttp/src/llhttp.ts new file mode 100644 index 0000000..ba36b01 --- /dev/null +++ b/vendor/llhttp/src/llhttp.ts @@ -0,0 +1,7 @@ +import * as constants from './llhttp/constants'; + +export { constants }; + +export { HTTP } from './llhttp/http'; +export { URL } from './llhttp/url'; +export { CHeaders } from './llhttp/c-headers'; diff --git a/vendor/llhttp/src/llhttp/c-headers.ts b/vendor/llhttp/src/llhttp/c-headers.ts new file mode 100644 index 0000000..fad66de --- /dev/null +++ b/vendor/llhttp/src/llhttp/c-headers.ts @@ -0,0 +1,106 @@ +import * as constants from './constants'; +import { enumToMap, IEnumMap } from './utils'; + +type Encoding = 'none' | 'hex'; + +export class CHeaders { + public build(): string { + let res = ''; + + res += '#ifndef LLLLHTTP_C_HEADERS_\n'; + res += '#define LLLLHTTP_C_HEADERS_\n'; + + res += '#ifdef __cplusplus\n'; + res += 'extern "C" {\n'; + res += '#endif\n'; + + res += '\n'; + + const errorMap = enumToMap(constants.ERROR); + const methodMap = enumToMap(constants.METHODS); + const httpMethodMap = enumToMap(constants.METHODS, constants.METHODS_HTTP, [ + constants.METHODS.PRI, + ]); + const rtspMethodMap = enumToMap(constants.METHODS, constants.METHODS_RTSP); + const statusMap = enumToMap(constants.STATUSES, constants.STATUSES_HTTP); + + res += this.buildEnum('llhttp_errno', 'HPE', errorMap); + res += '\n'; + res += this.buildEnum('llhttp_flags', 'F', enumToMap(constants.FLAGS), + 'hex'); + res += '\n'; + res += this.buildEnum('llhttp_lenient_flags', 'LENIENT', + enumToMap(constants.LENIENT_FLAGS), 'hex'); + res += '\n'; + res += this.buildEnum('llhttp_type', 'HTTP', + enumToMap(constants.TYPE)); + res += '\n'; + res += this.buildEnum('llhttp_finish', 'HTTP_FINISH', + enumToMap(constants.FINISH)); + res += '\n'; + res += this.buildEnum('llhttp_method', 'HTTP', methodMap); + res += '\n'; + res += this.buildEnum('llhttp_status', 'HTTP_STATUS', statusMap); + + res += '\n'; + + res += this.buildMap('HTTP_ERRNO', errorMap); + res += '\n'; + res += this.buildMap('HTTP_METHOD', httpMethodMap); + res += '\n'; + res += this.buildMap('RTSP_METHOD', rtspMethodMap); + res += '\n'; + res += this.buildMap('HTTP_ALL_METHOD', methodMap); + res += '\n'; + res += this.buildMap('HTTP_STATUS', statusMap); + + res += '\n'; + + res += '#ifdef __cplusplus\n'; + res += '} /* extern "C" */\n'; + res += '#endif\n'; + res += '#endif /* LLLLHTTP_C_HEADERS_ */\n'; + + return res; + } + + private buildEnum(name: string, prefix: string, map: IEnumMap, + encoding: Encoding = 'none'): string { + let res = ''; + + res += `enum ${name} {\n`; + const keys = Object.keys(map); + const keysLength = keys.length; + for (let i = 0; i < keysLength; i++) { + const key = keys[i]; + const isLast = i === keysLength - 1; + + let value: number | string = map[key]; + + if (encoding === 'hex') { + value = `0x${value.toString(16)}`; + } + + res += ` ${prefix}_${key.replace(/-/g, '')} = ${value}`; + if (!isLast) { + res += ',\n'; + } + } + res += '\n};\n'; + res += `typedef enum ${name} ${name}_t;\n`; + + return res; + } + + private buildMap(name: string, map: IEnumMap): string { + let res = ''; + + res += `#define ${name}_MAP(XX) \\\n`; + for (const [key, value] of Object.entries(map)) { + res += ` XX(${value!}, ${key.replace(/-/g, '')}, ${key}) \\\n`; + } + res += '\n'; + + return res; + } +} diff --git a/vendor/llhttp/src/llhttp/constants.ts b/vendor/llhttp/src/llhttp/constants.ts new file mode 100644 index 0000000..00fc523 --- /dev/null +++ b/vendor/llhttp/src/llhttp/constants.ts @@ -0,0 +1,540 @@ +import { enumToMap, IEnumMap } from './utils'; + +// C headers + +export enum ERROR { + OK = 0, + INTERNAL = 1, + STRICT = 2, + CR_EXPECTED = 25, + LF_EXPECTED = 3, + UNEXPECTED_CONTENT_LENGTH = 4, + UNEXPECTED_SPACE = 30, + CLOSED_CONNECTION = 5, + INVALID_METHOD = 6, + INVALID_URL = 7, + INVALID_CONSTANT = 8, + INVALID_VERSION = 9, + INVALID_HEADER_TOKEN = 10, + INVALID_CONTENT_LENGTH = 11, + INVALID_CHUNK_SIZE = 12, + INVALID_STATUS = 13, + INVALID_EOF_STATE = 14, + INVALID_TRANSFER_ENCODING = 15, + + CB_MESSAGE_BEGIN = 16, + CB_HEADERS_COMPLETE = 17, + CB_MESSAGE_COMPLETE = 18, + CB_CHUNK_HEADER = 19, + CB_CHUNK_COMPLETE = 20, + + PAUSED = 21, + PAUSED_UPGRADE = 22, + PAUSED_H2_UPGRADE = 23, + + USER = 24, + + CB_URL_COMPLETE = 26, + CB_STATUS_COMPLETE = 27, + CB_METHOD_COMPLETE = 32, + CB_VERSION_COMPLETE = 33, + CB_HEADER_FIELD_COMPLETE = 28, + CB_HEADER_VALUE_COMPLETE = 29, + CB_CHUNK_EXTENSION_NAME_COMPLETE = 34, + CB_CHUNK_EXTENSION_VALUE_COMPLETE = 35, + CB_RESET = 31, +} + +export enum TYPE { + BOTH = 0, // default + REQUEST = 1, + RESPONSE = 2, +} + +export enum FLAGS { + CONNECTION_KEEP_ALIVE = 1 << 0, + CONNECTION_CLOSE = 1 << 1, + CONNECTION_UPGRADE = 1 << 2, + CHUNKED = 1 << 3, + UPGRADE = 1 << 4, + CONTENT_LENGTH = 1 << 5, + SKIPBODY = 1 << 6, + TRAILING = 1 << 7, + // 1 << 8 is unused + TRANSFER_ENCODING = 1 << 9, +} + +export enum LENIENT_FLAGS { + HEADERS = 1 << 0, + CHUNKED_LENGTH = 1 << 1, + KEEP_ALIVE = 1 << 2, + TRANSFER_ENCODING = 1 << 3, + VERSION = 1 << 4, + DATA_AFTER_CLOSE = 1 << 5, + OPTIONAL_LF_AFTER_CR = 1 << 6, + OPTIONAL_CRLF_AFTER_CHUNK = 1 << 7, + OPTIONAL_CR_BEFORE_LF = 1 << 8, + SPACES_AFTER_CHUNK_SIZE = 1 << 9, +} + +export enum METHODS { + DELETE = 0, + GET = 1, + HEAD = 2, + POST = 3, + PUT = 4, + /* pathological */ + CONNECT = 5, + OPTIONS = 6, + TRACE = 7, + /* WebDAV */ + COPY = 8, + LOCK = 9, + MKCOL = 10, + MOVE = 11, + PROPFIND = 12, + PROPPATCH = 13, + SEARCH = 14, + UNLOCK = 15, + BIND = 16, + REBIND = 17, + UNBIND = 18, + ACL = 19, + /* subversion */ + REPORT = 20, + MKACTIVITY = 21, + CHECKOUT = 22, + MERGE = 23, + /* upnp */ + 'M-SEARCH' = 24, + NOTIFY = 25, + SUBSCRIBE = 26, + UNSUBSCRIBE = 27, + /* RFC-5789 */ + PATCH = 28, + PURGE = 29, + /* CalDAV */ + MKCALENDAR = 30, + /* RFC-2068, section 19.6.1.2 */ + LINK = 31, + UNLINK = 32, + /* icecast */ + SOURCE = 33, + /* RFC-7540, section 11.6 */ + PRI = 34, + /* RFC-2326 RTSP */ + DESCRIBE = 35, + ANNOUNCE = 36, + SETUP = 37, + PLAY = 38, + PAUSE = 39, + TEARDOWN = 40, + GET_PARAMETER = 41, + SET_PARAMETER = 42, + REDIRECT = 43, + RECORD = 44, + /* RAOP */ + FLUSH = 45, +} + +export const METHODS_HTTP = [ + METHODS.DELETE, + METHODS.GET, + METHODS.HEAD, + METHODS.POST, + METHODS.PUT, + METHODS.CONNECT, + METHODS.OPTIONS, + METHODS.TRACE, + METHODS.COPY, + METHODS.LOCK, + METHODS.MKCOL, + METHODS.MOVE, + METHODS.PROPFIND, + METHODS.PROPPATCH, + METHODS.SEARCH, + METHODS.UNLOCK, + METHODS.BIND, + METHODS.REBIND, + METHODS.UNBIND, + METHODS.ACL, + METHODS.REPORT, + METHODS.MKACTIVITY, + METHODS.CHECKOUT, + METHODS.MERGE, + METHODS['M-SEARCH'], + METHODS.NOTIFY, + METHODS.SUBSCRIBE, + METHODS.UNSUBSCRIBE, + METHODS.PATCH, + METHODS.PURGE, + METHODS.MKCALENDAR, + METHODS.LINK, + METHODS.UNLINK, + METHODS.PRI, + + // TODO(indutny): should we allow it with HTTP? + METHODS.SOURCE, +]; + +export const METHODS_ICE = [ + METHODS.SOURCE, +]; + +export const METHODS_RTSP = [ + METHODS.OPTIONS, + METHODS.DESCRIBE, + METHODS.ANNOUNCE, + METHODS.SETUP, + METHODS.PLAY, + METHODS.PAUSE, + METHODS.TEARDOWN, + METHODS.GET_PARAMETER, + METHODS.SET_PARAMETER, + METHODS.REDIRECT, + METHODS.RECORD, + METHODS.FLUSH, + + // For AirPlay + METHODS.GET, + METHODS.POST, +]; + +export const METHOD_MAP = enumToMap(METHODS); +export const H_METHOD_MAP: IEnumMap = {}; + +for (const key of Object.keys(METHOD_MAP)) { + if (/^H/.test(key)) { + H_METHOD_MAP[key] = METHOD_MAP[key]; + } +} + +export enum STATUSES { + CONTINUE = 100, + SWITCHING_PROTOCOLS = 101, + PROCESSING = 102, + EARLY_HINTS = 103, + RESPONSE_IS_STALE = 110, // Unofficial + REVALIDATION_FAILED = 111, // Unofficial + DISCONNECTED_OPERATION = 112, // Unofficial + HEURISTIC_EXPIRATION = 113, // Unofficial + MISCELLANEOUS_WARNING = 199, // Unofficial + OK = 200, + CREATED = 201, + ACCEPTED = 202, + NON_AUTHORITATIVE_INFORMATION = 203, + NO_CONTENT = 204, + RESET_CONTENT = 205, + PARTIAL_CONTENT = 206, + MULTI_STATUS = 207, + ALREADY_REPORTED = 208, + TRANSFORMATION_APPLIED = 214, // Unofficial + IM_USED = 226, + MISCELLANEOUS_PERSISTENT_WARNING = 299, // Unofficial + MULTIPLE_CHOICES = 300, + MOVED_PERMANENTLY = 301, + FOUND = 302, + SEE_OTHER = 303, + NOT_MODIFIED = 304, + USE_PROXY = 305, + SWITCH_PROXY = 306, // No longer used + TEMPORARY_REDIRECT = 307, + PERMANENT_REDIRECT = 308, + 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, + PAYLOAD_TOO_LARGE = 413, + URI_TOO_LONG = 414, + UNSUPPORTED_MEDIA_TYPE = 415, + RANGE_NOT_SATISFIABLE = 416, + EXPECTATION_FAILED = 417, + IM_A_TEAPOT = 418, + PAGE_EXPIRED = 419, // Unofficial + ENHANCE_YOUR_CALM = 420, // Unofficial + MISDIRECTED_REQUEST = 421, + UNPROCESSABLE_ENTITY = 422, + LOCKED = 423, + FAILED_DEPENDENCY = 424, + TOO_EARLY = 425, + UPGRADE_REQUIRED = 426, + PRECONDITION_REQUIRED = 428, + TOO_MANY_REQUESTS = 429, + REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL = 430, // Unofficial + REQUEST_HEADER_FIELDS_TOO_LARGE = 431, + LOGIN_TIMEOUT = 440, // Unofficial + NO_RESPONSE = 444, // Unofficial + RETRY_WITH = 449, // Unofficial + BLOCKED_BY_PARENTAL_CONTROL = 450, // Unofficial + UNAVAILABLE_FOR_LEGAL_REASONS = 451, + CLIENT_CLOSED_LOAD_BALANCED_REQUEST = 460, // Unofficial + INVALID_X_FORWARDED_FOR = 463, // Unofficial + REQUEST_HEADER_TOO_LARGE = 494, // Unofficial + SSL_CERTIFICATE_ERROR = 495, // Unofficial + SSL_CERTIFICATE_REQUIRED = 496, // Unofficial + HTTP_REQUEST_SENT_TO_HTTPS_PORT = 497, // Unofficial + INVALID_TOKEN = 498, // Unofficial + CLIENT_CLOSED_REQUEST = 499, // Unofficial + INTERNAL_SERVER_ERROR = 500, + NOT_IMPLEMENTED = 501, + BAD_GATEWAY = 502, + SERVICE_UNAVAILABLE = 503, + GATEWAY_TIMEOUT = 504, + HTTP_VERSION_NOT_SUPPORTED = 505, + VARIANT_ALSO_NEGOTIATES = 506, + INSUFFICIENT_STORAGE = 507, + LOOP_DETECTED = 508, + BANDWIDTH_LIMIT_EXCEEDED = 509, + NOT_EXTENDED = 510, + NETWORK_AUTHENTICATION_REQUIRED = 511, + WEB_SERVER_UNKNOWN_ERROR = 520, // Unofficial + WEB_SERVER_IS_DOWN = 521, // Unofficial + CONNECTION_TIMEOUT = 522, // Unofficial + ORIGIN_IS_UNREACHABLE = 523, // Unofficial + TIMEOUT_OCCURED = 524, // Unofficial + SSL_HANDSHAKE_FAILED = 525, // Unofficial + INVALID_SSL_CERTIFICATE = 526, // Unofficial + RAILGUN_ERROR = 527, // Unofficial + SITE_IS_OVERLOADED = 529, // Unofficial + SITE_IS_FROZEN = 530, // Unofficial + IDENTITY_PROVIDER_AUTHENTICATION_ERROR = 561, // Unofficial + NETWORK_READ_TIMEOUT = 598, // Unofficial + NETWORK_CONNECT_TIMEOUT = 599, // Unofficial +} + +export const STATUSES_HTTP = [ + STATUSES.CONTINUE, + STATUSES.SWITCHING_PROTOCOLS, + STATUSES.PROCESSING, + STATUSES.EARLY_HINTS, + STATUSES.RESPONSE_IS_STALE, + STATUSES.REVALIDATION_FAILED, + STATUSES.DISCONNECTED_OPERATION, + STATUSES.HEURISTIC_EXPIRATION, + STATUSES.MISCELLANEOUS_WARNING, + STATUSES.OK, + STATUSES.CREATED, + STATUSES.ACCEPTED, + STATUSES.NON_AUTHORITATIVE_INFORMATION, + STATUSES.NO_CONTENT, + STATUSES.RESET_CONTENT, + STATUSES.PARTIAL_CONTENT, + STATUSES.MULTI_STATUS, + STATUSES.ALREADY_REPORTED, + STATUSES.TRANSFORMATION_APPLIED, + STATUSES.IM_USED, + STATUSES.MISCELLANEOUS_PERSISTENT_WARNING, + STATUSES.MULTIPLE_CHOICES, + STATUSES.MOVED_PERMANENTLY, + STATUSES.FOUND, + STATUSES.SEE_OTHER, + STATUSES.NOT_MODIFIED, + STATUSES.USE_PROXY, + STATUSES.SWITCH_PROXY, + STATUSES.TEMPORARY_REDIRECT, + STATUSES.PERMANENT_REDIRECT, + STATUSES.BAD_REQUEST, + STATUSES.UNAUTHORIZED, + STATUSES.PAYMENT_REQUIRED, + STATUSES.FORBIDDEN, + STATUSES.NOT_FOUND, + STATUSES.METHOD_NOT_ALLOWED, + STATUSES.NOT_ACCEPTABLE, + STATUSES.PROXY_AUTHENTICATION_REQUIRED, + STATUSES.REQUEST_TIMEOUT, + STATUSES.CONFLICT, + STATUSES.GONE, + STATUSES.LENGTH_REQUIRED, + STATUSES.PRECONDITION_FAILED, + STATUSES.PAYLOAD_TOO_LARGE, + STATUSES.URI_TOO_LONG, + STATUSES.UNSUPPORTED_MEDIA_TYPE, + STATUSES.RANGE_NOT_SATISFIABLE, + STATUSES.EXPECTATION_FAILED, + STATUSES.IM_A_TEAPOT, + STATUSES.PAGE_EXPIRED, + STATUSES.ENHANCE_YOUR_CALM, + STATUSES.MISDIRECTED_REQUEST, + STATUSES.UNPROCESSABLE_ENTITY, + STATUSES.LOCKED, + STATUSES.FAILED_DEPENDENCY, + STATUSES.TOO_EARLY, + STATUSES.UPGRADE_REQUIRED, + STATUSES.PRECONDITION_REQUIRED, + STATUSES.TOO_MANY_REQUESTS, + STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL, + STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE, + STATUSES.LOGIN_TIMEOUT, + STATUSES.NO_RESPONSE, + STATUSES.RETRY_WITH, + STATUSES.BLOCKED_BY_PARENTAL_CONTROL, + STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS, + STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST, + STATUSES.INVALID_X_FORWARDED_FOR, + STATUSES.REQUEST_HEADER_TOO_LARGE, + STATUSES.SSL_CERTIFICATE_ERROR, + STATUSES.SSL_CERTIFICATE_REQUIRED, + STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT, + STATUSES.INVALID_TOKEN, + STATUSES.CLIENT_CLOSED_REQUEST, + STATUSES.INTERNAL_SERVER_ERROR, + STATUSES.NOT_IMPLEMENTED, + STATUSES.BAD_GATEWAY, + STATUSES.SERVICE_UNAVAILABLE, + STATUSES.GATEWAY_TIMEOUT, + STATUSES.HTTP_VERSION_NOT_SUPPORTED, + STATUSES.VARIANT_ALSO_NEGOTIATES, + STATUSES.INSUFFICIENT_STORAGE, + STATUSES.LOOP_DETECTED, + STATUSES.BANDWIDTH_LIMIT_EXCEEDED, + STATUSES.NOT_EXTENDED, + STATUSES.NETWORK_AUTHENTICATION_REQUIRED, + STATUSES.WEB_SERVER_UNKNOWN_ERROR, + STATUSES.WEB_SERVER_IS_DOWN, + STATUSES.CONNECTION_TIMEOUT, + STATUSES.ORIGIN_IS_UNREACHABLE, + STATUSES.TIMEOUT_OCCURED, + STATUSES.SSL_HANDSHAKE_FAILED, + STATUSES.INVALID_SSL_CERTIFICATE, + STATUSES.RAILGUN_ERROR, + STATUSES.SITE_IS_OVERLOADED, + STATUSES.SITE_IS_FROZEN, + STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR, + STATUSES.NETWORK_READ_TIMEOUT, + STATUSES.NETWORK_CONNECT_TIMEOUT, +]; + +export enum FINISH { + SAFE = 0, + SAFE_WITH_CB = 1, + UNSAFE = 2, +} + +// Internal + +export type CharList = Array; + +export const ALPHA: CharList = []; + +for (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) { + // Upper case + ALPHA.push(String.fromCharCode(i)); + + // Lower case + ALPHA.push(String.fromCharCode(i + 0x20)); +} + +export const NUM_MAP = { + 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, + 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, +}; + +export const HEX_MAP = { + 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, + 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, + A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF, + a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf, +}; + +export const NUM: CharList = [ + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', +]; + +export const ALPHANUM: CharList = ALPHA.concat(NUM); +export const MARK: CharList = [ '-', '_', '.', '!', '~', '*', '\'', '(', ')' ]; +export const USERINFO_CHARS: CharList = ALPHANUM + .concat(MARK) + .concat([ '%', ';', ':', '&', '=', '+', '$', ',' ]); + +// TODO(indutny): use RFC +export const URL_CHAR: CharList = ([ + '!', '"', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + ':', ';', '<', '=', '>', + '@', '[', '\\', ']', '^', '_', + '`', + '{', '|', '}', '~', +] as CharList).concat(ALPHANUM); + +export const HEX: CharList = NUM.concat( + [ 'a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F' ]); + +/* Tokens as defined by rfc 2616. Also lowercases them. + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + */ +export const TOKEN: CharList = ([ + '!', '#', '$', '%', '&', '\'', + '*', '+', '-', '.', + '^', '_', '`', + '|', '~', +] as CharList).concat(ALPHANUM); + +/* + * Verify that a char is a valid visible (printable) US-ASCII + * character or %x80-FF + */ +export const HEADER_CHARS: CharList = [ '\t' ]; +for (let i = 32; i <= 255; i++) { + if (i !== 127) { + HEADER_CHARS.push(i); + } +} + +// ',' = \x44 +export const CONNECTION_TOKEN_CHARS: CharList = + HEADER_CHARS.filter((c: string | number) => c !== 44); + +export const QUOTED_STRING: CharList = [ '\t', ' ' ]; +for (let i = 0x21; i <= 0xff; i++) { + if (i !== 0x22 && i !== 0x5c) { // All characters in ASCII except \ and " + QUOTED_STRING.push(i); + } +} + +export const HTAB_SP_VCHAR_OBS_TEXT: CharList = [ '\t', ' ' ]; + +// VCHAR: https://tools.ietf.org/html/rfc5234#appendix-B.1 +for (let i = 0x21; i <= 0x7E; i++) { + HTAB_SP_VCHAR_OBS_TEXT.push(i); +} +// OBS_TEXT: https://datatracker.ietf.org/doc/html/rfc9110#name-collected-abnf +for (let i = 0x80; i <= 0xff; i++) { + HTAB_SP_VCHAR_OBS_TEXT.push(i); +} + +export const MAJOR = NUM_MAP; +export const MINOR = MAJOR; + +export enum HEADER_STATE { + GENERAL = 0, + CONNECTION = 1, + CONTENT_LENGTH = 2, + TRANSFER_ENCODING = 3, + UPGRADE = 4, + + CONNECTION_KEEP_ALIVE = 5, + CONNECTION_CLOSE = 6, + CONNECTION_UPGRADE = 7, + TRANSFER_ENCODING_CHUNKED = 8, +} + +export const SPECIAL_HEADERS = { + 'connection': HEADER_STATE.CONNECTION, + 'content-length': HEADER_STATE.CONTENT_LENGTH, + 'proxy-connection': HEADER_STATE.CONNECTION, + 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING, + 'upgrade': HEADER_STATE.UPGRADE, +}; diff --git a/vendor/llhttp/src/llhttp/http.ts b/vendor/llhttp/src/llhttp/http.ts new file mode 100644 index 0000000..d0bfd48 --- /dev/null +++ b/vendor/llhttp/src/llhttp/http.ts @@ -0,0 +1,1298 @@ +import * as assert from 'assert'; +import { LLParse, source } from 'llparse'; + +import Match = source.node.Match; +import Node = source.node.Node; + +import { + CharList, + CONNECTION_TOKEN_CHARS, ERROR, FINISH, FLAGS, H_METHOD_MAP, HEADER_CHARS, + HEADER_STATE, HEX_MAP, HTAB_SP_VCHAR_OBS_TEXT, + LENIENT_FLAGS, + MAJOR, METHOD_MAP, METHODS, METHODS_HTTP, METHODS_ICE, METHODS_RTSP, + MINOR, NUM_MAP, QUOTED_STRING, SPECIAL_HEADERS, + TOKEN, TYPE, +} from './constants'; +import { URL } from './url'; + +type MaybeNode = string | Match | Node; + +const NODES: ReadonlyArray = [ + 'start', + 'after_start', + 'start_req', + 'after_start_req', + 'start_res', + 'start_req_or_res', + + 'req_or_res_method', + + 'res_http_major', + 'res_http_dot', + 'res_http_minor', + 'res_http_end', + 'res_after_version', + 'res_status_code_digit_1', + 'res_status_code_digit_2', + 'res_status_code_digit_3', + 'res_status_code_otherwise', + 'res_status_start', + 'res_status', + 'res_line_almost_done', + + 'req_first_space_before_url', + 'req_spaces_before_url', + 'req_http_start', + 'req_http_version', + 'req_http_major', + 'req_http_dot', + 'req_http_minor', + 'req_http_end', + 'req_http_complete', + 'req_http_complete_crlf', + + 'req_pri_upgrade', + + 'headers_start', + 'header_field_start', + 'header_field', + 'header_field_colon', + 'header_field_colon_discard_ws', + 'header_field_general', + 'header_field_general_otherwise', + 'header_value_discard_ws', + 'header_value_discard_ws_almost_done', + 'header_value_discard_lws', + 'header_value_start', + 'header_value', + 'header_value_otherwise', + 'header_value_lenient', + 'header_value_lenient_failed', + 'header_value_lws', + 'header_value_te_chunked', + 'header_value_te_chunked_last', + 'header_value_te_token', + 'header_value_te_token_ows', + 'header_value_content_length_once', + 'header_value_content_length', + 'header_value_content_length_ws', + 'header_value_connection', + 'header_value_connection_ws', + 'header_value_connection_token', + 'header_value_almost_done', + + 'headers_almost_done', + 'headers_done', + + 'chunk_size_start', + 'chunk_size_digit', + 'chunk_size', + 'chunk_size_otherwise', + 'chunk_size_almost_done', + 'chunk_size_almost_done_lf', + 'chunk_extensions', + 'chunk_extension_name', + 'chunk_extension_value', + 'chunk_extension_quoted_value', + 'chunk_extension_quoted_value_quoted_pair', + 'chunk_extension_quoted_value_done', + 'chunk_data', + 'chunk_data_almost_done', + 'chunk_complete', + 'body_identity', + 'body_identity_eof', + + 'message_done', + + 'eof', + 'cleanup', + 'closed', + 'restart', +]; + +interface ISpanMap { + readonly status: source.Span; + readonly method: source.Span; + readonly version: source.Span; + readonly headerField: source.Span; + readonly headerValue: source.Span; + readonly chunkExtensionName: source.Span; + readonly chunkExtensionValue: source.Span; + readonly body: source.Span; +} + +interface ICallbackMap { + readonly onMessageBegin: source.code.Code; + readonly onUrlComplete: source.code.Code; + readonly onMethodComplete: source.code.Code; + readonly onVersionComplete: source.code.Code; + readonly onStatusComplete: source.code.Code; + readonly beforeHeadersComplete: source.code.Code; + readonly onHeaderFieldComplete: source.code.Code; + readonly onHeaderValueComplete: source.code.Code; + readonly onHeadersComplete: source.code.Code; + readonly afterHeadersComplete: source.code.Code; + readonly onChunkHeader: source.code.Code; + readonly onChunkExtensionName: source.code.Code; + readonly onChunkExtensionValue: source.code.Code; + readonly onChunkComplete: source.code.Code; + readonly onMessageComplete: source.code.Code; + readonly afterMessageComplete: source.code.Code; + readonly onReset: source.code.Code; +} + +interface IMulTargets { + readonly overflow: string | Node; + readonly success: string | Node; +} + +interface IMulOptions { + readonly base: number; + readonly max?: number; + readonly signed: boolean; +} + +interface IIsEqualTargets { + readonly equal: string | Node; + readonly notEqual: string | Node; +} + +export interface IHTTPResult { + readonly entry: Node; +} + +export class HTTP { + private readonly url: URL; + private readonly TOKEN: CharList; + private readonly span: ISpanMap; + private readonly callback: ICallbackMap; + private readonly nodes: Map = new Map(); + + constructor(private readonly llparse: LLParse) { + const p = llparse; + + this.url = new URL(p); + this.TOKEN = TOKEN; + + this.span = { + body: p.span(p.code.span('llhttp__on_body')), + chunkExtensionName: p.span(p.code.span('llhttp__on_chunk_extension_name')), + chunkExtensionValue: p.span(p.code.span('llhttp__on_chunk_extension_value')), + headerField: p.span(p.code.span('llhttp__on_header_field')), + headerValue: p.span(p.code.span('llhttp__on_header_value')), + method: p.span(p.code.span('llhttp__on_method')), + status: p.span(p.code.span('llhttp__on_status')), + version: p.span(p.code.span('llhttp__on_version')), + }; + + /* tslint:disable:object-literal-sort-keys */ + this.callback = { + // User callbacks + onUrlComplete: p.code.match('llhttp__on_url_complete'), + onStatusComplete: p.code.match('llhttp__on_status_complete'), + onMethodComplete: p.code.match('llhttp__on_method_complete'), + onVersionComplete: p.code.match('llhttp__on_version_complete'), + onHeaderFieldComplete: p.code.match('llhttp__on_header_field_complete'), + onHeaderValueComplete: p.code.match('llhttp__on_header_value_complete'), + onHeadersComplete: p.code.match('llhttp__on_headers_complete'), + onMessageBegin: p.code.match('llhttp__on_message_begin'), + onMessageComplete: p.code.match('llhttp__on_message_complete'), + onChunkHeader: p.code.match('llhttp__on_chunk_header'), + onChunkExtensionName: p.code.match('llhttp__on_chunk_extension_name_complete'), + onChunkExtensionValue: p.code.match('llhttp__on_chunk_extension_value_complete'), + onChunkComplete: p.code.match('llhttp__on_chunk_complete'), + onReset: p.code.match('llhttp__on_reset'), + + // Internal callbacks `src/http.c` + beforeHeadersComplete: + p.code.match('llhttp__before_headers_complete'), + afterHeadersComplete: p.code.match('llhttp__after_headers_complete'), + afterMessageComplete: p.code.match('llhttp__after_message_complete'), + }; + /* tslint:enable:object-literal-sort-keys */ + + for (const name of NODES) { + this.nodes.set(name, p.node(name) as Match); + } + } + + public build(): IHTTPResult { + const p = this.llparse; + + p.property('i64', 'content_length'); + p.property('i8', 'type'); + p.property('i8', 'method'); + p.property('i8', 'http_major'); + p.property('i8', 'http_minor'); + p.property('i8', 'header_state'); + p.property('i16', 'lenient_flags'); + p.property('i8', 'upgrade'); + p.property('i8', 'finish'); + p.property('i16', 'flags'); + p.property('i16', 'status_code'); + p.property('i8', 'initial_message_completed'); + + // Verify defaults + assert.strictEqual(FINISH.SAFE, 0); + assert.strictEqual(TYPE.BOTH, 0); + + // Shared settings (to be used in C wrapper) + p.property('ptr', 'settings'); + + this.buildLine(); + this.buildHeaders(); + + return { + entry: this.node('start'), + }; + } + + private buildLine(): void { + const p = this.llparse; + const span = this.span; + const n = (name: string): Match => this.node(name); + + const url = this.url.build(); + + const switchType = this.load('type', { + [TYPE.REQUEST]: n('start_req'), + [TYPE.RESPONSE]: n('start_res'), + }, n('start_req_or_res')); + + n('start') + .match([ '\r', '\n' ], n('start')) + .otherwise( + this.load('initial_message_completed', { + 1: this.invokePausable('on_reset', ERROR.CB_RESET, n('after_start')), + }, n('after_start')), + ); + + n('after_start').otherwise( + this.update( + 'finish', + FINISH.UNSAFE, + this.invokePausable('on_message_begin', ERROR.CB_MESSAGE_BEGIN, switchType), + ), + ); + + n('start_req_or_res') + .peek('H', this.span.method.start(n('req_or_res_method'))) + .otherwise(this.update('type', TYPE.REQUEST, 'start_req')); + + n('req_or_res_method') + .select(H_METHOD_MAP, this.store('method', + this.update('type', TYPE.REQUEST, this.span.method.end( + this.invokePausable('on_method_complete', ERROR.CB_METHOD_COMPLETE, n('req_first_space_before_url')), + )), + )) + .match('HTTP/', this.span.method.end(this.update('type', TYPE.RESPONSE, + this.span.version.start(n('res_http_major'))))) + .otherwise(p.error(ERROR.INVALID_CONSTANT, 'Invalid word encountered')); + + const checkVersion = (destination: string): Node => { + const node = n(destination); + const errorNode = this.span.version.end(p.error(ERROR.INVALID_VERSION, 'Invalid HTTP version')); + + return this.testLenientFlags(LENIENT_FLAGS.VERSION, + { + 1: node, + }, + this.load('http_major', { + 0: this.load('http_minor', { + 9: node, + }, errorNode), + 1: this.load('http_minor', { + 0: node, + 1: node, + }, errorNode), + 2: this.load('http_minor', { + 0: node, + }, errorNode), + }, errorNode), + ); + }; + + const checkIfAllowLFWithoutCR = (success: Node, failure: Node) => { + return this.testLenientFlags(LENIENT_FLAGS.OPTIONAL_CR_BEFORE_LF, { 1: success }, failure); + }; + + // Response + n('start_res') + .match('HTTP/', span.version.start(n('res_http_major'))) + .otherwise(p.error(ERROR.INVALID_CONSTANT, 'Expected HTTP/')); + + n('res_http_major') + .select(MAJOR, this.store('http_major', 'res_http_dot')) + .otherwise(this.span.version.end(p.error(ERROR.INVALID_VERSION, 'Invalid major version'))); + + n('res_http_dot') + .match('.', n('res_http_minor')) + .otherwise(this.span.version.end(p.error(ERROR.INVALID_VERSION, 'Expected dot'))); + + n('res_http_minor') + .select(MINOR, this.store('http_minor', checkVersion('res_http_end'))) + .otherwise(this.span.version.end(p.error(ERROR.INVALID_VERSION, 'Invalid minor version'))); + + n('res_http_end') + .otherwise(this.span.version.end( + this.invokePausable('on_version_complete', ERROR.CB_VERSION_COMPLETE, 'res_after_version'), + )); + + n('res_after_version') + .match(' ', this.update('status_code', 0, 'res_status_code_digit_1')) + .otherwise(p.error(ERROR.INVALID_VERSION, + 'Expected space after version')); + + n('res_status_code_digit_1') + .select(NUM_MAP, this.mulAdd('status_code', { + overflow: p.error(ERROR.INVALID_STATUS, 'Invalid status code'), + success: 'res_status_code_digit_2', + })) + .otherwise(p.error(ERROR.INVALID_STATUS, 'Invalid status code')); + + n('res_status_code_digit_2') + .select(NUM_MAP, this.mulAdd('status_code', { + overflow: p.error(ERROR.INVALID_STATUS, 'Invalid status code'), + success: 'res_status_code_digit_3', + })) + .otherwise(p.error(ERROR.INVALID_STATUS, 'Invalid status code')); + + n('res_status_code_digit_3') + .select(NUM_MAP, this.mulAdd('status_code', { + overflow: p.error(ERROR.INVALID_STATUS, 'Invalid status code'), + success: 'res_status_code_otherwise', + })) + .otherwise(p.error(ERROR.INVALID_STATUS, 'Invalid status code')); + + const onStatusComplete = this.invokePausable( + 'on_status_complete', ERROR.CB_STATUS_COMPLETE, n('headers_start'), + ); + + n('res_status_code_otherwise') + .match(' ', n('res_status_start')) + .match('\r', n('res_line_almost_done')) + .match( + '\n', + checkIfAllowLFWithoutCR( + onStatusComplete, + p.error(ERROR.INVALID_STATUS, 'Invalid response status'), + ), + ) + .otherwise(p.error(ERROR.INVALID_STATUS, 'Invalid response status')); + + n('res_status_start') + .otherwise(span.status.start(n('res_status'))); + + n('res_status') + .peek('\r', span.status.end().skipTo(n('res_line_almost_done'))) + .peek( + '\n', + span.status.end().skipTo( + checkIfAllowLFWithoutCR( + onStatusComplete, + p.error(ERROR.CR_EXPECTED, 'Missing expected CR after response line'), + ), + ), + ) + .skipTo(n('res_status')); + + n('res_line_almost_done') + .match(['\r', '\n'], onStatusComplete) + .otherwise(this.testLenientFlags(LENIENT_FLAGS.OPTIONAL_LF_AFTER_CR, { + 1: onStatusComplete, + }, p.error(ERROR.STRICT, 'Expected LF after CR'))); + + // Request + n('start_req').otherwise(this.span.method.start(n('after_start_req'))); + + n('after_start_req') + .select(METHOD_MAP, this.store('method', this.span.method.end( + this.invokePausable('on_method_complete', ERROR.CB_METHOD_COMPLETE, n('req_first_space_before_url'), + )))) + .otherwise(p.error(ERROR.INVALID_METHOD, 'Invalid method encountered')); + + n('req_first_space_before_url') + .match(' ', n('req_spaces_before_url')) + .otherwise(p.error(ERROR.INVALID_METHOD, 'Expected space after method')); + + n('req_spaces_before_url') + .match(' ', n('req_spaces_before_url')) + .otherwise(this.isEqual('method', METHODS.CONNECT, { + equal: url.entry.connect, + notEqual: url.entry.normal, + })); + + const onUrlCompleteHTTP = this.invokePausable( + 'on_url_complete', ERROR.CB_URL_COMPLETE, n('req_http_start'), + ); + + url.exit.toHTTP + .otherwise(onUrlCompleteHTTP); + + const onUrlCompleteHTTP09 = this.invokePausable( + 'on_url_complete', ERROR.CB_URL_COMPLETE, n('headers_start'), + ); + + url.exit.toHTTP09 + .otherwise( + this.update('http_major', 0, + this.update('http_minor', 9, onUrlCompleteHTTP09)), + ); + + const checkMethod = (methods: METHODS[], error: string): Node => { + const success = n('req_http_version'); + const failure = p.error(ERROR.INVALID_CONSTANT, error); + + const map: { [key: number]: Node } = {}; + for (const method of methods) { + map[method] = success; + } + + return this.load('method', map, failure); + }; + + n('req_http_start') + .match('HTTP/', checkMethod(METHODS_HTTP, + 'Invalid method for HTTP/x.x request')) + .match('RTSP/', checkMethod(METHODS_RTSP, + 'Invalid method for RTSP/x.x request')) + .match('ICE/', checkMethod(METHODS_ICE, + 'Expected SOURCE method for ICE/x.x request')) + .match(' ', n('req_http_start')) + .otherwise(p.error(ERROR.INVALID_CONSTANT, 'Expected HTTP/')); + + n('req_http_version').otherwise(span.version.start(n('req_http_major'))); + + n('req_http_major') + .select(MAJOR, this.store('http_major', 'req_http_dot')) + .otherwise(this.span.version.end(p.error(ERROR.INVALID_VERSION, 'Invalid major version'))); + + n('req_http_dot') + .match('.', n('req_http_minor')) + .otherwise(this.span.version.end(p.error(ERROR.INVALID_VERSION, 'Expected dot'))); + + n('req_http_minor') + .select(MINOR, this.store('http_minor', checkVersion('req_http_end'))) + .otherwise(this.span.version.end(p.error(ERROR.INVALID_VERSION, 'Invalid minor version'))); + + n('req_http_end').otherwise( + span.version.end( + this.invokePausable( + 'on_version_complete', + ERROR.CB_VERSION_COMPLETE, + this.load('method', { + [METHODS.PRI]: n('req_pri_upgrade'), + }, n('req_http_complete')), + ), + ), + ); + + n('req_http_complete') + .match('\r', n('req_http_complete_crlf')) + .match( + '\n', + checkIfAllowLFWithoutCR( + n('req_http_complete_crlf'), + p.error(ERROR.INVALID_VERSION, 'Expected CRLF after version'), + ), + ) + .otherwise(p.error(ERROR.INVALID_VERSION, 'Expected CRLF after version')); + + n('req_http_complete_crlf') + .match('\n', n('headers_start')) + .otherwise(this.testLenientFlags(LENIENT_FLAGS.OPTIONAL_LF_AFTER_CR, { + 1: n('headers_start'), + }, p.error(ERROR.STRICT, 'Expected CRLF after version'))); + + n('req_pri_upgrade') + .match('\r\n\r\nSM\r\n\r\n', + p.error(ERROR.PAUSED_H2_UPGRADE, 'Pause on PRI/Upgrade')) + .otherwise( + p.error(ERROR.INVALID_VERSION, 'Expected HTTP/2 Connection Preface')); + } + + private buildHeaders(): void { + this.buildHeaderField(); + this.buildHeaderValue(); + } + + private buildHeaderField(): void { + const p = this.llparse; + const span = this.span; + const n = (name: string): Match => this.node(name); + + const onInvalidHeaderFieldChar = + p.error(ERROR.INVALID_HEADER_TOKEN, 'Invalid header field char'); + + n('headers_start') + .match(' ', + this.testLenientFlags(LENIENT_FLAGS.HEADERS, { + 1: n('header_field_start'), + }, p.error(ERROR.UNEXPECTED_SPACE, 'Unexpected space after start line')), + ) + .otherwise(n('header_field_start')); + + n('header_field_start') + .match('\r', n('headers_almost_done')) + .match('\n', + this.testLenientFlags(LENIENT_FLAGS.OPTIONAL_CR_BEFORE_LF, { + 1: this.testFlags(FLAGS.TRAILING, { + 1: this.invokePausable('on_chunk_complete', + ERROR.CB_CHUNK_COMPLETE, 'message_done'), + }).otherwise(this.headersCompleted()), + }, onInvalidHeaderFieldChar), + ) + .otherwise(span.headerField.start(n('header_field'))); + + n('header_field') + .transform(p.transform.toLower()) + // Match headers that need special treatment + .select(SPECIAL_HEADERS, this.store('header_state', 'header_field_colon')) + .otherwise(this.resetHeaderState('header_field_general')); + + /* https://www.rfc-editor.org/rfc/rfc7230.html#section-3.3.3, paragraph 3. + * + * If a message is received with both a Transfer-Encoding and a + * Content-Length header field, the Transfer-Encoding overrides the + * Content-Length. Such a message might indicate an attempt to + * perform request smuggling (Section 9.5) or response splitting + * (Section 9.4) and **ought to be handled as an error**. A sender MUST + * remove the received Content-Length field prior to forwarding such + * a message downstream. + * + * Since llhttp 9, we go for the stricter approach and treat this as an error. + */ + const checkInvalidTransferEncoding = (otherwise: Node) => { + return this.testFlags(FLAGS.CONTENT_LENGTH, { + 1: this.testLenientFlags(LENIENT_FLAGS.CHUNKED_LENGTH, { + 0: p.error(ERROR.INVALID_TRANSFER_ENCODING, "Transfer-Encoding can't be present with Content-Length"), + }).otherwise(otherwise), + }).otherwise(otherwise); + }; + + const checkInvalidContentLength = (otherwise: Node) => { + return this.testFlags(FLAGS.TRANSFER_ENCODING, { + 1: this.testLenientFlags(LENIENT_FLAGS.CHUNKED_LENGTH, { + 0: p.error(ERROR.INVALID_CONTENT_LENGTH, "Content-Length can't be present with Transfer-Encoding"), + }).otherwise(otherwise), + }).otherwise(otherwise); + }; + + const onHeaderFieldComplete = this.invokePausable( + 'on_header_field_complete', ERROR.CB_HEADER_FIELD_COMPLETE, + this.load('header_state', { + [HEADER_STATE.TRANSFER_ENCODING]: checkInvalidTransferEncoding(n('header_value_discard_ws')), + [HEADER_STATE.CONTENT_LENGTH]: checkInvalidContentLength(n('header_value_discard_ws')), + }, 'header_value_discard_ws'), + ); + + const checkLenientFlagsOnColon = + this.testLenientFlags(LENIENT_FLAGS.HEADERS, { + 1: n('header_field_colon_discard_ws'), + }, span.headerField.end().skipTo(onInvalidHeaderFieldChar)); + + n('header_field_colon') + // https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4 + // Whitespace character is not allowed between the header field-name + // and colon. If the next token matches whitespace then throw an error. + // + // Add a check for the lenient flag. If the lenient flag is set, the + // whitespace token is allowed to support legacy code not following + // http specs. + .peek(' ', checkLenientFlagsOnColon) + .peek(':', span.headerField.end().skipTo(onHeaderFieldComplete)) + // Fallback to general header, there're additional characters: + // `Connection-Duration` instead of `Connection` and so on. + .otherwise(this.resetHeaderState('header_field_general')); + + n('header_field_colon_discard_ws') + .match(' ', n('header_field_colon_discard_ws')) + .otherwise(n('header_field_colon')); + + n('header_field_general') + .match(this.TOKEN, n('header_field_general')) + .otherwise(n('header_field_general_otherwise')); + + // Just a performance optimization, split the node so that the fast case + // remains in `header_field_general` + n('header_field_general_otherwise') + .peek(':', span.headerField.end().skipTo(onHeaderFieldComplete)) + .otherwise(p.error(ERROR.INVALID_HEADER_TOKEN, 'Invalid header token')); + } + + private buildHeaderValue(): void { + const p = this.llparse; + const span = this.span; + const callback = this.callback; + const n = (name: string): Match => this.node(name); + + const fallback = this.resetHeaderState('header_value'); + + n('header_value_discard_ws') + .match([ ' ', '\t' ], n('header_value_discard_ws')) + .match('\r', n('header_value_discard_ws_almost_done')) + .match('\n', this.testLenientFlags(LENIENT_FLAGS.OPTIONAL_CR_BEFORE_LF, { + 1: n('header_value_discard_lws'), + }, p.error(ERROR.INVALID_HEADER_TOKEN, 'Invalid header value char'))) + .otherwise(span.headerValue.start(n('header_value_start'))); + + n('header_value_discard_ws_almost_done') + .match('\n', n('header_value_discard_lws')) + .otherwise( + this.testLenientFlags(LENIENT_FLAGS.HEADERS, { + 1: n('header_value_discard_lws'), + }, p.error(ERROR.STRICT, 'Expected LF after CR')), + ); + + const onHeaderValueComplete = this.invokePausable( + 'on_header_value_complete', ERROR.CB_HEADER_VALUE_COMPLETE, n('header_field_start'), + ); + + const emptyContentLengthError = p.error( + ERROR.INVALID_CONTENT_LENGTH, 'Empty Content-Length'); + const checkContentLengthEmptiness = this.load('header_state', { + [HEADER_STATE.CONTENT_LENGTH]: emptyContentLengthError, + }, this.setHeaderFlags( + this.emptySpan(span.headerValue, onHeaderValueComplete))); + + n('header_value_discard_lws') + .match([ ' ', '\t' ], this.testLenientFlags(LENIENT_FLAGS.HEADERS, { + 1: n('header_value_discard_ws'), + }, p.error(ERROR.INVALID_HEADER_TOKEN, 'Invalid header value char'))) + .otherwise(checkContentLengthEmptiness); + + // Multiple `Transfer-Encoding` headers should be treated as one, but with + // values separate by a comma. + // + // See: https://tools.ietf.org/html/rfc7230#section-3.2.2 + const toTransferEncoding = this.unsetFlag( + FLAGS.CHUNKED, + 'header_value_te_chunked'); + + // Once chunked has been selected, no other encoding is possible in requests + // https://datatracker.ietf.org/doc/html/rfc7230#section-3.3.1 + const forbidAfterChunkedInRequest = (otherwise: Node) => { + return this.load('type', { + [TYPE.REQUEST]: this.testLenientFlags(LENIENT_FLAGS.TRANSFER_ENCODING, { + 0: span.headerValue.end().skipTo( + p.error(ERROR.INVALID_TRANSFER_ENCODING, 'Invalid `Transfer-Encoding` header value'), + ), + }).otherwise(otherwise), + }, otherwise); + }; + + n('header_value_start') + .otherwise(this.load('header_state', { + [HEADER_STATE.UPGRADE]: this.setFlag(FLAGS.UPGRADE, fallback), + [HEADER_STATE.TRANSFER_ENCODING]: this.testFlags( + FLAGS.CHUNKED, + { + 1: forbidAfterChunkedInRequest(this.setFlag(FLAGS.TRANSFER_ENCODING, toTransferEncoding)), + }, + this.setFlag(FLAGS.TRANSFER_ENCODING, toTransferEncoding)), + [HEADER_STATE.CONTENT_LENGTH]: n('header_value_content_length_once'), + [HEADER_STATE.CONNECTION]: n('header_value_connection'), + }, 'header_value')); + + // + // Transfer-Encoding + // + + n('header_value_te_chunked') + .transform(p.transform.toLowerUnsafe()) + .match( + 'chunked', + n('header_value_te_chunked_last'), + ) + .otherwise(n('header_value_te_token')); + + n('header_value_te_chunked_last') + .match(' ', n('header_value_te_chunked_last')) + .peek([ '\r', '\n' ], this.update('header_state', + HEADER_STATE.TRANSFER_ENCODING_CHUNKED, + 'header_value_otherwise')) + .peek(',', forbidAfterChunkedInRequest(n('header_value_te_chunked'))) + .otherwise(n('header_value_te_token')); + + n('header_value_te_token') + .match(',', n('header_value_te_token_ows')) + .match(CONNECTION_TOKEN_CHARS, n('header_value_te_token')) + .otherwise(fallback); + + n('header_value_te_token_ows') + .match([ ' ', '\t' ], n('header_value_te_token_ows')) + .otherwise(n('header_value_te_chunked')); + + // + // Content-Length + // + + const invalidContentLength = (reason: string): Node => { + // End span for easier testing + // TODO(indutny): minimize code size + return span.headerValue.end() + .otherwise(p.error(ERROR.INVALID_CONTENT_LENGTH, reason)); + }; + + n('header_value_content_length_once') + .otherwise(this.testFlags(FLAGS.CONTENT_LENGTH, { + 0: n('header_value_content_length'), + }, p.error(ERROR.UNEXPECTED_CONTENT_LENGTH, 'Duplicate Content-Length'))); + + n('header_value_content_length') + .select(NUM_MAP, this.mulAdd('content_length', { + overflow: invalidContentLength('Content-Length overflow'), + success: 'header_value_content_length', + })) + .otherwise(n('header_value_content_length_ws')); + + n('header_value_content_length_ws') + .match(' ', n('header_value_content_length_ws')) + .peek([ '\r', '\n' ], + this.setFlag(FLAGS.CONTENT_LENGTH, 'header_value_otherwise')) + .otherwise(invalidContentLength('Invalid character in Content-Length')); + + // + // Connection + // + + n('header_value_connection') + .transform(p.transform.toLower()) + // TODO(indutny): extra node for token back-edge? + // Skip lws + .match([ ' ', '\t' ], n('header_value_connection')) + .match( + 'close', + this.update('header_state', HEADER_STATE.CONNECTION_CLOSE, + 'header_value_connection_ws'), + ) + .match( + 'upgrade', + this.update('header_state', HEADER_STATE.CONNECTION_UPGRADE, + 'header_value_connection_ws'), + ) + .match( + 'keep-alive', + this.update('header_state', HEADER_STATE.CONNECTION_KEEP_ALIVE, + 'header_value_connection_ws'), + ) + .otherwise(n('header_value_connection_token')); + + n('header_value_connection_ws') + .match(',', this.setHeaderFlags('header_value_connection')) + .match(' ', n('header_value_connection_ws')) + .peek([ '\r', '\n' ], n('header_value_otherwise')) + .otherwise(this.resetHeaderState('header_value_connection_token')); + + n('header_value_connection_token') + .match(',', n('header_value_connection')) + .match(CONNECTION_TOKEN_CHARS, + n('header_value_connection_token')) + .otherwise(n('header_value_otherwise')); + + // Split for performance reasons + n('header_value') + .match(HEADER_CHARS, n('header_value')) + .otherwise(n('header_value_otherwise')); + + const checkIfAllowLFWithoutCR = (success: Node, failure: Node) => { + return this.testLenientFlags(LENIENT_FLAGS.OPTIONAL_CR_BEFORE_LF, { 1: success }, failure); + }; + + const checkLenient = this.testLenientFlags(LENIENT_FLAGS.HEADERS, { + 1: n('header_value_lenient'), + }, span.headerValue.end(p.error(ERROR.INVALID_HEADER_TOKEN, 'Invalid header value char'))); + + n('header_value_otherwise') + .peek('\r', span.headerValue.end().skipTo(n('header_value_almost_done'))) + .peek( + '\n', + span.headerValue.end( + checkIfAllowLFWithoutCR( + n('header_value_almost_done'), + p.error(ERROR.CR_EXPECTED, 'Missing expected CR after header value'), + ), + ), + ) + .otherwise(checkLenient); + + n('header_value_lenient') + .peek('\r', span.headerValue.end().skipTo(n('header_value_almost_done'))) + .peek('\n', span.headerValue.end(n('header_value_almost_done'))) + .skipTo(n('header_value_lenient')); + + n('header_value_almost_done') + .match('\n', n('header_value_lws')) + .otherwise(p.error(ERROR.LF_EXPECTED, + 'Missing expected LF after header value')); + + n('header_value_lws') + .peek([ ' ', '\t' ], + this.load('header_state', { + [HEADER_STATE.TRANSFER_ENCODING_CHUNKED]: + this.resetHeaderState(span.headerValue.start(n('header_value_start'))), + }, span.headerValue.start(n('header_value_start')))) + .otherwise(this.setHeaderFlags(onHeaderValueComplete)); + + const checkTrailing = this.testFlags(FLAGS.TRAILING, { + 1: this.invokePausable('on_chunk_complete', + ERROR.CB_CHUNK_COMPLETE, 'message_done'), + }).otherwise(this.headersCompleted()); + + n('headers_almost_done') + .match('\n', checkTrailing) + .otherwise( + this.testLenientFlags(LENIENT_FLAGS.OPTIONAL_LF_AFTER_CR, { + 1: checkTrailing, + }, p.error(ERROR.STRICT, 'Expected LF after headers'))); + + const upgradePause = p.pause(ERROR.PAUSED_UPGRADE, + 'Pause on CONNECT/Upgrade'); + + const afterHeadersComplete = p.invoke(callback.afterHeadersComplete, { + 1: this.invokePausable('on_message_complete', + ERROR.CB_MESSAGE_COMPLETE, upgradePause), + 2: n('chunk_size_start'), + 3: n('body_identity'), + 4: n('body_identity_eof'), + + // non-chunked `Transfer-Encoding` for request, see `src/native/http.c` + 5: p.error(ERROR.INVALID_TRANSFER_ENCODING, + 'Request has invalid `Transfer-Encoding`'), + }); + + n('headers_done') + .otherwise(afterHeadersComplete); + + upgradePause + .otherwise(n('cleanup')); + + afterHeadersComplete + .otherwise(this.invokePausable('on_message_complete', + ERROR.CB_MESSAGE_COMPLETE, 'cleanup')); + + n('body_identity') + .otherwise(span.body.start() + .otherwise(p.consume('content_length').otherwise( + span.body.end(n('message_done'))))); + + n('body_identity_eof') + .otherwise( + this.update('finish', FINISH.SAFE_WITH_CB, span.body.start(n('eof')))); + + // Just read everything until EOF + n('eof') + .skipTo(n('eof')); + + n('chunk_size_start') + .otherwise(this.update('content_length', 0, 'chunk_size_digit')); + + const addContentLength = this.mulAdd('content_length', { + overflow: p.error(ERROR.INVALID_CHUNK_SIZE, 'Chunk size overflow'), + success: 'chunk_size', + }, { signed: false, base: 0x10 }); + + n('chunk_size_digit') + .select(HEX_MAP, addContentLength) + .otherwise(p.error(ERROR.INVALID_CHUNK_SIZE, + 'Invalid character in chunk size')); + + n('chunk_size') + .select(HEX_MAP, addContentLength) + .otherwise(n('chunk_size_otherwise')); + + n('chunk_size_otherwise') + .match( + [ ' ', '\t' ], + this.testLenientFlags( + LENIENT_FLAGS.SPACES_AFTER_CHUNK_SIZE, + { + 1: n('chunk_size_otherwise'), + }, + p.error(ERROR.INVALID_CHUNK_SIZE, 'Invalid character in chunk size'), + ), + ) + .match('\r', n('chunk_size_almost_done')) + .match( + '\n', + checkIfAllowLFWithoutCR( + n('chunk_size_almost_done'), + p.error(ERROR.CR_EXPECTED, 'Missing expected CR after chunk size'), + ), + ) + .match(';', n('chunk_extensions')) + .otherwise(p.error(ERROR.INVALID_CHUNK_SIZE, + 'Invalid character in chunk size')); + + const onChunkExtensionNameCompleted = (destination: Node) => { + return this.invokePausable( + 'on_chunk_extension_name', ERROR.CB_CHUNK_EXTENSION_NAME_COMPLETE, destination); + }; + + const onChunkExtensionValueCompleted = (destination: Node) => { + return this.invokePausable( + 'on_chunk_extension_value', ERROR.CB_CHUNK_EXTENSION_VALUE_COMPLETE, destination); + }; + + n('chunk_extensions') + .match(' ', p.error(ERROR.STRICT, 'Invalid character in chunk extensions')) + .match('\r', p.error(ERROR.STRICT, 'Invalid character in chunk extensions')) + .otherwise(this.span.chunkExtensionName.start(n('chunk_extension_name'))); + + n('chunk_extension_name') + .match(TOKEN, n('chunk_extension_name')) + .peek('=', this.span.chunkExtensionName.end().skipTo( + this.span.chunkExtensionValue.start( + onChunkExtensionNameCompleted(n('chunk_extension_value')), + ), + )) + .peek(';', this.span.chunkExtensionName.end().skipTo( + onChunkExtensionNameCompleted(n('chunk_extensions')), + )) + .peek('\r', this.span.chunkExtensionName.end().skipTo( + onChunkExtensionNameCompleted(n('chunk_size_almost_done')), + )) + .peek('\n', this.span.chunkExtensionName.end( + onChunkExtensionNameCompleted( + checkIfAllowLFWithoutCR( + n('chunk_size_almost_done'), + p.error(ERROR.CR_EXPECTED, 'Missing expected CR after chunk extension name'), + ), + ), + )) + .otherwise(this.span.chunkExtensionName.end().skipTo( + p.error(ERROR.STRICT, 'Invalid character in chunk extensions name'), + )); + + n('chunk_extension_value') + .match('"', n('chunk_extension_quoted_value')) + .match(TOKEN, n('chunk_extension_value')) + .peek(';', this.span.chunkExtensionValue.end().skipTo( + onChunkExtensionValueCompleted(n('chunk_extensions')), + )) + .peek('\r', this.span.chunkExtensionValue.end().skipTo( + onChunkExtensionValueCompleted(n('chunk_size_almost_done')), + )) + .peek('\n', this.span.chunkExtensionValue.end( + onChunkExtensionValueCompleted( + checkIfAllowLFWithoutCR( + n('chunk_size_almost_done'), + p.error(ERROR.CR_EXPECTED, 'Missing expected CR after chunk extension value'), + ), + ), + )) + .otherwise(this.span.chunkExtensionValue.end().skipTo( + p.error(ERROR.STRICT, 'Invalid character in chunk extensions value'), + )); + + n('chunk_extension_quoted_value') + .match(QUOTED_STRING, n('chunk_extension_quoted_value')) + .match('"', this.span.chunkExtensionValue.end( + onChunkExtensionValueCompleted(n('chunk_extension_quoted_value_done')), + )) + .match('\\', n('chunk_extension_quoted_value_quoted_pair')) + .otherwise(this.span.chunkExtensionValue.end().skipTo( + p.error(ERROR.STRICT, 'Invalid character in chunk extensions quoted value'), + )); + + n('chunk_extension_quoted_value_quoted_pair') + .match(HTAB_SP_VCHAR_OBS_TEXT, n('chunk_extension_quoted_value')) + .otherwise(this.span.chunkExtensionValue.end().skipTo( + p.error(ERROR.STRICT, 'Invalid quoted-pair in chunk extensions quoted value'), + )); + + n('chunk_extension_quoted_value_done') + .match(';', n('chunk_extensions')) + .match('\r', n('chunk_size_almost_done')) + .peek( + '\n', + checkIfAllowLFWithoutCR( + n('chunk_size_almost_done'), + p.error(ERROR.CR_EXPECTED, 'Missing expected CR after chunk extension value'), + ), + ) + .otherwise(p.error(ERROR.STRICT, + 'Invalid character in chunk extensions quote value')); + + n('chunk_size_almost_done') + .match('\n', n('chunk_size_almost_done_lf')) + .otherwise( + this.testLenientFlags(LENIENT_FLAGS.OPTIONAL_LF_AFTER_CR, { + 1: n('chunk_size_almost_done_lf'), + }).otherwise(p.error(ERROR.STRICT, 'Expected LF after chunk size')), + ); + + const toChunk = this.isEqual('content_length', 0, { + equal: this.setFlag(FLAGS.TRAILING, 'header_field_start'), + notEqual: 'chunk_data', + }); + + n('chunk_size_almost_done_lf') + .otherwise(this.invokePausable('on_chunk_header', + ERROR.CB_CHUNK_HEADER, toChunk)); + + n('chunk_data') + .otherwise(span.body.start() + .otherwise(p.consume('content_length').otherwise( + span.body.end(n('chunk_data_almost_done'))))); + + n('chunk_data_almost_done') + .match('\r\n', n('chunk_complete')) + .match( + '\n', + checkIfAllowLFWithoutCR( + n('chunk_complete'), + p.error(ERROR.CR_EXPECTED, 'Missing expected CR after chunk data'), + ), + ) + .otherwise( + this.testLenientFlags(LENIENT_FLAGS.OPTIONAL_CRLF_AFTER_CHUNK, { + 1: n('chunk_complete'), + }).otherwise(p.error(ERROR.STRICT, 'Expected LF after chunk data')), + ); + + n('chunk_complete') + .otherwise(this.invokePausable('on_chunk_complete', + ERROR.CB_CHUNK_COMPLETE, 'chunk_size_start')); + + const upgradeAfterDone = this.isEqual('upgrade', 1, { + // Exit, the rest of the message is in a different protocol. + equal: upgradePause, + + // Restart + notEqual: 'cleanup', + }); + + n('message_done') + .otherwise(this.invokePausable('on_message_complete', + ERROR.CB_MESSAGE_COMPLETE, upgradeAfterDone)); + + const lenientClose = this.testLenientFlags(LENIENT_FLAGS.KEEP_ALIVE, { + 1: n('restart'), + }, n('closed')); + + // Check if we'd like to keep-alive + n('cleanup') + .otherwise(p.invoke(callback.afterMessageComplete, { + 1: this.update('content_length', 0, n('restart')), + }, this.update('finish', FINISH.SAFE, lenientClose))); + + const lenientDiscardAfterClose = this.testLenientFlags(LENIENT_FLAGS.DATA_AFTER_CLOSE, { + 1: n('closed'), + }, p.error(ERROR.CLOSED_CONNECTION, 'Data after `Connection: close`')); + + n('closed') + .match([ '\r', '\n' ], n('closed')) + .skipTo(lenientDiscardAfterClose); + + n('restart') + .otherwise( + this.update('initial_message_completed', 1, this.update('finish', FINISH.SAFE, n('start')), + )); + } + + private headersCompleted(): Node { + const p = this.llparse; + const callback = this.callback; + const n = (name: string): Match => this.node(name); + + // Set `upgrade` if needed + const beforeHeadersComplete = p.invoke(callback.beforeHeadersComplete); + + /* Here we call the headers_complete callback. This is somewhat + * different than other callbacks because if the user returns 1, we + * will interpret that as saying that this message has no body. This + * is needed for the annoying case of receiving a response to a HEAD + * request. + * + * We'd like to use CALLBACK_NOTIFY_NOADVANCE() here but we cannot, so + * we have to simulate it by handling a change in errno below. + */ + const onHeadersComplete = p.invoke(callback.onHeadersComplete, { + 0: n('headers_done'), + 1: this.setFlag(FLAGS.SKIPBODY, 'headers_done'), + 2: this.update('upgrade', 1, + this.setFlag(FLAGS.SKIPBODY, 'headers_done')), + [ERROR.PAUSED]: this.pause('Paused by on_headers_complete', + 'headers_done'), + }, p.error(ERROR.CB_HEADERS_COMPLETE, 'User callback error')); + + beforeHeadersComplete.otherwise(onHeadersComplete); + + return beforeHeadersComplete; + } + + private node(name: string | T): T { + if (name instanceof Node) { + return name; + } + + assert(this.nodes.has(name), `Unknown node with name "${name}"`); + return this.nodes.get(name)! as any; + } + + private load(field: string, map: { [key: number]: Node }, + next?: string | Node): Node { + const p = this.llparse; + + const res = p.invoke(p.code.load(field), map); + if (next !== undefined) { + res.otherwise(this.node(next)); + } + return res; + } + + private store(field: string, next?: string | Node): Node { + const p = this.llparse; + + const res = p.invoke(p.code.store(field)); + if (next !== undefined) { + res.otherwise(this.node(next)); + } + return res; + } + + private update(field: string, value: number, next?: string | Node): Node { + const p = this.llparse; + + const res = p.invoke(p.code.update(field, value)); + if (next !== undefined) { + res.otherwise(this.node(next)); + } + return res; + } + + private resetHeaderState(next: string | Node): Node { + return this.update('header_state', HEADER_STATE.GENERAL, next); + } + + private emptySpan(span: source.Span, next: string | Node): Node { + return span.start(span.end(this.node(next))); + } + + private unsetFlag(flag: FLAGS, next: string | Node): Node { + const p = this.llparse; + return p.invoke(p.code.and('flags', ~flag), this.node(next)); + } + + private setFlag(flag: FLAGS, next: string | Node): Node { + const p = this.llparse; + return p.invoke(p.code.or('flags', flag), this.node(next)); + } + + private testFlags(flag: FLAGS, map: { [key: number]: Node }, + next?: string | Node): Node { + const p = this.llparse; + const res = p.invoke(p.code.test('flags', flag), map); + if (next !== undefined) { + res.otherwise(this.node(next)); + } + return res; + } + + private testLenientFlags(flag: LENIENT_FLAGS, map: { [key: number]: Node }, + next?: string | Node): Node { + const p = this.llparse; + const res = p.invoke(p.code.test('lenient_flags', flag), map); + if (next !== undefined) { + res.otherwise(this.node(next)); + } + return res; + } + + private setHeaderFlags(next: string | Node): Node { + const HS = HEADER_STATE; + const F = FLAGS; + + const toConnection = + this.update('header_state', HEADER_STATE.CONNECTION, next); + + return this.load('header_state', { + [HS.CONNECTION_KEEP_ALIVE]: + this.setFlag(F.CONNECTION_KEEP_ALIVE, toConnection), + [HS.CONNECTION_CLOSE]: this.setFlag(F.CONNECTION_CLOSE, toConnection), + [HS.CONNECTION_UPGRADE]: this.setFlag(F.CONNECTION_UPGRADE, toConnection), + [HS.TRANSFER_ENCODING_CHUNKED]: this.setFlag(F.CHUNKED, next), + }, this.node(next)); + } + + private mulAdd(field: string, targets: IMulTargets, + options: IMulOptions = { base: 10, signed: false }): Node { + const p = this.llparse; + + return p.invoke(p.code.mulAdd(field, options), { + 1: this.node(targets.overflow), + }, this.node(targets.success)); + } + + private isEqual(field: string, value: number, map: IIsEqualTargets) { + const p = this.llparse; + return p.invoke(p.code.isEqual(field, value), { + 0: this.node(map.notEqual), + }, this.node(map.equal)); + } + + private pause(msg: string, next?: string | Node) { + const p = this.llparse; + const res = p.pause(ERROR.PAUSED, msg); + if (next !== undefined) { + res.otherwise(this.node(next)); + } + return res; + } + + private invokePausable(name: string, errorCode: ERROR, next: string | Node) + : Node { + let cb; + + switch (name) { + case 'on_message_begin': + cb = this.callback.onMessageBegin; + break; + case 'on_url_complete': + cb = this.callback.onUrlComplete; + break; + case 'on_status_complete': + cb = this.callback.onStatusComplete; + break; + case 'on_method_complete': + cb = this.callback.onMethodComplete; + break; + case 'on_version_complete': + cb = this.callback.onVersionComplete; + break; + case 'on_header_field_complete': + cb = this.callback.onHeaderFieldComplete; + break; + case 'on_header_value_complete': + cb = this.callback.onHeaderValueComplete; + break; + case 'on_message_complete': + cb = this.callback.onMessageComplete; + break; + case 'on_chunk_header': + cb = this.callback.onChunkHeader; + break; + case 'on_chunk_extension_name': + cb = this.callback.onChunkExtensionName; + break; + case 'on_chunk_extension_value': + cb = this.callback.onChunkExtensionValue; + break; + case 'on_chunk_complete': + cb = this.callback.onChunkComplete; + break; + case 'on_reset': + cb = this.callback.onReset; + break; + default: + throw new Error('Unknown callback: ' + name); + } + + const p = this.llparse; + return p.invoke(cb, { + 0: this.node(next), + [ERROR.PAUSED]: this.pause(`${name} pause`, next), + }, p.error(errorCode, `\`${name}\` callback error`)); + } +} diff --git a/vendor/llhttp/src/llhttp/url.ts b/vendor/llhttp/src/llhttp/url.ts new file mode 100644 index 0000000..c5fced9 --- /dev/null +++ b/vendor/llhttp/src/llhttp/url.ts @@ -0,0 +1,220 @@ +import { LLParse, source } from 'llparse'; + +import Match = source.node.Match; +import Node = source.node.Node; + +import { + ALPHA, + CharList, + ERROR, + URL_CHAR, + USERINFO_CHARS, +} from './constants'; + +type SpanName = 'schema' | 'host' | 'path' | 'query' | 'fragment' | 'url'; + +export interface IURLResult { + readonly entry: { + readonly normal: Node; + readonly connect: Node; + }; + readonly exit: { + readonly toHTTP: Node; + readonly toHTTP09: Node; + }; +} + +type SpanTable = Map; + +export class URL { + private readonly spanTable: SpanTable = new Map(); + private readonly errorInvalid: Node; + private readonly URL_CHAR: CharList; + + constructor(private readonly llparse: LLParse, separateSpans: boolean = false) { + const p = this.llparse; + + this.errorInvalid = p.error(ERROR.INVALID_URL, 'Invalid characters in url'); + + this.URL_CHAR = URL_CHAR; + + const table = this.spanTable; + if (separateSpans) { + table.set('schema', p.span(p.code.span('llhttp__on_url_schema'))); + table.set('host', p.span(p.code.span('llhttp__on_url_host'))); + table.set('path', p.span(p.code.span('llhttp__on_url_path'))); + table.set('query', p.span(p.code.span('llhttp__on_url_query'))); + table.set('fragment', + p.span(p.code.span('llhttp__on_url_fragment'))); + } else { + table.set('url', p.span(p.code.span('llhttp__on_url'))); + } + } + + public build(): IURLResult { + const p = this.llparse; + + const entry = { + connect: this.node('entry_connect'), + normal: this.node('entry_normal'), + }; + + const start = this.node('start'); + const path = this.node('path'); + const queryOrFragment = this.node('query_or_fragment'); + const schema = this.node('schema'); + const schemaDelim = this.node('schema_delim'); + const server = this.node('server'); + const queryStart = this.node('query_start'); + const query = this.node('query'); + const fragment = this.node('fragment'); + const serverWithAt = this.node('server_with_at'); + + entry.normal + .otherwise(this.spanStart('url', start)); + + entry.connect + .otherwise(this.spanStart('url', this.spanStart('host', server))); + + start + .peek([ '/', '*' ], this.spanStart('path').skipTo(path)) + .peek(ALPHA, this.spanStart('schema', schema)) + .otherwise(p.error(ERROR.INVALID_URL, 'Unexpected start char in url')); + + schema + .match(ALPHA, schema) + .peek(':', this.spanEnd('schema').skipTo(schemaDelim)) + .otherwise(p.error(ERROR.INVALID_URL, 'Unexpected char in url schema')); + + schemaDelim + .match('//', this.spanStart('host', server)) + .otherwise(p.error(ERROR.INVALID_URL, 'Unexpected char in url schema')); + + for (const node of [server, serverWithAt]) { + node + .peek('/', this.spanEnd('host', this.spanStart('path').skipTo(path))) + .match('?', this.spanEnd('host', this.spanStart('query', query))) + .match(USERINFO_CHARS, server) + .match([ '[', ']' ], server) + .otherwise(p.error(ERROR.INVALID_URL, 'Unexpected char in url server')); + + if (node !== serverWithAt) { + node.match('@', serverWithAt); + } + } + + serverWithAt + .match('@', p.error(ERROR.INVALID_URL, 'Double @ in url')); + + path + .match(this.URL_CHAR, path) + .otherwise(this.spanEnd('path', queryOrFragment)); + + // Performance optimization, split `path` so that the fast case remains + // there + queryOrFragment + .match('?', this.spanStart('query', query)) + .match('#', this.spanStart('fragment', fragment)) + .otherwise(p.error(ERROR.INVALID_URL, 'Invalid char in url path')); + + query + .match(this.URL_CHAR, query) + // Allow extra '?' in query string + .match('?', query) + .peek('#', this.spanEnd('query') + .skipTo(this.spanStart('fragment', fragment))) + .otherwise(p.error(ERROR.INVALID_URL, 'Invalid char in url query')); + + fragment + .match(this.URL_CHAR, fragment) + .match([ '?', '#' ], fragment) + .otherwise( + p.error(ERROR.INVALID_URL, 'Invalid char in url fragment start')); + + for (const node of [ start, schema, schemaDelim ]) { + /* No whitespace allowed here */ + node.match([ ' ', '\r', '\n' ], this.errorInvalid); + } + + // Adaptors + const toHTTP = this.node('to_http'); + const toHTTP09 = this.node('to_http_09'); + + const skipToHTTP = this.node('skip_to_http') + .skipTo(toHTTP); + + const skipToHTTP09 = this.node('skip_to_http09') + .skipTo(toHTTP09); + + const skipCRLF = this.node('skip_lf_to_http09') + .match('\r\n', toHTTP09) + .otherwise(p.error(ERROR.INVALID_URL, 'Expected CRLF')); + + for (const node of [server, serverWithAt, queryOrFragment, queryStart, query, fragment]) { + let spanName: SpanName | undefined; + + if (node === server || node === serverWithAt) { + spanName = 'host'; + } else if (node === queryStart || node === query) { + spanName = 'query'; + } else if (node === fragment) { + spanName = 'fragment'; + } + + const endTo = (target: Node): Node => { + let res: Node = this.spanEnd('url', target); + if (spanName !== undefined) { + res = this.spanEnd(spanName, res); + } + return res; + }; + + node.peek(' ', endTo(skipToHTTP)); + + node.peek('\r', endTo(skipCRLF)); + node.peek('\n', endTo(skipToHTTP09)); + } + + return { + entry, + exit: { + toHTTP, + toHTTP09, + }, + }; + } + + private spanStart(name: SpanName, otherwise?: Node): Node { + let res: Node; + if (this.spanTable.has(name)) { + res = this.spanTable.get(name)!.start(); + } else { + res = this.llparse.node('span_start_stub_' + name); + } + if (otherwise !== undefined) { + res.otherwise(otherwise); + } + return res; + } + + private spanEnd(name: SpanName, otherwise?: Node): Node { + let res: Node; + if (this.spanTable.has(name)) { + res = this.spanTable.get(name)!.end(); + } else { + res = this.llparse.node('span_end_stub_' + name); + } + if (otherwise !== undefined) { + res.otherwise(otherwise); + } + return res; + } + + private node(name: string): Match { + const res = this.llparse.node('url_' + name); + + res.match([ '\t', '\f' ], this.errorInvalid); + + return res; + } +} diff --git a/vendor/llhttp/src/llhttp/utils.ts b/vendor/llhttp/src/llhttp/utils.ts new file mode 100644 index 0000000..7c01d66 --- /dev/null +++ b/vendor/llhttp/src/llhttp/utils.ts @@ -0,0 +1,27 @@ +export interface IEnumMap { + [key: string]: number; +} + +export function enumToMap( + obj: any, + filter?: ReadonlyArray, + exceptions?: ReadonlyArray, +): IEnumMap { + const res: IEnumMap = {}; + + for (const key of Object.keys(obj)) { + const value = obj[key]; + if (typeof value !== 'number') { + continue; + } + if (filter && !filter.includes(value)) { + continue; + } + if (exceptions && exceptions.includes(value)) { + continue; + } + res[key] = value; + } + + return res; +} diff --git a/vendor/llhttp/src/native/api.c b/vendor/llhttp/src/native/api.c new file mode 100644 index 0000000..8c2ce3d --- /dev/null +++ b/vendor/llhttp/src/native/api.c @@ -0,0 +1,510 @@ +#include +#include +#include + +#include "llhttp.h" + +#define CALLBACK_MAYBE(PARSER, NAME) \ + do { \ + const llhttp_settings_t* settings; \ + settings = (const llhttp_settings_t*) (PARSER)->settings; \ + if (settings == NULL || settings->NAME == NULL) { \ + err = 0; \ + break; \ + } \ + err = settings->NAME((PARSER)); \ + } while (0) + +#define SPAN_CALLBACK_MAYBE(PARSER, NAME, START, LEN) \ + do { \ + const llhttp_settings_t* settings; \ + settings = (const llhttp_settings_t*) (PARSER)->settings; \ + if (settings == NULL || settings->NAME == NULL) { \ + err = 0; \ + break; \ + } \ + err = settings->NAME((PARSER), (START), (LEN)); \ + if (err == -1) { \ + err = HPE_USER; \ + llhttp_set_error_reason((PARSER), "Span callback error in " #NAME); \ + } \ + } while (0) + +void llhttp_init(llhttp_t* parser, llhttp_type_t type, + const llhttp_settings_t* settings) { + llhttp__internal_init(parser); + + parser->type = type; + parser->settings = (void*) settings; +} + + +#if defined(__wasm__) + +extern int wasm_on_message_begin(llhttp_t * p); +extern int wasm_on_url(llhttp_t* p, const char* at, size_t length); +extern int wasm_on_status(llhttp_t* p, const char* at, size_t length); +extern int wasm_on_header_field(llhttp_t* p, const char* at, size_t length); +extern int wasm_on_header_value(llhttp_t* p, const char* at, size_t length); +extern int wasm_on_headers_complete(llhttp_t * p, int status_code, + uint8_t upgrade, int should_keep_alive); +extern int wasm_on_body(llhttp_t* p, const char* at, size_t length); +extern int wasm_on_message_complete(llhttp_t * p); + +static int wasm_on_headers_complete_wrap(llhttp_t* p) { + return wasm_on_headers_complete(p, p->status_code, p->upgrade, + llhttp_should_keep_alive(p)); +} + +const llhttp_settings_t wasm_settings = { + wasm_on_message_begin, + wasm_on_url, + wasm_on_status, + NULL, + NULL, + wasm_on_header_field, + wasm_on_header_value, + NULL, + NULL, + wasm_on_headers_complete_wrap, + wasm_on_body, + wasm_on_message_complete, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, +}; + + +llhttp_t* llhttp_alloc(llhttp_type_t type) { + llhttp_t* parser = malloc(sizeof(llhttp_t)); + llhttp_init(parser, type, &wasm_settings); + return parser; +} + +void llhttp_free(llhttp_t* parser) { + free(parser); +} + +#endif // defined(__wasm__) + +/* Some getters required to get stuff from the parser */ + +uint8_t llhttp_get_type(llhttp_t* parser) { + return parser->type; +} + +uint8_t llhttp_get_http_major(llhttp_t* parser) { + return parser->http_major; +} + +uint8_t llhttp_get_http_minor(llhttp_t* parser) { + return parser->http_minor; +} + +uint8_t llhttp_get_method(llhttp_t* parser) { + return parser->method; +} + +int llhttp_get_status_code(llhttp_t* parser) { + return parser->status_code; +} + +uint8_t llhttp_get_upgrade(llhttp_t* parser) { + return parser->upgrade; +} + + +void llhttp_reset(llhttp_t* parser) { + llhttp_type_t type = parser->type; + const llhttp_settings_t* settings = parser->settings; + void* data = parser->data; + uint16_t lenient_flags = parser->lenient_flags; + + llhttp__internal_init(parser); + + parser->type = type; + parser->settings = (void*) settings; + parser->data = data; + parser->lenient_flags = lenient_flags; +} + + +llhttp_errno_t llhttp_execute(llhttp_t* parser, const char* data, size_t len) { + return llhttp__internal_execute(parser, data, data + len); +} + + +void llhttp_settings_init(llhttp_settings_t* settings) { + memset(settings, 0, sizeof(*settings)); +} + + +llhttp_errno_t llhttp_finish(llhttp_t* parser) { + int err; + + /* We're in an error state. Don't bother doing anything. */ + if (parser->error != 0) { + return 0; + } + + switch (parser->finish) { + case HTTP_FINISH_SAFE_WITH_CB: + CALLBACK_MAYBE(parser, on_message_complete); + if (err != HPE_OK) return err; + + /* FALLTHROUGH */ + case HTTP_FINISH_SAFE: + return HPE_OK; + case HTTP_FINISH_UNSAFE: + parser->reason = "Invalid EOF state"; + return HPE_INVALID_EOF_STATE; + default: + abort(); + } +} + + +void llhttp_pause(llhttp_t* parser) { + if (parser->error != HPE_OK) { + return; + } + + parser->error = HPE_PAUSED; + parser->reason = "Paused"; +} + + +void llhttp_resume(llhttp_t* parser) { + if (parser->error != HPE_PAUSED) { + return; + } + + parser->error = 0; +} + + +void llhttp_resume_after_upgrade(llhttp_t* parser) { + if (parser->error != HPE_PAUSED_UPGRADE) { + return; + } + + parser->error = 0; +} + + +llhttp_errno_t llhttp_get_errno(const llhttp_t* parser) { + return parser->error; +} + + +const char* llhttp_get_error_reason(const llhttp_t* parser) { + return parser->reason; +} + + +void llhttp_set_error_reason(llhttp_t* parser, const char* reason) { + parser->reason = reason; +} + + +const char* llhttp_get_error_pos(const llhttp_t* parser) { + return parser->error_pos; +} + + +const char* llhttp_errno_name(llhttp_errno_t err) { +#define HTTP_ERRNO_GEN(CODE, NAME, _) case HPE_##NAME: return "HPE_" #NAME; + switch (err) { + HTTP_ERRNO_MAP(HTTP_ERRNO_GEN) + default: abort(); + } +#undef HTTP_ERRNO_GEN +} + + +const char* llhttp_method_name(llhttp_method_t method) { +#define HTTP_METHOD_GEN(NUM, NAME, STRING) case HTTP_##NAME: return #STRING; + switch (method) { + HTTP_ALL_METHOD_MAP(HTTP_METHOD_GEN) + default: abort(); + } +#undef HTTP_METHOD_GEN +} + +const char* llhttp_status_name(llhttp_status_t status) { +#define HTTP_STATUS_GEN(NUM, NAME, STRING) case HTTP_STATUS_##NAME: return #STRING; + switch (status) { + HTTP_STATUS_MAP(HTTP_STATUS_GEN) + default: abort(); + } +#undef HTTP_STATUS_GEN +} + + +void llhttp_set_lenient_headers(llhttp_t* parser, int enabled) { + if (enabled) { + parser->lenient_flags |= LENIENT_HEADERS; + } else { + parser->lenient_flags &= ~LENIENT_HEADERS; + } +} + + +void llhttp_set_lenient_chunked_length(llhttp_t* parser, int enabled) { + if (enabled) { + parser->lenient_flags |= LENIENT_CHUNKED_LENGTH; + } else { + parser->lenient_flags &= ~LENIENT_CHUNKED_LENGTH; + } +} + + +void llhttp_set_lenient_keep_alive(llhttp_t* parser, int enabled) { + if (enabled) { + parser->lenient_flags |= LENIENT_KEEP_ALIVE; + } else { + parser->lenient_flags &= ~LENIENT_KEEP_ALIVE; + } +} + +void llhttp_set_lenient_transfer_encoding(llhttp_t* parser, int enabled) { + if (enabled) { + parser->lenient_flags |= LENIENT_TRANSFER_ENCODING; + } else { + parser->lenient_flags &= ~LENIENT_TRANSFER_ENCODING; + } +} + +void llhttp_set_lenient_version(llhttp_t* parser, int enabled) { + if (enabled) { + parser->lenient_flags |= LENIENT_VERSION; + } else { + parser->lenient_flags &= ~LENIENT_VERSION; + } +} + +void llhttp_set_lenient_data_after_close(llhttp_t* parser, int enabled) { + if (enabled) { + parser->lenient_flags |= LENIENT_DATA_AFTER_CLOSE; + } else { + parser->lenient_flags &= ~LENIENT_DATA_AFTER_CLOSE; + } +} + +void llhttp_set_lenient_optional_lf_after_cr(llhttp_t* parser, int enabled) { + if (enabled) { + parser->lenient_flags |= LENIENT_OPTIONAL_LF_AFTER_CR; + } else { + parser->lenient_flags &= ~LENIENT_OPTIONAL_LF_AFTER_CR; + } +} + +void llhttp_set_lenient_optional_crlf_after_chunk(llhttp_t* parser, int enabled) { + if (enabled) { + parser->lenient_flags |= LENIENT_OPTIONAL_CRLF_AFTER_CHUNK; + } else { + parser->lenient_flags &= ~LENIENT_OPTIONAL_CRLF_AFTER_CHUNK; + } +} + +void llhttp_set_lenient_optional_cr_before_lf(llhttp_t* parser, int enabled) { + if (enabled) { + parser->lenient_flags |= LENIENT_OPTIONAL_CR_BEFORE_LF; + } else { + parser->lenient_flags &= ~LENIENT_OPTIONAL_CR_BEFORE_LF; + } +} + +void llhttp_set_lenient_spaces_after_chunk_size(llhttp_t* parser, int enabled) { + if (enabled) { + parser->lenient_flags |= LENIENT_SPACES_AFTER_CHUNK_SIZE; + } else { + parser->lenient_flags &= ~LENIENT_SPACES_AFTER_CHUNK_SIZE; + } +} + +/* Callbacks */ + + +int llhttp__on_message_begin(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_message_begin); + return err; +} + + +int llhttp__on_url(llhttp_t* s, const char* p, const char* endp) { + int err; + SPAN_CALLBACK_MAYBE(s, on_url, p, endp - p); + return err; +} + + +int llhttp__on_url_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_url_complete); + return err; +} + + +int llhttp__on_status(llhttp_t* s, const char* p, const char* endp) { + int err; + SPAN_CALLBACK_MAYBE(s, on_status, p, endp - p); + return err; +} + + +int llhttp__on_status_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_status_complete); + return err; +} + + +int llhttp__on_method(llhttp_t* s, const char* p, const char* endp) { + int err; + SPAN_CALLBACK_MAYBE(s, on_method, p, endp - p); + return err; +} + + +int llhttp__on_method_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_method_complete); + return err; +} + + +int llhttp__on_version(llhttp_t* s, const char* p, const char* endp) { + int err; + SPAN_CALLBACK_MAYBE(s, on_version, p, endp - p); + return err; +} + + +int llhttp__on_version_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_version_complete); + return err; +} + + +int llhttp__on_header_field(llhttp_t* s, const char* p, const char* endp) { + int err; + SPAN_CALLBACK_MAYBE(s, on_header_field, p, endp - p); + return err; +} + + +int llhttp__on_header_field_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_header_field_complete); + return err; +} + + +int llhttp__on_header_value(llhttp_t* s, const char* p, const char* endp) { + int err; + SPAN_CALLBACK_MAYBE(s, on_header_value, p, endp - p); + return err; +} + + +int llhttp__on_header_value_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_header_value_complete); + return err; +} + + +int llhttp__on_headers_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_headers_complete); + return err; +} + + +int llhttp__on_message_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_message_complete); + return err; +} + + +int llhttp__on_body(llhttp_t* s, const char* p, const char* endp) { + int err; + SPAN_CALLBACK_MAYBE(s, on_body, p, endp - p); + return err; +} + + +int llhttp__on_chunk_header(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_chunk_header); + return err; +} + + +int llhttp__on_chunk_extension_name(llhttp_t* s, const char* p, const char* endp) { + int err; + SPAN_CALLBACK_MAYBE(s, on_chunk_extension_name, p, endp - p); + return err; +} + + +int llhttp__on_chunk_extension_name_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_chunk_extension_name_complete); + return err; +} + + +int llhttp__on_chunk_extension_value(llhttp_t* s, const char* p, const char* endp) { + int err; + SPAN_CALLBACK_MAYBE(s, on_chunk_extension_value, p, endp - p); + return err; +} + + +int llhttp__on_chunk_extension_value_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_chunk_extension_value_complete); + return err; +} + + +int llhttp__on_chunk_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_chunk_complete); + return err; +} + + +int llhttp__on_reset(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_reset); + return err; +} + + +/* Private */ + + +void llhttp__debug(llhttp_t* s, const char* p, const char* endp, + const char* msg) { + if (p == endp) { + fprintf(stderr, "p=%p type=%d flags=%02x next=null debug=%s\n", s, s->type, + s->flags, msg); + } else { + fprintf(stderr, "p=%p type=%d flags=%02x next=%02x debug=%s\n", s, + s->type, s->flags, *p, msg); + } +} diff --git a/vendor/llhttp/src/native/api.h b/vendor/llhttp/src/native/api.h new file mode 100644 index 0000000..321879c --- /dev/null +++ b/vendor/llhttp/src/native/api.h @@ -0,0 +1,355 @@ +#ifndef INCLUDE_LLHTTP_API_H_ +#define INCLUDE_LLHTTP_API_H_ +#ifdef __cplusplus +extern "C" { +#endif +#include + +#if defined(__wasm__) +#define LLHTTP_EXPORT __attribute__((visibility("default"))) +#else +#define LLHTTP_EXPORT +#endif + +typedef llhttp__internal_t llhttp_t; +typedef struct llhttp_settings_s llhttp_settings_t; + +typedef int (*llhttp_data_cb)(llhttp_t*, const char *at, size_t length); +typedef int (*llhttp_cb)(llhttp_t*); + +struct llhttp_settings_s { + /* Possible return values 0, -1, `HPE_PAUSED` */ + llhttp_cb on_message_begin; + + /* Possible return values 0, -1, HPE_USER */ + llhttp_data_cb on_url; + llhttp_data_cb on_status; + llhttp_data_cb on_method; + llhttp_data_cb on_version; + llhttp_data_cb on_header_field; + llhttp_data_cb on_header_value; + llhttp_data_cb on_chunk_extension_name; + llhttp_data_cb on_chunk_extension_value; + + /* Possible return values: + * 0 - Proceed normally + * 1 - Assume that request/response has no body, and proceed to parsing the + * next message + * 2 - Assume absence of body (as above) and make `llhttp_execute()` return + * `HPE_PAUSED_UPGRADE` + * -1 - Error + * `HPE_PAUSED` + */ + llhttp_cb on_headers_complete; + + /* Possible return values 0, -1, HPE_USER */ + llhttp_data_cb on_body; + + /* Possible return values 0, -1, `HPE_PAUSED` */ + llhttp_cb on_message_complete; + llhttp_cb on_url_complete; + llhttp_cb on_status_complete; + llhttp_cb on_method_complete; + llhttp_cb on_version_complete; + llhttp_cb on_header_field_complete; + llhttp_cb on_header_value_complete; + llhttp_cb on_chunk_extension_name_complete; + llhttp_cb on_chunk_extension_value_complete; + + /* When on_chunk_header is called, the current chunk length is stored + * in parser->content_length. + * Possible return values 0, -1, `HPE_PAUSED` + */ + llhttp_cb on_chunk_header; + llhttp_cb on_chunk_complete; + llhttp_cb on_reset; +}; + +/* Initialize the parser with specific type and user settings. + * + * NOTE: lifetime of `settings` has to be at least the same as the lifetime of + * the `parser` here. In practice, `settings` has to be either a static + * variable or be allocated with `malloc`, `new`, etc. + */ +LLHTTP_EXPORT +void llhttp_init(llhttp_t* parser, llhttp_type_t type, + const llhttp_settings_t* settings); + +LLHTTP_EXPORT +llhttp_t* llhttp_alloc(llhttp_type_t type); + +LLHTTP_EXPORT +void llhttp_free(llhttp_t* parser); + +LLHTTP_EXPORT +uint8_t llhttp_get_type(llhttp_t* parser); + +LLHTTP_EXPORT +uint8_t llhttp_get_http_major(llhttp_t* parser); + +LLHTTP_EXPORT +uint8_t llhttp_get_http_minor(llhttp_t* parser); + +LLHTTP_EXPORT +uint8_t llhttp_get_method(llhttp_t* parser); + +LLHTTP_EXPORT +int llhttp_get_status_code(llhttp_t* parser); + +LLHTTP_EXPORT +uint8_t llhttp_get_upgrade(llhttp_t* parser); + +/* Reset an already initialized parser back to the start state, preserving the + * existing parser type, callback settings, user data, and lenient flags. + */ +LLHTTP_EXPORT +void llhttp_reset(llhttp_t* parser); + +/* Initialize the settings object */ +LLHTTP_EXPORT +void llhttp_settings_init(llhttp_settings_t* settings); + +/* Parse full or partial request/response, invoking user callbacks along the + * way. + * + * If any of `llhttp_data_cb` returns errno not equal to `HPE_OK` - the parsing + * interrupts, and such errno is returned from `llhttp_execute()`. If + * `HPE_PAUSED` was used as a errno, the execution can be resumed with + * `llhttp_resume()` call. + * + * In a special case of CONNECT/Upgrade request/response `HPE_PAUSED_UPGRADE` + * is returned after fully parsing the request/response. If the user wishes to + * continue parsing, they need to invoke `llhttp_resume_after_upgrade()`. + * + * NOTE: if this function ever returns a non-pause type error, it will continue + * to return the same error upon each successive call up until `llhttp_init()` + * is called. + */ +LLHTTP_EXPORT +llhttp_errno_t llhttp_execute(llhttp_t* parser, const char* data, size_t len); + +/* This method should be called when the other side has no further bytes to + * send (e.g. shutdown of readable side of the TCP connection.) + * + * Requests without `Content-Length` and other messages might require treating + * all incoming bytes as the part of the body, up to the last byte of the + * connection. This method will invoke `on_message_complete()` callback if the + * request was terminated safely. Otherwise a error code would be returned. + */ +LLHTTP_EXPORT +llhttp_errno_t llhttp_finish(llhttp_t* parser); + +/* Returns `1` if the incoming message is parsed until the last byte, and has + * to be completed by calling `llhttp_finish()` on EOF + */ +LLHTTP_EXPORT +int llhttp_message_needs_eof(const llhttp_t* parser); + +/* Returns `1` if there might be any other messages following the last that was + * successfully parsed. + */ +LLHTTP_EXPORT +int llhttp_should_keep_alive(const llhttp_t* parser); + +/* Make further calls of `llhttp_execute()` return `HPE_PAUSED` and set + * appropriate error reason. + * + * Important: do not call this from user callbacks! User callbacks must return + * `HPE_PAUSED` if pausing is required. + */ +LLHTTP_EXPORT +void llhttp_pause(llhttp_t* parser); + +/* Might be called to resume the execution after the pause in user's callback. + * See `llhttp_execute()` above for details. + * + * Call this only if `llhttp_execute()` returns `HPE_PAUSED`. + */ +LLHTTP_EXPORT +void llhttp_resume(llhttp_t* parser); + +/* Might be called to resume the execution after the pause in user's callback. + * See `llhttp_execute()` above for details. + * + * Call this only if `llhttp_execute()` returns `HPE_PAUSED_UPGRADE` + */ +LLHTTP_EXPORT +void llhttp_resume_after_upgrade(llhttp_t* parser); + +/* Returns the latest return error */ +LLHTTP_EXPORT +llhttp_errno_t llhttp_get_errno(const llhttp_t* parser); + +/* Returns the verbal explanation of the latest returned error. + * + * Note: User callback should set error reason when returning the error. See + * `llhttp_set_error_reason()` for details. + */ +LLHTTP_EXPORT +const char* llhttp_get_error_reason(const llhttp_t* parser); + +/* Assign verbal description to the returned error. Must be called in user + * callbacks right before returning the errno. + * + * Note: `HPE_USER` error code might be useful in user callbacks. + */ +LLHTTP_EXPORT +void llhttp_set_error_reason(llhttp_t* parser, const char* reason); + +/* Returns the pointer to the last parsed byte before the returned error. The + * pointer is relative to the `data` argument of `llhttp_execute()`. + * + * Note: this method might be useful for counting the number of parsed bytes. + */ +LLHTTP_EXPORT +const char* llhttp_get_error_pos(const llhttp_t* parser); + +/* Returns textual name of error code */ +LLHTTP_EXPORT +const char* llhttp_errno_name(llhttp_errno_t err); + +/* Returns textual name of HTTP method */ +LLHTTP_EXPORT +const char* llhttp_method_name(llhttp_method_t method); + +/* Returns textual name of HTTP status */ +LLHTTP_EXPORT +const char* llhttp_status_name(llhttp_status_t status); + +/* Enables/disables lenient header value parsing (disabled by default). + * + * Lenient parsing disables header value token checks, extending llhttp's + * protocol support to highly non-compliant clients/server. No + * `HPE_INVALID_HEADER_TOKEN` will be raised for incorrect header values when + * lenient parsing is "on". + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_headers(llhttp_t* parser, int enabled); + + +/* Enables/disables lenient handling of conflicting `Transfer-Encoding` and + * `Content-Length` headers (disabled by default). + * + * Normally `llhttp` would error when `Transfer-Encoding` is present in + * conjunction with `Content-Length`. This error is important to prevent HTTP + * request smuggling, but may be less desirable for small number of cases + * involving legacy servers. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_chunked_length(llhttp_t* parser, int enabled); + + +/* Enables/disables lenient handling of `Connection: close` and HTTP/1.0 + * requests responses. + * + * Normally `llhttp` would error on (in strict mode) or discard (in loose mode) + * the HTTP request/response after the request/response with `Connection: close` + * and `Content-Length`. This is important to prevent cache poisoning attacks, + * but might interact badly with outdated and insecure clients. With this flag + * the extra request/response will be parsed normally. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * poisoning attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_keep_alive(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of `Transfer-Encoding` header. + * + * Normally `llhttp` would error when a `Transfer-Encoding` has `chunked` value + * and another value after it (either in a single header or in multiple + * headers whose value are internally joined using `, `). + * This is mandated by the spec to reliably determine request body size and thus + * avoid request smuggling. + * With this flag the extra value will be parsed normally. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_transfer_encoding(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of HTTP version. + * + * Normally `llhttp` would error when the HTTP version in the request or status line + * is not `0.9`, `1.0`, `1.1` or `2.0`. + * With this flag the invalid value will be parsed normally. + * + * **Enabling this flag can pose a security issue since you will allow unsupported + * HTTP versions. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_version(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of additional data received after a message ends + * and keep-alive is disabled. + * + * Normally `llhttp` would error when additional unexpected data is received if the message + * contains the `Connection` header with `close` value. + * With this flag the extra data will discarded without throwing an error. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * poisoning attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_data_after_close(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of incomplete CRLF sequences. + * + * Normally `llhttp` would error when a CR is not followed by LF when terminating the + * request line, the status line, the headers or a chunk header. + * With this flag only a CR is required to terminate such sections. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_optional_lf_after_cr(llhttp_t* parser, int enabled); + +/* + * Enables/disables lenient handling of line separators. + * + * Normally `llhttp` would error when a LF is not preceded by CR when terminating the + * request line, the status line, the headers, a chunk header or a chunk data. + * With this flag only a LF is required to terminate such sections. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_optional_cr_before_lf(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of chunks not separated via CRLF. + * + * Normally `llhttp` would error when after a chunk data a CRLF is missing before + * starting a new chunk. + * With this flag the new chunk can start immediately after the previous one. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_optional_crlf_after_chunk(llhttp_t* parser, int enabled); + +/* Enables/disables lenient handling of spaces after chunk size. + * + * Normally `llhttp` would error when after a chunk size is followed by one or more + * spaces are present instead of a CRLF or `;`. + * With this flag this check is disabled. + * + * **Enabling this flag can pose a security issue since you will be exposed to + * request smuggling attacks. USE WITH CAUTION!** + */ +LLHTTP_EXPORT +void llhttp_set_lenient_spaces_after_chunk_size(llhttp_t* parser, int enabled); + +#ifdef __cplusplus +} /* extern "C" */ +#endif +#endif /* INCLUDE_LLHTTP_API_H_ */ diff --git a/vendor/llhttp/src/native/http.c b/vendor/llhttp/src/native/http.c new file mode 100644 index 0000000..1ab91a5 --- /dev/null +++ b/vendor/llhttp/src/native/http.c @@ -0,0 +1,170 @@ +#include +#ifndef LLHTTP__TEST +# include "llhttp.h" +#else +# define llhttp_t llparse_t +#endif /* */ + +int llhttp_message_needs_eof(const llhttp_t* parser); +int llhttp_should_keep_alive(const llhttp_t* parser); + +int llhttp__before_headers_complete(llhttp_t* parser, const char* p, + const char* endp) { + /* Set this here so that on_headers_complete() callbacks can see it */ + if ((parser->flags & F_UPGRADE) && + (parser->flags & F_CONNECTION_UPGRADE)) { + /* For responses, "Upgrade: foo" and "Connection: upgrade" are + * mandatory only when it is a 101 Switching Protocols response, + * otherwise it is purely informational, to announce support. + */ + parser->upgrade = + (parser->type == HTTP_REQUEST || parser->status_code == 101); + } else { + parser->upgrade = (parser->method == HTTP_CONNECT); + } + return 0; +} + + +/* Return values: + * 0 - No body, `restart`, message_complete + * 1 - CONNECT request, `restart`, message_complete, and pause + * 2 - chunk_size_start + * 3 - body_identity + * 4 - body_identity_eof + * 5 - invalid transfer-encoding for request + */ +int llhttp__after_headers_complete(llhttp_t* parser, const char* p, + const char* endp) { + int hasBody; + + hasBody = parser->flags & F_CHUNKED || parser->content_length > 0; + if ( + (parser->upgrade && (parser->method == HTTP_CONNECT || + (parser->flags & F_SKIPBODY) || !hasBody)) || + /* See RFC 2616 section 4.4 - 1xx e.g. Continue */ + (parser->type == HTTP_RESPONSE && parser->status_code == 101) + ) { + /* Exit, the rest of the message is in a different protocol. */ + return 1; + } + + if (parser->type == HTTP_RESPONSE && parser->status_code == 100) { + /* No body, restart as the message is complete */ + return 0; + } + + /* See RFC 2616 section 4.4 */ + if ( + parser->flags & F_SKIPBODY || /* response to a HEAD request */ + ( + parser->type == HTTP_RESPONSE && ( + parser->status_code == 102 || /* Processing */ + parser->status_code == 103 || /* Early Hints */ + parser->status_code == 204 || /* No Content */ + parser->status_code == 304 /* Not Modified */ + ) + ) + ) { + return 0; + } else if (parser->flags & F_CHUNKED) { + /* chunked encoding - ignore Content-Length header, prepare for a chunk */ + return 2; + } else if (parser->flags & F_TRANSFER_ENCODING) { + if (parser->type == HTTP_REQUEST && + (parser->lenient_flags & LENIENT_CHUNKED_LENGTH) == 0 && + (parser->lenient_flags & LENIENT_TRANSFER_ENCODING) == 0) { + /* RFC 7230 3.3.3 */ + + /* If a Transfer-Encoding header field + * is present in a request and the chunked transfer coding is not + * the final encoding, the message body length cannot be determined + * reliably; the server MUST respond with the 400 (Bad Request) + * status code and then close the connection. + */ + return 5; + } else { + /* RFC 7230 3.3.3 */ + + /* If a Transfer-Encoding header field is present in a response and + * the chunked transfer coding is not the final encoding, the + * message body length is determined by reading the connection until + * it is closed by the server. + */ + return 4; + } + } else { + if (!(parser->flags & F_CONTENT_LENGTH)) { + if (!llhttp_message_needs_eof(parser)) { + /* Assume content-length 0 - read the next */ + return 0; + } else { + /* Read body until EOF */ + return 4; + } + } else if (parser->content_length == 0) { + /* Content-Length header given but zero: Content-Length: 0\r\n */ + return 0; + } else { + /* Content-Length header given and non-zero */ + return 3; + } + } +} + + +int llhttp__after_message_complete(llhttp_t* parser, const char* p, + const char* endp) { + int should_keep_alive; + + should_keep_alive = llhttp_should_keep_alive(parser); + parser->finish = HTTP_FINISH_SAFE; + parser->flags = 0; + + /* NOTE: this is ignored in loose parsing mode */ + return should_keep_alive; +} + + +int llhttp_message_needs_eof(const llhttp_t* parser) { + if (parser->type == HTTP_REQUEST) { + return 0; + } + + /* See RFC 2616 section 4.4 */ + if (parser->status_code / 100 == 1 || /* 1xx e.g. Continue */ + parser->status_code == 204 || /* No Content */ + parser->status_code == 304 || /* Not Modified */ + (parser->flags & F_SKIPBODY)) { /* response to a HEAD request */ + return 0; + } + + /* RFC 7230 3.3.3, see `llhttp__after_headers_complete` */ + if ((parser->flags & F_TRANSFER_ENCODING) && + (parser->flags & F_CHUNKED) == 0) { + return 1; + } + + if (parser->flags & (F_CHUNKED | F_CONTENT_LENGTH)) { + return 0; + } + + return 1; +} + + +int llhttp_should_keep_alive(const llhttp_t* parser) { + if (parser->http_major > 0 && parser->http_minor > 0) { + /* HTTP/1.1 */ + if (parser->flags & F_CONNECTION_CLOSE) { + return 0; + } + } else { + /* HTTP/1.0 or earlier */ + if (!(parser->flags & F_CONNECTION_KEEP_ALIVE)) { + return 0; + } + } + + return !llhttp_message_needs_eof(parser); +} diff --git a/vendor/llhttp/test/fixtures/extra.c b/vendor/llhttp/test/fixtures/extra.c new file mode 100644 index 0000000..dadf8dc --- /dev/null +++ b/vendor/llhttp/test/fixtures/extra.c @@ -0,0 +1,457 @@ +#include + +#include "fixture.h" + +int llhttp__on_url(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("url", p, endp); +} + + +int llhttp__on_url_complete(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "url complete"); + + #ifdef LLHTTP__TEST_PAUSE_ON_URL_COMPLETE + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + + +int llhttp__on_url_schema(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("url.schema", p, endp); +} + + +int llhttp__on_url_host(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("url.host", p, endp); +} + + +int llhttp__on_url_path(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("url.path", p, endp); +} + + +int llhttp__on_url_query(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("url.query", p, endp); +} + + +int llhttp__on_url_fragment(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("url.fragment", p, endp); +} + + +#ifdef LLHTTP__TEST_HTTP + +void llhttp__test_init_request(llparse_t* s) { + s->type = HTTP_REQUEST; +} + + +void llhttp__test_init_response(llparse_t* s) { + s->type = HTTP_RESPONSE; +} + + +void llhttp__test_init_request_lenient_all(llparse_t* s) { + llhttp__test_init_request(s); + s->lenient_flags |= + LENIENT_HEADERS | LENIENT_CHUNKED_LENGTH | LENIENT_KEEP_ALIVE | + LENIENT_TRANSFER_ENCODING | LENIENT_VERSION | LENIENT_DATA_AFTER_CLOSE | + LENIENT_OPTIONAL_LF_AFTER_CR | LENIENT_OPTIONAL_CR_BEFORE_LF | + LENIENT_OPTIONAL_CRLF_AFTER_CHUNK; +} + + +void llhttp__test_init_response_lenient_all(llparse_t* s) { + llhttp__test_init_response(s); + s->lenient_flags |= + LENIENT_HEADERS | LENIENT_CHUNKED_LENGTH | LENIENT_KEEP_ALIVE | + LENIENT_TRANSFER_ENCODING | LENIENT_VERSION | LENIENT_DATA_AFTER_CLOSE | + LENIENT_OPTIONAL_LF_AFTER_CR | LENIENT_OPTIONAL_CR_BEFORE_LF | + LENIENT_OPTIONAL_CRLF_AFTER_CHUNK; +} + + +void llhttp__test_init_request_lenient_headers(llparse_t* s) { + llhttp__test_init_request(s); + s->lenient_flags |= LENIENT_HEADERS; +} + + +void llhttp__test_init_request_lenient_chunked_length(llparse_t* s) { + llhttp__test_init_request(s); + s->lenient_flags |= LENIENT_CHUNKED_LENGTH; +} + + +void llhttp__test_init_request_lenient_keep_alive(llparse_t* s) { + llhttp__test_init_request(s); + s->lenient_flags |= LENIENT_KEEP_ALIVE; +} + +void llhttp__test_init_request_lenient_transfer_encoding(llparse_t* s) { + llhttp__test_init_request(s); + s->lenient_flags |= LENIENT_TRANSFER_ENCODING; +} + + +void llhttp__test_init_request_lenient_version(llparse_t* s) { + llhttp__test_init_request(s); + s->lenient_flags |= LENIENT_VERSION; +} + + +void llhttp__test_init_response_lenient_keep_alive(llparse_t* s) { + llhttp__test_init_response(s); + s->lenient_flags |= LENIENT_KEEP_ALIVE; +} + +void llhttp__test_init_response_lenient_version(llparse_t* s) { + llhttp__test_init_response(s); + s->lenient_flags |= LENIENT_VERSION; +} + + +void llhttp__test_init_response_lenient_headers(llparse_t* s) { + llhttp__test_init_response(s); + s->lenient_flags |= LENIENT_HEADERS; +} + +void llhttp__test_init_request_lenient_data_after_close(llparse_t* s) { + llhttp__test_init_request(s); + s->lenient_flags |= LENIENT_DATA_AFTER_CLOSE; +} + +void llhttp__test_init_response_lenient_data_after_close(llparse_t* s) { + llhttp__test_init_response(s); + s->lenient_flags |= LENIENT_DATA_AFTER_CLOSE; +} + +void llhttp__test_init_request_lenient_optional_lf_after_cr(llparse_t* s) { + llhttp__test_init_request(s); + s->lenient_flags |= LENIENT_OPTIONAL_LF_AFTER_CR; +} + +void llhttp__test_init_response_lenient_optional_lf_after_cr(llparse_t* s) { + llhttp__test_init_response(s); + s->lenient_flags |= LENIENT_OPTIONAL_LF_AFTER_CR; +} + +void llhttp__test_init_request_lenient_optional_cr_before_lf(llparse_t* s) { + llhttp__test_init_request(s); + s->lenient_flags |= LENIENT_OPTIONAL_CR_BEFORE_LF; +} + +void llhttp__test_init_response_lenient_optional_cr_before_lf(llparse_t* s) { + llhttp__test_init_response(s); + s->lenient_flags |= LENIENT_OPTIONAL_CR_BEFORE_LF; +} + +void llhttp__test_init_request_lenient_optional_crlf_after_chunk(llparse_t* s) { + llhttp__test_init_request(s); + s->lenient_flags |= LENIENT_OPTIONAL_CRLF_AFTER_CHUNK; +} + +void llhttp__test_init_response_lenient_optional_crlf_after_chunk(llparse_t* s) { + llhttp__test_init_response(s); + s->lenient_flags |= LENIENT_OPTIONAL_CRLF_AFTER_CHUNK; +} + +void llhttp__test_init_request_lenient_spaces_after_chunk_size(llparse_t* s) { + llhttp__test_init_request(s); + s->lenient_flags |= LENIENT_SPACES_AFTER_CHUNK_SIZE; +} + +void llhttp__test_init_response_lenient_spaces_after_chunk_size(llparse_t* s) { + llhttp__test_init_response(s); + s->lenient_flags |= LENIENT_SPACES_AFTER_CHUNK_SIZE; +} + + +void llhttp__test_finish(llparse_t* s) { + llparse__print(NULL, NULL, "finish=%d", s->finish); +} + + +int llhttp__on_message_begin(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "message begin"); + + #ifdef LLHTTP__TEST_PAUSE_ON_MESSAGE_BEGIN + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + + +int llhttp__on_message_complete(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "message complete"); + + #ifdef LLHTTP__TEST_PAUSE_ON_MESSAGE_COMPLETE + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + + +int llhttp__on_status(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("status", p, endp); +} + + +int llhttp__on_status_complete(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "status complete"); + + #ifdef LLHTTP__TEST_PAUSE_ON_STATUS_COMPLETE + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + + +int llhttp__on_method(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench || s->type != HTTP_REQUEST) + return 0; + + return llparse__print_span("method", p, endp); +} + + +int llhttp__on_method_complete(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "method complete"); + + #ifdef LLHTTP__TEST_PAUSE_ON_METHOD_COMPLETE + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + + +int llhttp__on_version(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("version", p, endp); +} + + +int llhttp__on_version_complete(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "version complete"); + + #ifdef LLHTTP__TEST_PAUSE_ON_VERSION_COMPLETE + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + +int llhttp__on_header_field(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("header_field", p, endp); +} + + +int llhttp__on_header_field_complete(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "header_field complete"); + + #ifdef LLHTTP__TEST_PAUSE_ON_HEADER_FIELD_COMPLETE + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + + +int llhttp__on_header_value(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("header_value", p, endp); +} + + +int llhttp__on_header_value_complete(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "header_value complete"); + + #ifdef LLHTTP__TEST_PAUSE_ON_HEADER_VALUE_COMPLETE + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + + +int llhttp__on_headers_complete(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + if (s->type == HTTP_REQUEST) { + llparse__print(p, endp, + "headers complete method=%d v=%d/%d flags=%x content_length=%llu", + s->method, s->http_major, s->http_minor, s->flags, s->content_length); + } else if (s->type == HTTP_RESPONSE) { + llparse__print(p, endp, + "headers complete status=%d v=%d/%d flags=%x content_length=%llu", + s->status_code, s->http_major, s->http_minor, s->flags, + s->content_length); + } else { + llparse__print(p, endp, "invalid headers complete"); + } + + #ifdef LLHTTP__TEST_PAUSE_ON_HEADERS_COMPLETE + return LLPARSE__ERROR_PAUSE; + #elif defined(LLHTTP__TEST_SKIP_BODY) + llparse__print(p, endp, "skip body"); + return 1; + #else + return 0; + #endif +} + + +int llhttp__on_body(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("body", p, endp); +} + + +int llhttp__on_chunk_header(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "chunk header len=%d", (int) s->content_length); + + #ifdef LLHTTP__TEST_PAUSE_ON_CHUNK_HEADER + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + + +int llhttp__on_chunk_extension_name(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("chunk_extension_name", p, endp); +} + + +int llhttp__on_chunk_extension_name_complete(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "chunk_extension_name complete"); + + #ifdef LLHTTP__TEST_PAUSE_ON_CHUNK_EXTENSION_NAME + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + + +int llhttp__on_chunk_extension_value(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + return llparse__print_span("chunk_extension_value", p, endp); +} + + +int llhttp__on_chunk_extension_value_complete(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "chunk_extension_value complete"); + + #ifdef LLHTTP__TEST_PAUSE_ON_CHUNK_EXTENSION_VALUE + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + + +int llhttp__on_chunk_complete(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "chunk complete"); + + #ifdef LLHTTP__TEST_PAUSE_ON_CHUNK_COMPLETE + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + +int llhttp__on_reset(llparse_t* s, const char* p, const char* endp) { + if (llparse__in_bench) + return 0; + + llparse__print(p, endp, "reset"); + + #ifdef LLHTTP__TEST_PAUSE_ON_RESET + return LLPARSE__ERROR_PAUSE; + #else + return 0; + #endif +} + +#endif /* LLHTTP__TEST_HTTP */ diff --git a/vendor/llhttp/test/fixtures/index.ts b/vendor/llhttp/test/fixtures/index.ts new file mode 100644 index 0000000..1571f9d --- /dev/null +++ b/vendor/llhttp/test/fixtures/index.ts @@ -0,0 +1,116 @@ +import * as fs from 'fs'; +import { ICompilerResult, LLParse } from 'llparse'; +import { Dot } from 'llparse-dot'; +import { + Fixture, FixtureResult, IFixtureBuildOptions, +} from 'llparse-test-fixture'; +import * as path from 'path'; + +import * as llhttp from '../../src/llhttp'; + +export { FixtureResult }; + +export type TestType = 'request' | 'response' | 'request-finish' | 'response-finish' | + 'request-lenient-all' | 'response-lenient-all' | + 'request-lenient-headers' | 'response-lenient-headers' | + 'request-lenient-chunked-length' | 'request-lenient-transfer-encoding' | + 'request-lenient-keep-alive' | 'response-lenient-keep-alive' | + 'request-lenient-version' | 'response-lenient-version' | + 'request-lenient-data-after-close' | 'response-lenient-data-after-close' | + 'request-lenient-optional-lf-after-cr' | 'response-lenient-optional-lf-after-cr' | + 'request-lenient-optional-cr-before-lf' | 'response-lenient-optional-cr-before-lf' | + 'request-lenient-optional-crlf-after-chunk' | 'response-lenient-optional-crlf-after-chunk' | + 'request-lenient-spaces-after-chunk-size' | 'response-lenient-spaces-after-chunk-size' | + 'none' | 'url'; + +export const allowedTypes: TestType[] = [ + 'request', + 'response', + 'request-finish', + 'response-finish', + 'request-lenient-all', + 'response-lenient-all', + 'request-lenient-headers', + 'response-lenient-headers', + 'request-lenient-keep-alive', + 'response-lenient-keep-alive', + 'request-lenient-chunked-length', + 'request-lenient-transfer-encoding', + 'request-lenient-version', + 'response-lenient-version', + 'request-lenient-data-after-close', + 'response-lenient-data-after-close', + 'request-lenient-optional-lf-after-cr', + 'response-lenient-optional-lf-after-cr', + 'request-lenient-optional-cr-before-lf', + 'response-lenient-optional-cr-before-lf', + 'request-lenient-optional-crlf-after-chunk', + 'response-lenient-optional-crlf-after-chunk', + 'request-lenient-spaces-after-chunk-size', + 'response-lenient-spaces-after-chunk-size', +]; + +const BUILD_DIR = path.join(__dirname, '..', 'tmp'); +const CHEADERS_FILE = path.join(BUILD_DIR, 'cheaders.h'); + +const cheaders = new llhttp.CHeaders().build(); +try { + fs.mkdirSync(BUILD_DIR); +} catch (e) { + // no-op +} +fs.writeFileSync(CHEADERS_FILE, cheaders); + +const fixtures = new Fixture({ + buildDir: path.join(__dirname, '..', 'tmp'), + extra: [ + '-msse4.2', + '-DLLHTTP__TEST', + '-DLLPARSE__ERROR_PAUSE=' + llhttp.constants.ERROR.PAUSED, + '-include', CHEADERS_FILE, + path.join(__dirname, 'extra.c'), + ], + maxParallel: process.env.LLPARSE_DEBUG ? 1 : undefined, +}); + +const cache: Map = new Map(); + +export async function build( + llparse: LLParse, node: any, outFile: string, + options: IFixtureBuildOptions = {}, + ty: TestType = 'none'): Promise { + const dot = new Dot(); + fs.writeFileSync(path.join(BUILD_DIR, outFile + '.dot'), + dot.build(node)); + + let artifacts: ICompilerResult; + if (cache.has(node)) { + artifacts = cache.get(node)!; + } else { + artifacts = llparse.build(node, { + c: { header: outFile }, + debug: process.env.LLPARSE_DEBUG ? 'llparse__debug' : undefined, + }); + cache.set(node, artifacts); + } + + const extra = options.extra === undefined ? [] : options.extra.slice(); + + if (allowedTypes.includes(ty)) { + extra.push( + `-DLLPARSE__TEST_INIT=llhttp__test_init_${ty.replace(/-/g, '_')}`); + } + + if (ty === 'request-finish' || ty === 'response-finish') { + if (ty === 'request-finish') { + extra.push('-DLLPARSE__TEST_INIT=llhttp__test_init_request'); + } else { + extra.push('-DLLPARSE__TEST_INIT=llhttp__test_init_response'); + } + extra.push('-DLLPARSE__TEST_FINISH=llhttp__test_finish'); + } + + return await fixtures.build(artifacts, outFile, Object.assign(options, { + extra, + })); +} diff --git a/vendor/llhttp/test/fuzzers/fuzz_parser.c b/vendor/llhttp/test/fuzzers/fuzz_parser.c new file mode 100644 index 0000000..60d00ae --- /dev/null +++ b/vendor/llhttp/test/fuzzers/fuzz_parser.c @@ -0,0 +1,45 @@ +#include "llhttp.h" +#include +#include +#include + +int handle_on_message_complete(llhttp_t *arg) { return 0; } + +int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { + llhttp_t parser; + llhttp_settings_t settings; + llhttp_type_t http_type; + + /* We need four bytes to determine variable parameters */ + if (size < 4) { + return 0; + } + + int headers = (data[0] & 0x01) == 1; + int chunked_length = (data[1] & 0x01) == 1; + int keep_alive = (data[2] & 0x01) == 1; + if (data[0] % 3 == 0) { + http_type = HTTP_BOTH; + } else if (data[0] % 3 == 1) { + http_type = HTTP_REQUEST; + } else { + http_type = HTTP_RESPONSE; + } + data += 4; + size -= 4; + + /* Initialize user callbacks and settings */ + llhttp_settings_init(&settings); + + /* Set user callback */ + settings.on_message_complete = handle_on_message_complete; + + llhttp_init(&parser, http_type, &settings); + llhttp_set_lenient_headers(&parser, headers); + llhttp_set_lenient_chunked_length(&parser, chunked_length); + llhttp_set_lenient_keep_alive(&parser, keep_alive); + + llhttp_execute(&parser, data, size); + + return 0; +} diff --git a/vendor/llhttp/test/md-test.ts b/vendor/llhttp/test/md-test.ts new file mode 100644 index 0000000..0c24e18 --- /dev/null +++ b/vendor/llhttp/test/md-test.ts @@ -0,0 +1,269 @@ +import * as assert from 'assert'; +import * as fs from 'fs'; +import { LLParse } from 'llparse'; +import { Group, MDGator, Metadata, Test } from 'mdgator'; +import * as path from 'path'; +import * as vm from 'vm'; + +import * as llhttp from '../src/llhttp'; +import {IHTTPResult} from '../src/llhttp/http'; +import {IURLResult} from '../src/llhttp/url'; +import { allowedTypes, build, FixtureResult, TestType } from './fixtures'; + +// +// Cache nodes/llparse instances ahead of time +// (different types of tests will re-use them) +// + +interface INodeCacheEntry { + llparse: LLParse; + entry: IHTTPResult['entry']; +} + +interface IUrlCacheEntry { + llparse: LLParse; + entry: IURLResult['entry']['normal']; +} + +const modeCache = new Map(); + +function buildNode() { + const p = new LLParse(); + const instance = new llhttp.HTTP(p); + + return { llparse: p, entry: instance.build().entry }; +} + +function buildURL() { + const p = new LLParse(); + const instance = new llhttp.URL(p, true); + + const node = instance.build(); + + // Loop + node.exit.toHTTP.otherwise(node.entry.normal); + node.exit.toHTTP09.otherwise(node.entry.normal); + + return { llparse: p, entry: node.entry.normal }; +} + +// +// Build binaries using cached nodes/llparse +// + +async function buildMode(ty: TestType, meta: any) + : Promise { + + const cacheKey = `${ty}:${JSON.stringify(meta || {})}`; + let entry = modeCache.get(cacheKey); + + if (entry) { + return entry; + } + + let node; + let prefix: string; + let extra: string[]; + if (ty === 'url') { + node = buildURL(); + prefix = 'url'; + extra = []; + } else { + node = buildNode(); + prefix = 'http'; + extra = [ + '-DLLHTTP__TEST_HTTP', + path.join(__dirname, '..', 'src', 'native', 'http.c'), + ]; + } + + if (meta.pause) { + extra.push(`-DLLHTTP__TEST_PAUSE_${meta.pause.toUpperCase()}=1`); + } + + if (meta.skipBody) { + extra.push('-DLLHTTP__TEST_SKIP_BODY=1'); + } + + entry = await build(node.llparse, node.entry, `${prefix}-${ty}`, { + extra, + }, ty); + + modeCache.set(cacheKey, entry); + return entry; +} + +interface IFixtureMap { + [key: string]: { [key: string]: Promise }; +} + +// +// Run test suite +// + +function run(name: string): void { + const md = new MDGator(); + + const raw = fs.readFileSync(path.join(__dirname, name + '.md')).toString(); + const groups = md.parse(raw); + + function runSingleTest(ty: TestType, meta: any, + input: string, + expected: ReadonlyArray): void { + it(`should pass for type="${ty}"`, async () => { + const binary = await buildMode(ty, meta); + await binary.check(input, expected, { + noScan: meta.noScan === true, + }); + }); + } + + function runTest(test: Test) { + describe(test.name + ` at ${name}.md:${test.line + 1}`, () => { + let types: TestType[] = []; + + const isURL = test.values.has('url'); + const inputKey = isURL ? 'url' : 'http'; + + assert(test.values.has(inputKey), + `Missing "${inputKey}" code in md file`); + assert.strictEqual(test.values.get(inputKey)!.length, 1, + `Expected just one "${inputKey}" input`); + + let meta: Metadata; + if (test.meta.has(inputKey)) { + meta = test.meta.get(inputKey)![0]!; + } else { + assert(isURL, 'Missing required http metadata'); + meta = {}; + } + + if (isURL) { + types = [ 'url' ]; + } else { + assert(meta.hasOwnProperty('type'), 'Missing required `type` metadata'); + + if (meta.type) { + if (!allowedTypes.includes(meta.type)) { + throw new Error(`Invalid value of \`type\` metadata: "${meta.type}"`); + } + + types.push(meta.type); + } + } + + assert(test.values.has('log'), 'Missing `log` code in md file'); + + assert.strictEqual(test.values.get('log')!.length, 1, + 'Expected just one output'); + + let input: string = test.values.get(inputKey)![0]; + let expected: string = test.values.get('log')![0]; + + // Remove trailing newline + input = input.replace(/\n$/, ''); + + // Remove escaped newlines + input = input.replace(/\\(\r\n|\r|\n)/g, ''); + + // Normalize all newlines + input = input.replace(/\r\n|\r|\n/g, '\r\n'); + + // Replace escaped CRLF, tabs, form-feed + input = input.replace(/\\r/g, '\r'); + input = input.replace(/\\n/g, '\n'); + input = input.replace(/\\t/g, '\t'); + input = input.replace(/\\f/g, '\f'); + input = input.replace(/\\x([0-9a-fA-F]+)/g, (all, hex) => { + return String.fromCharCode(parseInt(hex, 16)); + }); + + // Useful in token tests + input = input.replace(/\\([0-7]{1,3})/g, (_, digits) => { + return String.fromCharCode(parseInt(digits, 8)); + }); + + // Evaluate inline JavaScript + input = input.replace(/\$\{(.+?)\}/g, (_, code) => { + return vm.runInNewContext(code) + ''; + }); + + // Escape first symbol `\r` or `\n`, `|`, `&` for Windows + if (process.platform === 'win32') { + const firstByte = Buffer.from(input)[0]; + if (firstByte === 0x0a || firstByte === 0x0d) { + input = '\\' + input; + } + + input = input.replace(/\|/g, '^|'); + input = input.replace(/&/g, '^&'); + } + + // Replace escaped tabs/form-feed in expected too + expected = expected.replace(/\\t/g, '\t'); + expected = expected.replace(/\\f/g, '\f'); + + // Split + const expectedLines = expected.split(/\n/g).slice(0, -1); + + const fullExpected = expectedLines.map((line) => { + if (line.startsWith('/')) { + return new RegExp(line.trim().slice(1, -1)); + } else { + return line; + } + }); + + for (const ty of types) { + if (meta.skip === true || (process.env.ONLY === 'true' && !meta.only)) { + continue; + } + + runSingleTest(ty, meta, input, fullExpected); + } + }); + } + + function runGroup(group: Group) { + describe(group.name + ` at ${name}.md:${group.line + 1}`, function() { + this.timeout(60000); + + for (const child of group.children) { + runGroup(child); + } + + for (const test of group.tests) { + runTest(test); + } + }); + } + + for (const group of groups) { + runGroup(group); + } +} + +run('request/sample'); +run('request/lenient-headers'); +run('request/lenient-version'); +run('request/method'); +run('request/uri'); +run('request/connection'); +run('request/content-length'); +run('request/transfer-encoding'); +run('request/invalid'); +run('request/finish'); +run('request/pausing'); +run('request/pipelining'); + +run('response/sample'); +run('response/connection'); +run('response/content-length'); +run('response/transfer-encoding'); +run('response/invalid'); +run('response/finish'); +run('response/lenient-version'); +run('response/pausing'); +run('response/pipelining'); + +run('url'); diff --git a/vendor/llhttp/test/request/connection.md b/vendor/llhttp/test/request/connection.md new file mode 100644 index 0000000..a03242e --- /dev/null +++ b/vendor/llhttp/test/request/connection.md @@ -0,0 +1,732 @@ +Connection header +================= + +## `keep-alive` + +### Setting flag + + +```http +PUT /url HTTP/1.1 +Connection: keep-alive + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=10 span[header_field]="Connection" +off=30 header_field complete +off=31 len=10 span[header_value]="keep-alive" +off=43 header_value complete +off=45 headers complete method=4 v=1/1 flags=1 content_length=0 +off=45 message complete +``` + +### Restarting when keep-alive is explicitly + + +```http +PUT /url HTTP/1.1 +Connection: keep-alive + +PUT /url HTTP/1.1 +Connection: keep-alive + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=10 span[header_field]="Connection" +off=30 header_field complete +off=31 len=10 span[header_value]="keep-alive" +off=43 header_value complete +off=45 headers complete method=4 v=1/1 flags=1 content_length=0 +off=45 message complete +off=45 reset +off=45 message begin +off=45 len=3 span[method]="PUT" +off=48 method complete +off=49 len=4 span[url]="/url" +off=54 url complete +off=59 len=3 span[version]="1.1" +off=62 version complete +off=64 len=10 span[header_field]="Connection" +off=75 header_field complete +off=76 len=10 span[header_value]="keep-alive" +off=88 header_value complete +off=90 headers complete method=4 v=1/1 flags=1 content_length=0 +off=90 message complete +``` + +### No restart when keep-alive is off (1.0) + + +```http +PUT /url HTTP/1.0 + +PUT /url HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.0" +off=17 version complete +off=21 headers complete method=4 v=1/0 flags=0 content_length=0 +off=21 message complete +off=22 error code=5 reason="Data after `Connection: close`" +``` + +### Resetting flags when keep-alive is off (1.0, lenient) + +Even though we allow restarts in loose mode, the flags should be still set to +`0` upon restart. + + +```http +PUT /url HTTP/1.0 +Content-Length: 0 + +PUT /url HTTP/1.1 +Transfer-Encoding: chunked + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.0" +off=17 version complete +off=19 len=14 span[header_field]="Content-Length" +off=34 header_field complete +off=35 len=1 span[header_value]="0" +off=38 header_value complete +off=40 headers complete method=4 v=1/0 flags=20 content_length=0 +off=40 message complete +off=40 reset +off=40 message begin +off=40 len=3 span[method]="PUT" +off=43 method complete +off=44 len=4 span[url]="/url" +off=49 url complete +off=54 len=3 span[version]="1.1" +off=57 version complete +off=59 len=17 span[header_field]="Transfer-Encoding" +off=77 header_field complete +off=78 len=7 span[header_value]="chunked" +off=87 header_value complete +off=89 headers complete method=4 v=1/1 flags=208 content_length=0 +``` + +### CRLF between requests, implicit `keep-alive` + + +```http +POST / HTTP/1.1 +Host: www.example.com +Content-Type: application/x-www-form-urlencoded +Content-Length: 4 + +q=42 + +GET / HTTP/1.1 +``` +_Note the trailing CRLF above_ + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=4 span[header_field]="Host" +off=22 header_field complete +off=23 len=15 span[header_value]="www.example.com" +off=40 header_value complete +off=40 len=12 span[header_field]="Content-Type" +off=53 header_field complete +off=54 len=33 span[header_value]="application/x-www-form-urlencoded" +off=89 header_value complete +off=89 len=14 span[header_field]="Content-Length" +off=104 header_field complete +off=105 len=1 span[header_value]="4" +off=108 header_value complete +off=110 headers complete method=3 v=1/1 flags=20 content_length=4 +off=110 len=4 span[body]="q=42" +off=114 message complete +off=118 reset +off=118 message begin +off=118 len=3 span[method]="GET" +off=121 method complete +off=122 len=1 span[url]="/" +off=124 url complete +off=129 len=3 span[version]="1.1" +off=132 version complete +``` + +### Not treating `\r` as `-` + + +```http +PUT /url HTTP/1.1 +Connection: keep\ralive + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=10 span[header_field]="Connection" +off=30 header_field complete +off=31 len=4 span[header_value]="keep" +off=36 error code=3 reason="Missing expected LF after header value" +``` + +## `close` + +### Setting flag on `close` + + +```http +PUT /url HTTP/1.1 +Connection: close + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=10 span[header_field]="Connection" +off=30 header_field complete +off=31 len=5 span[header_value]="close" +off=38 header_value complete +off=40 headers complete method=4 v=1/1 flags=2 content_length=0 +off=40 message complete +``` + +### CRLF between requests, explicit `close` + +`close` means closed connection + + +```http +POST / HTTP/1.1 +Host: www.example.com +Content-Type: application/x-www-form-urlencoded +Content-Length: 4 +Connection: close + +q=42 + +GET / HTTP/1.1 +``` +_Note the trailing CRLF above_ + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=4 span[header_field]="Host" +off=22 header_field complete +off=23 len=15 span[header_value]="www.example.com" +off=40 header_value complete +off=40 len=12 span[header_field]="Content-Type" +off=53 header_field complete +off=54 len=33 span[header_value]="application/x-www-form-urlencoded" +off=89 header_value complete +off=89 len=14 span[header_field]="Content-Length" +off=104 header_field complete +off=105 len=1 span[header_value]="4" +off=108 header_value complete +off=108 len=10 span[header_field]="Connection" +off=119 header_field complete +off=120 len=5 span[header_value]="close" +off=127 header_value complete +off=129 headers complete method=3 v=1/1 flags=22 content_length=4 +off=129 len=4 span[body]="q=42" +off=133 message complete +off=138 error code=5 reason="Data after `Connection: close`" +``` + +### CRLF between requests, explicit `close` (lenient) + +Loose mode is more lenient, and allows further requests. + + +```http +POST / HTTP/1.1 +Host: www.example.com +Content-Type: application/x-www-form-urlencoded +Content-Length: 4 +Connection: close + +q=42 + +GET / HTTP/1.1 +``` +_Note the trailing CRLF above_ + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=4 span[header_field]="Host" +off=22 header_field complete +off=23 len=15 span[header_value]="www.example.com" +off=40 header_value complete +off=40 len=12 span[header_field]="Content-Type" +off=53 header_field complete +off=54 len=33 span[header_value]="application/x-www-form-urlencoded" +off=89 header_value complete +off=89 len=14 span[header_field]="Content-Length" +off=104 header_field complete +off=105 len=1 span[header_value]="4" +off=108 header_value complete +off=108 len=10 span[header_field]="Connection" +off=119 header_field complete +off=120 len=5 span[header_value]="close" +off=127 header_value complete +off=129 headers complete method=3 v=1/1 flags=22 content_length=4 +off=129 len=4 span[body]="q=42" +off=133 message complete +off=137 reset +off=137 message begin +off=137 len=3 span[method]="GET" +off=140 method complete +off=141 len=1 span[url]="/" +off=143 url complete +off=148 len=3 span[version]="1.1" +off=151 version complete +``` + +## Parsing multiple tokens + +### Sample + + +```http +PUT /url HTTP/1.1 +Connection: close, token, upgrade, token, keep-alive + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=10 span[header_field]="Connection" +off=30 header_field complete +off=31 len=40 span[header_value]="close, token, upgrade, token, keep-alive" +off=73 header_value complete +off=75 headers complete method=4 v=1/1 flags=7 content_length=0 +off=75 message complete +``` + +### Multiple tokens with folding + + +```http +GET /demo HTTP/1.1 +Host: example.com +Connection: Something, + Upgrade, ,Keep-Alive +Sec-WebSocket-Key2: 12998 5 Y3 1 .P00 +Sec-WebSocket-Protocol: sample +Upgrade: WebSocket +Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5 +Origin: http://example.com + +Hot diggity dogg +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=5 span[url]="/demo" +off=10 url complete +off=15 len=3 span[version]="1.1" +off=18 version complete +off=20 len=4 span[header_field]="Host" +off=25 header_field complete +off=26 len=11 span[header_value]="example.com" +off=39 header_value complete +off=39 len=10 span[header_field]="Connection" +off=50 header_field complete +off=51 len=10 span[header_value]="Something," +off=63 len=21 span[header_value]=" Upgrade, ,Keep-Alive" +off=86 header_value complete +off=86 len=18 span[header_field]="Sec-WebSocket-Key2" +off=105 header_field complete +off=106 len=18 span[header_value]="12998 5 Y3 1 .P00" +off=126 header_value complete +off=126 len=22 span[header_field]="Sec-WebSocket-Protocol" +off=149 header_field complete +off=150 len=6 span[header_value]="sample" +off=158 header_value complete +off=158 len=7 span[header_field]="Upgrade" +off=166 header_field complete +off=167 len=9 span[header_value]="WebSocket" +off=178 header_value complete +off=178 len=18 span[header_field]="Sec-WebSocket-Key1" +off=197 header_field complete +off=198 len=20 span[header_value]="4 @1 46546xW%0l 1 5" +off=220 header_value complete +off=220 len=6 span[header_field]="Origin" +off=227 header_field complete +off=228 len=18 span[header_value]="http://example.com" +off=248 header_value complete +off=250 headers complete method=1 v=1/1 flags=15 content_length=0 +off=250 message complete +off=250 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +### Multiple tokens with folding and LWS + + +```http +GET /demo HTTP/1.1 +Connection: keep-alive, upgrade +Upgrade: WebSocket + +Hot diggity dogg +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=5 span[url]="/demo" +off=10 url complete +off=15 len=3 span[version]="1.1" +off=18 version complete +off=20 len=10 span[header_field]="Connection" +off=31 header_field complete +off=32 len=19 span[header_value]="keep-alive, upgrade" +off=53 header_value complete +off=53 len=7 span[header_field]="Upgrade" +off=61 header_field complete +off=62 len=9 span[header_value]="WebSocket" +off=73 header_value complete +off=75 headers complete method=1 v=1/1 flags=15 content_length=0 +off=75 message complete +off=75 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +### Multiple tokens with folding, LWS, and CRLF + + +```http +GET /demo HTTP/1.1 +Connection: keep-alive, \r\n upgrade +Upgrade: WebSocket + +Hot diggity dogg +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=5 span[url]="/demo" +off=10 url complete +off=15 len=3 span[version]="1.1" +off=18 version complete +off=20 len=10 span[header_field]="Connection" +off=31 header_field complete +off=32 len=12 span[header_value]="keep-alive, " +off=46 len=8 span[header_value]=" upgrade" +off=56 header_value complete +off=56 len=7 span[header_field]="Upgrade" +off=64 header_field complete +off=65 len=9 span[header_value]="WebSocket" +off=76 header_value complete +off=78 headers complete method=1 v=1/1 flags=15 content_length=0 +off=78 message complete +off=78 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +### Invalid whitespace token with `Connection` header field + + +```http +PUT /url HTTP/1.1 +Connection : upgrade +Content-Length: 4 +Upgrade: ws + +abcdefgh +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=10 span[header_field]="Connection" +off=30 error code=10 reason="Invalid header field char" +``` + +### Invalid whitespace token with `Connection` header field (lenient) + + +```http +PUT /url HTTP/1.1 +Connection : upgrade +Content-Length: 4 +Upgrade: ws + +abcdefgh +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=11 span[header_field]="Connection " +off=31 header_field complete +off=32 len=7 span[header_value]="upgrade" +off=41 header_value complete +off=41 len=14 span[header_field]="Content-Length" +off=56 header_field complete +off=57 len=1 span[header_value]="4" +off=60 header_value complete +off=60 len=7 span[header_field]="Upgrade" +off=68 header_field complete +off=69 len=2 span[header_value]="ws" +off=73 header_value complete +off=75 headers complete method=4 v=1/1 flags=34 content_length=4 +off=75 len=4 span[body]="abcd" +off=79 message complete +off=79 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +## `upgrade` + +### Setting a flag and pausing + + +```http +PUT /url HTTP/1.1 +Connection: upgrade +Upgrade: ws + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=10 span[header_field]="Connection" +off=30 header_field complete +off=31 len=7 span[header_value]="upgrade" +off=40 header_value complete +off=40 len=7 span[header_field]="Upgrade" +off=48 header_field complete +off=49 len=2 span[header_value]="ws" +off=53 header_value complete +off=55 headers complete method=4 v=1/1 flags=14 content_length=0 +off=55 message complete +off=55 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +### Emitting part of body and pausing + + +```http +PUT /url HTTP/1.1 +Connection: upgrade +Content-Length: 4 +Upgrade: ws + +abcdefgh +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=10 span[header_field]="Connection" +off=30 header_field complete +off=31 len=7 span[header_value]="upgrade" +off=40 header_value complete +off=40 len=14 span[header_field]="Content-Length" +off=55 header_field complete +off=56 len=1 span[header_value]="4" +off=59 header_value complete +off=59 len=7 span[header_field]="Upgrade" +off=67 header_field complete +off=68 len=2 span[header_value]="ws" +off=72 header_value complete +off=74 headers complete method=4 v=1/1 flags=34 content_length=4 +off=74 len=4 span[body]="abcd" +off=78 message complete +off=78 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +### Upgrade GET request + + +```http +GET /demo HTTP/1.1 +Host: example.com +Connection: Upgrade +Sec-WebSocket-Key2: 12998 5 Y3 1 .P00 +Sec-WebSocket-Protocol: sample +Upgrade: WebSocket +Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5 +Origin: http://example.com + +Hot diggity dogg +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=5 span[url]="/demo" +off=10 url complete +off=15 len=3 span[version]="1.1" +off=18 version complete +off=20 len=4 span[header_field]="Host" +off=25 header_field complete +off=26 len=11 span[header_value]="example.com" +off=39 header_value complete +off=39 len=10 span[header_field]="Connection" +off=50 header_field complete +off=51 len=7 span[header_value]="Upgrade" +off=60 header_value complete +off=60 len=18 span[header_field]="Sec-WebSocket-Key2" +off=79 header_field complete +off=80 len=18 span[header_value]="12998 5 Y3 1 .P00" +off=100 header_value complete +off=100 len=22 span[header_field]="Sec-WebSocket-Protocol" +off=123 header_field complete +off=124 len=6 span[header_value]="sample" +off=132 header_value complete +off=132 len=7 span[header_field]="Upgrade" +off=140 header_field complete +off=141 len=9 span[header_value]="WebSocket" +off=152 header_value complete +off=152 len=18 span[header_field]="Sec-WebSocket-Key1" +off=171 header_field complete +off=172 len=20 span[header_value]="4 @1 46546xW%0l 1 5" +off=194 header_value complete +off=194 len=6 span[header_field]="Origin" +off=201 header_field complete +off=202 len=18 span[header_value]="http://example.com" +off=222 header_value complete +off=224 headers complete method=1 v=1/1 flags=14 content_length=0 +off=224 message complete +off=224 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +### Upgrade POST request + + +```http +POST /demo HTTP/1.1 +Host: example.com +Connection: Upgrade +Upgrade: HTTP/2.0 +Content-Length: 15 + +sweet post body\ +Hot diggity dogg +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=5 span[url]="/demo" +off=11 url complete +off=16 len=3 span[version]="1.1" +off=19 version complete +off=21 len=4 span[header_field]="Host" +off=26 header_field complete +off=27 len=11 span[header_value]="example.com" +off=40 header_value complete +off=40 len=10 span[header_field]="Connection" +off=51 header_field complete +off=52 len=7 span[header_value]="Upgrade" +off=61 header_value complete +off=61 len=7 span[header_field]="Upgrade" +off=69 header_field complete +off=70 len=8 span[header_value]="HTTP/2.0" +off=80 header_value complete +off=80 len=14 span[header_field]="Content-Length" +off=95 header_field complete +off=96 len=2 span[header_value]="15" +off=100 header_value complete +off=102 headers complete method=3 v=1/1 flags=34 content_length=15 +off=102 len=15 span[body]="sweet post body" +off=117 message complete +off=117 error code=22 reason="Pause on CONNECT/Upgrade" +``` diff --git a/vendor/llhttp/test/request/content-length.md b/vendor/llhttp/test/request/content-length.md new file mode 100644 index 0000000..524d183 --- /dev/null +++ b/vendor/llhttp/test/request/content-length.md @@ -0,0 +1,482 @@ +Content-Length header +===================== + +## `Content-Length` with zeroes + + +```http +PUT /url HTTP/1.1 +Content-Length: 003 + +abc +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=14 span[header_field]="Content-Length" +off=34 header_field complete +off=35 len=3 span[header_value]="003" +off=40 header_value complete +off=42 headers complete method=4 v=1/1 flags=20 content_length=3 +off=42 len=3 span[body]="abc" +off=45 message complete +``` + +## `Content-Length` with follow-up headers + +The way the parser works is that special headers (like `Content-Length`) first +set `header_state` to appropriate value, and then apply custom parsing using +that value. For `Content-Length`, in particular, the `header_state` is used for +setting the flag too. + +Make sure that `header_state` is reset to `0`, so that the flag won't be +attempted to set twice (and error). + + +```http +PUT /url HTTP/1.1 +Content-Length: 003 +Ohai: world + +abc +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=14 span[header_field]="Content-Length" +off=34 header_field complete +off=35 len=3 span[header_value]="003" +off=40 header_value complete +off=40 len=4 span[header_field]="Ohai" +off=45 header_field complete +off=46 len=5 span[header_value]="world" +off=53 header_value complete +off=55 headers complete method=4 v=1/1 flags=20 content_length=3 +off=55 len=3 span[body]="abc" +off=58 message complete +``` + +## Error on `Content-Length` overflow + + +```http +PUT /url HTTP/1.1 +Content-Length: 1000000000000000000000 + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=14 span[header_field]="Content-Length" +off=34 header_field complete +off=35 len=21 span[header_value]="100000000000000000000" +off=56 error code=11 reason="Content-Length overflow" +``` + +## Error on duplicate `Content-Length` + + +```http +PUT /url HTTP/1.1 +Content-Length: 1 +Content-Length: 2 + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=14 span[header_field]="Content-Length" +off=34 header_field complete +off=35 len=1 span[header_value]="1" +off=38 header_value complete +off=38 len=14 span[header_field]="Content-Length" +off=53 header_field complete +off=54 error code=4 reason="Duplicate Content-Length" +``` + +## Error on simultaneous `Content-Length` and `Transfer-Encoding: identity` + + +```http +PUT /url HTTP/1.1 +Content-Length: 1 +Transfer-Encoding: identity + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=14 span[header_field]="Content-Length" +off=34 header_field complete +off=35 len=1 span[header_value]="1" +off=38 header_value complete +off=38 len=17 span[header_field]="Transfer-Encoding" +off=56 header_field complete +off=56 error code=15 reason="Transfer-Encoding can't be present with Content-Length" +``` + +## Invalid whitespace token with `Content-Length` header field + + +```http +PUT /url HTTP/1.1 +Connection: upgrade +Content-Length : 4 +Upgrade: ws + +abcdefgh +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=10 span[header_field]="Connection" +off=30 header_field complete +off=31 len=7 span[header_value]="upgrade" +off=40 header_value complete +off=40 len=14 span[header_field]="Content-Length" +off=55 error code=10 reason="Invalid header field char" +``` + +## Invalid whitespace token with `Content-Length` header field (lenient) + + +```http +PUT /url HTTP/1.1 +Connection: upgrade +Content-Length : 4 +Upgrade: ws + +abcdefgh +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=10 span[header_field]="Connection" +off=30 header_field complete +off=31 len=7 span[header_value]="upgrade" +off=40 header_value complete +off=40 len=15 span[header_field]="Content-Length " +off=56 header_field complete +off=57 len=1 span[header_value]="4" +off=60 header_value complete +off=60 len=7 span[header_field]="Upgrade" +off=68 header_field complete +off=69 len=2 span[header_value]="ws" +off=73 header_value complete +off=75 headers complete method=4 v=1/1 flags=34 content_length=4 +off=75 len=4 span[body]="abcd" +off=79 message complete +off=79 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +## No error on simultaneous `Content-Length` and `Transfer-Encoding: identity` (lenient) + + +```http +PUT /url HTTP/1.1 +Content-Length: 1 +Transfer-Encoding: identity + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=14 span[header_field]="Content-Length" +off=34 header_field complete +off=35 len=1 span[header_value]="1" +off=38 header_value complete +off=38 len=17 span[header_field]="Transfer-Encoding" +off=56 header_field complete +off=57 len=8 span[header_value]="identity" +off=67 header_value complete +off=69 headers complete method=4 v=1/1 flags=220 content_length=1 +``` + +## Funky `Content-Length` with body + + +```http +GET /get_funky_content_length_body_hello HTTP/1.0 +conTENT-Length: 5 + +HELLO +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=36 span[url]="/get_funky_content_length_body_hello" +off=41 url complete +off=46 len=3 span[version]="1.0" +off=49 version complete +off=51 len=14 span[header_field]="conTENT-Length" +off=66 header_field complete +off=67 len=1 span[header_value]="5" +off=70 header_value complete +off=72 headers complete method=1 v=1/0 flags=20 content_length=5 +off=72 len=5 span[body]="HELLO" +off=77 message complete +``` + +## Spaces in `Content-Length` (surrounding) + + +```http +POST / HTTP/1.1 +Content-Length: 42 + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=34 len=3 span[header_value]="42 " +off=39 header_value complete +off=41 headers complete method=3 v=1/1 flags=20 content_length=42 +``` + +### Spaces in `Content-Length` #2 + + +```http +POST / HTTP/1.1 +Content-Length: 4 2 + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=2 span[header_value]="4 " +off=35 error code=11 reason="Invalid character in Content-Length" +``` + +### Spaces in `Content-Length` #3 + + +```http +POST / HTTP/1.1 +Content-Length: 13 37 + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=3 span[header_value]="13 " +off=36 error code=11 reason="Invalid character in Content-Length" +``` + +### Empty `Content-Length` + + +```http +POST / HTTP/1.1 +Content-Length: + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=34 error code=11 reason="Empty Content-Length" +``` + +## `Content-Length` with CR instead of dash + + +```http +PUT /url HTTP/1.1 +Content\rLength: 003 + +abc +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=26 error code=10 reason="Invalid header token" +``` + +## Content-Length reset when no body is received + + +```http +PUT /url HTTP/1.1 +Content-Length: 123 + +POST /url HTTP/1.1 +Content-Length: 456 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=14 span[header_field]="Content-Length" +off=34 header_field complete +off=35 len=3 span[header_value]="123" +off=40 header_value complete +off=42 headers complete method=4 v=1/1 flags=20 content_length=123 +off=42 skip body +off=42 message complete +off=42 reset +off=42 message begin +off=42 len=4 span[method]="POST" +off=46 method complete +off=47 len=4 span[url]="/url" +off=52 url complete +off=57 len=3 span[version]="1.1" +off=60 version complete +off=62 len=14 span[header_field]="Content-Length" +off=77 header_field complete +off=78 len=3 span[header_value]="456" +off=83 header_value complete +off=85 headers complete method=3 v=1/1 flags=20 content_length=456 +off=85 skip body +off=85 message complete +``` + +## Missing CRLF-CRLF before body + + +```http +PUT /url HTTP/1.1 +Content-Length: 3 +\rabc +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=14 span[header_field]="Content-Length" +off=34 header_field complete +off=35 len=1 span[header_value]="3" +off=38 header_value complete +off=39 error code=2 reason="Expected LF after headers" +``` + +## Missing CRLF-CRLF before body (lenient) + + +```http +PUT /url HTTP/1.1 +Content-Length: 3 +\rabc +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=14 span[header_field]="Content-Length" +off=34 header_field complete +off=35 len=1 span[header_value]="3" +off=38 header_value complete +off=39 headers complete method=4 v=1/1 flags=20 content_length=3 +off=39 len=3 span[body]="abc" +off=42 message complete +``` \ No newline at end of file diff --git a/vendor/llhttp/test/request/finish.md b/vendor/llhttp/test/request/finish.md new file mode 100644 index 0000000..710daa5 --- /dev/null +++ b/vendor/llhttp/test/request/finish.md @@ -0,0 +1,69 @@ +Finish +====== + +Those tests check the return codes and the behavior of `llhttp_finish()` C API. + +## It should be safe to finish after GET request + + +```http +GET / HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=18 headers complete method=1 v=1/1 flags=0 content_length=0 +off=18 message complete +off=NULL finish=0 +``` + +## It should be unsafe to finish after incomplete PUT request + + +```http +PUT / HTTP/1.1 +Content-Length: 100 + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=14 span[header_field]="Content-Length" +off=31 header_field complete +off=32 len=3 span[header_value]="100" +off=NULL finish=2 +``` + +## It should be unsafe to finish inside of the header + + +```http +PUT / HTTP/1.1 +Content-Leng +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=12 span[header_field]="Content-Leng" +off=NULL finish=2 +``` diff --git a/vendor/llhttp/test/request/invalid.md b/vendor/llhttp/test/request/invalid.md new file mode 100644 index 0000000..8eadacf --- /dev/null +++ b/vendor/llhttp/test/request/invalid.md @@ -0,0 +1,586 @@ +Invalid requests +================ + +### ICE protocol and GET method + + +```http +GET /music/sweet/music ICE/1.0 +Host: example.com + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=18 span[url]="/music/sweet/music" +off=23 url complete +off=27 error code=8 reason="Expected SOURCE method for ICE/x.x request" +``` + +### ICE protocol, but not really + + +```http +GET /music/sweet/music IHTTP/1.0 +Host: example.com + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=18 span[url]="/music/sweet/music" +off=23 url complete +off=24 error code=8 reason="Expected HTTP/" +``` + +### RTSP protocol and PUT method + + +```http +PUT /music/sweet/music RTSP/1.0 +Host: example.com + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=18 span[url]="/music/sweet/music" +off=23 url complete +off=28 error code=8 reason="Invalid method for RTSP/x.x request" +``` + +### HTTP protocol and ANNOUNCE method + + +```http +ANNOUNCE /music/sweet/music HTTP/1.0 +Host: example.com + + +``` + +```log +off=0 message begin +off=0 len=8 span[method]="ANNOUNCE" +off=8 method complete +off=9 len=18 span[url]="/music/sweet/music" +off=28 url complete +off=33 error code=8 reason="Invalid method for HTTP/x.x request" +``` + +### Headers separated by CR + + +```http +GET / HTTP/1.1 +Foo: 1\rBar: 2 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=3 span[header_field]="Foo" +off=20 header_field complete +off=21 len=1 span[header_value]="1" +off=23 error code=3 reason="Missing expected LF after header value" +``` + +### Headers separated by LF + + +```http +POST / HTTP/1.1 +Host: localhost:5000 +x:x\nTransfer-Encoding: chunked + +1 +A +0 + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=4 span[header_field]="Host" +off=22 header_field complete +off=23 len=14 span[header_value]="localhost:5000" +off=39 header_value complete +off=39 len=1 span[header_field]="x" +off=41 header_field complete +off=41 len=1 span[header_value]="x" +off=42 error code=25 reason="Missing expected CR after header value" +``` + +### Headers separated by dummy characters + + +```http +GET / HTTP/1.1 +Connection: close +Host: a +\rZGET /evil: HTTP/1.1 +Host: a + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=10 span[header_field]="Connection" +off=27 header_field complete +off=28 len=5 span[header_value]="close" +off=35 header_value complete +off=35 len=4 span[header_field]="Host" +off=40 header_field complete +off=41 len=1 span[header_value]="a" +off=44 header_value complete +off=45 error code=2 reason="Expected LF after headers" +``` + + +### Headers separated by dummy characters (lenient) + + +```http +GET / HTTP/1.1 +Connection: close +Host: a +\rZGET /evil: HTTP/1.1 +Host: a + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=10 span[header_field]="Connection" +off=27 header_field complete +off=28 len=5 span[header_value]="close" +off=35 header_value complete +off=35 len=4 span[header_field]="Host" +off=40 header_field complete +off=41 len=1 span[header_value]="a" +off=44 header_value complete +off=45 headers complete method=1 v=1/1 flags=2 content_length=0 +off=45 message complete +off=46 error code=5 reason="Data after `Connection: close`" +``` + +### Empty headers separated by CR + + +```http +POST / HTTP/1.1 +Connection: Close +Host: localhost:5000 +x:\rTransfer-Encoding: chunked + +1 +A +0 + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=10 span[header_field]="Connection" +off=28 header_field complete +off=29 len=5 span[header_value]="Close" +off=36 header_value complete +off=36 len=4 span[header_field]="Host" +off=41 header_field complete +off=42 len=14 span[header_value]="localhost:5000" +off=58 header_value complete +off=58 len=1 span[header_field]="x" +off=60 header_field complete +off=61 error code=2 reason="Expected LF after CR" +``` + +### Empty headers separated by LF + + +```http +POST / HTTP/1.1 +Host: localhost:5000 +x:\nTransfer-Encoding: chunked + +1 +A +0 + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=4 span[header_field]="Host" +off=22 header_field complete +off=23 len=14 span[header_value]="localhost:5000" +off=39 header_value complete +off=39 len=1 span[header_field]="x" +off=41 header_field complete +off=42 error code=10 reason="Invalid header value char" +``` + +### Invalid header token #1 + + +```http +GET / HTTP/1.1 +Fo@: Failure + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=18 error code=10 reason="Invalid header token" +``` + +### Invalid header token #2 + + +```http +GET / HTTP/1.1 +Foo\01\test: Bar + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=19 error code=10 reason="Invalid header token" +``` + +### Invalid method + + +```http +MKCOLA / HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=5 span[method]="MKCOL" +off=5 method complete +off=5 error code=6 reason="Expected space after method" +``` + +### Illegal header field name line folding + + +```http +GET / HTTP/1.1 +name + : value + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=20 error code=10 reason="Invalid header token" +``` + +### Corrupted Connection header + + +```http +GET / HTTP/1.1 +Host: www.example.com +Connection\r\033\065\325eep-Alive +Accept-Encoding: gzip + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=4 span[header_field]="Host" +off=21 header_field complete +off=22 len=15 span[header_value]="www.example.com" +off=39 header_value complete +off=49 error code=10 reason="Invalid header token" +``` + +### Corrupted header name + + +```http +GET / HTTP/1.1 +Host: www.example.com +X-Some-Header\r\033\065\325eep-Alive +Accept-Encoding: gzip + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=4 span[header_field]="Host" +off=21 header_field complete +off=22 len=15 span[header_value]="www.example.com" +off=39 header_value complete +off=52 error code=10 reason="Invalid header token" +``` + +### Missing CR between headers + + + +```http +GET / HTTP/1.1 +Host: localhost +Dummy: x\nContent-Length: 23 + +GET / HTTP/1.1 +Dummy: GET /admin HTTP/1.1 +Host: localhost + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=4 span[header_field]="Host" +off=21 header_field complete +off=22 len=9 span[header_value]="localhost" +off=33 header_value complete +off=33 len=5 span[header_field]="Dummy" +off=39 header_field complete +off=40 len=1 span[header_value]="x" +off=41 error code=25 reason="Missing expected CR after header value" +``` + +### Invalid HTTP version + + +```http +GET / HTTP/5.6 +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="5.6" +off=14 error code=9 reason="Invalid HTTP version" +``` + +## Invalid space after start line + + +```http +GET / HTTP/1.1 + Host: foo +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=17 error code=30 reason="Unexpected space after start line" +``` + + +### Only LFs present + + +```http +POST / HTTP/1.1\n\ +Transfer-Encoding: chunked\n\ +Trailer: Baz +Foo: abc\n\ +Bar: def\n\ +\n\ +1\n\ +A\n\ +1;abc\n\ +B\n\ +1;def=ghi\n\ +C\n\ +1;jkl="mno"\n\ +D\n\ +0\n\ +\n\ +Baz: ghi\n\ +\n\ +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=16 error code=9 reason="Expected CRLF after version" +``` + +### Only LFs present (lenient) + + +```http +POST / HTTP/1.1\n\ +Transfer-Encoding: chunked\n\ +Trailer: Baz +Foo: abc\n\ +Bar: def\n\ +\n\ +1\n\ +A\n\ +1;abc\n\ +B\n\ +1;def=ghi\n\ +C\n\ +1;jkl="mno"\n\ +D\n\ +0\n\ +\n\ +Baz: ghi\n\ +\n +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=16 len=17 span[header_field]="Transfer-Encoding" +off=34 header_field complete +off=35 len=7 span[header_value]="chunked" +off=43 header_value complete +off=43 len=7 span[header_field]="Trailer" +off=51 header_field complete +off=52 len=3 span[header_value]="Baz" +off=57 header_value complete +off=57 len=3 span[header_field]="Foo" +off=61 header_field complete +off=62 len=3 span[header_value]="abc" +off=66 header_value complete +off=66 len=3 span[header_field]="Bar" +off=70 header_field complete +off=71 len=3 span[header_value]="def" +off=75 header_value complete +off=76 headers complete method=3 v=1/1 flags=208 content_length=0 +off=78 chunk header len=1 +off=78 len=1 span[body]="A" +off=80 chunk complete +off=82 len=3 span[chunk_extension_name]="abc" +off=85 chunk_extension_name complete +off=86 chunk header len=1 +off=86 len=1 span[body]="B" +off=88 chunk complete +off=90 len=3 span[chunk_extension_name]="def" +off=94 chunk_extension_name complete +off=94 len=3 span[chunk_extension_value]="ghi" +off=97 chunk_extension_value complete +off=98 chunk header len=1 +off=98 len=1 span[body]="C" +off=100 chunk complete +off=102 len=3 span[chunk_extension_name]="jkl" +off=106 chunk_extension_name complete +off=106 len=5 span[chunk_extension_value]=""mno"" +off=111 chunk_extension_value complete +off=112 chunk header len=1 +off=112 len=1 span[body]="D" +off=114 chunk complete +off=117 chunk header len=0 +off=117 len=3 span[header_field]="Baz" +off=121 header_field complete +off=122 len=3 span[header_value]="ghi" +off=126 header_value complete +off=127 chunk complete +off=127 message complete +``` \ No newline at end of file diff --git a/vendor/llhttp/test/request/lenient-headers.md b/vendor/llhttp/test/request/lenient-headers.md new file mode 100644 index 0000000..05e105f --- /dev/null +++ b/vendor/llhttp/test/request/lenient-headers.md @@ -0,0 +1,145 @@ +Lenient header value parsing +============================ + +Parsing with header value token checks off. + +## Header value (lenient) + + +```http +GET /url HTTP/1.1 +Header1: \f + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=7 span[header_field]="Header1" +off=27 header_field complete +off=28 len=1 span[header_value]="\f" +off=31 header_value complete +off=33 headers complete method=1 v=1/1 flags=0 content_length=0 +off=33 message complete +``` + +## Second request header value (lenient) + + +```http +GET /url HTTP/1.1 +Header1: Okay + + +GET /url HTTP/1.1 +Header1: \f + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=7 span[header_field]="Header1" +off=27 header_field complete +off=28 len=4 span[header_value]="Okay" +off=34 header_value complete +off=36 headers complete method=1 v=1/1 flags=0 content_length=0 +off=36 message complete +off=38 reset +off=38 message begin +off=38 len=3 span[method]="GET" +off=41 method complete +off=42 len=4 span[url]="/url" +off=47 url complete +off=52 len=3 span[version]="1.1" +off=55 version complete +off=57 len=7 span[header_field]="Header1" +off=65 header_field complete +off=66 len=1 span[header_value]="\f" +off=69 header_value complete +off=71 headers complete method=1 v=1/1 flags=0 content_length=0 +off=71 message complete +``` + +## Header value + + +```http +GET /url HTTP/1.1 +Header1: \f + + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=7 span[header_field]="Header1" +off=27 header_field complete +off=28 len=0 span[header_value]="" +off=28 error code=10 reason="Invalid header value char" +``` + +### Empty headers separated by CR (lenient) + + +```http +POST / HTTP/1.1 +Connection: Close +Host: localhost:5000 +x:\rTransfer-Encoding: chunked + +1 +A +0 + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=10 span[header_field]="Connection" +off=28 header_field complete +off=29 len=5 span[header_value]="Close" +off=36 header_value complete +off=36 len=4 span[header_field]="Host" +off=41 header_field complete +off=42 len=14 span[header_value]="localhost:5000" +off=58 header_value complete +off=58 len=1 span[header_field]="x" +off=60 header_field complete +off=61 len=0 span[header_value]="" +off=61 header_value complete +off=61 len=17 span[header_field]="Transfer-Encoding" +off=79 header_field complete +off=80 len=7 span[header_value]="chunked" +off=89 header_value complete +off=91 headers complete method=3 v=1/1 flags=20a content_length=0 +off=94 chunk header len=1 +off=94 len=1 span[body]="A" +off=97 chunk complete +off=100 chunk header len=0 +``` \ No newline at end of file diff --git a/vendor/llhttp/test/request/lenient-version.md b/vendor/llhttp/test/request/lenient-version.md new file mode 100644 index 0000000..4185556 --- /dev/null +++ b/vendor/llhttp/test/request/lenient-version.md @@ -0,0 +1,23 @@ +Lenient HTTP version parsing +============================ + +### Invalid HTTP version (lenient) + + +```http +GET / HTTP/5.6 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="5.6" +off=14 version complete +off=18 headers complete method=1 v=5/6 flags=0 content_length=0 +off=18 message complete +``` \ No newline at end of file diff --git a/vendor/llhttp/test/request/method.md b/vendor/llhttp/test/request/method.md new file mode 100644 index 0000000..dce262e --- /dev/null +++ b/vendor/llhttp/test/request/method.md @@ -0,0 +1,450 @@ +Methods +======= + +### REPORT request + + +```http +REPORT /test HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=6 span[method]="REPORT" +off=6 method complete +off=7 len=5 span[url]="/test" +off=13 url complete +off=18 len=3 span[version]="1.1" +off=21 version complete +off=25 headers complete method=20 v=1/1 flags=0 content_length=0 +off=25 message complete +``` + +### CONNECT request + + +```http +CONNECT 0-home0.netscape.com:443 HTTP/1.0 +User-agent: Mozilla/1.1N +Proxy-authorization: basic aGVsbG86d29ybGQ= + +some data +and yet even more data +``` + +```log +off=0 message begin +off=0 len=7 span[method]="CONNECT" +off=7 method complete +off=8 len=24 span[url]="0-home0.netscape.com:443" +off=33 url complete +off=38 len=3 span[version]="1.0" +off=41 version complete +off=43 len=10 span[header_field]="User-agent" +off=54 header_field complete +off=55 len=12 span[header_value]="Mozilla/1.1N" +off=69 header_value complete +off=69 len=19 span[header_field]="Proxy-authorization" +off=89 header_field complete +off=90 len=22 span[header_value]="basic aGVsbG86d29ybGQ=" +off=114 header_value complete +off=116 headers complete method=5 v=1/0 flags=0 content_length=0 +off=116 message complete +off=116 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +### CONNECT request with CAPS + + +```http +CONNECT HOME0.NETSCAPE.COM:443 HTTP/1.0 +User-agent: Mozilla/1.1N +Proxy-authorization: basic aGVsbG86d29ybGQ= + + +``` + +```log +off=0 message begin +off=0 len=7 span[method]="CONNECT" +off=7 method complete +off=8 len=22 span[url]="HOME0.NETSCAPE.COM:443" +off=31 url complete +off=36 len=3 span[version]="1.0" +off=39 version complete +off=41 len=10 span[header_field]="User-agent" +off=52 header_field complete +off=53 len=12 span[header_value]="Mozilla/1.1N" +off=67 header_value complete +off=67 len=19 span[header_field]="Proxy-authorization" +off=87 header_field complete +off=88 len=22 span[header_value]="basic aGVsbG86d29ybGQ=" +off=112 header_value complete +off=114 headers complete method=5 v=1/0 flags=0 content_length=0 +off=114 message complete +off=114 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +### CONNECT with body + + +```http +CONNECT foo.bar.com:443 HTTP/1.0 +User-agent: Mozilla/1.1N +Proxy-authorization: basic aGVsbG86d29ybGQ= +Content-Length: 10 + +blarfcicle" +``` + +```log +off=0 message begin +off=0 len=7 span[method]="CONNECT" +off=7 method complete +off=8 len=15 span[url]="foo.bar.com:443" +off=24 url complete +off=29 len=3 span[version]="1.0" +off=32 version complete +off=34 len=10 span[header_field]="User-agent" +off=45 header_field complete +off=46 len=12 span[header_value]="Mozilla/1.1N" +off=60 header_value complete +off=60 len=19 span[header_field]="Proxy-authorization" +off=80 header_field complete +off=81 len=22 span[header_value]="basic aGVsbG86d29ybGQ=" +off=105 header_value complete +off=105 len=14 span[header_field]="Content-Length" +off=120 header_field complete +off=121 len=2 span[header_value]="10" +off=125 header_value complete +off=127 headers complete method=5 v=1/0 flags=20 content_length=10 +off=127 message complete +off=127 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +### M-SEARCH request + + +```http +M-SEARCH * HTTP/1.1 +HOST: 239.255.255.250:1900 +MAN: "ssdp:discover" +ST: "ssdp:all" + + +``` + +```log +off=0 message begin +off=0 len=8 span[method]="M-SEARCH" +off=8 method complete +off=9 len=1 span[url]="*" +off=11 url complete +off=16 len=3 span[version]="1.1" +off=19 version complete +off=21 len=4 span[header_field]="HOST" +off=26 header_field complete +off=27 len=20 span[header_value]="239.255.255.250:1900" +off=49 header_value complete +off=49 len=3 span[header_field]="MAN" +off=53 header_field complete +off=54 len=15 span[header_value]=""ssdp:discover"" +off=71 header_value complete +off=71 len=2 span[header_field]="ST" +off=74 header_field complete +off=75 len=10 span[header_value]=""ssdp:all"" +off=87 header_value complete +off=89 headers complete method=24 v=1/1 flags=0 content_length=0 +off=89 message complete +``` + +### PATCH request + + +```http +PATCH /file.txt HTTP/1.1 +Host: www.example.com +Content-Type: application/example +If-Match: "e0023aa4e" +Content-Length: 10 + +cccccccccc +``` + +```log +off=0 message begin +off=0 len=5 span[method]="PATCH" +off=5 method complete +off=6 len=9 span[url]="/file.txt" +off=16 url complete +off=21 len=3 span[version]="1.1" +off=24 version complete +off=26 len=4 span[header_field]="Host" +off=31 header_field complete +off=32 len=15 span[header_value]="www.example.com" +off=49 header_value complete +off=49 len=12 span[header_field]="Content-Type" +off=62 header_field complete +off=63 len=19 span[header_value]="application/example" +off=84 header_value complete +off=84 len=8 span[header_field]="If-Match" +off=93 header_field complete +off=94 len=11 span[header_value]=""e0023aa4e"" +off=107 header_value complete +off=107 len=14 span[header_field]="Content-Length" +off=122 header_field complete +off=123 len=2 span[header_value]="10" +off=127 header_value complete +off=129 headers complete method=28 v=1/1 flags=20 content_length=10 +off=129 len=10 span[body]="cccccccccc" +off=139 message complete +``` + +### PURGE request + + +```http +PURGE /file.txt HTTP/1.1 +Host: www.example.com + + +``` + +```log +off=0 message begin +off=0 len=5 span[method]="PURGE" +off=5 method complete +off=6 len=9 span[url]="/file.txt" +off=16 url complete +off=21 len=3 span[version]="1.1" +off=24 version complete +off=26 len=4 span[header_field]="Host" +off=31 header_field complete +off=32 len=15 span[header_value]="www.example.com" +off=49 header_value complete +off=51 headers complete method=29 v=1/1 flags=0 content_length=0 +off=51 message complete +``` + +### SEARCH request + + +```http +SEARCH / HTTP/1.1 +Host: www.example.com + + +``` + +```log +off=0 message begin +off=0 len=6 span[method]="SEARCH" +off=6 method complete +off=7 len=1 span[url]="/" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=4 span[header_field]="Host" +off=24 header_field complete +off=25 len=15 span[header_value]="www.example.com" +off=42 header_value complete +off=44 headers complete method=14 v=1/1 flags=0 content_length=0 +off=44 message complete +``` + +### LINK request + + +```http +LINK /images/my_dog.jpg HTTP/1.1 +Host: example.com +Link: ; rel="tag" +Link: ; rel="tag" + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="LINK" +off=4 method complete +off=5 len=18 span[url]="/images/my_dog.jpg" +off=24 url complete +off=29 len=3 span[version]="1.1" +off=32 version complete +off=34 len=4 span[header_field]="Host" +off=39 header_field complete +off=40 len=11 span[header_value]="example.com" +off=53 header_value complete +off=53 len=4 span[header_field]="Link" +off=58 header_field complete +off=59 len=44 span[header_value]="; rel="tag"" +off=105 header_value complete +off=105 len=4 span[header_field]="Link" +off=110 header_field complete +off=111 len=46 span[header_value]="; rel="tag"" +off=159 header_value complete +off=161 headers complete method=31 v=1/1 flags=0 content_length=0 +off=161 message complete +``` + +### LINK request + + +```http +UNLINK /images/my_dog.jpg HTTP/1.1 +Host: example.com +Link: ; rel="tag" + + +``` + +```log +off=0 message begin +off=0 len=6 span[method]="UNLINK" +off=6 method complete +off=7 len=18 span[url]="/images/my_dog.jpg" +off=26 url complete +off=31 len=3 span[version]="1.1" +off=34 version complete +off=36 len=4 span[header_field]="Host" +off=41 header_field complete +off=42 len=11 span[header_value]="example.com" +off=55 header_value complete +off=55 len=4 span[header_field]="Link" +off=60 header_field complete +off=61 len=46 span[header_value]="; rel="tag"" +off=109 header_value complete +off=111 headers complete method=32 v=1/1 flags=0 content_length=0 +off=111 message complete +``` + +### SOURCE request + + +```http +SOURCE /music/sweet/music HTTP/1.1 +Host: example.com + + +``` + +```log +off=0 message begin +off=0 len=6 span[method]="SOURCE" +off=6 method complete +off=7 len=18 span[url]="/music/sweet/music" +off=26 url complete +off=31 len=3 span[version]="1.1" +off=34 version complete +off=36 len=4 span[header_field]="Host" +off=41 header_field complete +off=42 len=11 span[header_value]="example.com" +off=55 header_value complete +off=57 headers complete method=33 v=1/1 flags=0 content_length=0 +off=57 message complete +``` + +### SOURCE request with ICE + + +```http +SOURCE /music/sweet/music ICE/1.0 +Host: example.com + + +``` + +```log +off=0 message begin +off=0 len=6 span[method]="SOURCE" +off=6 method complete +off=7 len=18 span[url]="/music/sweet/music" +off=26 url complete +off=30 len=3 span[version]="1.0" +off=33 version complete +off=35 len=4 span[header_field]="Host" +off=40 header_field complete +off=41 len=11 span[header_value]="example.com" +off=54 header_value complete +off=56 headers complete method=33 v=1/0 flags=0 content_length=0 +off=56 message complete +``` + +### OPTIONS request with RTSP + +NOTE: `OPTIONS` is a valid HTTP metho too. + + +```http +OPTIONS /music/sweet/music RTSP/1.0 +Host: example.com + + +``` + +```log +off=0 message begin +off=0 len=7 span[method]="OPTIONS" +off=7 method complete +off=8 len=18 span[url]="/music/sweet/music" +off=27 url complete +off=32 len=3 span[version]="1.0" +off=35 version complete +off=37 len=4 span[header_field]="Host" +off=42 header_field complete +off=43 len=11 span[header_value]="example.com" +off=56 header_value complete +off=58 headers complete method=6 v=1/0 flags=0 content_length=0 +off=58 message complete +``` + +### ANNOUNCE request with RTSP + + +```http +ANNOUNCE /music/sweet/music RTSP/1.0 +Host: example.com + + +``` + +```log +off=0 message begin +off=0 len=8 span[method]="ANNOUNCE" +off=8 method complete +off=9 len=18 span[url]="/music/sweet/music" +off=28 url complete +off=33 len=3 span[version]="1.0" +off=36 version complete +off=38 len=4 span[header_field]="Host" +off=43 header_field complete +off=44 len=11 span[header_value]="example.com" +off=57 header_value complete +off=59 headers complete method=36 v=1/0 flags=0 content_length=0 +off=59 message complete +``` + +### PRI request HTTP2 + + +```http +PRI * HTTP/1.1 + +SM + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PRI" +off=3 method complete +off=4 len=1 span[url]="*" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=24 error code=23 reason="Pause on PRI/Upgrade" +``` diff --git a/vendor/llhttp/test/request/pausing.md b/vendor/llhttp/test/request/pausing.md new file mode 100644 index 0000000..8e501e3 --- /dev/null +++ b/vendor/llhttp/test/request/pausing.md @@ -0,0 +1,381 @@ +Pausing +======= + +### on_message_begin + + +```http +POST / HTTP/1.1 +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=0 pause +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete method=3 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_message_complete + + +```http +POST / HTTP/1.1 +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete method=3 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +off=41 pause +``` + +### on_method_complete + + +```http +POST / HTTP/1.1 +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=4 pause +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete method=3 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_url_complete + + +```http +POST / HTTP/1.1 +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=7 pause +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete method=3 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_version_complete + + +```http +POST / HTTP/1.1 +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=15 pause +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete method=3 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_header_field_complete + + +```http +POST / HTTP/1.1 +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=32 pause +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete method=3 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_header_value_complete + + +```http +POST / HTTP/1.1 +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=36 pause +off=38 headers complete method=3 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_headers_complete + + +```http +POST / HTTP/1.1 +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete method=3 v=1/1 flags=20 content_length=3 +off=38 pause +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_chunk_header + + +```http +PUT / HTTP/1.1 +Transfer-Encoding: chunked + +a +0123456789 +0 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=17 span[header_field]="Transfer-Encoding" +off=34 header_field complete +off=35 len=7 span[header_value]="chunked" +off=44 header_value complete +off=46 headers complete method=4 v=1/1 flags=208 content_length=0 +off=49 chunk header len=10 +off=49 pause +off=49 len=10 span[body]="0123456789" +off=61 chunk complete +off=64 chunk header len=0 +off=64 pause +off=66 chunk complete +off=66 message complete +``` + +### on_chunk_extension_name + + +```http +PUT / HTTP/1.1 +Transfer-Encoding: chunked + +a;foo=bar +0123456789 +0 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=17 span[header_field]="Transfer-Encoding" +off=34 header_field complete +off=35 len=7 span[header_value]="chunked" +off=44 header_value complete +off=46 headers complete method=4 v=1/1 flags=208 content_length=0 +off=48 len=3 span[chunk_extension_name]="foo" +off=52 chunk_extension_name complete +off=52 pause +off=52 len=3 span[chunk_extension_value]="bar" +off=56 chunk_extension_value complete +off=57 chunk header len=10 +off=57 len=10 span[body]="0123456789" +off=69 chunk complete +off=72 chunk header len=0 +off=74 chunk complete +off=74 message complete +``` + +### on_chunk_extension_value + + +```http +PUT / HTTP/1.1 +Transfer-Encoding: chunked + +a;foo=bar +0123456789 +0 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=17 span[header_field]="Transfer-Encoding" +off=34 header_field complete +off=35 len=7 span[header_value]="chunked" +off=44 header_value complete +off=46 headers complete method=4 v=1/1 flags=208 content_length=0 +off=48 len=3 span[chunk_extension_name]="foo" +off=52 chunk_extension_name complete +off=52 len=3 span[chunk_extension_value]="bar" +off=56 chunk_extension_value complete +off=56 pause +off=57 chunk header len=10 +off=57 len=10 span[body]="0123456789" +off=69 chunk complete +off=72 chunk header len=0 +off=74 chunk complete +off=74 message complete +``` + + +### on_chunk_complete + + +```http +PUT / HTTP/1.1 +Transfer-Encoding: chunked + +a +0123456789 +0 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=17 span[header_field]="Transfer-Encoding" +off=34 header_field complete +off=35 len=7 span[header_value]="chunked" +off=44 header_value complete +off=46 headers complete method=4 v=1/1 flags=208 content_length=0 +off=49 chunk header len=10 +off=49 len=10 span[body]="0123456789" +off=61 chunk complete +off=61 pause +off=64 chunk header len=0 +off=66 chunk complete +off=66 pause +off=66 message complete +``` diff --git a/vendor/llhttp/test/request/pipelining.md b/vendor/llhttp/test/request/pipelining.md new file mode 100644 index 0000000..bdfe6ab --- /dev/null +++ b/vendor/llhttp/test/request/pipelining.md @@ -0,0 +1,66 @@ +Pipelining +========== + +## Should parse multiple events + + +```http +POST /aaa HTTP/1.1 +Content-Length: 3 + +AAA +PUT /bbb HTTP/1.1 +Content-Length: 4 + +BBBB +PATCH /ccc HTTP/1.1 +Content-Length: 5 + +CCCC +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=4 span[url]="/aaa" +off=10 url complete +off=15 len=3 span[version]="1.1" +off=18 version complete +off=20 len=14 span[header_field]="Content-Length" +off=35 header_field complete +off=36 len=1 span[header_value]="3" +off=39 header_value complete +off=41 headers complete method=3 v=1/1 flags=20 content_length=3 +off=41 len=3 span[body]="AAA" +off=44 message complete +off=46 reset +off=46 message begin +off=46 len=3 span[method]="PUT" +off=49 method complete +off=50 len=4 span[url]="/bbb" +off=55 url complete +off=60 len=3 span[version]="1.1" +off=63 version complete +off=65 len=14 span[header_field]="Content-Length" +off=80 header_field complete +off=81 len=1 span[header_value]="4" +off=84 header_value complete +off=86 headers complete method=4 v=1/1 flags=20 content_length=4 +off=86 len=4 span[body]="BBBB" +off=90 message complete +off=92 reset +off=92 message begin +off=92 len=5 span[method]="PATCH" +off=97 method complete +off=98 len=4 span[url]="/ccc" +off=103 url complete +off=108 len=3 span[version]="1.1" +off=111 version complete +off=113 len=14 span[header_field]="Content-Length" +off=128 header_field complete +off=129 len=1 span[header_value]="5" +off=132 header_value complete +off=134 headers complete method=28 v=1/1 flags=20 content_length=5 +off=134 len=4 span[body]="CCCC" +``` \ No newline at end of file diff --git a/vendor/llhttp/test/request/sample.md b/vendor/llhttp/test/request/sample.md new file mode 100644 index 0000000..f0a5d44 --- /dev/null +++ b/vendor/llhttp/test/request/sample.md @@ -0,0 +1,629 @@ +Sample requests +=============== + +Lots of sample requests, most ported from [http_parser][0] test suite. + +## Simple request + + +```http +OPTIONS /url HTTP/1.1 +Header1: Value1 +Header2:\t Value2 + + +``` + +```log +off=0 message begin +off=0 len=7 span[method]="OPTIONS" +off=7 method complete +off=8 len=4 span[url]="/url" +off=13 url complete +off=18 len=3 span[version]="1.1" +off=21 version complete +off=23 len=7 span[header_field]="Header1" +off=31 header_field complete +off=32 len=6 span[header_value]="Value1" +off=40 header_value complete +off=40 len=7 span[header_field]="Header2" +off=48 header_field complete +off=50 len=6 span[header_value]="Value2" +off=58 header_value complete +off=60 headers complete method=6 v=1/1 flags=0 content_length=0 +off=60 message complete +``` + +## Request with method starting with `H` + +There's a optimization in `start_req_or_res` that passes execution to +`start_req` when the first character is not `H` (because response must start +with `HTTP/`). However, there're still methods like `HEAD` that should get +to `start_req`. Verify that it still works after optimization. + + +```http +HEAD /url HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="HEAD" +off=4 method complete +off=5 len=4 span[url]="/url" +off=10 url complete +off=15 len=3 span[version]="1.1" +off=18 version complete +off=22 headers complete method=2 v=1/1 flags=0 content_length=0 +off=22 message complete +``` + +## curl GET + + +```http +GET /test HTTP/1.1 +User-Agent: curl/7.18.0 (i486-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1 +Host: 0.0.0.0=5000 +Accept: */* + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=5 span[url]="/test" +off=10 url complete +off=15 len=3 span[version]="1.1" +off=18 version complete +off=20 len=10 span[header_field]="User-Agent" +off=31 header_field complete +off=32 len=85 span[header_value]="curl/7.18.0 (i486-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1" +off=119 header_value complete +off=119 len=4 span[header_field]="Host" +off=124 header_field complete +off=125 len=12 span[header_value]="0.0.0.0=5000" +off=139 header_value complete +off=139 len=6 span[header_field]="Accept" +off=146 header_field complete +off=147 len=3 span[header_value]="*/*" +off=152 header_value complete +off=154 headers complete method=1 v=1/1 flags=0 content_length=0 +off=154 message complete +``` + +## Firefox GET + + +```http +GET /favicon.ico HTTP/1.1 +Host: 0.0.0.0=5000 +User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008061015 Firefox/3.0 +Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 +Accept-Language: en-us,en;q=0.5 +Accept-Encoding: gzip,deflate +Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 +Keep-Alive: 300 +Connection: keep-alive + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=12 span[url]="/favicon.ico" +off=17 url complete +off=22 len=3 span[version]="1.1" +off=25 version complete +off=27 len=4 span[header_field]="Host" +off=32 header_field complete +off=33 len=12 span[header_value]="0.0.0.0=5000" +off=47 header_value complete +off=47 len=10 span[header_field]="User-Agent" +off=58 header_field complete +off=59 len=76 span[header_value]="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008061015 Firefox/3.0" +off=137 header_value complete +off=137 len=6 span[header_field]="Accept" +off=144 header_field complete +off=145 len=63 span[header_value]="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" +off=210 header_value complete +off=210 len=15 span[header_field]="Accept-Language" +off=226 header_field complete +off=227 len=14 span[header_value]="en-us,en;q=0.5" +off=243 header_value complete +off=243 len=15 span[header_field]="Accept-Encoding" +off=259 header_field complete +off=260 len=12 span[header_value]="gzip,deflate" +off=274 header_value complete +off=274 len=14 span[header_field]="Accept-Charset" +off=289 header_field complete +off=290 len=30 span[header_value]="ISO-8859-1,utf-8;q=0.7,*;q=0.7" +off=322 header_value complete +off=322 len=10 span[header_field]="Keep-Alive" +off=333 header_field complete +off=334 len=3 span[header_value]="300" +off=339 header_value complete +off=339 len=10 span[header_field]="Connection" +off=350 header_field complete +off=351 len=10 span[header_value]="keep-alive" +off=363 header_value complete +off=365 headers complete method=1 v=1/1 flags=1 content_length=0 +off=365 message complete +``` + +## DUMBPACK + + +```http +GET /dumbpack HTTP/1.1 +aaaaaaaaaaaaa:++++++++++ + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=9 span[url]="/dumbpack" +off=14 url complete +off=19 len=3 span[version]="1.1" +off=22 version complete +off=24 len=13 span[header_field]="aaaaaaaaaaaaa" +off=38 header_field complete +off=38 len=10 span[header_value]="++++++++++" +off=50 header_value complete +off=52 headers complete method=1 v=1/1 flags=0 content_length=0 +off=52 message complete +``` + +## No headers and no body + + +```http +GET /get_no_headers_no_body/world HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=29 span[url]="/get_no_headers_no_body/world" +off=34 url complete +off=39 len=3 span[version]="1.1" +off=42 version complete +off=46 headers complete method=1 v=1/1 flags=0 content_length=0 +off=46 message complete +``` + +## One header and no body + + +```http +GET /get_one_header_no_body HTTP/1.1 +Accept: */* + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=23 span[url]="/get_one_header_no_body" +off=28 url complete +off=33 len=3 span[version]="1.1" +off=36 version complete +off=38 len=6 span[header_field]="Accept" +off=45 header_field complete +off=46 len=3 span[header_value]="*/*" +off=51 header_value complete +off=53 headers complete method=1 v=1/1 flags=0 content_length=0 +off=53 message complete +``` + +## Apache bench GET + +The server receiving this request SHOULD NOT wait for EOF to know that +`Content-Length == 0`. + + +```http +GET /test HTTP/1.0 +Host: 0.0.0.0:5000 +User-Agent: ApacheBench/2.3 +Accept: */* + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=5 span[url]="/test" +off=10 url complete +off=15 len=3 span[version]="1.0" +off=18 version complete +off=20 len=4 span[header_field]="Host" +off=25 header_field complete +off=26 len=12 span[header_value]="0.0.0.0:5000" +off=40 header_value complete +off=40 len=10 span[header_field]="User-Agent" +off=51 header_field complete +off=52 len=15 span[header_value]="ApacheBench/2.3" +off=69 header_value complete +off=69 len=6 span[header_field]="Accept" +off=76 header_field complete +off=77 len=3 span[header_value]="*/*" +off=82 header_value complete +off=84 headers complete method=1 v=1/0 flags=0 content_length=0 +off=84 message complete +``` + +## Prefix newline + +Some clients, especially after a POST in a keep-alive connection, +will send an extra CRLF before the next request. + + +```http +\r\nGET /test HTTP/1.1 + + +``` + +```log +off=2 message begin +off=2 len=3 span[method]="GET" +off=5 method complete +off=6 len=5 span[url]="/test" +off=12 url complete +off=17 len=3 span[version]="1.1" +off=20 version complete +off=24 headers complete method=1 v=1/1 flags=0 content_length=0 +off=24 message complete +``` + +## No HTTP version + + +```http +GET / + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=7 url complete +off=9 headers complete method=1 v=0/9 flags=0 content_length=0 +off=9 message complete +``` + +## Line folding in header value with CRLF + + +```http +GET / HTTP/1.1 +Line1: abc +\tdef + ghi +\t\tjkl + mno +\t \tqrs +Line2: \t line2\t +Line3: + line3 +Line4: + +Connection: + close + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=5 span[header_field]="Line1" +off=22 header_field complete +off=25 len=3 span[header_value]="abc" +off=30 len=4 span[header_value]="\tdef" +off=36 len=4 span[header_value]=" ghi" +off=42 len=5 span[header_value]="\t\tjkl" +off=49 len=6 span[header_value]=" mno " +off=57 len=6 span[header_value]="\t \tqrs" +off=65 header_value complete +off=65 len=5 span[header_field]="Line2" +off=71 header_field complete +off=74 len=6 span[header_value]="line2\t" +off=82 header_value complete +off=82 len=5 span[header_field]="Line3" +off=88 header_field complete +off=91 len=5 span[header_value]="line3" +off=98 header_value complete +off=98 len=5 span[header_field]="Line4" +off=104 header_field complete +off=110 len=0 span[header_value]="" +off=110 header_value complete +off=110 len=10 span[header_field]="Connection" +off=121 header_field complete +off=124 len=5 span[header_value]="close" +off=131 header_value complete +off=133 headers complete method=1 v=1/1 flags=2 content_length=0 +off=133 message complete +``` + +## Line folding in header value with LF + + + +```http +GET / HTTP/1.1 +Line1: abc\n\ +\tdef\n\ + ghi\n\ +\t\tjkl\n\ + mno \n\ +\t \tqrs\n\ +Line2: \t line2\t\n\ +Line3:\n\ + line3\n\ +Line4: \n\ + \n\ +Connection:\n\ + close\n\ +\n +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=5 span[header_field]="Line1" +off=22 header_field complete +off=25 len=3 span[header_value]="abc" +off=28 error code=25 reason="Missing expected CR after header value" +``` + +## No LF after CR + + + +```http +GET / HTTP/1.1\rLine: 1 + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=15 error code=2 reason="Expected CRLF after version" +``` + +## No LF after CR (lenient) + + + +```http +GET / HTTP/1.1\rLine: 1 + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=15 len=4 span[header_field]="Line" +off=20 header_field complete +off=21 len=1 span[header_value]="1" +``` + +## Request starting with CRLF + + +```http +\r\nGET /url HTTP/1.1 +Header1: Value1 + + +``` + +```log +off=2 message begin +off=2 len=3 span[method]="GET" +off=5 method complete +off=6 len=4 span[url]="/url" +off=11 url complete +off=16 len=3 span[version]="1.1" +off=19 version complete +off=21 len=7 span[header_field]="Header1" +off=29 header_field complete +off=30 len=6 span[header_value]="Value1" +off=38 header_value complete +off=40 headers complete method=1 v=1/1 flags=0 content_length=0 +off=40 message complete +``` + +## Extended Characters + +See nodejs/test/parallel/test-http-headers-obstext.js + + +```http +GET / HTTP/1.1 +Test: Düsseldorf + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=4 span[header_field]="Test" +off=21 header_field complete +off=22 len=11 span[header_value]="Düsseldorf" +off=35 header_value complete +off=37 headers complete method=1 v=1/1 flags=0 content_length=0 +off=37 message complete +``` + +## 255 ASCII in header value + +Note: `Buffer.from([ 0xff ]).toString('latin1') === 'ÿ'`. + + +```http +OPTIONS /url HTTP/1.1 +Header1: Value1 +Header2: \xffValue2 + + +``` + +```log +off=0 message begin +off=0 len=7 span[method]="OPTIONS" +off=7 method complete +off=8 len=4 span[url]="/url" +off=13 url complete +off=18 len=3 span[version]="1.1" +off=21 version complete +off=23 len=7 span[header_field]="Header1" +off=31 header_field complete +off=32 len=6 span[header_value]="Value1" +off=40 header_value complete +off=40 len=7 span[header_field]="Header2" +off=48 header_field complete +off=49 len=8 span[header_value]="ÿValue2" +off=59 header_value complete +off=61 headers complete method=6 v=1/1 flags=0 content_length=0 +off=61 message complete +``` + +## X-SSL-Nonsense + +See nodejs/test/parallel/test-http-headers-obstext.js + + +```http +GET / HTTP/1.1 +X-SSL-Nonsense: -----BEGIN CERTIFICATE----- +\tMIIFbTCCBFWgAwIBAgICH4cwDQYJKoZIhvcNAQEFBQAwcDELMAkGA1UEBhMCVUsx +\tETAPBgNVBAoTCGVTY2llbmNlMRIwEAYDVQQLEwlBdXRob3JpdHkxCzAJBgNVBAMT +\tAkNBMS0wKwYJKoZIhvcNAQkBFh5jYS1vcGVyYXRvckBncmlkLXN1cHBvcnQuYWMu +\tdWswHhcNMDYwNzI3MTQxMzI4WhcNMDcwNzI3MTQxMzI4WjBbMQswCQYDVQQGEwJV +\tSzERMA8GA1UEChMIZVNjaWVuY2UxEzARBgNVBAsTCk1hbmNoZXN0ZXIxCzAJBgNV +\tBAcTmrsogriqMWLAk1DMRcwFQYDVQQDEw5taWNoYWVsIHBhcmQYJKoZIhvcNAQEB +\tBQADggEPADCCAQoCggEBANPEQBgl1IaKdSS1TbhF3hEXSl72G9J+WC/1R64fAcEF +\tW51rEyFYiIeZGx/BVzwXbeBoNUK41OK65sxGuflMo5gLflbwJtHBRIEKAfVVp3YR +\tgW7cMA/s/XKgL1GEC7rQw8lIZT8RApukCGqOVHSi/F1SiFlPDxuDfmdiNzL31+sL +\t0iwHDdNkGjy5pyBSB8Y79dsSJtCW/iaLB0/n8Sj7HgvvZJ7x0fr+RQjYOUUfrePP +\tu2MSpFyf+9BbC/aXgaZuiCvSR+8Snv3xApQY+fULK/xY8h8Ua51iXoQ5jrgu2SqR +\twgA7BUi3G8LFzMBl8FRCDYGUDy7M6QaHXx1ZWIPWNKsCAwEAAaOCAiQwggIgMAwG +\tA1UdEwEB/wQCMAAwEQYJYIZIAYb4QgHTTPAQDAgWgMA4GA1UdDwEB/wQEAwID6DAs +\tBglghkgBhvhCAQ0EHxYdVUsgZS1TY2llbmNlIFVzZXIgQ2VydGlmaWNhdGUwHQYD +\tVR0OBBYEFDTt/sf9PeMaZDHkUIldrDYMNTBZMIGaBgNVHSMEgZIwgY+AFAI4qxGj +\tloCLDdMVKwiljjDastqooXSkcjBwMQswCQYDVQQGEwJVSzERMA8GA1UEChMIZVNj +\taWVuY2UxEjAQBgNVBAsTCUF1dGhvcml0eTELMAkGA1UEAxMCQ0ExLTArBgkqhkiG +\t9w0BCQEWHmNhLW9wZXJhdG9yQGdyaWQtc3VwcG9ydC5hYy51a4IBADApBgNVHRIE +\tIjAggR5jYS1vcGVyYXRvckBncmlkLXN1cHBvcnQuYWMudWswGQYDVR0gBBIwEDAO +\tBgwrBgEEAdkvAQEBAQYwPQYJYIZIAYb4QgEEBDAWLmh0dHA6Ly9jYS5ncmlkLXN1 +\tcHBvcnQuYWMudmT4sopwqlBWsvcHViL2NybC9jYWNybC5jcmwwPQYJYIZIAYb4QgEDBDAWLmh0 +\tdHA6Ly9jYS5ncmlkLXN1cHBvcnQuYWMudWsvcHViL2NybC9jYWNybC5jcmwwPwYD +\tVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NhLmdyaWQt5hYy51ay9wdWIv +\tY3JsL2NhY3JsLmNybDANBgkqhkiG9w0BAQUFAAOCAQEAS/U4iiooBENGW/Hwmmd3 +\tXCy6Zrt08YjKCzGNjorT98g8uGsqYjSxv/hmi0qlnlHs+k/3Iobc3LjS5AMYr5L8 +\tUO7OSkgFFlLHQyC9JzPfmLCAugvzEbyv4Olnsr8hbxF1MbKZoQxUZtMVu29wjfXk +\thTeApBv7eaKCWpSp7MCbvgzm74izKhu3vlDk9w6qVrxePfGgpKPqfHiOoGhFnbTK +\twTC6o2xq5y0qZ03JonF7OJspEd3I5zKY3E+ov7/ZhW6DqT8UFvsAdjvQbXyhV8Eu +\tYhixw1aKEPzNjNowuIseVogKOLXxWI5vAi5HgXdS0/ES5gDGsABo4fqovUKlgop3 +\tRA== +\t-----END CERTIFICATE----- + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=14 span[header_field]="X-SSL-Nonsense" +off=31 header_field complete +off=34 len=27 span[header_value]="-----BEGIN CERTIFICATE-----" +off=63 len=65 span[header_value]="\tMIIFbTCCBFWgAwIBAgICH4cwDQYJKoZIhvcNAQEFBQAwcDELMAkGA1UEBhMCVUsx" +off=130 len=65 span[header_value]="\tETAPBgNVBAoTCGVTY2llbmNlMRIwEAYDVQQLEwlBdXRob3JpdHkxCzAJBgNVBAMT" +off=197 len=65 span[header_value]="\tAkNBMS0wKwYJKoZIhvcNAQkBFh5jYS1vcGVyYXRvckBncmlkLXN1cHBvcnQuYWMu" +off=264 len=65 span[header_value]="\tdWswHhcNMDYwNzI3MTQxMzI4WhcNMDcwNzI3MTQxMzI4WjBbMQswCQYDVQQGEwJV" +off=331 len=65 span[header_value]="\tSzERMA8GA1UEChMIZVNjaWVuY2UxEzARBgNVBAsTCk1hbmNoZXN0ZXIxCzAJBgNV" +off=398 len=65 span[header_value]="\tBAcTmrsogriqMWLAk1DMRcwFQYDVQQDEw5taWNoYWVsIHBhcmQYJKoZIhvcNAQEB" +off=465 len=65 span[header_value]="\tBQADggEPADCCAQoCggEBANPEQBgl1IaKdSS1TbhF3hEXSl72G9J+WC/1R64fAcEF" +off=532 len=65 span[header_value]="\tW51rEyFYiIeZGx/BVzwXbeBoNUK41OK65sxGuflMo5gLflbwJtHBRIEKAfVVp3YR" +off=599 len=65 span[header_value]="\tgW7cMA/s/XKgL1GEC7rQw8lIZT8RApukCGqOVHSi/F1SiFlPDxuDfmdiNzL31+sL" +off=666 len=65 span[header_value]="\t0iwHDdNkGjy5pyBSB8Y79dsSJtCW/iaLB0/n8Sj7HgvvZJ7x0fr+RQjYOUUfrePP" +off=733 len=65 span[header_value]="\tu2MSpFyf+9BbC/aXgaZuiCvSR+8Snv3xApQY+fULK/xY8h8Ua51iXoQ5jrgu2SqR" +off=800 len=65 span[header_value]="\twgA7BUi3G8LFzMBl8FRCDYGUDy7M6QaHXx1ZWIPWNKsCAwEAAaOCAiQwggIgMAwG" +off=867 len=66 span[header_value]="\tA1UdEwEB/wQCMAAwEQYJYIZIAYb4QgHTTPAQDAgWgMA4GA1UdDwEB/wQEAwID6DAs" +off=935 len=65 span[header_value]="\tBglghkgBhvhCAQ0EHxYdVUsgZS1TY2llbmNlIFVzZXIgQ2VydGlmaWNhdGUwHQYD" +off=1002 len=65 span[header_value]="\tVR0OBBYEFDTt/sf9PeMaZDHkUIldrDYMNTBZMIGaBgNVHSMEgZIwgY+AFAI4qxGj" +off=1069 len=65 span[header_value]="\tloCLDdMVKwiljjDastqooXSkcjBwMQswCQYDVQQGEwJVSzERMA8GA1UEChMIZVNj" +off=1136 len=65 span[header_value]="\taWVuY2UxEjAQBgNVBAsTCUF1dGhvcml0eTELMAkGA1UEAxMCQ0ExLTArBgkqhkiG" +off=1203 len=65 span[header_value]="\t9w0BCQEWHmNhLW9wZXJhdG9yQGdyaWQtc3VwcG9ydC5hYy51a4IBADApBgNVHRIE" +off=1270 len=65 span[header_value]="\tIjAggR5jYS1vcGVyYXRvckBncmlkLXN1cHBvcnQuYWMudWswGQYDVR0gBBIwEDAO" +off=1337 len=65 span[header_value]="\tBgwrBgEEAdkvAQEBAQYwPQYJYIZIAYb4QgEEBDAWLmh0dHA6Ly9jYS5ncmlkLXN1" +off=1404 len=75 span[header_value]="\tcHBvcnQuYWMudmT4sopwqlBWsvcHViL2NybC9jYWNybC5jcmwwPQYJYIZIAYb4QgEDBDAWLmh0" +off=1481 len=65 span[header_value]="\tdHA6Ly9jYS5ncmlkLXN1cHBvcnQuYWMudWsvcHViL2NybC9jYWNybC5jcmwwPwYD" +off=1548 len=55 span[header_value]="\tVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NhLmdyaWQt5hYy51ay9wdWIv" +off=1605 len=65 span[header_value]="\tY3JsL2NhY3JsLmNybDANBgkqhkiG9w0BAQUFAAOCAQEAS/U4iiooBENGW/Hwmmd3" +off=1672 len=65 span[header_value]="\tXCy6Zrt08YjKCzGNjorT98g8uGsqYjSxv/hmi0qlnlHs+k/3Iobc3LjS5AMYr5L8" +off=1739 len=65 span[header_value]="\tUO7OSkgFFlLHQyC9JzPfmLCAugvzEbyv4Olnsr8hbxF1MbKZoQxUZtMVu29wjfXk" +off=1806 len=65 span[header_value]="\thTeApBv7eaKCWpSp7MCbvgzm74izKhu3vlDk9w6qVrxePfGgpKPqfHiOoGhFnbTK" +off=1873 len=65 span[header_value]="\twTC6o2xq5y0qZ03JonF7OJspEd3I5zKY3E+ov7/ZhW6DqT8UFvsAdjvQbXyhV8Eu" +off=1940 len=65 span[header_value]="\tYhixw1aKEPzNjNowuIseVogKOLXxWI5vAi5HgXdS0/ES5gDGsABo4fqovUKlgop3" +off=2007 len=5 span[header_value]="\tRA==" +off=2014 len=26 span[header_value]="\t-----END CERTIFICATE-----" +off=2042 header_value complete +off=2044 headers complete method=1 v=1/1 flags=0 content_length=0 +off=2044 message complete +``` + +[0]: https://github.com/nodejs/http-parser diff --git a/vendor/llhttp/test/request/transfer-encoding.md b/vendor/llhttp/test/request/transfer-encoding.md new file mode 100644 index 0000000..0f839bc --- /dev/null +++ b/vendor/llhttp/test/request/transfer-encoding.md @@ -0,0 +1,1187 @@ +Transfer-Encoding header +======================== + +## `chunked` + +### Parsing and setting flag + + +```http +PUT /url HTTP/1.1 +Transfer-Encoding: chunked + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=17 span[header_field]="Transfer-Encoding" +off=37 header_field complete +off=38 len=7 span[header_value]="chunked" +off=47 header_value complete +off=49 headers complete method=4 v=1/1 flags=208 content_length=0 +``` + +### Parse chunks with lowercase size + + +```http +PUT /url HTTP/1.1 +Transfer-Encoding: chunked + +a +0123456789 +0 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=17 span[header_field]="Transfer-Encoding" +off=37 header_field complete +off=38 len=7 span[header_value]="chunked" +off=47 header_value complete +off=49 headers complete method=4 v=1/1 flags=208 content_length=0 +off=52 chunk header len=10 +off=52 len=10 span[body]="0123456789" +off=64 chunk complete +off=67 chunk header len=0 +off=69 chunk complete +off=69 message complete +``` + +### Parse chunks with uppercase size + + +```http +PUT /url HTTP/1.1 +Transfer-Encoding: chunked + +A +0123456789 +0 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=17 span[header_field]="Transfer-Encoding" +off=37 header_field complete +off=38 len=7 span[header_value]="chunked" +off=47 header_value complete +off=49 headers complete method=4 v=1/1 flags=208 content_length=0 +off=52 chunk header len=10 +off=52 len=10 span[body]="0123456789" +off=64 chunk complete +off=67 chunk header len=0 +off=69 chunk complete +off=69 message complete +``` + +### POST with `Transfer-Encoding: chunked` + + +```http +POST /post_chunked_all_your_base HTTP/1.1 +Transfer-Encoding: chunked + +1e +all your base are belong to us +0 + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=27 span[url]="/post_chunked_all_your_base" +off=33 url complete +off=38 len=3 span[version]="1.1" +off=41 version complete +off=43 len=17 span[header_field]="Transfer-Encoding" +off=61 header_field complete +off=62 len=7 span[header_value]="chunked" +off=71 header_value complete +off=73 headers complete method=3 v=1/1 flags=208 content_length=0 +off=77 chunk header len=30 +off=77 len=30 span[body]="all your base are belong to us" +off=109 chunk complete +off=112 chunk header len=0 +off=114 chunk complete +off=114 message complete +``` + +### Two chunks and triple zero prefixed end chunk + + +```http +POST /two_chunks_mult_zero_end HTTP/1.1 +Transfer-Encoding: chunked + +5 +hello +6 + world +000 + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=25 span[url]="/two_chunks_mult_zero_end" +off=31 url complete +off=36 len=3 span[version]="1.1" +off=39 version complete +off=41 len=17 span[header_field]="Transfer-Encoding" +off=59 header_field complete +off=60 len=7 span[header_value]="chunked" +off=69 header_value complete +off=71 headers complete method=3 v=1/1 flags=208 content_length=0 +off=74 chunk header len=5 +off=74 len=5 span[body]="hello" +off=81 chunk complete +off=84 chunk header len=6 +off=84 len=6 span[body]=" world" +off=92 chunk complete +off=97 chunk header len=0 +off=99 chunk complete +off=99 message complete +``` + +### Trailing headers + + +```http +POST /chunked_w_trailing_headers HTTP/1.1 +Transfer-Encoding: chunked + +5 +hello +6 + world +0 +Vary: * +Content-Type: text/plain + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=27 span[url]="/chunked_w_trailing_headers" +off=33 url complete +off=38 len=3 span[version]="1.1" +off=41 version complete +off=43 len=17 span[header_field]="Transfer-Encoding" +off=61 header_field complete +off=62 len=7 span[header_value]="chunked" +off=71 header_value complete +off=73 headers complete method=3 v=1/1 flags=208 content_length=0 +off=76 chunk header len=5 +off=76 len=5 span[body]="hello" +off=83 chunk complete +off=86 chunk header len=6 +off=86 len=6 span[body]=" world" +off=94 chunk complete +off=97 chunk header len=0 +off=97 len=4 span[header_field]="Vary" +off=102 header_field complete +off=103 len=1 span[header_value]="*" +off=106 header_value complete +off=106 len=12 span[header_field]="Content-Type" +off=119 header_field complete +off=120 len=10 span[header_value]="text/plain" +off=132 header_value complete +off=134 chunk complete +off=134 message complete +``` + +### Chunk extensions + + +```http +POST /chunked_w_unicorns_after_length HTTP/1.1 +Transfer-Encoding: chunked + +5;ilovew3;somuchlove=aretheseparametersfor;another=withvalue +hello +6;blahblah;blah + world +0 + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=32 span[url]="/chunked_w_unicorns_after_length" +off=38 url complete +off=43 len=3 span[version]="1.1" +off=46 version complete +off=48 len=17 span[header_field]="Transfer-Encoding" +off=66 header_field complete +off=67 len=7 span[header_value]="chunked" +off=76 header_value complete +off=78 headers complete method=3 v=1/1 flags=208 content_length=0 +off=80 len=7 span[chunk_extension_name]="ilovew3" +off=88 chunk_extension_name complete +off=88 len=10 span[chunk_extension_name]="somuchlove" +off=99 chunk_extension_name complete +off=99 len=21 span[chunk_extension_value]="aretheseparametersfor" +off=121 chunk_extension_value complete +off=121 len=7 span[chunk_extension_name]="another" +off=129 chunk_extension_name complete +off=129 len=9 span[chunk_extension_value]="withvalue" +off=139 chunk_extension_value complete +off=140 chunk header len=5 +off=140 len=5 span[body]="hello" +off=147 chunk complete +off=149 len=8 span[chunk_extension_name]="blahblah" +off=158 chunk_extension_name complete +off=158 len=4 span[chunk_extension_name]="blah" +off=163 chunk_extension_name complete +off=164 chunk header len=6 +off=164 len=6 span[body]=" world" +off=172 chunk complete +off=175 chunk header len=0 +``` + +### No semicolon before chunk extensions + + +```http +POST /chunked_w_unicorns_after_length HTTP/1.1 +Host: localhost +Transfer-encoding: chunked + +2 erfrferferf +aa +0 rrrr + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=32 span[url]="/chunked_w_unicorns_after_length" +off=38 url complete +off=43 len=3 span[version]="1.1" +off=46 version complete +off=48 len=4 span[header_field]="Host" +off=53 header_field complete +off=54 len=9 span[header_value]="localhost" +off=65 header_value complete +off=65 len=17 span[header_field]="Transfer-encoding" +off=83 header_field complete +off=84 len=7 span[header_value]="chunked" +off=93 header_value complete +off=95 headers complete method=3 v=1/1 flags=208 content_length=0 +off=97 error code=12 reason="Invalid character in chunk size" +``` + +### No extension after semicolon + + +```http +POST /chunked_w_unicorns_after_length HTTP/1.1 +Host: localhost +Transfer-encoding: chunked + +2; +aa +0 + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=32 span[url]="/chunked_w_unicorns_after_length" +off=38 url complete +off=43 len=3 span[version]="1.1" +off=46 version complete +off=48 len=4 span[header_field]="Host" +off=53 header_field complete +off=54 len=9 span[header_value]="localhost" +off=65 header_value complete +off=65 len=17 span[header_field]="Transfer-encoding" +off=83 header_field complete +off=84 len=7 span[header_value]="chunked" +off=93 header_value complete +off=95 headers complete method=3 v=1/1 flags=208 content_length=0 +off=98 error code=2 reason="Invalid character in chunk extensions" +``` + + +### Chunk extensions quoting + + +```http +POST /chunked_w_unicorns_after_length HTTP/1.1 +Transfer-Encoding: chunked + +5;ilovew3="I \"love\"; \\extensions\\";somuchlove="aretheseparametersfor";blah;foo=bar +hello +6;blahblah;blah + world +0 + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=32 span[url]="/chunked_w_unicorns_after_length" +off=38 url complete +off=43 len=3 span[version]="1.1" +off=46 version complete +off=48 len=17 span[header_field]="Transfer-Encoding" +off=66 header_field complete +off=67 len=7 span[header_value]="chunked" +off=76 header_value complete +off=78 headers complete method=3 v=1/1 flags=208 content_length=0 +off=80 len=7 span[chunk_extension_name]="ilovew3" +off=88 chunk_extension_name complete +off=88 len=28 span[chunk_extension_value]=""I \"love\"; \\extensions\\"" +off=116 chunk_extension_value complete +off=117 len=10 span[chunk_extension_name]="somuchlove" +off=128 chunk_extension_name complete +off=128 len=23 span[chunk_extension_value]=""aretheseparametersfor"" +off=151 chunk_extension_value complete +off=152 len=4 span[chunk_extension_name]="blah" +off=157 chunk_extension_name complete +off=157 len=3 span[chunk_extension_name]="foo" +off=161 chunk_extension_name complete +off=161 len=3 span[chunk_extension_value]="bar" +off=165 chunk_extension_value complete +off=166 chunk header len=5 +off=166 len=5 span[body]="hello" +off=173 chunk complete +off=175 len=8 span[chunk_extension_name]="blahblah" +off=184 chunk_extension_name complete +off=184 len=4 span[chunk_extension_name]="blah" +off=189 chunk_extension_name complete +off=190 chunk header len=6 +off=190 len=6 span[body]=" world" +off=198 chunk complete +off=201 chunk header len=0 +``` + + +### Unbalanced chunk extensions quoting + + +```http +POST /chunked_w_unicorns_after_length HTTP/1.1 +Transfer-Encoding: chunked + +5;ilovew3="abc";somuchlove="def; ghi +hello +6;blahblah;blah + world +0 + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=32 span[url]="/chunked_w_unicorns_after_length" +off=38 url complete +off=43 len=3 span[version]="1.1" +off=46 version complete +off=48 len=17 span[header_field]="Transfer-Encoding" +off=66 header_field complete +off=67 len=7 span[header_value]="chunked" +off=76 header_value complete +off=78 headers complete method=3 v=1/1 flags=208 content_length=0 +off=80 len=7 span[chunk_extension_name]="ilovew3" +off=88 chunk_extension_name complete +off=88 len=5 span[chunk_extension_value]=""abc"" +off=93 chunk_extension_value complete +off=94 len=10 span[chunk_extension_name]="somuchlove" +off=105 chunk_extension_name complete +off=105 len=9 span[chunk_extension_value]=""def; ghi" +off=115 error code=2 reason="Invalid character in chunk extensions quoted value" +``` + +## Ignoring `pigeons` + +Requests cannot have invalid `Transfer-Encoding`. It is impossible to determine +their body size. Not erroring would make HTTP smuggling attacks possible. + + +```http +PUT /url HTTP/1.1 +Transfer-Encoding: pigeons + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=17 span[header_field]="Transfer-Encoding" +off=37 header_field complete +off=38 len=7 span[header_value]="pigeons" +off=47 header_value complete +off=49 headers complete method=4 v=1/1 flags=200 content_length=0 +off=49 error code=15 reason="Request has invalid `Transfer-Encoding`" +``` + +## POST with `Transfer-Encoding` and `Content-Length` + + +```http +POST /post_identity_body_world?q=search#hey HTTP/1.1 +Accept: */* +Transfer-Encoding: identity +Content-Length: 5 + +World +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=38 span[url]="/post_identity_body_world?q=search#hey" +off=44 url complete +off=49 len=3 span[version]="1.1" +off=52 version complete +off=54 len=6 span[header_field]="Accept" +off=61 header_field complete +off=62 len=3 span[header_value]="*/*" +off=67 header_value complete +off=67 len=17 span[header_field]="Transfer-Encoding" +off=85 header_field complete +off=86 len=8 span[header_value]="identity" +off=96 header_value complete +off=96 len=14 span[header_field]="Content-Length" +off=111 header_field complete +off=111 error code=11 reason="Content-Length can't be present with Transfer-Encoding" +``` + +## POST with `Transfer-Encoding` and `Content-Length` (lenient) + +TODO(indutny): should we allow it even in lenient mode? (Consider disabling +this). + +NOTE: `Content-Length` is ignored when `Transfer-Encoding` is present. Messages +(in lenient mode) are read until EOF. + + +```http +POST /post_identity_body_world?q=search#hey HTTP/1.1 +Accept: */* +Transfer-Encoding: identity +Content-Length: 1 + +World +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=38 span[url]="/post_identity_body_world?q=search#hey" +off=44 url complete +off=49 len=3 span[version]="1.1" +off=52 version complete +off=54 len=6 span[header_field]="Accept" +off=61 header_field complete +off=62 len=3 span[header_value]="*/*" +off=67 header_value complete +off=67 len=17 span[header_field]="Transfer-Encoding" +off=85 header_field complete +off=86 len=8 span[header_value]="identity" +off=96 header_value complete +off=96 len=14 span[header_field]="Content-Length" +off=111 header_field complete +off=112 len=1 span[header_value]="1" +off=115 header_value complete +off=117 headers complete method=3 v=1/1 flags=220 content_length=1 +off=117 len=5 span[body]="World" +``` + +## POST with empty `Transfer-Encoding` and `Content-Length` (lenient) + + +```http +POST / HTTP/1.1 +Host: foo +Content-Length: 10 +Transfer-Encoding: +Transfer-Encoding: +Transfer-Encoding: + +2 +AA +0 +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=1 span[url]="/" +off=7 url complete +off=12 len=3 span[version]="1.1" +off=15 version complete +off=17 len=4 span[header_field]="Host" +off=22 header_field complete +off=23 len=3 span[header_value]="foo" +off=28 header_value complete +off=28 len=14 span[header_field]="Content-Length" +off=43 header_field complete +off=44 len=2 span[header_value]="10" +off=48 header_value complete +off=48 len=17 span[header_field]="Transfer-Encoding" +off=66 header_field complete +off=66 error code=15 reason="Transfer-Encoding can't be present with Content-Length" +``` + +## POST with `chunked` before other transfer coding names + + +```http +POST /post_identity_body_world?q=search#hey HTTP/1.1 +Accept: */* +Transfer-Encoding: chunked, deflate + +World +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=38 span[url]="/post_identity_body_world?q=search#hey" +off=44 url complete +off=49 len=3 span[version]="1.1" +off=52 version complete +off=54 len=6 span[header_field]="Accept" +off=61 header_field complete +off=62 len=3 span[header_value]="*/*" +off=67 header_value complete +off=67 len=17 span[header_field]="Transfer-Encoding" +off=85 header_field complete +off=86 len=7 span[header_value]="chunked" +off=94 error code=15 reason="Invalid `Transfer-Encoding` header value" +``` + +## POST with `chunked` and duplicate transfer-encoding + + +```http +POST /post_identity_body_world?q=search#hey HTTP/1.1 +Accept: */* +Transfer-Encoding: chunked +Transfer-Encoding: deflate + +World +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=38 span[url]="/post_identity_body_world?q=search#hey" +off=44 url complete +off=49 len=3 span[version]="1.1" +off=52 version complete +off=54 len=6 span[header_field]="Accept" +off=61 header_field complete +off=62 len=3 span[header_value]="*/*" +off=67 header_value complete +off=67 len=17 span[header_field]="Transfer-Encoding" +off=85 header_field complete +off=86 len=7 span[header_value]="chunked" +off=95 header_value complete +off=95 len=17 span[header_field]="Transfer-Encoding" +off=113 header_field complete +off=114 len=0 span[header_value]="" +off=115 error code=15 reason="Invalid `Transfer-Encoding` header value" +``` + +## POST with `chunked` before other transfer-coding (lenient) + + +```http +POST /post_identity_body_world?q=search#hey HTTP/1.1 +Accept: */* +Transfer-Encoding: chunked, deflate + +World +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=38 span[url]="/post_identity_body_world?q=search#hey" +off=44 url complete +off=49 len=3 span[version]="1.1" +off=52 version complete +off=54 len=6 span[header_field]="Accept" +off=61 header_field complete +off=62 len=3 span[header_value]="*/*" +off=67 header_value complete +off=67 len=17 span[header_field]="Transfer-Encoding" +off=85 header_field complete +off=86 len=16 span[header_value]="chunked, deflate" +off=104 header_value complete +off=106 headers complete method=3 v=1/1 flags=200 content_length=0 +off=106 len=5 span[body]="World" +``` + +## POST with `chunked` and duplicate transfer-encoding (lenient) + + +```http +POST /post_identity_body_world?q=search#hey HTTP/1.1 +Accept: */* +Transfer-Encoding: chunked +Transfer-Encoding: deflate + +World +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=38 span[url]="/post_identity_body_world?q=search#hey" +off=44 url complete +off=49 len=3 span[version]="1.1" +off=52 version complete +off=54 len=6 span[header_field]="Accept" +off=61 header_field complete +off=62 len=3 span[header_value]="*/*" +off=67 header_value complete +off=67 len=17 span[header_field]="Transfer-Encoding" +off=85 header_field complete +off=86 len=7 span[header_value]="chunked" +off=95 header_value complete +off=95 len=17 span[header_field]="Transfer-Encoding" +off=113 header_field complete +off=114 len=7 span[header_value]="deflate" +off=123 header_value complete +off=125 headers complete method=3 v=1/1 flags=200 content_length=0 +off=125 len=5 span[body]="World" +``` + +## POST with `chunked` as last transfer-encoding + + +```http +POST /post_identity_body_world?q=search#hey HTTP/1.1 +Accept: */* +Transfer-Encoding: deflate, chunked + +5 +World +0 + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=38 span[url]="/post_identity_body_world?q=search#hey" +off=44 url complete +off=49 len=3 span[version]="1.1" +off=52 version complete +off=54 len=6 span[header_field]="Accept" +off=61 header_field complete +off=62 len=3 span[header_value]="*/*" +off=67 header_value complete +off=67 len=17 span[header_field]="Transfer-Encoding" +off=85 header_field complete +off=86 len=16 span[header_value]="deflate, chunked" +off=104 header_value complete +off=106 headers complete method=3 v=1/1 flags=208 content_length=0 +off=109 chunk header len=5 +off=109 len=5 span[body]="World" +off=116 chunk complete +off=119 chunk header len=0 +off=121 chunk complete +off=121 message complete +``` + +## POST with `chunked` as last transfer-encoding (multiple headers) + + +```http +POST /post_identity_body_world?q=search#hey HTTP/1.1 +Accept: */* +Transfer-Encoding: deflate +Transfer-Encoding: chunked + +5 +World +0 + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=38 span[url]="/post_identity_body_world?q=search#hey" +off=44 url complete +off=49 len=3 span[version]="1.1" +off=52 version complete +off=54 len=6 span[header_field]="Accept" +off=61 header_field complete +off=62 len=3 span[header_value]="*/*" +off=67 header_value complete +off=67 len=17 span[header_field]="Transfer-Encoding" +off=85 header_field complete +off=86 len=7 span[header_value]="deflate" +off=95 header_value complete +off=95 len=17 span[header_field]="Transfer-Encoding" +off=113 header_field complete +off=114 len=7 span[header_value]="chunked" +off=123 header_value complete +off=125 headers complete method=3 v=1/1 flags=208 content_length=0 +off=128 chunk header len=5 +off=128 len=5 span[body]="World" +off=135 chunk complete +off=138 chunk header len=0 +off=140 chunk complete +off=140 message complete +``` + +## POST with `chunkedchunked` as transfer-encoding + + +```http +POST /post_identity_body_world?q=search#hey HTTP/1.1 +Accept: */* +Transfer-Encoding: chunkedchunked + +5 +World +0 + + +``` + +```log +off=0 message begin +off=0 len=4 span[method]="POST" +off=4 method complete +off=5 len=38 span[url]="/post_identity_body_world?q=search#hey" +off=44 url complete +off=49 len=3 span[version]="1.1" +off=52 version complete +off=54 len=6 span[header_field]="Accept" +off=61 header_field complete +off=62 len=3 span[header_value]="*/*" +off=67 header_value complete +off=67 len=17 span[header_field]="Transfer-Encoding" +off=85 header_field complete +off=86 len=14 span[header_value]="chunkedchunked" +off=102 header_value complete +off=104 headers complete method=3 v=1/1 flags=200 content_length=0 +off=104 error code=15 reason="Request has invalid `Transfer-Encoding`" +``` + +## Missing last-chunk + + +```http +PUT /url HTTP/1.1 +Transfer-Encoding: chunked + +3 +foo + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=17 span[header_field]="Transfer-Encoding" +off=37 header_field complete +off=38 len=7 span[header_value]="chunked" +off=47 header_value complete +off=49 headers complete method=4 v=1/1 flags=208 content_length=0 +off=52 chunk header len=3 +off=52 len=3 span[body]="foo" +off=57 chunk complete +off=57 error code=12 reason="Invalid character in chunk size" +``` + +## Validate chunk parameters + + +```http +PUT /url HTTP/1.1 +Transfer-Encoding: chunked + +3 \n \r\n\ +foo + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=17 span[header_field]="Transfer-Encoding" +off=37 header_field complete +off=38 len=7 span[header_value]="chunked" +off=47 header_value complete +off=49 headers complete method=4 v=1/1 flags=208 content_length=0 +off=51 error code=12 reason="Invalid character in chunk size" +``` + +## Invalid OBS fold after chunked value + + +```http +PUT /url HTTP/1.1 +Transfer-Encoding: chunked + abc + +5 +World +0 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=17 span[header_field]="Transfer-Encoding" +off=37 header_field complete +off=38 len=7 span[header_value]="chunked" +off=47 len=5 span[header_value]=" abc" +off=54 header_value complete +off=56 headers complete method=4 v=1/1 flags=200 content_length=0 +off=56 error code=15 reason="Request has invalid `Transfer-Encoding`" +``` + +### Chunk header not terminated by CRLF + + + +```http +GET / HTTP/1.1 +Host: a +Connection: close +Transfer-Encoding: chunked + +5\r\r;ABCD +34 +E +0 + +GET / HTTP/1.1 +Host: a +Content-Length: 5 + +0 + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=4 span[header_field]="Host" +off=21 header_field complete +off=22 len=1 span[header_value]="a" +off=25 header_value complete +off=25 len=10 span[header_field]="Connection" +off=36 header_field complete +off=37 len=6 span[header_value]="close " +off=45 header_value complete +off=45 len=17 span[header_field]="Transfer-Encoding" +off=63 header_field complete +off=64 len=8 span[header_value]="chunked " +off=74 header_value complete +off=76 headers complete method=1 v=1/1 flags=20a content_length=0 +off=78 error code=2 reason="Expected LF after chunk size" +``` + +### Chunk header not terminated by CRLF (lenient) + + + +```http +GET / HTTP/1.1 +Host: a +Connection: close +Transfer-Encoding: chunked + +6\r\r;ABCD +33 +E +0 + +GET / HTTP/1.1 +Host: a +Content-Length: 5 +0 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=4 span[header_field]="Host" +off=21 header_field complete +off=22 len=1 span[header_value]="a" +off=25 header_value complete +off=25 len=10 span[header_field]="Connection" +off=36 header_field complete +off=37 len=6 span[header_value]="close " +off=45 header_value complete +off=45 len=17 span[header_field]="Transfer-Encoding" +off=63 header_field complete +off=64 len=8 span[header_value]="chunked " +off=74 header_value complete +off=76 headers complete method=1 v=1/1 flags=20a content_length=0 +off=78 chunk header len=6 +off=78 len=1 span[body]=cr +off=79 len=5 span[body]=";ABCD" +off=86 chunk complete +off=90 chunk header len=51 +off=90 len=1 span[body]="E" +off=91 len=1 span[body]=cr +off=92 len=1 span[body]=lf +off=93 len=1 span[body]="0" +off=94 len=1 span[body]=cr +off=95 len=1 span[body]=lf +off=96 len=1 span[body]=cr +off=97 len=1 span[body]=lf +off=98 len=15 span[body]="GET / HTTP/1.1 " +off=113 len=1 span[body]=cr +off=114 len=1 span[body]=lf +off=115 len=7 span[body]="Host: a" +off=122 len=1 span[body]=cr +off=123 len=1 span[body]=lf +off=124 len=17 span[body]="Content-Length: 5" +off=143 chunk complete +off=146 chunk header len=0 +off=148 chunk complete +off=148 message complete +``` + +### Chunk data not terminated by CRLF + + + +```http +GET / HTTP/1.1 +Host: a +Connection: close +Transfer-Encoding: chunked + +5 +ABCDE0 + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=4 span[header_field]="Host" +off=21 header_field complete +off=22 len=1 span[header_value]="a" +off=25 header_value complete +off=25 len=10 span[header_field]="Connection" +off=36 header_field complete +off=37 len=6 span[header_value]="close " +off=45 header_value complete +off=45 len=17 span[header_field]="Transfer-Encoding" +off=63 header_field complete +off=64 len=8 span[header_value]="chunked " +off=74 header_value complete +off=76 headers complete method=1 v=1/1 flags=20a content_length=0 +off=79 chunk header len=5 +off=79 len=5 span[body]="ABCDE" +off=84 error code=2 reason="Expected LF after chunk data" +``` + +### Chunk data not terminated by CRLF (lenient) + + + +```http +GET / HTTP/1.1 +Host: a +Connection: close +Transfer-Encoding: chunked + +5 +ABCDE0 + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=1 span[url]="/" +off=6 url complete +off=11 len=3 span[version]="1.1" +off=14 version complete +off=16 len=4 span[header_field]="Host" +off=21 header_field complete +off=22 len=1 span[header_value]="a" +off=25 header_value complete +off=25 len=10 span[header_field]="Connection" +off=36 header_field complete +off=37 len=6 span[header_value]="close " +off=45 header_value complete +off=45 len=17 span[header_field]="Transfer-Encoding" +off=63 header_field complete +off=64 len=8 span[header_value]="chunked " +off=74 header_value complete +off=76 headers complete method=1 v=1/1 flags=20a content_length=0 +off=79 chunk header len=5 +off=79 len=5 span[body]="ABCDE" +off=84 chunk complete +off=87 chunk header len=0 +``` + +## Space after chunk header + + +```http +PUT /url HTTP/1.1 +Transfer-Encoding: chunked + +a \r\n0123456789 +0 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=17 span[header_field]="Transfer-Encoding" +off=37 header_field complete +off=38 len=7 span[header_value]="chunked" +off=47 header_value complete +off=49 headers complete method=4 v=1/1 flags=208 content_length=0 +off=51 error code=12 reason="Invalid character in chunk size" +``` + +## Space after chunk header (lenient) + + +```http +PUT /url HTTP/1.1 +Transfer-Encoding: chunked + +a \r\n0123456789 +0 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="PUT" +off=3 method complete +off=4 len=4 span[url]="/url" +off=9 url complete +off=14 len=3 span[version]="1.1" +off=17 version complete +off=19 len=17 span[header_field]="Transfer-Encoding" +off=37 header_field complete +off=38 len=7 span[header_value]="chunked" +off=47 header_value complete +off=49 headers complete method=4 v=1/1 flags=208 content_length=0 +off=53 chunk header len=10 +off=53 len=10 span[body]="0123456789" +off=65 chunk complete +off=68 chunk header len=0 +off=70 chunk complete +off=70 message complete +``` diff --git a/vendor/llhttp/test/request/uri.md b/vendor/llhttp/test/request/uri.md new file mode 100644 index 0000000..f7f12b0 --- /dev/null +++ b/vendor/llhttp/test/request/uri.md @@ -0,0 +1,243 @@ +URI +=== + +## Quotes in URI + + +```http +GET /with_"lovely"_quotes?foo=\"bar\" HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=33 span[url]="/with_"lovely"_quotes?foo=\"bar\"" +off=38 url complete +off=43 len=3 span[version]="1.1" +off=46 version complete +off=50 headers complete method=1 v=1/1 flags=0 content_length=0 +off=50 message complete +``` + +## Query URL with question mark + +Some clients include `?` characters in query strings. + + +```http +GET /test.cgi?foo=bar?baz HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=21 span[url]="/test.cgi?foo=bar?baz" +off=26 url complete +off=31 len=3 span[version]="1.1" +off=34 version complete +off=38 headers complete method=1 v=1/1 flags=0 content_length=0 +off=38 message complete +``` + +## Host terminated by a query string + + +```http +GET http://hypnotoad.org?hail=all HTTP/1.1\r\n + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=29 span[url]="http://hypnotoad.org?hail=all" +off=34 url complete +off=39 len=3 span[version]="1.1" +off=42 version complete +off=46 headers complete method=1 v=1/1 flags=0 content_length=0 +off=46 message complete +``` + +## `host:port` terminated by a query string + + +```http +GET http://hypnotoad.org:1234?hail=all HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=34 span[url]="http://hypnotoad.org:1234?hail=all" +off=39 url complete +off=44 len=3 span[version]="1.1" +off=47 version complete +off=51 headers complete method=1 v=1/1 flags=0 content_length=0 +off=51 message complete +``` + +## Query URL with vertical bar character + +It should be allowed to have vertical bar symbol in URI: `|`. + +See: https://github.com/nodejs/node/issues/27584 + + +```http +GET /test.cgi?query=| HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=17 span[url]="/test.cgi?query=|" +off=22 url complete +off=27 len=3 span[version]="1.1" +off=30 version complete +off=34 headers complete method=1 v=1/1 flags=0 content_length=0 +off=34 message complete +``` + +## `host:port` terminated by a space + + +```http +GET http://hypnotoad.org:1234 HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=25 span[url]="http://hypnotoad.org:1234" +off=30 url complete +off=35 len=3 span[version]="1.1" +off=38 version complete +off=42 headers complete method=1 v=1/1 flags=0 content_length=0 +off=42 message complete +``` + +## Disallow UTF-8 in URI path in strict mode + + +```http +GET /δ¶/δt/pope?q=1#narf HTTP/1.1 +Host: github.com + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=5 error code=7 reason="Invalid char in url path" +``` + +## Fragment in URI + + +```http +GET /forums/1/topics/2375?page=1#posts-17408 HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=40 span[url]="/forums/1/topics/2375?page=1#posts-17408" +off=45 url complete +off=50 len=3 span[version]="1.1" +off=53 version complete +off=57 headers complete method=1 v=1/1 flags=0 content_length=0 +off=57 message complete +``` + +## Underscore in hostname + + +```http +CONNECT home_0.netscape.com:443 HTTP/1.0 +User-agent: Mozilla/1.1N +Proxy-authorization: basic aGVsbG86d29ybGQ= + + +``` + +```log +off=0 message begin +off=0 len=7 span[method]="CONNECT" +off=7 method complete +off=8 len=23 span[url]="home_0.netscape.com:443" +off=32 url complete +off=37 len=3 span[version]="1.0" +off=40 version complete +off=42 len=10 span[header_field]="User-agent" +off=53 header_field complete +off=54 len=12 span[header_value]="Mozilla/1.1N" +off=68 header_value complete +off=68 len=19 span[header_field]="Proxy-authorization" +off=88 header_field complete +off=89 len=22 span[header_value]="basic aGVsbG86d29ybGQ=" +off=113 header_value complete +off=115 headers complete method=5 v=1/0 flags=0 content_length=0 +off=115 message complete +off=115 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +## `host:port` and basic auth + + +```http +GET http://a%12:b!&*$@hypnotoad.org:1234/toto HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=41 span[url]="http://a%12:b!&*$@hypnotoad.org:1234/toto" +off=46 url complete +off=51 len=3 span[version]="1.1" +off=54 version complete +off=58 headers complete method=1 v=1/1 flags=0 content_length=0 +off=58 message complete +``` + +## Space in URI + + +```http +GET /foo bar/ HTTP/1.1 + + +``` + +```log +off=0 message begin +off=0 len=3 span[method]="GET" +off=3 method complete +off=4 len=4 span[url]="/foo" +off=9 url complete +off=9 error code=8 reason="Expected HTTP/" +``` diff --git a/vendor/llhttp/test/response/connection.md b/vendor/llhttp/test/response/connection.md new file mode 100644 index 0000000..11f9eb6 --- /dev/null +++ b/vendor/llhttp/test/response/connection.md @@ -0,0 +1,647 @@ +Connection header +================= + +## Proxy-Connection + + +```http +HTTP/1.1 200 OK +Content-Type: text/html; charset=UTF-8 +Content-Length: 11 +Proxy-Connection: close +Date: Thu, 31 Dec 2009 20:55:48 +0000 + +hello world +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=12 span[header_field]="Content-Type" +off=30 header_field complete +off=31 len=24 span[header_value]="text/html; charset=UTF-8" +off=57 header_value complete +off=57 len=14 span[header_field]="Content-Length" +off=72 header_field complete +off=73 len=2 span[header_value]="11" +off=77 header_value complete +off=77 len=16 span[header_field]="Proxy-Connection" +off=94 header_field complete +off=95 len=5 span[header_value]="close" +off=102 header_value complete +off=102 len=4 span[header_field]="Date" +off=107 header_field complete +off=108 len=31 span[header_value]="Thu, 31 Dec 2009 20:55:48 +0000" +off=141 header_value complete +off=143 headers complete status=200 v=1/1 flags=22 content_length=11 +off=143 len=11 span[body]="hello world" +off=154 message complete +``` + +## HTTP/1.0 with keep-alive and EOF-terminated 200 status + +There is no `Content-Length` in this response, so even though the +`keep-alive` is on - it should read until EOF. + + +```http +HTTP/1.0 200 OK +Connection: keep-alive + +HTTP/1.0 200 OK +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.0" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=10 span[header_field]="Connection" +off=28 header_field complete +off=29 len=10 span[header_value]="keep-alive" +off=41 header_value complete +off=43 headers complete status=200 v=1/0 flags=1 content_length=0 +off=43 len=15 span[body]="HTTP/1.0 200 OK" +``` + +## HTTP/1.0 with keep-alive and 204 status + +Responses with `204` status cannot have a body. + + +```http +HTTP/1.0 204 No content +Connection: keep-alive + +HTTP/1.0 200 OK +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.0" +off=8 version complete +off=13 len=10 span[status]="No content" +off=25 status complete +off=25 len=10 span[header_field]="Connection" +off=36 header_field complete +off=37 len=10 span[header_value]="keep-alive" +off=49 header_value complete +off=51 headers complete status=204 v=1/0 flags=1 content_length=0 +off=51 message complete +off=51 reset +off=51 message begin +off=56 len=3 span[version]="1.0" +off=59 version complete +off=64 len=2 span[status]="OK" +``` + +## HTTP/1.1 with EOF-terminated 200 status + +There is no `Content-Length` in this response, so even though the +`keep-alive` is on (implicitly in HTTP 1.1) - it should read until EOF. + + +```http +HTTP/1.1 200 OK + +HTTP/1.1 200 OK +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=19 headers complete status=200 v=1/1 flags=0 content_length=0 +off=19 len=15 span[body]="HTTP/1.1 200 OK" +``` + +## HTTP/1.1 with 204 status + +Responses with `204` status cannot have a body. + + +```http +HTTP/1.1 204 No content + +HTTP/1.1 200 OK +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=10 span[status]="No content" +off=25 status complete +off=27 headers complete status=204 v=1/1 flags=0 content_length=0 +off=27 message complete +off=27 reset +off=27 message begin +off=32 len=3 span[version]="1.1" +off=35 version complete +off=40 len=2 span[status]="OK" +``` + +## HTTP/1.1 with keep-alive disabled and 204 status + + +```http +HTTP/1.1 204 No content +Connection: close + +HTTP/1.1 200 OK +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=10 span[status]="No content" +off=25 status complete +off=25 len=10 span[header_field]="Connection" +off=36 header_field complete +off=37 len=5 span[header_value]="close" +off=44 header_value complete +off=46 headers complete status=204 v=1/1 flags=2 content_length=0 +off=46 message complete +off=47 error code=5 reason="Data after `Connection: close`" +``` + +## HTTP/1.1 with keep-alive disabled, content-length (lenient) + +Parser should discard extra request in lenient mode. + + +```http +HTTP/1.1 200 No content +Content-Length: 5 +Connection: close + +2ad731e3-4dcd-4f70-b871-0ad284b29ffc +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=10 span[status]="No content" +off=25 status complete +off=25 len=14 span[header_field]="Content-Length" +off=40 header_field complete +off=41 len=1 span[header_value]="5" +off=44 header_value complete +off=44 len=10 span[header_field]="Connection" +off=55 header_field complete +off=56 len=5 span[header_value]="close" +off=63 header_value complete +off=65 headers complete status=200 v=1/1 flags=22 content_length=5 +off=65 len=5 span[body]="2ad73" +off=70 message complete +``` + +## HTTP/1.1 with keep-alive disabled, content-length + +Parser should discard extra request in strict mode. + + +```http +HTTP/1.1 200 No content +Content-Length: 5 +Connection: close + +2ad731e3-4dcd-4f70-b871-0ad284b29ffc +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=10 span[status]="No content" +off=25 status complete +off=25 len=14 span[header_field]="Content-Length" +off=40 header_field complete +off=41 len=1 span[header_value]="5" +off=44 header_value complete +off=44 len=10 span[header_field]="Connection" +off=55 header_field complete +off=56 len=5 span[header_value]="close" +off=63 header_value complete +off=65 headers complete status=200 v=1/1 flags=22 content_length=5 +off=65 len=5 span[body]="2ad73" +off=70 message complete +off=71 error code=5 reason="Data after `Connection: close`" +``` + +## HTTP/1.1 with keep-alive disabled and 204 status (lenient) + + +```http +HTTP/1.1 204 No content +Connection: close + +HTTP/1.1 200 OK +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=10 span[status]="No content" +off=25 status complete +off=25 len=10 span[header_field]="Connection" +off=36 header_field complete +off=37 len=5 span[header_value]="close" +off=44 header_value complete +off=46 headers complete status=204 v=1/1 flags=2 content_length=0 +off=46 message complete +off=46 reset +off=46 message begin +off=51 len=3 span[version]="1.1" +off=54 version complete +off=59 len=2 span[status]="OK" +``` + +## HTTP 101 response with Upgrade and Content-Length header + + +```http +HTTP/1.1 101 Switching Protocols +Connection: upgrade +Upgrade: h2c +Content-Length: 4 + +body\ +proto +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=19 span[status]="Switching Protocols" +off=34 status complete +off=34 len=10 span[header_field]="Connection" +off=45 header_field complete +off=46 len=7 span[header_value]="upgrade" +off=55 header_value complete +off=55 len=7 span[header_field]="Upgrade" +off=63 header_field complete +off=64 len=3 span[header_value]="h2c" +off=69 header_value complete +off=69 len=14 span[header_field]="Content-Length" +off=84 header_field complete +off=85 len=1 span[header_value]="4" +off=88 header_value complete +off=90 headers complete status=101 v=1/1 flags=34 content_length=4 +off=90 message complete +off=90 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +## HTTP 101 response with Upgrade and Transfer-Encoding header + + +```http +HTTP/1.1 101 Switching Protocols +Connection: upgrade +Upgrade: h2c +Transfer-Encoding: chunked + +2 +bo +2 +dy +0 + +proto +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=19 span[status]="Switching Protocols" +off=34 status complete +off=34 len=10 span[header_field]="Connection" +off=45 header_field complete +off=46 len=7 span[header_value]="upgrade" +off=55 header_value complete +off=55 len=7 span[header_field]="Upgrade" +off=63 header_field complete +off=64 len=3 span[header_value]="h2c" +off=69 header_value complete +off=69 len=17 span[header_field]="Transfer-Encoding" +off=87 header_field complete +off=88 len=7 span[header_value]="chunked" +off=97 header_value complete +off=99 headers complete status=101 v=1/1 flags=21c content_length=0 +off=99 message complete +off=99 error code=22 reason="Pause on CONNECT/Upgrade" +``` + +## HTTP 200 response with Upgrade header + + +```http +HTTP/1.1 200 OK +Connection: upgrade +Upgrade: h2c + +body +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=10 span[header_field]="Connection" +off=28 header_field complete +off=29 len=7 span[header_value]="upgrade" +off=38 header_value complete +off=38 len=7 span[header_field]="Upgrade" +off=46 header_field complete +off=47 len=3 span[header_value]="h2c" +off=52 header_value complete +off=54 headers complete status=200 v=1/1 flags=14 content_length=0 +off=54 len=4 span[body]="body" +``` + +## HTTP 200 response with Upgrade header and Content-Length + + +```http +HTTP/1.1 200 OK +Connection: upgrade +Upgrade: h2c +Content-Length: 4 + +body +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=10 span[header_field]="Connection" +off=28 header_field complete +off=29 len=7 span[header_value]="upgrade" +off=38 header_value complete +off=38 len=7 span[header_field]="Upgrade" +off=46 header_field complete +off=47 len=3 span[header_value]="h2c" +off=52 header_value complete +off=52 len=14 span[header_field]="Content-Length" +off=67 header_field complete +off=68 len=1 span[header_value]="4" +off=71 header_value complete +off=73 headers complete status=200 v=1/1 flags=34 content_length=4 +off=73 len=4 span[body]="body" +off=77 message complete +``` + +## HTTP 200 response with Upgrade header and Transfer-Encoding + + +```http +HTTP/1.1 200 OK +Connection: upgrade +Upgrade: h2c +Transfer-Encoding: chunked + +2 +bo +2 +dy +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=10 span[header_field]="Connection" +off=28 header_field complete +off=29 len=7 span[header_value]="upgrade" +off=38 header_value complete +off=38 len=7 span[header_field]="Upgrade" +off=46 header_field complete +off=47 len=3 span[header_value]="h2c" +off=52 header_value complete +off=52 len=17 span[header_field]="Transfer-Encoding" +off=70 header_field complete +off=71 len=7 span[header_value]="chunked" +off=80 header_value complete +off=82 headers complete status=200 v=1/1 flags=21c content_length=0 +off=85 chunk header len=2 +off=85 len=2 span[body]="bo" +off=89 chunk complete +off=92 chunk header len=2 +off=92 len=2 span[body]="dy" +off=96 chunk complete +off=99 chunk header len=0 +off=101 chunk complete +off=101 message complete +``` + +## HTTP 304 with Content-Length + + +```http +HTTP/1.1 304 Not Modified +Content-Length: 10 + + +HTTP/1.1 200 OK +Content-Length: 5 + +hello +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=12 span[status]="Not Modified" +off=27 status complete +off=27 len=14 span[header_field]="Content-Length" +off=42 header_field complete +off=43 len=2 span[header_value]="10" +off=47 header_value complete +off=49 headers complete status=304 v=1/1 flags=20 content_length=10 +off=49 message complete +off=51 reset +off=51 message begin +off=56 len=3 span[version]="1.1" +off=59 version complete +off=64 len=2 span[status]="OK" +off=68 status complete +off=68 len=14 span[header_field]="Content-Length" +off=83 header_field complete +off=84 len=1 span[header_value]="5" +off=87 header_value complete +off=89 headers complete status=200 v=1/1 flags=20 content_length=5 +off=89 len=5 span[body]="hello" +off=94 message complete +``` + +## HTTP 304 with Transfer-Encoding + + +```http +HTTP/1.1 304 Not Modified +Transfer-Encoding: chunked + +HTTP/1.1 200 OK +Transfer-Encoding: chunked + +5 +hello +0 + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=12 span[status]="Not Modified" +off=27 status complete +off=27 len=17 span[header_field]="Transfer-Encoding" +off=45 header_field complete +off=46 len=7 span[header_value]="chunked" +off=55 header_value complete +off=57 headers complete status=304 v=1/1 flags=208 content_length=0 +off=57 message complete +off=57 reset +off=57 message begin +off=62 len=3 span[version]="1.1" +off=65 version complete +off=70 len=2 span[status]="OK" +off=74 status complete +off=74 len=17 span[header_field]="Transfer-Encoding" +off=92 header_field complete +off=93 len=7 span[header_value]="chunked" +off=102 header_value complete +off=104 headers complete status=200 v=1/1 flags=208 content_length=0 +off=107 chunk header len=5 +off=107 len=5 span[body]="hello" +off=114 chunk complete +off=117 chunk header len=0 +``` + +## HTTP 100 first, then 400 + + +```http +HTTP/1.1 100 Continue + + +HTTP/1.1 404 Not Found +Content-Type: text/plain; charset=utf-8 +Content-Length: 14 +Date: Fri, 15 Sep 2023 19:47:23 GMT +Server: Python/3.10 aiohttp/4.0.0a2.dev0 + +404: Not Found +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=8 span[status]="Continue" +off=23 status complete +off=25 headers complete status=100 v=1/1 flags=0 content_length=0 +off=25 message complete +off=27 reset +off=27 message begin +off=32 len=3 span[version]="1.1" +off=35 version complete +off=40 len=9 span[status]="Not Found" +off=51 status complete +off=51 len=12 span[header_field]="Content-Type" +off=64 header_field complete +off=65 len=25 span[header_value]="text/plain; charset=utf-8" +off=92 header_value complete +off=92 len=14 span[header_field]="Content-Length" +off=107 header_field complete +off=108 len=2 span[header_value]="14" +off=112 header_value complete +off=112 len=4 span[header_field]="Date" +off=117 header_field complete +off=118 len=29 span[header_value]="Fri, 15 Sep 2023 19:47:23 GMT" +off=149 header_value complete +off=149 len=6 span[header_field]="Server" +off=156 header_field complete +off=157 len=32 span[header_value]="Python/3.10 aiohttp/4.0.0a2.dev0" +off=191 header_value complete +off=193 headers complete status=404 v=1/1 flags=20 content_length=14 +off=193 len=14 span[body]="404: Not Found" +off=207 message complete +``` + +## HTTP 103 first, then 200 + + +```http +HTTP/1.1 103 Early Hints +Link: ; rel=preload; as=style + +HTTP/1.1 200 OK +Date: Wed, 13 Sep 2023 11:09:41 GMT +Connection: keep-alive +Keep-Alive: timeout=5 +Content-Length: 17 + +response content +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=11 span[status]="Early Hints" +off=26 status complete +off=26 len=4 span[header_field]="Link" +off=31 header_field complete +off=32 len=36 span[header_value]="; rel=preload; as=style" +off=70 header_value complete +off=72 headers complete status=103 v=1/1 flags=0 content_length=0 +off=72 message complete +off=72 reset +off=72 message begin +off=77 len=3 span[version]="1.1" +off=80 version complete +off=85 len=2 span[status]="OK" +off=89 status complete +off=89 len=4 span[header_field]="Date" +off=94 header_field complete +off=95 len=29 span[header_value]="Wed, 13 Sep 2023 11:09:41 GMT" +off=126 header_value complete +off=126 len=10 span[header_field]="Connection" +off=137 header_field complete +off=138 len=10 span[header_value]="keep-alive" +off=150 header_value complete +off=150 len=10 span[header_field]="Keep-Alive" +off=161 header_field complete +off=162 len=9 span[header_value]="timeout=5" +off=173 header_value complete +off=173 len=14 span[header_field]="Content-Length" +off=188 header_field complete +off=189 len=2 span[header_value]="17" +off=193 header_value complete +off=195 headers complete status=200 v=1/1 flags=21 content_length=17 +off=195 len=16 span[body]="response content" +``` \ No newline at end of file diff --git a/vendor/llhttp/test/response/content-length.md b/vendor/llhttp/test/response/content-length.md new file mode 100644 index 0000000..6c33924 --- /dev/null +++ b/vendor/llhttp/test/response/content-length.md @@ -0,0 +1,158 @@ +Content-Length header +===================== + +## Response without `Content-Length`, but with body + +The client should wait for the server's EOF. That is, when +`Content-Length` is not specified, and `Connection: close`, the end of body is +specified by the EOF. + +_(Compare with APACHEBENCH_GET)_ + + +```http +HTTP/1.1 200 OK +Date: Tue, 04 Aug 2009 07:59:32 GMT +Server: Apache +X-Powered-By: Servlet/2.5 JSP/2.1 +Content-Type: text/xml; charset=utf-8 +Connection: close + +\n\ +\n\ + \n\ + \n\ + SOAP-ENV:Client\n\ + Client Error\n\ + \n\ + \n\ + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=4 span[header_field]="Date" +off=22 header_field complete +off=23 len=29 span[header_value]="Tue, 04 Aug 2009 07:59:32 GMT" +off=54 header_value complete +off=54 len=6 span[header_field]="Server" +off=61 header_field complete +off=62 len=6 span[header_value]="Apache" +off=70 header_value complete +off=70 len=12 span[header_field]="X-Powered-By" +off=83 header_field complete +off=84 len=19 span[header_value]="Servlet/2.5 JSP/2.1" +off=105 header_value complete +off=105 len=12 span[header_field]="Content-Type" +off=118 header_field complete +off=119 len=23 span[header_value]="text/xml; charset=utf-8" +off=144 header_value complete +off=144 len=10 span[header_field]="Connection" +off=155 header_field complete +off=156 len=5 span[header_value]="close" +off=163 header_value complete +off=165 headers complete status=200 v=1/1 flags=2 content_length=0 +off=165 len=42 span[body]="" +off=207 len=1 span[body]=lf +off=208 len=80 span[body]="" +off=288 len=1 span[body]=lf +off=289 len=17 span[body]=" " +off=306 len=1 span[body]=lf +off=307 len=20 span[body]=" " +off=327 len=1 span[body]=lf +off=328 len=45 span[body]=" SOAP-ENV:Client" +off=373 len=1 span[body]=lf +off=374 len=46 span[body]=" Client Error" +off=420 len=1 span[body]=lf +off=421 len=21 span[body]=" " +off=442 len=1 span[body]=lf +off=443 len=18 span[body]=" " +off=461 len=1 span[body]=lf +off=462 len=20 span[body]="" +``` + +## Content-Length-X + +The header that starts with `Content-Length*` should not be treated as +`Content-Length`. + + +```http +HTTP/1.1 200 OK +Content-Length-X: 0 +Transfer-Encoding: chunked + +2 +OK +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=16 span[header_field]="Content-Length-X" +off=34 header_field complete +off=35 len=1 span[header_value]="0" +off=38 header_value complete +off=38 len=17 span[header_field]="Transfer-Encoding" +off=56 header_field complete +off=57 len=7 span[header_value]="chunked" +off=66 header_value complete +off=68 headers complete status=200 v=1/1 flags=208 content_length=0 +off=71 chunk header len=2 +off=71 len=2 span[body]="OK" +off=75 chunk complete +off=78 chunk header len=0 +off=80 chunk complete +off=80 message complete +``` + +## Content-Length reset when no body is received + + +```http +HTTP/1.1 200 OK +Content-Length: 123 + +HTTP/1.1 200 OK +Content-Length: 456 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=3 span[header_value]="123" +off=38 header_value complete +off=40 headers complete status=200 v=1/1 flags=20 content_length=123 +off=40 skip body +off=40 message complete +off=40 reset +off=40 message begin +off=45 len=3 span[version]="1.1" +off=48 version complete +off=53 len=2 span[status]="OK" +off=57 status complete +off=57 len=14 span[header_field]="Content-Length" +off=72 header_field complete +off=73 len=3 span[header_value]="456" +off=78 header_value complete +off=80 headers complete status=200 v=1/1 flags=20 content_length=456 +off=80 skip body +off=80 message complete +``` diff --git a/vendor/llhttp/test/response/finish.md b/vendor/llhttp/test/response/finish.md new file mode 100644 index 0000000..2938b83 --- /dev/null +++ b/vendor/llhttp/test/response/finish.md @@ -0,0 +1,23 @@ +Finish +====== + +Those tests check the return codes and the behavior of `llhttp_finish()` C API. + +## It should be safe to finish with cb after empty response + + +```http +HTTP/1.1 200 OK + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=19 headers complete status=200 v=1/1 flags=0 content_length=0 +off=NULL finish=1 +``` diff --git a/vendor/llhttp/test/response/invalid.md b/vendor/llhttp/test/response/invalid.md new file mode 100644 index 0000000..034fc4d --- /dev/null +++ b/vendor/llhttp/test/response/invalid.md @@ -0,0 +1,285 @@ +Invalid responses +================= + +### Incomplete HTTP protocol + + +```http +HTP/1.1 200 OK + + +``` + +```log +off=0 message begin +off=2 error code=8 reason="Expected HTTP/" +``` + +### Extra digit in HTTP major version + + +```http +HTTP/01.1 200 OK + + +``` + +```log +off=0 message begin +off=5 len=1 span[version]="0" +off=6 error code=9 reason="Expected dot" +``` + +### Extra digit in HTTP major version #2 + + +```http +HTTP/11.1 200 OK + + +``` + +```log +off=0 message begin +off=5 len=1 span[version]="1" +off=6 error code=9 reason="Expected dot" +``` + +### Extra digit in HTTP minor version + + +```http +HTTP/1.01 200 OK + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.0" +off=8 version complete +off=8 error code=9 reason="Expected space after version" +``` +--> + +### Tab after HTTP version + + +```http +HTTP/1.1\t200 OK + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=8 error code=9 reason="Expected space after version" +``` + +### CR before response and tab after HTTP version + + +```http +\rHTTP/1.1\t200 OK + + +``` + +```log +off=1 message begin +off=6 len=3 span[version]="1.1" +off=9 version complete +off=9 error code=9 reason="Expected space after version" +``` + +### Headers separated by CR + + +```http +HTTP/1.1 200 OK +Foo: 1\rBar: 2 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=3 span[header_field]="Foo" +off=21 header_field complete +off=22 len=1 span[header_value]="1" +off=24 error code=3 reason="Missing expected LF after header value" +``` + +### Invalid HTTP version + + +```http +HTTP/5.6 200 OK + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="5.6" +off=8 error code=9 reason="Invalid HTTP version" +``` + +## Invalid space after start line + + +```http +HTTP/1.1 200 OK + Host: foo +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=18 error code=30 reason="Unexpected space after start line" +``` + +### Extra space between HTTP version and status code + + +```http +HTTP/1.1 200 OK + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=9 error code=13 reason="Invalid status code" +``` + +### Extra space between status code and reason + + +```http +HTTP/1.1 200 OK + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=3 span[status]=" OK" +off=18 status complete +off=20 headers complete status=200 v=1/1 flags=0 content_length=0 +``` + +### One-digit status code + + +```http +HTTP/1.1 2 OK + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=10 error code=13 reason="Invalid status code" +``` + +### Only LFs present and no body + + +```http +HTTP/1.1 200 OK\nContent-Length: 0\n\n +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=16 error code=25 reason="Missing expected CR after response line" +``` + +### Only LFs present and no body (lenient) + + +```http +HTTP/1.1 200 OK\nContent-Length: 0\n\n +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=16 status complete +off=16 len=14 span[header_field]="Content-Length" +off=31 header_field complete +off=32 len=1 span[header_value]="0" +off=34 header_value complete +off=35 headers complete status=200 v=1/1 flags=20 content_length=0 +off=35 message complete +``` + +### Only LFs present + + +```http +HTTP/1.1 200 OK\n\ +Foo: abc\n\ +Bar: def\n\ +\n\ +BODY\n\ +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=16 error code=25 reason="Missing expected CR after response line" +``` + +### Only LFs present (lenient) + + +```http +HTTP/1.1 200 OK\n\ +Foo: abc\n\ +Bar: def\n\ +\n\ +BODY\n\ +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=16 status complete +off=16 len=3 span[header_field]="Foo" +off=20 header_field complete +off=21 len=3 span[header_value]="abc" +off=25 header_value complete +off=25 len=3 span[header_field]="Bar" +off=29 header_field complete +off=30 len=3 span[header_value]="def" +off=34 header_value complete +off=35 headers complete status=200 v=1/1 flags=0 content_length=0 +off=35 len=4 span[body]="BODY" +off=39 len=1 span[body]=lf +off=40 len=1 span[body]="\" +``` \ No newline at end of file diff --git a/vendor/llhttp/test/response/lenient-version.md b/vendor/llhttp/test/response/lenient-version.md new file mode 100644 index 0000000..86c6ede --- /dev/null +++ b/vendor/llhttp/test/response/lenient-version.md @@ -0,0 +1,20 @@ +Lenient HTTP version parsing +============================ + +### Invalid HTTP version (lenient) + + +```http +HTTP/5.6 200 OK + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="5.6" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=19 headers complete status=200 v=5/6 flags=0 content_length=0 +``` diff --git a/vendor/llhttp/test/response/pausing.md b/vendor/llhttp/test/response/pausing.md new file mode 100644 index 0000000..d2e870b --- /dev/null +++ b/vendor/llhttp/test/response/pausing.md @@ -0,0 +1,330 @@ +Pausing +======= + +### on_message_begin + + +```http +HTTP/1.1 200 OK +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=0 pause +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete status=200 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_message_complete + + +```http +HTTP/1.1 200 OK +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete status=200 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +off=41 pause +``` + +### on_version_complete + + +```http +HTTP/1.1 200 OK +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=8 pause +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete status=200 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_status_complete + + +```http +HTTP/1.1 200 OK +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 pause +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete status=200 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_header_field_complete + + +```http +HTTP/1.1 200 OK +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=32 pause +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete status=200 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_header_value_complete + + +```http +HTTP/1.1 200 OK +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=36 pause +off=38 headers complete status=200 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_headers_complete + + +```http +HTTP/1.1 200 OK +Content-Length: 3 + +abc +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete status=200 v=1/1 flags=20 content_length=3 +off=38 pause +off=38 len=3 span[body]="abc" +off=41 message complete +``` + +### on_chunk_header + + +```http +HTTP/1.1 200 OK +Transfer-Encoding: chunked + +a +0123456789 +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=17 span[header_field]="Transfer-Encoding" +off=35 header_field complete +off=36 len=7 span[header_value]="chunked" +off=45 header_value complete +off=47 headers complete status=200 v=1/1 flags=208 content_length=0 +off=50 chunk header len=10 +off=50 pause +off=50 len=10 span[body]="0123456789" +off=62 chunk complete +off=65 chunk header len=0 +off=65 pause +off=67 chunk complete +off=67 message complete +``` + +### on_chunk_extension_name + + +```http +HTTP/1.1 200 OK +Transfer-Encoding: chunked + +a;foo=bar +0123456789 +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=17 span[header_field]="Transfer-Encoding" +off=35 header_field complete +off=36 len=7 span[header_value]="chunked" +off=45 header_value complete +off=47 headers complete status=200 v=1/1 flags=208 content_length=0 +off=49 len=3 span[chunk_extension_name]="foo" +off=53 chunk_extension_name complete +off=53 pause +off=53 len=3 span[chunk_extension_value]="bar" +off=57 chunk_extension_value complete +off=58 chunk header len=10 +off=58 len=10 span[body]="0123456789" +off=70 chunk complete +off=73 chunk header len=0 +off=75 chunk complete +off=75 message complete +``` + +### on_chunk_extension_value + + +```http +HTTP/1.1 200 OK +Transfer-Encoding: chunked + +a;foo=bar +0123456789 +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=17 span[header_field]="Transfer-Encoding" +off=35 header_field complete +off=36 len=7 span[header_value]="chunked" +off=45 header_value complete +off=47 headers complete status=200 v=1/1 flags=208 content_length=0 +off=49 len=3 span[chunk_extension_name]="foo" +off=53 chunk_extension_name complete +off=53 len=3 span[chunk_extension_value]="bar" +off=57 chunk_extension_value complete +off=57 pause +off=58 chunk header len=10 +off=58 len=10 span[body]="0123456789" +off=70 chunk complete +off=73 chunk header len=0 +off=75 chunk complete +off=75 message complete +``` + +### on_chunk_complete + + +```http +HTTP/1.1 200 OK +Transfer-Encoding: chunked + +a +0123456789 +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=17 span[header_field]="Transfer-Encoding" +off=35 header_field complete +off=36 len=7 span[header_value]="chunked" +off=45 header_value complete +off=47 headers complete status=200 v=1/1 flags=208 content_length=0 +off=50 chunk header len=10 +off=50 len=10 span[body]="0123456789" +off=62 chunk complete +off=62 pause +off=65 chunk header len=0 +off=67 chunk complete +off=67 pause +off=67 message complete +``` diff --git a/vendor/llhttp/test/response/pipelining.md b/vendor/llhttp/test/response/pipelining.md new file mode 100644 index 0000000..01e007a --- /dev/null +++ b/vendor/llhttp/test/response/pipelining.md @@ -0,0 +1,60 @@ +Pipelining +========== + +## Should parse multiple events + + +```http +HTTP/1.1 200 OK +Content-Length: 3 + +AAA +HTTP/1.1 201 Created +Content-Length: 4 + +BBBB +HTTP/1.1 202 Accepted +Content-Length: 5 + +CCCC +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=14 span[header_field]="Content-Length" +off=32 header_field complete +off=33 len=1 span[header_value]="3" +off=36 header_value complete +off=38 headers complete status=200 v=1/1 flags=20 content_length=3 +off=38 len=3 span[body]="AAA" +off=41 message complete +off=43 reset +off=43 message begin +off=48 len=3 span[version]="1.1" +off=51 version complete +off=56 len=7 span[status]="Created" +off=65 status complete +off=65 len=14 span[header_field]="Content-Length" +off=80 header_field complete +off=81 len=1 span[header_value]="4" +off=84 header_value complete +off=86 headers complete status=201 v=1/1 flags=20 content_length=4 +off=86 len=4 span[body]="BBBB" +off=90 message complete +off=92 reset +off=92 message begin +off=97 len=3 span[version]="1.1" +off=100 version complete +off=105 len=8 span[status]="Accepted" +off=115 status complete +off=115 len=14 span[header_field]="Content-Length" +off=130 header_field complete +off=131 len=1 span[header_value]="5" +off=134 header_value complete +off=136 headers complete status=202 v=1/1 flags=20 content_length=5 +off=136 len=4 span[body]="CCCC" +``` \ No newline at end of file diff --git a/vendor/llhttp/test/response/sample.md b/vendor/llhttp/test/response/sample.md new file mode 100644 index 0000000..be2e82d --- /dev/null +++ b/vendor/llhttp/test/response/sample.md @@ -0,0 +1,653 @@ +Sample responses +================ + +## Simple response + + +```http +HTTP/1.1 200 OK +Header1: Value1 +Header2:\t Value2 +Content-Length: 0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=7 span[header_field]="Header1" +off=25 header_field complete +off=26 len=6 span[header_value]="Value1" +off=34 header_value complete +off=34 len=7 span[header_field]="Header2" +off=42 header_field complete +off=44 len=6 span[header_value]="Value2" +off=52 header_value complete +off=52 len=14 span[header_field]="Content-Length" +off=67 header_field complete +off=68 len=1 span[header_value]="0" +off=71 header_value complete +off=73 headers complete status=200 v=1/1 flags=20 content_length=0 +off=73 message complete +``` + +## Error on invalid response start + +Every response must start with `HTTP/`. + + +```http +HTTPER/1.1 200 OK + + +``` + +```log +off=0 message begin +off=4 error code=8 reason="Expected HTTP/" +``` + +## Empty body should not trigger spurious span callbacks + + +```http +HTTP/1.1 200 OK + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=19 headers complete status=200 v=1/1 flags=0 content_length=0 +``` + +## Google 301 + + +```http +HTTP/1.1 301 Moved Permanently +Location: http://www.google.com/ +Content-Type: text/html; charset=UTF-8 +Date: Sun, 26 Apr 2009 11:11:49 GMT +Expires: Tue, 26 May 2009 11:11:49 GMT +X-$PrototypeBI-Version: 1.6.0.3 +Cache-Control: public, max-age=2592000 +Server: gws +Content-Length: 219 + +\n\ +301 Moved\n\ +

    301 Moved

    \n\ +The document has moved\n\ +here. + +``` +_(Note the `$` char in header field)_ + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=17 span[status]="Moved Permanently" +off=32 status complete +off=32 len=8 span[header_field]="Location" +off=41 header_field complete +off=42 len=22 span[header_value]="http://www.google.com/" +off=66 header_value complete +off=66 len=12 span[header_field]="Content-Type" +off=79 header_field complete +off=80 len=24 span[header_value]="text/html; charset=UTF-8" +off=106 header_value complete +off=106 len=4 span[header_field]="Date" +off=111 header_field complete +off=112 len=29 span[header_value]="Sun, 26 Apr 2009 11:11:49 GMT" +off=143 header_value complete +off=143 len=7 span[header_field]="Expires" +off=151 header_field complete +off=152 len=29 span[header_value]="Tue, 26 May 2009 11:11:49 GMT" +off=183 header_value complete +off=183 len=22 span[header_field]="X-$PrototypeBI-Version" +off=206 header_field complete +off=207 len=7 span[header_value]="1.6.0.3" +off=216 header_value complete +off=216 len=13 span[header_field]="Cache-Control" +off=230 header_field complete +off=231 len=23 span[header_value]="public, max-age=2592000" +off=256 header_value complete +off=256 len=6 span[header_field]="Server" +off=263 header_field complete +off=264 len=3 span[header_value]="gws" +off=269 header_value complete +off=269 len=14 span[header_field]="Content-Length" +off=284 header_field complete +off=286 len=5 span[header_value]="219 " +off=293 header_value complete +off=295 headers complete status=301 v=1/1 flags=20 content_length=219 +off=295 len=74 span[body]="" +off=369 len=1 span[body]=lf +off=370 len=37 span[body]="301 Moved" +off=407 len=1 span[body]=lf +off=408 len=18 span[body]="

    301 Moved

    " +off=426 len=1 span[body]=lf +off=427 len=22 span[body]="The document has moved" +off=449 len=1 span[body]=lf +off=450 len=42 span[body]="here." +off=492 len=1 span[body]=cr +off=493 len=1 span[body]=lf +off=494 len=14 span[body]="" +``` + +## amazon.com + + +```http +HTTP/1.1 301 MovedPermanently +Date: Wed, 15 May 2013 17:06:33 GMT +Server: Server +x-amz-id-1: 0GPHKXSJQ826RK7GZEB2 +p3p: policyref="http://www.amazon.com/w3c/p3p.xml",CP="CAO DSP LAW CUR ADM IVAo IVDo CONo OTPo OUR DELi PUBi OTRi BUS PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA HEA PRE LOC GOV OTC " +x-amz-id-2: STN69VZxIFSz9YJLbz1GDbxpbjG6Qjmmq5E3DxRhOUw+Et0p4hr7c/Q8qNcx4oAD +Location: http://www.amazon.com/Dan-Brown/e/B000AP9DSU/ref=s9_pop_gw_al1?_encoding=UTF8&refinementId=618073011&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=0SHYY5BZXN3KR20BNFAY&pf_rd_t=101&pf_rd_p=1263340922&pf_rd_i=507846 +Vary: Accept-Encoding,User-Agent +Content-Type: text/html; charset=ISO-8859-1 +Transfer-Encoding: chunked + +1 +\n +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=16 span[status]="MovedPermanently" +off=31 status complete +off=31 len=4 span[header_field]="Date" +off=36 header_field complete +off=37 len=29 span[header_value]="Wed, 15 May 2013 17:06:33 GMT" +off=68 header_value complete +off=68 len=6 span[header_field]="Server" +off=75 header_field complete +off=76 len=6 span[header_value]="Server" +off=84 header_value complete +off=84 len=10 span[header_field]="x-amz-id-1" +off=95 header_field complete +off=96 len=20 span[header_value]="0GPHKXSJQ826RK7GZEB2" +off=118 header_value complete +off=118 len=3 span[header_field]="p3p" +off=122 header_field complete +off=123 len=178 span[header_value]="policyref="http://www.amazon.com/w3c/p3p.xml",CP="CAO DSP LAW CUR ADM IVAo IVDo CONo OTPo OUR DELi PUBi OTRi BUS PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA HEA PRE LOC GOV OTC "" +off=303 header_value complete +off=303 len=10 span[header_field]="x-amz-id-2" +off=314 header_field complete +off=315 len=64 span[header_value]="STN69VZxIFSz9YJLbz1GDbxpbjG6Qjmmq5E3DxRhOUw+Et0p4hr7c/Q8qNcx4oAD" +off=381 header_value complete +off=381 len=8 span[header_field]="Location" +off=390 header_field complete +off=391 len=214 span[header_value]="http://www.amazon.com/Dan-Brown/e/B000AP9DSU/ref=s9_pop_gw_al1?_encoding=UTF8&refinementId=618073011&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=0SHYY5BZXN3KR20BNFAY&pf_rd_t=101&pf_rd_p=1263340922&pf_rd_i=507846" +off=607 header_value complete +off=607 len=4 span[header_field]="Vary" +off=612 header_field complete +off=613 len=26 span[header_value]="Accept-Encoding,User-Agent" +off=641 header_value complete +off=641 len=12 span[header_field]="Content-Type" +off=654 header_field complete +off=655 len=29 span[header_value]="text/html; charset=ISO-8859-1" +off=686 header_value complete +off=686 len=17 span[header_field]="Transfer-Encoding" +off=704 header_field complete +off=705 len=7 span[header_value]="chunked" +off=714 header_value complete +off=716 headers complete status=301 v=1/1 flags=208 content_length=0 +off=719 chunk header len=1 +off=719 len=1 span[body]=lf +off=722 chunk complete +off=725 chunk header len=0 +off=727 chunk complete +off=727 message complete +``` + +## No headers and no body + + +```http +HTTP/1.1 404 Not Found + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=9 span[status]="Not Found" +off=24 status complete +off=26 headers complete status=404 v=1/1 flags=0 content_length=0 +``` + +## No reason phrase + + +```http +HTTP/1.1 301 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=14 status complete +off=16 headers complete status=301 v=1/1 flags=0 content_length=0 +``` + +## Empty reason phrase after space + + +```http +HTTP/1.1 200 \r\n\ + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=0 span[status]="" +off=15 status complete +off=17 headers complete status=200 v=1/1 flags=0 content_length=0 +``` + +## No carriage ret + + +```http +HTTP/1.1 200 OK\n\ +Content-Type: text/html; charset=utf-8\n\ +Connection: close\n\ +\n\ +these headers are from http://news.ycombinator.com/ +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=16 error code=25 reason="Missing expected CR after response line" +``` + +## No carriage ret (lenient) + + +```http +HTTP/1.1 200 OK\n\ +Content-Type: text/html; charset=utf-8\n\ +Connection: close\n\ +\n\ +these headers are from http://news.ycombinator.com/ +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=16 status complete +off=16 len=12 span[header_field]="Content-Type" +off=29 header_field complete +off=30 len=24 span[header_value]="text/html; charset=utf-8" +off=55 header_value complete +off=55 len=10 span[header_field]="Connection" +off=66 header_field complete +off=67 len=5 span[header_value]="close" +off=73 header_value complete +off=74 headers complete status=200 v=1/1 flags=2 content_length=0 +off=74 len=51 span[body]="these headers are from http://news.ycombinator.com/" +``` + +## Underscore in header key + +Shown by: `curl -o /dev/null -v "http://ad.doubleclick.net/pfadx/DARTSHELLCONFIGXML;dcmt=text/xml;"` + + +```http +HTTP/1.1 200 OK +Server: DCLK-AdSvr +Content-Type: text/xml +Content-Length: 0 +DCLK_imp: v7;x;114750856;0-0;0;17820020;0/0;21603567/21621457/1;;~okv=;dcmt=text/xml;;~cs=o + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=6 span[header_field]="Server" +off=24 header_field complete +off=25 len=10 span[header_value]="DCLK-AdSvr" +off=37 header_value complete +off=37 len=12 span[header_field]="Content-Type" +off=50 header_field complete +off=51 len=8 span[header_value]="text/xml" +off=61 header_value complete +off=61 len=14 span[header_field]="Content-Length" +off=76 header_field complete +off=77 len=1 span[header_value]="0" +off=80 header_value complete +off=80 len=8 span[header_field]="DCLK_imp" +off=89 header_field complete +off=90 len=81 span[header_value]="v7;x;114750856;0-0;0;17820020;0/0;21603567/21621457/1;;~okv=;dcmt=text/xml;;~cs=o" +off=173 header_value complete +off=175 headers complete status=200 v=1/1 flags=20 content_length=0 +off=175 message complete +``` + +## bonjourmadame.fr + +The client should not merge two headers fields when the first one doesn't +have a value. + + +```http +HTTP/1.0 301 Moved Permanently +Date: Thu, 03 Jun 2010 09:56:32 GMT +Server: Apache/2.2.3 (Red Hat) +Cache-Control: public +Pragma: \r\n\ +Location: http://www.bonjourmadame.fr/ +Vary: Accept-Encoding +Content-Length: 0 +Content-Type: text/html; charset=UTF-8 +Connection: keep-alive + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.0" +off=8 version complete +off=13 len=17 span[status]="Moved Permanently" +off=32 status complete +off=32 len=4 span[header_field]="Date" +off=37 header_field complete +off=38 len=29 span[header_value]="Thu, 03 Jun 2010 09:56:32 GMT" +off=69 header_value complete +off=69 len=6 span[header_field]="Server" +off=76 header_field complete +off=77 len=22 span[header_value]="Apache/2.2.3 (Red Hat)" +off=101 header_value complete +off=101 len=13 span[header_field]="Cache-Control" +off=115 header_field complete +off=116 len=6 span[header_value]="public" +off=124 header_value complete +off=124 len=6 span[header_field]="Pragma" +off=131 header_field complete +off=134 len=0 span[header_value]="" +off=134 header_value complete +off=134 len=8 span[header_field]="Location" +off=143 header_field complete +off=144 len=28 span[header_value]="http://www.bonjourmadame.fr/" +off=174 header_value complete +off=174 len=4 span[header_field]="Vary" +off=179 header_field complete +off=180 len=15 span[header_value]="Accept-Encoding" +off=197 header_value complete +off=197 len=14 span[header_field]="Content-Length" +off=212 header_field complete +off=213 len=1 span[header_value]="0" +off=216 header_value complete +off=216 len=12 span[header_field]="Content-Type" +off=229 header_field complete +off=230 len=24 span[header_value]="text/html; charset=UTF-8" +off=256 header_value complete +off=256 len=10 span[header_field]="Connection" +off=267 header_field complete +off=268 len=10 span[header_value]="keep-alive" +off=280 header_value complete +off=282 headers complete status=301 v=1/0 flags=21 content_length=0 +off=282 message complete +``` + +## Spaces in header value + + +```http +HTTP/1.1 200 OK +Date: Tue, 28 Sep 2010 01:14:13 GMT +Server: Apache +Cache-Control: no-cache, must-revalidate +Expires: Mon, 26 Jul 1997 05:00:00 GMT +.et-Cookie: PlaxoCS=1274804622353690521; path=/; domain=.plaxo.com +Vary: Accept-Encoding +_eep-Alive: timeout=45 +_onnection: Keep-Alive +Transfer-Encoding: chunked +Content-Type: text/html +Connection: close + +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=4 span[header_field]="Date" +off=22 header_field complete +off=23 len=29 span[header_value]="Tue, 28 Sep 2010 01:14:13 GMT" +off=54 header_value complete +off=54 len=6 span[header_field]="Server" +off=61 header_field complete +off=62 len=6 span[header_value]="Apache" +off=70 header_value complete +off=70 len=13 span[header_field]="Cache-Control" +off=84 header_field complete +off=85 len=25 span[header_value]="no-cache, must-revalidate" +off=112 header_value complete +off=112 len=7 span[header_field]="Expires" +off=120 header_field complete +off=121 len=29 span[header_value]="Mon, 26 Jul 1997 05:00:00 GMT" +off=152 header_value complete +off=152 len=10 span[header_field]=".et-Cookie" +off=163 header_field complete +off=164 len=54 span[header_value]="PlaxoCS=1274804622353690521; path=/; domain=.plaxo.com" +off=220 header_value complete +off=220 len=4 span[header_field]="Vary" +off=225 header_field complete +off=226 len=15 span[header_value]="Accept-Encoding" +off=243 header_value complete +off=243 len=10 span[header_field]="_eep-Alive" +off=254 header_field complete +off=255 len=10 span[header_value]="timeout=45" +off=267 header_value complete +off=267 len=10 span[header_field]="_onnection" +off=278 header_field complete +off=279 len=10 span[header_value]="Keep-Alive" +off=291 header_value complete +off=291 len=17 span[header_field]="Transfer-Encoding" +off=309 header_field complete +off=310 len=7 span[header_value]="chunked" +off=319 header_value complete +off=319 len=12 span[header_field]="Content-Type" +off=332 header_field complete +off=333 len=9 span[header_value]="text/html" +off=344 header_value complete +off=344 len=10 span[header_field]="Connection" +off=355 header_field complete +off=356 len=5 span[header_value]="close" +off=363 header_value complete +off=365 headers complete status=200 v=1/1 flags=20a content_length=0 +off=368 chunk header len=0 +off=370 chunk complete +off=370 message complete +``` + +## Spaces in header name + + +```http +HTTP/1.1 200 OK +Server: Microsoft-IIS/6.0 +X-Powered-By: ASP.NET +en-US Content-Type: text/xml +Content-Type: text/xml +Content-Length: 16 +Date: Fri, 23 Jul 2010 18:45:38 GMT +Connection: keep-alive + +hello +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=6 span[header_field]="Server" +off=24 header_field complete +off=25 len=17 span[header_value]="Microsoft-IIS/6.0" +off=44 header_value complete +off=44 len=12 span[header_field]="X-Powered-By" +off=57 header_field complete +off=58 len=7 span[header_value]="ASP.NET" +off=67 header_value complete +off=72 error code=10 reason="Invalid header token" +``` + +## Non ASCII in status line + + +```http +HTTP/1.1 500 Oriëntatieprobleem +Date: Fri, 5 Nov 2010 23:07:12 GMT+2 +Content-Length: 0 +Connection: close + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=19 span[status]="Oriëntatieprobleem" +off=34 status complete +off=34 len=4 span[header_field]="Date" +off=39 header_field complete +off=40 len=30 span[header_value]="Fri, 5 Nov 2010 23:07:12 GMT+2" +off=72 header_value complete +off=72 len=14 span[header_field]="Content-Length" +off=87 header_field complete +off=88 len=1 span[header_value]="0" +off=91 header_value complete +off=91 len=10 span[header_field]="Connection" +off=102 header_field complete +off=103 len=5 span[header_value]="close" +off=110 header_value complete +off=112 headers complete status=500 v=1/1 flags=22 content_length=0 +off=112 message complete +``` + +## HTTP version 0.9 + + +```http +HTTP/0.9 200 OK + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="0.9" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=19 headers complete status=200 v=0/9 flags=0 content_length=0 +``` + +## No Content-Length, no Transfer-Encoding + +The client should wait for the server's EOF. That is, when neither +content-length nor transfer-encoding is specified, the end of body +is specified by the EOF. + + +```http +HTTP/1.1 200 OK +Content-Type: text/plain + +hello world +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=12 span[header_field]="Content-Type" +off=30 header_field complete +off=31 len=10 span[header_value]="text/plain" +off=43 header_value complete +off=45 headers complete status=200 v=1/1 flags=0 content_length=0 +off=45 len=11 span[body]="hello world" +``` + +## Response starting with CRLF + + +```http +\r\nHTTP/1.1 200 OK +Header1: Value1 +Header2:\t Value2 +Content-Length: 0 + + +``` + +```log +off=2 message begin +off=7 len=3 span[version]="1.1" +off=10 version complete +off=15 len=2 span[status]="OK" +off=19 status complete +off=19 len=7 span[header_field]="Header1" +off=27 header_field complete +off=28 len=6 span[header_value]="Value1" +off=36 header_value complete +off=36 len=7 span[header_field]="Header2" +off=44 header_field complete +off=46 len=6 span[header_value]="Value2" +off=54 header_value complete +off=54 len=14 span[header_field]="Content-Length" +off=69 header_field complete +off=70 len=1 span[header_value]="0" +off=73 header_value complete +off=75 headers complete status=200 v=1/1 flags=20 content_length=0 +off=75 message complete +``` diff --git a/vendor/llhttp/test/response/transfer-encoding.md b/vendor/llhttp/test/response/transfer-encoding.md new file mode 100644 index 0000000..e1fd10a --- /dev/null +++ b/vendor/llhttp/test/response/transfer-encoding.md @@ -0,0 +1,410 @@ +Transfer-Encoding header +======================== + +## Trailing space on chunked body + + +```http +HTTP/1.1 200 OK +Content-Type: text/plain +Transfer-Encoding: chunked + +25 \r\n\ +This is the data in the first chunk + +1C +and this is the second one + +0 \r\n\ + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=12 span[header_field]="Content-Type" +off=30 header_field complete +off=31 len=10 span[header_value]="text/plain" +off=43 header_value complete +off=43 len=17 span[header_field]="Transfer-Encoding" +off=61 header_field complete +off=62 len=7 span[header_value]="chunked" +off=71 header_value complete +off=73 headers complete status=200 v=1/1 flags=208 content_length=0 +off=76 error code=12 reason="Invalid character in chunk size" +``` + +## `chunked` before other transfer-encoding + + +```http +HTTP/1.1 200 OK +Accept: */* +Transfer-Encoding: chunked, deflate + +World +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=6 span[header_field]="Accept" +off=24 header_field complete +off=25 len=3 span[header_value]="*/*" +off=30 header_value complete +off=30 len=17 span[header_field]="Transfer-Encoding" +off=48 header_field complete +off=49 len=16 span[header_value]="chunked, deflate" +off=67 header_value complete +off=69 headers complete status=200 v=1/1 flags=200 content_length=0 +off=69 len=5 span[body]="World" +``` + +## multiple transfer-encoding where chunked is not the last one + + +```http +HTTP/1.1 200 OK +Accept: */* +Transfer-Encoding: chunked +Transfer-Encoding: identity + +World +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=6 span[header_field]="Accept" +off=24 header_field complete +off=25 len=3 span[header_value]="*/*" +off=30 header_value complete +off=30 len=17 span[header_field]="Transfer-Encoding" +off=48 header_field complete +off=49 len=7 span[header_value]="chunked" +off=58 header_value complete +off=58 len=17 span[header_field]="Transfer-Encoding" +off=76 header_field complete +off=77 len=8 span[header_value]="identity" +off=87 header_value complete +off=89 headers complete status=200 v=1/1 flags=200 content_length=0 +off=89 len=5 span[body]="World" +``` + +## `chunkedchunked` transfer-encoding does not enable chunked enconding + +This check that the word `chunked` repeat more than once (with or without spaces) does not mistakenly enables chunked encoding. + + +```http +HTTP/1.1 200 OK +Accept: */* +Transfer-Encoding: chunkedchunked + +2 +OK +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=6 span[header_field]="Accept" +off=24 header_field complete +off=25 len=3 span[header_value]="*/*" +off=30 header_value complete +off=30 len=17 span[header_field]="Transfer-Encoding" +off=48 header_field complete +off=49 len=14 span[header_value]="chunkedchunked" +off=65 header_value complete +off=67 headers complete status=200 v=1/1 flags=200 content_length=0 +off=67 len=1 span[body]="2" +off=68 len=1 span[body]=cr +off=69 len=1 span[body]=lf +off=70 len=2 span[body]="OK" +off=72 len=1 span[body]=cr +off=73 len=1 span[body]=lf +off=74 len=1 span[body]="0" +off=75 len=1 span[body]=cr +off=76 len=1 span[body]=lf +off=77 len=1 span[body]=cr +off=78 len=1 span[body]=lf +``` + +## Chunk extensions + + +```http +HTTP/1.1 200 OK +Host: localhost +Transfer-encoding: chunked + +5;ilovew3;somuchlove=aretheseparametersfor +hello +6;blahblah;blah + world +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=4 span[header_field]="Host" +off=22 header_field complete +off=23 len=9 span[header_value]="localhost" +off=34 header_value complete +off=34 len=17 span[header_field]="Transfer-encoding" +off=52 header_field complete +off=53 len=7 span[header_value]="chunked" +off=62 header_value complete +off=64 headers complete status=200 v=1/1 flags=208 content_length=0 +off=66 len=7 span[chunk_extension_name]="ilovew3" +off=74 chunk_extension_name complete +off=74 len=10 span[chunk_extension_name]="somuchlove" +off=85 chunk_extension_name complete +off=85 len=21 span[chunk_extension_value]="aretheseparametersfor" +off=107 chunk_extension_value complete +off=108 chunk header len=5 +off=108 len=5 span[body]="hello" +off=115 chunk complete +off=117 len=8 span[chunk_extension_name]="blahblah" +off=126 chunk_extension_name complete +off=126 len=4 span[chunk_extension_name]="blah" +off=131 chunk_extension_name complete +off=132 chunk header len=6 +off=132 len=6 span[body]=" world" +off=140 chunk complete +off=143 chunk header len=0 +off=145 chunk complete +off=145 message complete +``` + +## No semicolon before chunk extensions + + +```http +HTTP/1.1 200 OK +Host: localhost +Transfer-encoding: chunked + +2 erfrferferf +aa +0 rrrr + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=4 span[header_field]="Host" +off=22 header_field complete +off=23 len=9 span[header_value]="localhost" +off=34 header_value complete +off=34 len=17 span[header_field]="Transfer-encoding" +off=52 header_field complete +off=53 len=7 span[header_value]="chunked" +off=62 header_value complete +off=64 headers complete status=200 v=1/1 flags=208 content_length=0 +off=66 error code=12 reason="Invalid character in chunk size" +``` + + +## No extension after semicolon + + +```http +HTTP/1.1 200 OK +Host: localhost +Transfer-encoding: chunked + +2; +aa +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=4 span[header_field]="Host" +off=22 header_field complete +off=23 len=9 span[header_value]="localhost" +off=34 header_value complete +off=34 len=17 span[header_field]="Transfer-encoding" +off=52 header_field complete +off=53 len=7 span[header_value]="chunked" +off=62 header_value complete +off=64 headers complete status=200 v=1/1 flags=208 content_length=0 +off=67 error code=2 reason="Invalid character in chunk extensions" +``` + + +## Chunk extensions quoting + + +```http +HTTP/1.1 200 OK +Host: localhost +Transfer-Encoding: chunked + +5;ilovew3="I love; extensions";somuchlove="aretheseparametersfor";blah;foo=bar +hello +6;blahblah;blah + world +0 + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=4 span[header_field]="Host" +off=22 header_field complete +off=23 len=9 span[header_value]="localhost" +off=34 header_value complete +off=34 len=17 span[header_field]="Transfer-Encoding" +off=52 header_field complete +off=53 len=7 span[header_value]="chunked" +off=62 header_value complete +off=64 headers complete status=200 v=1/1 flags=208 content_length=0 +off=66 len=7 span[chunk_extension_name]="ilovew3" +off=74 chunk_extension_name complete +off=74 len=20 span[chunk_extension_value]=""I love; extensions"" +off=94 chunk_extension_value complete +off=95 len=10 span[chunk_extension_name]="somuchlove" +off=106 chunk_extension_name complete +off=106 len=23 span[chunk_extension_value]=""aretheseparametersfor"" +off=129 chunk_extension_value complete +off=130 len=4 span[chunk_extension_name]="blah" +off=135 chunk_extension_name complete +off=135 len=3 span[chunk_extension_name]="foo" +off=139 chunk_extension_name complete +off=139 len=3 span[chunk_extension_value]="bar" +off=143 chunk_extension_value complete +off=144 chunk header len=5 +off=144 len=5 span[body]="hello" +off=151 chunk complete +off=153 len=8 span[chunk_extension_name]="blahblah" +off=162 chunk_extension_name complete +off=162 len=4 span[chunk_extension_name]="blah" +off=167 chunk_extension_name complete +off=168 chunk header len=6 +off=168 len=6 span[body]=" world" +off=176 chunk complete +off=179 chunk header len=0 +``` + + +## Unbalanced chunk extensions quoting + + +```http +HTTP/1.1 200 OK +Host: localhost +Transfer-Encoding: chunked + +5;ilovew3="abc";somuchlove="def; ghi +hello +6;blahblah;blah + world +0 + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=4 span[header_field]="Host" +off=22 header_field complete +off=23 len=9 span[header_value]="localhost" +off=34 header_value complete +off=34 len=17 span[header_field]="Transfer-Encoding" +off=52 header_field complete +off=53 len=7 span[header_value]="chunked" +off=62 header_value complete +off=64 headers complete status=200 v=1/1 flags=208 content_length=0 +off=66 len=7 span[chunk_extension_name]="ilovew3" +off=74 chunk_extension_name complete +off=74 len=5 span[chunk_extension_value]=""abc"" +off=79 chunk_extension_value complete +off=80 len=10 span[chunk_extension_name]="somuchlove" +off=91 chunk_extension_name complete +off=91 len=9 span[chunk_extension_value]=""def; ghi" +off=101 error code=2 reason="Invalid character in chunk extensions quoted value" +``` + + +## Invalid OBS fold after chunked value + + +```http +HTTP/1.1 200 OK +Transfer-Encoding: chunked + abc + +5 +World +0 + + +``` + +```log +off=0 message begin +off=5 len=3 span[version]="1.1" +off=8 version complete +off=13 len=2 span[status]="OK" +off=17 status complete +off=17 len=17 span[header_field]="Transfer-Encoding" +off=35 header_field complete +off=36 len=7 span[header_value]="chunked" +off=45 len=5 span[header_value]=" abc" +off=52 header_value complete +off=54 headers complete status=200 v=1/1 flags=200 content_length=0 +off=54 len=1 span[body]="5" +off=55 len=1 span[body]=cr +off=56 len=1 span[body]=lf +off=57 len=5 span[body]="World" +off=62 len=1 span[body]=cr +off=63 len=1 span[body]=lf +off=64 len=1 span[body]="0" +off=65 len=1 span[body]=cr +off=66 len=1 span[body]=lf +off=67 len=1 span[body]=cr +off=68 len=1 span[body]=lf +``` + diff --git a/vendor/llhttp/test/url.md b/vendor/llhttp/test/url.md new file mode 100644 index 0000000..13a1b01 --- /dev/null +++ b/vendor/llhttp/test/url.md @@ -0,0 +1,261 @@ +# URL tests + +## Absolute URL + +```url +http://example.com/path?query=value#schema +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=11 span[url.host]="example.com" +off=18 len=5 span[url.path]="/path" +off=24 len=11 span[url.query]="query=value" +off=36 len=6 span[url.fragment]="schema" +``` + +## Relative URL + +```url +/path?query=value#schema +``` + +```log +off=0 len=5 span[url.path]="/path" +off=6 len=11 span[url.query]="query=value" +off=18 len=6 span[url.fragment]="schema" +``` + +## Failing on broken schema + + +```url +schema:/path?query=value#schema +``` + +```log +off=0 len=6 span[url.schema]="schema" +off=8 error code=7 reason="Unexpected char in url schema" +``` + +## Proxy request + +```url +http://hostname/ +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=8 span[url.host]="hostname" +off=15 len=1 span[url.path]="/" +``` + +## Proxy request with port + +```url +http://hostname:444/ +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=12 span[url.host]="hostname:444" +off=19 len=1 span[url.path]="/" +``` + +## Proxy IPv6 request + +```url +http://[1:2::3:4]/ +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=10 span[url.host]="[1:2::3:4]" +off=17 len=1 span[url.path]="/" +``` + +## Proxy IPv6 request with port + +```url +http://[1:2::3:4]:67/ +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=13 span[url.host]="[1:2::3:4]:67" +off=20 len=1 span[url.path]="/" +``` + +## IPv4 in IPv6 address + +```url +http://[2001:0000:0000:0000:0000:0000:1.9.1.1]/ +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=39 span[url.host]="[2001:0000:0000:0000:0000:0000:1.9.1.1]" +off=46 len=1 span[url.path]="/" +``` + +## Extra `?` in query string + +```url +http://a.tbcdn.cn/p/fp/2010c/??fp-header-min.css,fp-base-min.css,\ +fp-channel-min.css,fp-product-min.css,fp-mall-min.css,fp-category-min.css,\ +fp-sub-min.css,fp-gdp4p-min.css,fp-css3-min.css,fp-misc-min.css?t=20101022.css +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=10 span[url.host]="a.tbcdn.cn" +off=17 len=12 span[url.path]="/p/fp/2010c/" +off=30 len=187 span[url.query]="?fp-header-min.css,fp-base-min.css,fp-channel-min.css,fp-product-min.css,fp-mall-min.css,fp-category-min.css,fp-sub-min.css,fp-gdp4p-min.css,fp-css3-min.css,fp-misc-min.css?t=20101022.css" +``` + +## URL encoded space + +```url +/toto.html?toto=a%20b +``` + +```log +off=0 len=10 span[url.path]="/toto.html" +off=11 len=10 span[url.query]="toto=a%20b" +``` + +## URL fragment + +```url +/toto.html#titi +``` + +```log +off=0 len=10 span[url.path]="/toto.html" +off=11 len=4 span[url.fragment]="titi" +``` + +## Complex URL fragment + +```url +http://www.webmasterworld.com/r.cgi?f=21&d=8405&url=\ +http://www.example.com/index.html?foo=bar&hello=world#midpage +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=22 span[url.host]="www.webmasterworld.com" +off=29 len=6 span[url.path]="/r.cgi" +off=36 len=69 span[url.query]="f=21&d=8405&url=http://www.example.com/index.html?foo=bar&hello=world" +off=106 len=7 span[url.fragment]="midpage" +``` + +## Complex URL from node.js url parser doc + +```url +http://host.com:8080/p/a/t/h?query=string#hash +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=13 span[url.host]="host.com:8080" +off=20 len=8 span[url.path]="/p/a/t/h" +off=29 len=12 span[url.query]="query=string" +off=42 len=4 span[url.fragment]="hash" +``` + +## Complex URL with basic auth from node.js url parser doc + +```url +http://a:b@host.com:8080/p/a/t/h?query=string#hash +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=17 span[url.host]="a:b@host.com:8080" +off=24 len=8 span[url.path]="/p/a/t/h" +off=33 len=12 span[url.query]="query=string" +off=46 len=4 span[url.fragment]="hash" +``` + +## Double `@` + + +```url +http://a:b@@hostname:443/ +``` + +```log +off=0 len=4 span[url.schema]="http" +off=12 error code=7 reason="Double @ in url" +``` + +## Proxy basic auth with url encoded space + +```url +http://a%20:b@host.com/ +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=15 span[url.host]="a%20:b@host.com" +off=22 len=1 span[url.path]="/" +``` + +## Proxy basic auth with unreserved chars + +```url +http://a!;-_!=+$@host.com/ +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=18 span[url.host]="a!;-_!=+$@host.com" +off=25 len=1 span[url.path]="/" +``` + +## IPv6 address with Zone ID + +```url +http://[fe80::a%25eth0]/ +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=16 span[url.host]="[fe80::a%25eth0]" +off=23 len=1 span[url.path]="/" +``` + +## IPv6 address with Zone ID, but `%` is not percent-encoded + +```url +http://[fe80::a%eth0]/ +``` + +```log +off=0 len=4 span[url.schema]="http" +off=7 len=14 span[url.host]="[fe80::a%eth0]" +off=21 len=1 span[url.path]="/" +``` + +## Disallow tab in URL + + +```url +/foo\tbar/ +``` + +```log +off=5 error code=7 reason="Invalid characters in url" +``` + +## Disallow form-feed in URL + + +```url +/foo\fbar/ +``` + +```log +off=5 error code=7 reason="Invalid characters in url" +``` diff --git a/vendor/llhttp/tsconfig.json b/vendor/llhttp/tsconfig.json new file mode 100644 index 0000000..01ec7c2 --- /dev/null +++ b/vendor/llhttp/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "strict": true, + "target": "es2017", + "module": "commonjs", + "moduleResolution": "node", + "outDir": "./lib", + "declaration": true, + "pretty": true, + "sourceMap": true + }, + "include": [ + "src/**/*.ts" + ] +} diff --git a/vendor/llhttp/tslint.json b/vendor/llhttp/tslint.json new file mode 100644 index 0000000..b0aaf97 --- /dev/null +++ b/vendor/llhttp/tslint.json @@ -0,0 +1,14 @@ +{ + "defaultSeverity": "error", + "extends": [ + "tslint:recommended" + ], + "jsRules": {}, + "rules": { + "no-bitwise": null, + "quotemark": [ + true, "single", "avoid-escape", "avoid-template" + ] + }, + "rulesDirectory": [] +}
  • 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℘X4}l@UV!; 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 z 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ℜTJn=m?-!Q514DXI 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%0DH{YHvhob~(#_Zcu%udmkkqIH^ z=c&fa-1fK@dP9`*{tvar2mgu5?7=mX;?JVWJVuwkDfsIV0+6ELQ5$!UE;fI zlKMMqUx^H2M7&0XjH&t7URy1scTgY35q-NtY5uaSw6LorU+7+r6Z?A=eTFQk4(|_a zzz`+bXyB{Q`Gh98>%P91HJmrQ+oy6{xS6iE0F}Babb!=K2dv-xGLRZMl!EA{$si|q z9Vf<>CjAgtE?fUd!$O+BCv2C)h1E2s%6gssvivL(SLIA%(H@?qh?9|V;gBK()<|Tu zlMafc*Vkqa1}vIb5^kI)mGFzoJZd&|Nyw}`2lXJa0g$pbmgV&FB< z@#Yb+xoZ`wCQN!F$Vs|{Uu5RIttuL)c!@0c#qYU9jCf^Lo;q{W{4r@6+FZqZ|0PPG zeD%Tj_UGIs=f&=LRsIXW){*1fpr?M+lqfj*=+Q}nrMG5Tb`VwDHvj^p4mghv*e#%c z>DdYzcK*{dwx@HTZjp6;mf$wI5()p9qa^+4YqcQ1;*4Tn_BVhtW+B;Jvod=f9BYw3d?(3sufxPW4sO@oI}DBh)hJry%m&3r%7=>_6#4 zeZw_oWHw}I zSElo-F8Rp7jQRH6u1x>v=wV{8cP=N!8|{BIbjIgAhEwq|&L0q%S02)6QISas?kPGc*1<_3X%kjCQVvpe z3%`0+Fe(3D6!rSg3ZM_jfaG_WH+C@%z)Ap0`dJ}y~1*#u>AL9u~lAmhcG@d zgyi7U^BDFmUN~x;Xx=;4T!lV54{JZh7Rm>Z3qtt_WwdZkyqPUW47ZZ?#;W-t32}(UBE@>iVK`!X6)(^mWjAszdNcta_}zUrTC0O9_l$~1hJ{_~JG9{U&lb24mJ%N~@A}jc!yjfW^2YJ^Cy1&P({a1{yM#v{vpJRA zvn$5S3=0+}uKkQB>lf?ja^MJD8FmNM&W>`Q;qi`Qlu5}o{Hq(5ZJ7~(d4>p|88Ru~ z?3v9sdE8nK#PWh#)69YCZyz`x`cL}ZesB0yw@5rZVz zo4lmOmb6@?s}?u8S}TD`JLzG=`W}%8)v#>7YjL7mMK3z+cI!P=QVpxO-vX&Kp-!HI zxZ%%k46~a6j}rA0-@U>qCbOS6ljY;#nZd5WTfYZW#;j{y5F#1HntFGV$6>SCP(H3v zWOsbp?Hp-@1!sh3HbvQ#hu*La>9S>Hcww<~%JW%FIR&9}(Y;Ft)cj6%xS!Rio7bH| zgPaiL33)W{=>ED!zAU3?s>~Dbl<)i1%|)@^yfRxk{Tdn*=*vausgAh_O zs-yt@6|&1hyeYn;JXtVcl6sPmQ;@A}MaasiUFRmyENtED$;y8;>m$S2go#(!L-l)I zJ!h}8EMYlC?nLS)w(^G@9+-OR_9x}~5K_$po)1t+k^*gZQ~j%h4`u9$);pXzYHQgW z69GJ|3~o!%WCa9p?Xip4v!X$r^GASq>j$peyCds2_c%ja1{8XhQWDO&yG!${^ca3$ zobrB5B($RNk$u4p1Ape~_I}JJt+rvxAsCM8i_A8BUoKYaGfYu%I{XG@KDC#s0s+Hm zt`jZw&J<>|y=pi#4kdS5yulMVqr`SOgSsXP+2KyGyaDW>i+nQ_5014Uh#1w}g9uWU zv=p{k6$%z~VEf%oP#=GPJE6wbdCv9dG430d=BrAF&!DH@q1N3xUJ!%Ra$Olnl=vjn#_X(TiJ#mVKdqY+OW5A}ID`t`iHunSPBQm=C5?$tP4~BeJjT zpDcL|LS%O>P-~CHJ~K(^(3_$GL`o2P4%U$&y|E)(16A&@|CuibTkIA+wOGGCOC7Nt zbnyvh-vJI*1j*xG5OkTM%bFtY+lF$usX7D}COg2CM162*)MbjX?XtXo8TM zD53*P&U+(M9+9ji;t1*amWKA6oLA5@kcPQ{dGfZiX`jn)q33#_Um{}K z#sqJ(jw&j`0D{g1<_Vh1I8|2)gQ*N3YLaxmySg&$2o~8s%R8+CnM4!{4g&%&+Tv!n z(IC>4U=FcWE1d{&~}hd^l}?w*(q$5qBj*#vcO`6U8&@toxOt6Y85o zI}eW8-;5mY5tm#g#mx6Lt>^m>G0L3|5B~NFy$P}_ z^3Rs;fBGdc4N;Es1p_DJTSQF)lV|MtxC-&C%jEjQ)uvB9t-Gg8SbP0N!?cINH8XWF zCJfTelB2^tYj8$`6RZHtX(sE&s}V->iLB}D@BM!b%4qzt)%!L9pY8!4NZ9N&ZNvb? z-CRUoy`ap~m&$oVHX3H~yAbB>O{FJh90+m-Tmqu&t!p4X*{+eZAqedI7PnrJZOrV^7d3-`>c*r9h{O8d~3 z9&y`hIfF<}&WGytIn;L$)3@%^@fN8k0hxD#%YCgHQ}<1?c43y_0My$_F!Q74&nE$Qm44#aMr%=;QlF6F||Tg>$9+2ex??zmF9omw$`*z?jcc29FCR5eH!dm%dbwc2z7Qh zXij{T8i9KH4h)12whAko6E&`N8YA#2XsKk~(!e1&E~ir{FcINqguA3>QY-?>*WC!G zb2`fO3z+i~7kCni_R~4NVDU%Wcw54=kXo~KHA)dtyS5k^0`$XsnV&CV<_2s+wzT5^ zAsBZWYn(rJUY?BUqy`BrLH_6Q6r9FmR=pw>!_0MuiOPkK7ra5P;5?7E)iiMnKk1;q zLr~Oe2_v9gt}B<&O9M(UebPPT_|aAjo7>qiTFpE?wEI2x=b@%+9Wk;{1833oFc&Dh zbEpyM7(cvq z)Mr{t@3!wfvcsQ;t%t2X;V(+22~m2JZ}@6jPE+x6UM`IGN9v*ujX0Nsujufby0~2u z=z8BJS1TRPu!TEh6Ro>qj(c`!(6Tts-qg{4$R$HR93>AHhu? z(Tq<~LX~~WBnihl|Q= zn7Ez$^>; znnnYHVT!?j^g%HF<=0O~+-aGzVn$_?!IDBn6SK45QWcltd$mkIWoRT#H*+|ackCL+QxPiXx3G70?O6eJ62F!&&)D_p zjEkSq$rz3}=Nk0-mFEJ_zZbkpz92geP(pSN7E`C{wR+xl*$*=qDk-R;WdQZe#X3t- zB$c~Mu#O6*R~{XlHa++q z7v$8vPha|onDzndE9G^wPITBqZO=+01sT|!@`7>3F%J>TK%q^y$^e4f23Ajo6mzO- zeuo;p-k)5@1G*bU;82ZVBq82QW2ObN{^|zngaKpVjH7QV_z=O9KDu2k`OCu^+#51;fvyi9 zdVeqj=H1h*sw^DF&wYMs`C+(m$;tfZ&EIpPS(Ap+FU8C%Y1%)tN}EF# z87dF0J-#TGi#jelCudZ;aCoVVSzJqhQ+Hf#$>U?hS`OqU-+6x8T{UbR;~4|;oJ--F zMLM46R7cj4|6Nh`_dk2bG>WN9SS~?W{hcS;sk}C?C$n`(tJl=DOH6{W#$ZTwe#mh` zo7r2}J}yo+gZlB`|1wNi8&-}SfKzvuS$>^@!$f_XcTlaBe=jY7bNsc;*P!dK!X{)N zWtOj4X3#~Q%+IJibl?)qFdeBNF20sV4$lJPTR{peX?AU&i^aEp`y^9zqpiz?P2jF+ zyFGcnvA%4fJEX)q1SAHa!FJdPQq2#(ej~6<{h=}*=1;mTgD|TWE}$x3+o+X{&v2r!I7cIsns-Ho@V7Vk_ci$MUWIl>K2GjxGQSaCU%`Uy{rF7r-_>>yA7-i$aVzkRIqSsYv?GFWG=UADFqT zSYwCp;3B$qgp&d^F0t(2Etd;HXJtk$gm`&NB5SK+)pM!*e2Bq zJ$0I~{8?_|+W8kiKEEs3pXJ`W5c~zb`1A2ZePCxLcwe2N+Q*TKTnV-LITZ+GQi8iL zh@#c6ZcZJ-l@fgRhgn>Y6bCF6`nJ`5UyIA3M*fx`)9GXbju*)4{WV_xx36Tjpg0z5 z#8CE<;*nu0?*5W*eo?V0TyEkUd8@6UV(qI78RA>IzvNGkW0Ctl7R=ld;hit<4vZXr z0)c?}(8rJ3p>@;(Qy>1ysM}}Vis=PG@-N2Id79Qd1g-h{4 zEMZ1WYuVaEAZFzR)zkT}!zC?#(1|14g-x zMJNCF!6Hmcdr1}GfPK#_mwoezoeE?1M2;T)HX4ro@3hK1%O4ntNN}E94J79X-@k18 z5AEyF%qr+YKEh777v@XpS3)lb=7Beq&;quu-IuEioTzbo!Y^l4cPBFy0V_ikfEj#j zZY?^QR1azbMZf~;*QJF+)&L~2r8-* zr3u+YhW&+N!*8pi#|GDm^Vs_3`)f`8Akno6*I1Y#+DdMl;>hsXh}3Wt(;oopAqJdF z`1mRg2v-u;+`b=CBcm1C!f6AfYU0E0$&@xyvJ?MPIquil6vV@>IOOKwY@$^Sp%*70 zl{hRLiWjE416o#JizG=uE2f{z2r9koCYW?yxmb=H^s_%FCzhguUC^Zxg?=jK!Yry{ zmeWt~-g~#aFV3*p8+Y&V#*Bbc_tgjlNjl4SWryPK@gpO+g~ura;RM_=!6vk|;y^DD zd5(<`O+a$0XIuY}tT?_O|K%TX9eB)Y;bcLZozkBpCLku1S?OPQH=Hbu6QgjOGA}gw z91)Uf*d=C>@=M_o?)dRT+OzAY)tkc8mw_Qon~s z6jZ&Mw3_MA+>fjj$&%Z88i?M=w7~Wk1^tf3O8AhB4z61(eJGwQG=HD;r@NQo<#8u9O^5dD4iZB z`F4HsN3_bj6(Bz377X4xnz{j>Jx5J@?dfN=!u>P+hsxZGS@%b4U*h>_SL~ZM4n8D# z@l$Ti5ii{dYpY-K{Vfq7+}#%(f|U!`-4OYN2Rmu8`M>JoGOz&ah;clZqOcl>rG}iE z&}dkZex}#-zc-i5k=H(OfY2+2^AzT@sLdG7TzcYEmjjT}UMh?zu@aAtpomi_G?_p6 ztx!YW0yD1GLy8a9(0dz#JKru415&F!aZ;fJABA*5iwU|svM{VcH2FaQDSI3ufS9y9 zrwsIU8-x4>_^hP^%X(7%0pmiJn(|^iOkyS&+`jT1a!bqyIg3LF z*dY&@zJWl3PXh!81;pbNr+J?nUHdDu3C;mRm}hR+6QM;PUb)`l)0WoujKu2&msslS zA(Ny+cV_71uY19S7T+BteJOhQ+FV!IvrVc1sYdTnV-+@!t#|V@*ViBK#e_Iy+N-A&xl^G4d@y&Tn+}EtyhL_)?X1)+T98(v1%+2xQ3)1_a7JfoNc`-pqd^xHu6zj*k6i|RBdvD9e{A6F|29E3U?tWAC90c?zJ|2h{|s)*m9U>fH| zCMpgiMupG8C8z&!4^Chvv1HwnNAs*TTt=b?JXdN!q=+s6q{&}#V!`{>_YcTs2+$)q z_~8FR{Hx`M^br;+V}am^j6&y;D3HNFJpv7`Cv4t4NFhT^3mX>->8gJi>P7!nJ%#$a z1#Y@->zJ5@pUeZ@aX`G@-+5bN8}W$iDhF@V`tc&G3a-;$IxJ-)kY7@!MilP6{)pz9 zVK>O-dQ)qX7(RbD$2hwFWAJ$^y$lnr?4he+PbkPaaj#U}Pf_g6=$HtUbX@0UekP%$P5m^dzl;da4F-jAWP1;0F{TrpZ4nnt{ee|xw8?nDq@ z85L53s>)tCi=8+!-@$tRTTgl^w2Iz@t=xciGf*)7oWK`mq`+09VV%`TSGCW4xB1(-li|jM03!7+7`OHPoohE^*jfJ2 z>?|^;yR*=zYgwCX(-&{m($QR?UOEetJD|Tri8cJa!+5Z$$JuFbjds8=?-rm zmu1egz)o8MoYO)4hn#Nz;R_c2*Xa<$#_J`1KzE;tR8Ve1`Flltvv?#nWh z(wWB}KmXvB`%!ATZ zgT=^$e+QNdt-(Q3sPJ9bWf>Lhtzkz~=yAT}ps4l$F$+_sA?*61ntyKjO6lJ%gp59x zV!Fgjt(T~*Hiqzv{Cf}MO&=Qc$;=P){qe~1VAIDE+o|OQ(txBex`Vu3JynzI(jouh zMrQ}5tyqM5@R4z(8W*-|UeNQ_j1PO^`i}WSHXTiDOcaumSbESaDSV~_1L?l=u~D-N zgaYaoLoBJ~t}p>s%)+58Sd9=(9KuME;O_`}B@fO;ccL?C5)eL;d?}AnCs)V^}MP@p)t+I}W$_IIhb$+1gAdU`ckS&h)d3+Vp4|93=@UIE-=$Pw)MG`>zt2 z_5DbWrT@=tj8;q&(2RZy$;KIy#oWLS0;_(S+{=+GE#hpcJ#|v2apBX zr-g!>K?OPJ;f|xj2s^1(lQUaLd`MA;LPa5?KBWBjjn;n?IA9-r8vALw`a566QX7+P z1qzSuf~9ZqDy!C@qKZtM{~7qB*lxHUI&H%I78bi%Z#*;2J|p)Bw3o_&^a?86yzZ(|>GhOwsp;UTeGzl+`AhxsX|kJu=c^BPQc!z8d`EY% z<~O-cWHTTIS)pX5=DwZcc1ijdh1^bG5DA5fK{@9>kmUDk?Z^4P$O^0GKA7*5#y_21bLUUfVkg>8#BHF*_KE(pO%!&#_}xR0~^QOZ+j2^>(xGeWY1XW~s?J$)~+wUWbwE3fKar1evzT>rQG9x6ZT$Hq?BYLW8L zpG+?Kkz61ZG#d2ZD0%3oBdnqa5w&>Wb-cTs#DfY7KIve6{(1a=v;e+%&kq~+Uf<}J zgp*Eb`6jQ9WG=7UNYWlZ@5Ni?fe&0h>s#L~htil7w7ahZrJs0rGs$*D>VxZ?w)9cu zbg#?K)m5(P&EE4fdegS#)5nEOVy0VV;O^}{o@IEFD+14{A?enr0xo-$={ICs>R(;? z1_}4Ov>4A7w!K!rhcR)G!McVjl~a@*H&y*QuO_*RPub_{I=6{xFY)z9GaRjjJ~Q>Y z0)h&{)`Fz$n?-SRH5urGFW$a5R0c2S*;cLA`qqJla!F&^e2qv;i3xmI`{?#1*p`dl zyT(I*;{Jxj?4}naP$?-MF__JE4Q)0FT5NZ-4~Vg{PMN!Snl?#_exdzGu^4BEXoxzj(V5?#ZI2s0X6G_E^0@68dikp-`g+V3=T1)YP~rKr z*ct(Qug0_Yo{Z}UPBc+5pm#1<{XF1XB|_uXISV$fJ8KLwgxW4Xt6zfAvC>F|^Ih0y zexWt7L*=+vCS_t1aK`E9IyDfWF!SHs6ON+*j4I!5^+|K&O<^dAn7r@i;KRcX15QA? z2ZOHudB#<+2ibBNDT-i{7n^_O3SBx>x*@e}V{t`$w&VQNf$LE=0#bv?crP7su?G}Iz#>i7KpLPm8#CKre@030y{&_uA)doQDajy6pl?pRV#8IZ|WwNE{C(0 zFxtAvesbDxiA{CIXYk&=+mdP9=&7|n-o#%q-Q&$lIpWdMv6_9d=8L~2dm1W>-~=!vG`-wONxCY(R@adUmM zKs^AmMR)WT=e9+QsAf36Vw;bTV>Q;{2G117<@k{qnfUqPmAaV?Q=@lF%GSr9d}B2m zowHMKv%1$iP%FT`#qPK=HEDjYb9HHaVS<`*=3p#`t@O1yuK??frKYF>^|I=FYE z7CK=vCz;EJlbAjJl%)RkPzBXtqO{Beqz5z4lPX&Z1kBVOaAEsXzCu+y^I-c=tT3a! zE+iLAGoaAos1YB(EA{KaY>wQhJ@J^Wva*PBDHPhrd!N-Yrcl7Xfu}WMsCAyiUk@D1W^m-?JcLykipLOgLuIi zb}r97XIPl{nIe77w7qOQr&k0Hb})ezVR!XGCD%21A_ke%$rxs!H+&bZqP{un$VzS4 z^QVof2mvRB;c%I~tahPrsVi*Ez33M?&=?e09<3Vn*!3FZ7~}VztUkDas$a3D8bqI$ zX3#3|+)EhLJBR)}8NIc`Zoij57#KDv5WF}yRX?VRA~$bYe0M#pUr_Su!hp=nH`_WFiIwGzI`>S%d;b1l^F zwOp}A@zR#jyHI2IzM-!4f8H#yF|=3Suq-+JTy+a?TW3TE2gJ{EO-DNI18Xa@PMwiB zjbek*&RiWSaX_|sXEKvh#^y~?>c^q1mFln*<~4C5SgUgS)me!Vr*)~8ZQyA5dF1YM z@lfr*pXrS%YtE!zT`l2U`CgAR(R(LwozR7E-7qvz)ZyLgYLngKLU17Mo;7o2uTrH8 zvZ&B*7<#f`T*rF_3vrsre=O#@KB`}d>VO>M{+%WZ>eLWv#aDbf)W=EZ2}XrV{kh*s zBmY$@N}<6x3bGa#Gi_8W`&MVNudA*#1IeS+@`WPBhp>^ePs$|^?`60y&QniKa};g6 zxvngmTio>6&hd=dKRLYrZIzewTr|}caI$t0 zwXQ!C5ZJF>-1lgADwX0pY`mw&dh5bjm%#}LJL5mh$7lnce|kmf<39c3MnL(}HC9MC zdpwJo)C>RU%QcoVr&mv=K7&U2=LlzKijPy6r;*bCuWZ}Eis8y;d#|BLfPt#snFrNm zPW|ZK1m~S5T{N}Pm%8{tRJ{)ldglsyp@{Ll>C9pD{x{UZ&#qAyDy`*1%Ci*|(vFL9 zOsaHkOoY7_u`+{fljanvB!SMQkb)~ouW#)X6cl6=xbE7Z1T0(w>!}7gCTD{EHte~% zl$#4jfc8hj+Chr`qga}ea9$!NV5V4ru{g7#(^|R%E^EAXcideUqD`T0d$~Q z+3R^KK-miTVXzZR76jAGdDpdQ5wV2*EY$gkd)%MEjxO%^E1~5QYK&UK& zU%H`gopO4tnpPfhKLb%OxfUFs)-&b;f`j#w*?ZTnf2?z+LG8WX`?(e)8RoPD+U`ww zgqB+BYxcKM6J}ZACo$iHX63Cs;Ifx|z`Mr)5`fxAW;$7wHc2}iTE;cWT0nd|gtQL#3!!##C_qxPDe9@fx$ zQ|&n?L27H~L>X>z+M8)vJGp#;rBs=>%?FEcGFyl8JV(^V;XEgSLgq=3L|}WFmB=9^ zaLCcV^8sXsbRWe%vWN^A@iYDdhi~_Q(Y_B@wo}!6k5Zj5X%iTo;J8$epo!x#gW^&Z39i| z$0N(5%z94&&%N6=PU;!FhxG@SI1l$B^||;5cvetYT$Fa)hi!^^U?BQ?*o6eLIYd!r zfNP9p{uydqzC8U-da}LS#}Z);7u+kH&yU0(lyf}&fSgRYJcv*T?nKP&Jm`(wGS4J4GKT$Q5>i(dy3 zsBVjPvgS=vJCoko_8vRTE~+Qin5A2GF)OyfP18tSd9Mn~;U}}l&6oq7?T1RboX<*w z`DpW*ulSp}UFD9bsj@MZE>`i)UyU6+%1DX~Q>nTqVs3sjaDuMfTp)mrLAt)~0%d4e zp=6o=CcxWHb5Q95PHC}e1C%hUoW(18Ww+30>uA-?tCxy087rGm^_A^2VHo8a?7?e8}UBbFboeXY6t$%_Gfv-CFk(Ib8o+$7$C_Wi>y($u$~Kir6c;AT$?QznfIX;bLSX9?-n zM`_3hI&M7%OlHGz(CKvVkvF)Uh_~DTiRjt<*0FpO{!=|klJ#bbTPbFXMnEV!@_58= zFTTM&+v?9x5+2YTtLA+Ar>EBAeN{Q-b;EGinbBSbSIvNW7p;q6_yzJ_!?S$}5ff9p zcOm(2$-a*C{L0ID;TR=PjB-19eu#2yYoNotK53vQ8`;1I?gltzq;eVz;{2=LN{}WM zYhM`F`e#H1tXg>j5N(#gF^xp_;^GsM!zVsc0{JqU$2MTPzV7)%*2l@FcglnG_9O3D z1>DO7Ub8m7*Ld2{x?^XivtrjjF&V^pWXDbDw{C4u;Js&GE+t04Hi~(csx;`8YhJYN zBIbDB;srB45690o zn`lM!&#%rLjk?nHBZjW{`eiWzexK@i2{SD)?m}O6z#d~`uA#MMt991AO@@~;Z~=@u z*nDqdKBF7uzmHB0eLmtVTre(UgFa)=P36c9DF_>Pq6x*Z<~%_+vP!sjM8l=s)JZjd z__0j)$W*~v}77vXhvll(*Ke z$;hmuAL2xDCK@5xt?z&=L}*0XK*KqT(XDV)8w z4z;SY?F*U7Xm-V|^!1~zmq8DAfu?T=rn~KWrm-W-M+&Y5TSuMXE1%FhNa(jVx*nCA z^s~Btn%Bzmi$TnEYcpZWrrxu&F3T&9jj%s{9{c3(^r7asF8xp~P7?w^LCfNc>9Wr3 z>jy_cuo(X(Z{JFPBGDJAIK|?c+*?TJdm0;mhgGSt&h{Po>=&p#ro-?Fii-S`cuZk z_>F0!LO-*jtQ^0$3}?;TEm|#QKLSK4f?>@n7o&cm7uyHKJN7VfNIlHP5>)dIj9Z>3 zO&M!ctyLa{1@MP7aR#194=gbt> z#n5AoyJb+?4w~nR!!(zaI4+=eo;Tp+LU6JM=iq?|ipL^W&O$(TQzp9WD4FnSE6>-1 z9CHCVVC!%=k{6%EtRptVuolqLSnTogLeMF}5`vfgg`ml@=lON(xDS?haL*L}*bdKs zoX>fN2fCyiwm0&lDs4e$QH8LXjMvWWLipI|8<3|}a)|KlyN6yy1Wm{gMBJaf`hXPi zssy?i$r(a!auC1h${Zu#s~|i*3rd{0$@72s54p;cHOCITI;&(yB}ThIyAdL0*h?S2 zXvtX9DGI{BrJvgP$ZBZMtvg41n@K$C8jL>AE4I%gP+x7cUMPg@*;q2 zKQE15avuBwXo+l)f2|Sk_Ufj6Y~BWuS)5{nbW&J|+mR_n(C#BKX?v(v6D&gyid*X6 z?^lku8Y3LC4R|rkuk@}!AET1vt4=V+iB3x?w&FQGAZ2F#K*9jRaOobY}XYr|_zm2>UF+o5?!?nBy z@8DVfsqlX+-2C5;M^LPr-__ErHE`6vbcWRobm+WtPUi7$5s{{>9#D2n)G(OSDjpGa zb;itmOgE2LBvrIoeFk`J=tFJT2%qq1Z1ifKcrx3ltF=5(vg6&&`e2e;!_mzAT3{56 zl!&u7`;JoQ`Y9+j+k`u^bmSVA9;Yy*!@8%np=BXc7w#}44O18S>z2SxPA-b3&dQ!A zjVgjm{p2`Li$BTV6ZSmCW&7-Jt`~&koQG8hT!&N_(L;70D4eLIGnKRHM89EU9%$S^ zm5LJr1aa;ghALs>M=b{L06eUY2UX4j=7NqCEt)biG5;THZvjsN&*PV?t9QF0%u9qSd_jX3(i#|k7IG8YHl7f<(DCc?Q{ z)k`I>i7&-tNg@o&Qf(hv{f2_Vn<4XIDWlG|$@7!NHS@nzMB7-^*4Xf26kfJL3_1H-f!gj^fR|bEMEMa180szg2(g4SAyOg3Er*Zu^cz)6*>sN z5_E+R*U~<7A@`T*oudtn z;U4ooy_r7mA>~&dcFw~$i|0QP*xWEhV?FZx0ovNAKnQQUzcd2g-yCk}q4P05Y*OtGa0J ziJeJ%gz)t|X{)cVOLTT;OMf~3sSex)O@%LaA{CI+)=v$YT zo-$wOD0M3k%SQkmAdN_T5vNAkv&O=~{!*2xy|IlOXP ztno|FS1tk3gl2X|-LkHr)%dCDE6;Dw%ebCNz&0{CC?w*qZKSU}5wIL%DTOM@|IeGH zZ`#eiYT&af)rE^@QZu^^<6)LIILSYkMH;G3G9zoBFTrAl@B*qcR4tpXPgF0%-Z7xf zfBG~uFWz;IR39eh0-@b6pt#3#4HjrtO*(I{73BbP^ZeY|bW!$2R&R&`dWAxHH~V58 zzwaX~Vk#*KPT5eGAE}p z=}izdzv;n#n=FXAuCF-Ef}ex|TiDq|al4$OZmSq22`Y0mIkK&;GTCPew2dP>!HtrW z*zZ4{W!dW5fEd}%Z;ZU>XUo|qH~~@CJ$%bf21YO5$aP z|4sKmVl*6h*MGP?xGZ@8dW|gQqa9;Bw6TwEz(6J=H@AOP-S&d)uo`aR>nyt^w+`51 zN65E%-$cuy=>>YrX)vK5R`iJ}^uCCTgW*CM+$z=dz~v;XnO>wrz+t)BT#rdDvHg~Z zaFxHw899^Jg+_y$BjKqtXo6of*Z3-bwlU2QGeWc*u9r_I&@M8l>$R8rBzAPVVdE{D z`3%(qlfYNwQyIXKE>@FR|2UP5r7$K-z5O2e|5ud%rG*h~MDCV&QI&kh*bHdOOa^GC z{7PV+l*jxXnHIap)+aJ7)6FI`vIAt$@nN^&z-HQER^JYQj#zx1!W$@ai207NddaT~ z@?C;`f>y7ht%<(SM7&E!k zBBj?4;=uSB!5~xq$1GN=?->bqx_^WfM0i?PFbH9e%JcTWV1`f!Us3_KXYLJ+!-yBrT~kT zM3b_~ru7lBCW@M<&%O_AW$I31$R?#(bdk`^$nC#yB5Yf_oj*ybO~go3Fa?!IkZ@+9 zSN)(zG%24jPuFz6y&#tDPEcKUDt7wwTrtP`G|4qW;{jT-Y#oH(ihC}2UVQYP@jQqS zX8}KINzRL|-ArPA-Qj>(Ub358phh?SlEkUJ9D!2lA>2hBM3zMp$#*M_@*4x@?mj>1 z!3@W>8(Dq4CBJHDFBh;cDi6D}7~+kwprhd0yLoKjZA z**!#16lWqu3%*a-KK%3M!B1rnKMe^X{ZG~({ZZ#4Sn(plK)t1lTKbwwyi%R_uB}wd zPn`(kQ7T9{aQA7_)ib}6fqyp@B|8FI5t zwj55BA|UAc-eoqoH%IIqyKoojUc6UI5`Rsi(();ateo3MZ}pZIE0Z&ud8KOXD3u1QN4)%+j>I@6^VFy=ivRyK<<)9lO0uUlQr8(g@!l6 z*`qP7`huPxb!w(b%OnZWZavQS3FD~cvlRSzChf&$|EeDh;Ih8jXFdTJPZi{G?ehK| zvV2JvPhSUMe;%)Xc++}>z!6q9`Q#8+m8`nnq0P!c(^JMY?Jlh6wtuRCVY1IjE2OG} z>zFARvmzcx#LWv6y1p`%)WOfGH}=@2;V-790(@T4fTzy@LPiUX=>zCUBaS5wM(6Pr zQk_D;2>YD=XTvX5)%P+`$J5)8AXod$Vw^rm=z%Frchj zR|$fjZ`NLq+`7Le&>_565spZ^MbU&8fE~UAH$1S2Bya$AlXMgHXQH64+E>E56Jq7P zf;-_5kB3M8X2-w-f}{d^Yje9g7JkzZA6)JcdOGJ`Eq>eJLE^_V1heNG0{=LS{CybR z|EbrILWuZeR~i`|bl@m71S3H{=E30WE^t4ms= zIj5KHH`nG2=bQL)L-^!c2@p*mZLL}Aqy;`HJSpO=|1*=-JEk!3K`T`<>)5{l$p8I zN|H!HVw0{*0l1+<@>s+?7zg7_S3@@AguOpXEQg}^mYou-y$N(UKf>((eBt)vc?Mi@ z$p=aC`$Q+6pIY3(kSjaG>)7<`D-n@<#>4s%6p+**HS@^yO;D#6ioiwA?O8J0d zSY(Z1+qvbwP5wJ$!x7R5vO??SZyjaf?k<7Sa#=aznOmZ35}1c$0c@mN)f@o?_|@}NNn@Reak z?*q>~#^$##UlwaZ(?*TV9=W*H1pWCcSZDNLT-YOFRNbepc@IwLW)n`{U(*GY-bhzr zB5A2sSZVh=^@*v^EkbK8S6FsE=-DDUSTB_?+OqtkL_>XnI-QMt-Z<|?ierm@j2P&y zV--R_Pw4iuIEjz1oq8EHGx2fy3A`Efm>-cgVB+k>Aayv*l$aQK(ev8uHKr5T9@@8# z0cdpd`uRjVxk&jfjBNYNVMI~z5)(Pcj{WN(ZS{HsQ(G>KICtksspX$SmYwJ$5l87V zi*$CUKIWW+IemX~Mi=yJrJx4OgHJtYq`j2;2GeX`8vIc9;&_Ak2$Sqd36+| z$6%gyeDgfG?u;>JD?<6`2AJR>i0?;yVJH^f2X!+m;LjHkSz#E2>~4w_baqr@^N?{C zkv+WuizVvlpDD}yzPJGY7uO)4*L3s<$QiWD0K!&t@M9m*gRB7KOV#7i|Aj*(sR!}! zZqQM2JFSnJknmciL3q&8vUCCYJ%?bg(@o?{*sp&@6#^vs=)r#46dY&^JT*AskJY@O z_jWtkNS+HyI4d{o)X_h1zABOSR<%G08_f*5d?4Dsn2sa;J7ku_KKra0Z25HVR#U|X zy@K#GjozNu@59@4$-Jg>#Qj>_o5r5%B5xBBn)XOO-|I{4vPC{frhT?sA%d z&Fv7-_wrtOApDKNPF|67ADPedwE5Gjb@f~zvX!!JSt6Szk&qRQbmX9Z5cv~Z($*A2 z(Z7X$I!_5H(=u~?f4t}5RAb^DQqf+&Mt<)xV#plISHFWW1p*1yz!2;v#D8`Up%dyh zpP^%0yTej{aWfUMN?*)g>T(;3 zw>oM%iYV9fg;1V&s}WhFpwrrAsw%`d6%gWe<8rk&-n|lV#(K)!ZA_iaHaqkBur4{O z?Qn02!}}=gcz+{xOyJWnJcu<|d`c`18_Tt8U7kbv2s5xz893(=GNFQR++wUdul;YC zt)FR%;hAIPTZ2f%tFO5X&PCjpkm#jKD&}Zj`Y(k0pmxgiDAQqRiC!keLzN;dJS4r{ z_9+DJZTuz*0exiQUS+3R|tE|0YBq$j60vo>St|ZQDvy;F~BZP;wGr z>+r5}aorc~$@NfTj>5~@V2h8z=7UXL017yI>3Fp(7}1w7vhN|^;4R-PSx+vnw?5f$mlnj1wlVGsFI&nd0I#pZY7N}Cec9b$&ZIv;O|+0vFgVk@b=4EBBeO{e z?MUDkkZHc`8+c7Bfz=i-Mj7$F4{BD*rOOpr$GgRL@aq4oKe(Q#*bo>9w@o5qip48{ z+JKqn@$BUVps*}J=zj^;+4prnsna0d+hAOzV2dgHhbVh;jI*!2**h0H>kKEW-*hQ^ zKBp^IRV4qM?X@(-k$$Y5ldi_B+jaHde>Yq_WHcO#IKYt2JHm0rMeG)W4ZkEQhZ#fh z>YqPl*KPE`V|tbR@)F{ZXwfSb>xpfIlVgu5j6z^-v*}6bb(ZqJIlvKE!EQ3DvY^fP z1d%H0U1PV%_29c1M#mn}W4)}qv!uazx#8cKOEnO`KqiKgQW&`};*Enp9t5Lx&P9SS zpN%UEe53}|6&vKFZl(K3%TW2DQhl3haCbgyOR9&+EU~Uc4i4CNyhPv-c1u0vE#H#4 zF``AQF|oEQSEz0|Hgm0W?4d_7qLS#4TK&YTZiD9x?(Ed7H@GCN zn$DcgED$QW9I#@=W8&pD!t`X^t4V0NKMP4`+u$8!rko8CF5U3I97si~B+;Vt{fNr^ zv@rj26aa(F2qybMCNvJ}B9EAS(vq%M!HX%R&3s$IR2TL6Q`oIlUD7{~r7sCxv!+XU z2H%s^zh3j7SN^~F`(Pb%47nE(oYw}o{oh8 z&?mrFt=sQ1)~+>FG!3QqusK8S_zC>RSV$oXD7n&~u39c2{;|fN@g@r5e0@Yl%2EFO z&j(14#zxsyB@p+c97h8!%;_VW&%mR${v>P1H61*RK5ANf!rt}gP`DHXc^i0?G|ie<7{Q9m@!0W@%C52)zmabdh`QKqs+kJ zZj58szQ?>qb}im7b9l2UERCNA9<;lIj7Dq4o+nO1iu>SL$OUP*E2AX_T~C5@ItYD% zYX`;8yqttoa_sHHSM0i8M>z}Ki5zdoTe{$hq2)l7i9rSz^(Gz3Yl+YPROn!3WYcHm z)A>AzSNvc75e>jd6LeL1=mKqP0ywv*)s2xL+lqYMBz6*(ME(F%?MECOK}z~2yn25AP%}8 zT{J*jmXxsDDkhQ%c+?32RISYEtyi9=Nhy!5f6%3|zRl;C#o?$0UBFw3?d z-Ef3((@_EU;#h&`(Yuc`PN0>#GFD-pNMxOz^u!^9W0=_m8J_$2D3NnDM4d05f+S{j z9rq3H1_}?WcOsWjD{#He`Sow~dV`)*vqdWac!h{k!1VTdZ#p%G<-=I|2t=+dn22le zL*OxyG(_S`;M*Ch;8XbyDvEk)BnrApCa^x(U^6;Fyopqf1euvnR)w1^$p5>K{SpSM zf*zEyZ?L6cdYl(62+f_!I~BTQNR>b=@VGz-W;#}y19hBp*(3SSr%2^1>We(K_=%Xb zyVg;A@8eGhb9+!}F_tYIMKO+X4vCj^LD=NC*#Ek)|Jh8~&~AbCZzqHsm4C+k*h|c+ zMg=olro~jPs(^_H;!=cn@g>tE`i|Yn2fuGV+%wc!lLMf5#y%7|dpz;uX}%gYAgJ+> z=3}n^JF5ob$}UH`Ju;|Xeg7e=R^8?_#G3y1#e}(4#)F1i_-lxzsQ zehIj&rF0#bOsnX#jAakrhr{f!J!#+D2@jwl;6AlDZP;HBpSw1y)6YpJ$crHiZij{S zQ$%7elTxOrgX+r)YTw&G2gC_1wLsHunkDt}QT8p?IQVQ=F=p-U{jb2` zJtp{siMTCAFCh~SVqOXkdhlx%0Sw^N6lD8=o!$ zosdtuEhZbs_?rCt0H?K#T5|B;E;JQ7NWnai1BQMD?j~%y*kS9C0RM+8lxgo1ICO>I zPo%3%N=O)JUp-PTcDXtSn`slQS zXuaFBUiM%=xN1$@k{z~JU3>?Ub)Q0K^|on5FW-{ZzvPWDR2nx6?doo>BLfSQ?8bMf zZck{X$?Iz_zmIi3HJJ=duZDL)1!mcmv9ern{T9J1cn(WNL$E6I`&CkXW&h_CY5(>! zHv6kB&@T)o^{IVuJzT|#5epv8vW8IiySH|5zntAtIru2!Z7g|)A|ybgjh1_dV&mZB zm(}kng07`r9c}K@&;q2Tw0Qn*;-+6oC9q%TRt&!V=Z<(5f64ex$7-@c!+(9`ci5` zY{MzfG4R4dY2jsk!*=-IzIH>s9kD3IX8$a_<7J2qP!f2u+79AJhL{Sx5{ zU8D;zKXS>Zouyuer>eJfdUU;bS( zUK7-Jcfj+WsRa~O%&o;KE*@d$(8n&`bF~BEhWi@ zgx-rFT{Vf!HQZ82iF0mAPIKa_XLxqC6(ZUy`sA`ZA|=bx(bEUd&yxlfNqg!i2S1^s zftFDmp;g9AtoBU^{XTl4X*Vt5Cx(794Y%l?3rBv3gj$_b0dR~}5WRRZ7)2VwGyDDP zeO;))K>%85&CIlE>)DN(q6o3Pe1pAjj(PQLs8hhIIys0&`yq7B zMdo_a{l?|j_wi{=ydn_lJ<#hms+P~x6N_mJ;;`-*xLNqF5Dac!3488d%*B|wXK#kY zocApM7`w4@Z+6mUX31lUpkZEWwZ68Kc+(N0HEKXyBL_75CoR?Xzx((t`o3c7Mx3zY zrq3tnReuiovlpUWnmYzB2-p7He*bJ<|MM^4vV;C68#uc#2@@vs*=8Zs-*CMpU~1kx zQ)tarlV`+9oKI2OW`SFO5)pR-zT`N!b3OS+VMJnU{SmTk@ad@#yuA$mSFUZxFgtFr zLvC^gVFrG|`zHk{4r{{-#1J9#G*|MvICI(Sl!j46An>=hfs%Yrou^%M5!tT-;uO%W z-8CBw#%54y>og+$^Kk$5HM3nF*bVzOGfX(|oHtN+1wHwZ$^q`#B|$wEmK=u;?Cx+#DVw?ahELMH z#dUTqwdi)HSrYNQ4uy=jRyKVmT{};uV|zxplo~v8=DiRtjg17={awSUyDx12@j^_H z85Gl^VU{v?ABQH?Uy<@1YNshfcQm#CBorDyTar$^tTDxfv-2cEipF*cI=Y9vrurhj zHli@vI?Ob>{K`r-3@4aJt^ey_2c6fLkFc|SC%E?gMa!U2Ts8EKspaM)iZDLWK+`J2 z({jIfW2ER+9J4BOoEe&YESb}|Xm6;@NXtnIGNG;`=296A)hVr{3qXqHdGgSl2|hE2 zK3QHo@@MSx&X-bHT`*5Q4D0?i=8&xIi+oEuQfoRgmwU7uRxE7Lu|$}Z(Re-#-*vvv z+uH;G*%jd>hldWe&i8j0YCn^mwnvaM{H~Up-WT>UehB2^dxTF4b8aJl804E+vl+W1 z&NS5?E}~E6Pqe`JulrOfJ%E|V)#093E%*Nl*9>ZWMogRBEQE)|K)_D0k-B~-AJb8e zLh63#J-&@L$wASUcN8ZFn=oJ31}F%!Dv@W+Rg*r6d7o>m^eiEUnPKwi-d>GOBHqT) z>ltWzq2sehFpZ)E;`k=N-LV&SwG)#*RfY@&cnG4^5yX4y}!x|Ll zB@$WTY>>8Q;x58-_3O9Yjx4FLl%YJ$l-d-dLDky}#4%O9nYbP4TQnO5sipeOkj9_sbMNKyjuv{-H6awtsHI^^rk;89 z1!mNW3>7xIUhSi)TIinrAAO~VUMu?<^3xt0g-;Pi1ON7M{x818N7rlBgC$Kl%?~&u zcctiegVwYVR2jEh`_MAvNQU5Vzq&Y;)+jfj25=)0gMePbgm=ac*;c|J>cz$f&;0b;wCPC>o^5bu$acW@E z;cwOs8`6Ao##2~y-D`UGDHJhJp~lK9)3+i(J*iN_{#b#M2IxeSq0vgZi->D3x11mf zLM2d#`HT%RMdDy=?gpQg@;4hmE;|15km2giE3irEL@*XmP15`kJ8l79N3*AJhk|YC zTfe*TdBp%CA%#fx5;7hCdW2~_G$(V3pz>*<78C3}6Q3W#;$}tI->xsW5oTO5N`HI0 zL1#d8j!)|$fk5R_*^~r2BL3#=7fc-A07hjw#_MXqSt^0GJMt1KfQBPB2g@$eX%#9>zK-8F-ir`e=KxRaZ-XUf4#N#=xNQ!! zcNM(#H>VqpkHsk%HxV|>ku%QgqttMLy#yC4O+?^jx7`4dyLvUzG${SpST8edBaE=D z7{-12AW!Ap)1nNWgArkJ>h|+y(=C|N_ZqGp{Dk=ros90zzu_y{I>^PBXUVTelIZ)( zShggxwUiIc)Ny`4EK5uh+@iSbg-c(kQSqJ(j1v0c$44w3iBpU49P>yWYGG3ds!iD8 zBK1i862{Vu9g8|RMNqwRod<}>f6a&>GStZKImlEkg1UVW`5xrB_<8B}#4S zj~jnS)u=7GGuz<3K3Xz9W(b=RhlIv;y|?wy#F^K%0oa7l`Xj7<*~x$~nJR5pvfk;#MeCIn<3Z_Roc zY}>!5`CeUdC)Fc5@b@^?DkVB4d*iQ1o5~7f*4sAR$XB~P_&YuC)$l!EPt45;xCjR~ z&A^SpKFjQ|G`5DEW^O;dO^4Bf1(#Gp19i0MOEsOlpzhlFy0D_tt?;qdYSvsI&igig zl##X+jjM}mXL$Qq-j)2iJdC3feMPwS9j^QpoXkP>2mkN_z(1j~@!>Rdk^TwbJ8h_5 zMyDiI^i;R$DY+z#{FWmQXUCbgX5+C7U|$t_q}%B2JeZn2;WzG-7r4OoFymLUqLWnk z=3Q!{4M%{~2lw?xwH~eBFgPUVvk?tjhXwUh=Er$duu#|?9m8W#qP%l-ST^u|;!2m8 z4;$J3BAnbcck1@*&rX@!3u~___F`u5Jw=PHY7*Xfo?ldC-c_fl*o!UL_Di7+RZv>5 z>|;_VkfFPBfI3vT5N}NCHD1ZMt9Kf)(RIBG{NA4)Q#$H=Q%> zKr(J|cm3*PH2;q?ckcEH^{)sA{W`6#a-AVa|CxTcPu^qfZ~BN)?#q%3?6dZEioGw+ zUmLdEg)#A6l4x7tt=0aIfBIqE52$f1A^(`65uZ3f{L}8erQ1Iu^pL)!{0&X`KdkkH zzGcS#ZJG2enq4(PIrN%niMP9+vEDCO&dOafts*XIgJ-<> zC3!$4lAM*>R=ddHRm#?iX^35qUOc<@xJr*r0iYHdT@S)@=%1|4j}~fH74}GD*sFKd zLIvkun=mO;ldED7tsLt~DD+hTG5AflI!u|`iP?e4s7@Sg$JJe``=B z$^pyFR{wx;M%2SrO~bfElaR8trk{_R#!5GuT@`;@Q|S}U!(E}YGP}htb=k+Vi8*9# z8eK6Z3`Kyf^_T(WrVv32&F^J8ZXfgJu=75Mn1^g|N$U5Ul($YXSZL_9>2{Zy;5Y(KY8dAC*2GpGVU;7;%an zp61ZI;N)T1MH&^SbX~w}ko0W9+LstrlAlple5LSY7$hTlOmkLp{CwqcTM0QIlNjw`jH~u`B}e96i2(xbI62m{@kqDvd93Q4jQoQ1<8c?lnBeNkEpbgy2;1hNY!u8 zt}cnKxq+zD^B~>&w#g}rdVgLCd1G8B6IE?DDO-=^sPyEplt4fHYP;F%4N_jKa^PHI zYbU}4yY{S&yQl4GgGYnNmC~BzYDky1yPVL{jRG z5~*u{(>rLmwk8O*w$fwo7e~`6m&rsP{(dR24xclX&`ojZcii7HdOC$ zWLJhz9fiHw_{&MTaDq=lnR+dL8@=Okm?i{=tl&kN^Bz}qv2pihPW!5~YW&L_E|Rbab2@(i zRQIgZO?|7zJArE%%WGpRZ?W~(HgBx{fN%bq=>o$fs*gJ%$j&tR2y3n@_6RgksPs%|B36v7s0ehm}XKh*>~vw&K&sHfAjzK zH9(;rCW~N26sf|-%|BIoe$+u`t0UfrM!;ksB)HX#@+3phwcG}G+%M$FM#JxtGMoID zLfxju%V=5XNrD-msAZGAEZv67)CKc4(f4n7gOq%$0i#J6bC0~+mvmw&=dn6<;F#Ba3m3OK8NDxkdMw16=v1n^R?B@)N-S&b>>cIeP0 zWv)7jH8o4LHHE*^3uaR+4ot<9STW<874TWZf*(_5`yX@nMa&7y0s>h4m96|r9d z7PdGzJ-&}^eW$IHqhh z{YP=W?=APY5uhz)8TV$mO`JkTMNFhI>fC8XcjvJ2_OB`j`+{4Z)$1;Ewa|q!r9>i# zv>F~=Ug=Vg&X9*Lk7&S$SQH%S&TO$qU%lcz?WaL+sgf`oYL4KAJT;uxmX<_MOg{>3 zt@cN>7{~~Sn2`aK2&P^mRBiM~=~>u_OPi7#LvH zE<=@(>Wod3_rg{R_jVxeopp?sKv5@3YXQ7%@5T71f<{1peSnqT^2E5kBfua{I@686 zLFDE{RFSQEUL6N%+<*(?$A>+a1n{R7U^SkR_Ng@gHl9!Blb*Citq5KFRcouC)K-OT zx}K9-lr5w8eXls_?8?#PE%p|Ybno9At=4~|(0S<>Nx1jjRw-!I%f3{h++iPxupBB# z9}e%Y12Zk5ukDAz*7{7nVj?Wly_i*w=!3Zt3W9yVOH`d=UgJR7JY-a9+$Na8ST}gs zPr3fgz$;~wpD<6zs)v%x-v+x-;H2gk;Y(x|7~9H(!6uK8k^eaKbb&zb>>-KgUZ`Qj zRyxkbju&8vF|0pA>rti%Y`txEguZMzx7$n;G`vc;TAlszyHGj2Lea`~&l+gBlSWp^ z_fG650yr^_hb7SG$Ki^wr^7+jJ64LKH~*IHV!}2d13xK1Wz4&Noc!R8j>|uWf&X+_ z_AmebS(@na?yVr~kotoR8R$WewnKJTXt=C1fSSQM%_lPS6#J5-!dqgxL7Fbx9L8U) zh*hy-44oWNL%vo`DPsqc+u8A2Q6jMDLsE)aG%GD)!$(Q5J;X018XFuig%IPBzt;3XXvde1(fs%?pjvVFqb^aNNrhOs z?$>A|QF5zmNq5}yv&+s-Tn<`J?Nav33+Xt{O=AzXbIVVzT`7{ymct}wXI);S&+8m^ zyIyarL;o;?wd-|ZZaDNGN{O$*49zb8^?XWW&c{>-Pi4wS*0DuRi-^b&Pc;nRl|{H{ zB{3#23e{10E&K8OPv{8FEU+;Rpq!(xNe*SGOVnR zy^F9UJNW3gv5>`89Z4aiu}OO8c{m8$FYxHTzpXkOV-ZR|RJR>)%3bIZ%lSD|j0Frf zIcZ;o2mE`3PG4ayz3TZXjCjOJa)1G$ci#|ee{Qh-Bx}oU58@X4;kPTDIF=VaPp~Q+ zvKjx?>ZpBaP7w7X$_L+jfX8-|OkXod!5i$-L$EJTT;S7T>!TbXp>DeAy?R7$Ye^H( z-IIT3p7J+zEhc)l_UWJNglJ?`1dxkh*FdlDB5MsKx=QuE79V!aEhC09DU9lyUj(FK z^@r+2LU&AE%z#RII_4RjSe1@`f}oab6SaS2RJK+Y7vO?~0n0M<5xywVJ#iu2_01?N z3;RY3rD@ldFGoSBez)}Axwl$9ogaxVXxJPN`{jsZ>u!0pI{$j~zB0$AyN^iStqsTh zJ2%GN;I1EZ(dX7vyIlMfS>Da_XnXPdaOG;dVwn79%@RdtDsNF`#05M|wPa~+6hdyx zdwS24y%+x`8~c?6ajmzi>|xCNZUWfS-P_5K;(Eul_J^uY|6 zW4rfAo>m!g>1-1)Dv1tW1l%(2q4gg7rIyv?o;3j-Q`4RM+ZoGmv8^&*$5bI@3WqIG{AL*O;rXmcTqDNc*vte*^FsZ18}60l8AIz|(YA;Hc|xsGBRz&X1ezp6Xv&co8qoJc-ZcW6)YM=$ zz0~c+I_Maj+(PX;XS^*o1?0^FUJ#<2I_Z||emV&aMsji~gQz#k#T4_x7y#2;ye6uw z6Q}B&<>01uv^qa#8Fv)dKE<^vLub=ft;wr_9i@ZnOQ7Cp!1!>b<%C&> zbaiiY2tSz-?8zr|*yv7)Pb(4`QG%{jZP?4)B&frt6lR5u65eFnzn6R!4n&BENr@p} zcW98Fw}{h@71?KtjcDp60I>TJlnNV_*hvM7E?jy&MPaSq|AfM!I5kTIc| zg}rk})CjD&Tv7r5BEjadMDnZRipFtE&1C#`w6c+2dh7UnxSy?N9lTzuEJ?;6Iio1@ zTEoIpz1rq=Wx7Z1)qI=NtH1I=ez&4ltw^0=AkMfi8#~O3QZe<>zRbZ68FSc1E8uvDkyH8}={Umag7ZYm1s@D*Yae+^AxM39yskc$?-Ff663CJ+5M zuVilGO&gLYf^-!z)hIH0Zv2q6>lh$a$5IivctaN&SC`2-A5VO67M}dK2Hl2U3Bn7H zz_#$y%7xPs;oJlkwH_*sjip_CHLZ7x6~hj3?^jOUO)@MZ)@VR&5yZVoLwhMQZ>Lu* zx7;^KU@cAY0l5W_=J=Tfj&FO3i;?4}w-at-Gn7-KKf=F$49OKLVquQED)5D0Qr9?G z2syz~Y%G#POFyyAv)S}CCH4GyQ&4pSV$M>sc%x|C@=BXCVZ+g=D-LgzHzIxL-3C)h z5%3Xe)zEcnDhg^#25vncB*91IxU_#eFi~ zk+{xofuFF@FKV)#oxnNoB@uASp9IVC?;luWqdafq34P{eGSJ#EqFXu!I6r$W!aP81 z(B&5@rgY>-oNIzl_1b2DNgm2O?)A`NM~F3PGd!l2p|(IGuUAR;fNAq2ttfVhoI{1o zBYx9b0}}I zN(W%#S`Sex1zZwi;cMO)eD|Ak_oMd}2Rx3%d~zX@qUykl?2nACg8)T_Z*K(S%>51| z2Y}&a8grX3re(pM_n9s|2W!Jl8Kqp0qwd~T#f%Q`$x-R%!>)T|L@mCbfe3V2F>M3s z44oP_SNl_)r2t(#pW?XPKPJ%JFPeGocCPzLkWcs+)*lUJeG`l*`Y^({nO>kU5W|9^ zViVJqJhpI7{-&!JDA~BcwxVXOuukykvRN3zvuKvip+>3?*Atd;u>xXm@C9@<{FzSw zr+8BB;WrDcf!>`3k?W800~KuY68blbq)|BZsR@f()|shZd0*Iud^>stDH zqO|_v^Db)GPpOAMoo|4QZ?Ilh%%oORg*EfTZKd`2jE`n?gOw9I=+A|$r|a(>LwO~j z+o_DHF-;`ZeAR$!-*~G1VXl1s#e8k?h)BxFE1=RNjX>;%ls)&^@HIu=hD|(~OLa8s zi`CxefXZeF`fYe;1W*^wdc6Rs=pBpQmTCvfEjzToA1F~tj7eBXjbr;C1TA2K z#1iV{7FB&q1=ZOD(tyU#?O+QifO!LrdHmH>hptBWiyL=Mq7i#Nx2tg>VF!)@*^vge znj9x51}c{J`}OkfFYQBq+0n@*Ty+yvw;PTzI-<83QZ*fF`Jff0i&fe5VtyQRm}hlR z!`tbTTIEQE>A-y;#n31oxH4dOR^S|{p@v5|nrk{5t$$wigcGTeWb7*pB^DY-Y(-t4HpVn%Y_ z+dMh}8jH)JH;Fsum6fm;A#m$g6>~Z@mEK z_}F>c@s8rTcmYR0gZuT3rS3)%rZpR_fJVP!*k4Mj7pRxr2Rg|Df5x(20Iz&H!Vgq( z$ptzz#76VVdJ$szct+BrwV@cT@Jig<7Gck4X(Ko=D*cv-UV zSJIMOLcZ%8eQ^h3VmW%a&<9b=l8%a^)B^)Pb4i~9be?RR%HD|d79EC@S`h&?Sl`k@ zH?s}psv8K+f}Kj<=+PhoW6ZqvG4``L9h2jJ7sOka8p$y|$xo_3`jM&;Og8cy_KXTV!`bYLL8flZQ|cs_nTyr5Ty_s?#u({XBI zB5881BZ@K+cAKgKClX{zJ)iVM(Z``{@Zy3FW*y$d0LjMqol)YMjw2P89(>V(G*M z!_+dU8#zrc48qllE0q~6&euarEQB?k@-;M7J-`;Zyla z{j^(jqovx!J_5B?I%)IL^Og6=c)yomGM0ESKDw#fc4~DbI0)tc3(r&+g^0gtsVoY+IQ3SJVGoO%y-R^Af)^(Op#+j}{ zl--nXdHoB-?AbA_>Q*u70%Z@rrfe92OIhJga6+(+{5D{jE310q^z`*ll&IziJ5c3= zxqD2hZaF+oU-->ExLW-q#oVF%*L+7eC=GWP_CY6)W+g#xUNhW)gI4V@LsD9xTT zAKE3n!?|~wd|Tg-p$Q>jCV_SIh#Vh5dw>(VB_xfi>@`_FBb#qd?xD>I2n_jwZo`P8 zOwLCy>Jv-4IUD!NnM`-0>2y0x*l@cea6mZtlq!jC7>7bI_=WMxW1Mw~Ll9A-B0ouz zwDxP-G5Q{05W>Y-bD-_`>t^l(Uy;q=&hEfNIk@Z`Ic?;9W*yESica+y-46eP-&wCd z<$ZCsdb1ah(zA-Y*3()7jo@_*t?5JHH*LTQ#o!%7S>%!=$in4rQjsBRL-9l@0v$s8ypze_1bI)z(pIYf*c>ASTjwfaQpgg@8 zSkY_pc_b8vvJ~@My3+t?abQr@MyqAI_FY}+2XC&vTTXP54w~h!)c3aN%k-@rYW`I& zR9ymVG54Z6Q-NA1ZwS zY1p?)OU)xNIT){$ zeCOAS#Sc+5O?sAZWad3_wv3;KJGxIH?58XXiaT-#t4Ias}bJCd_`&{tjv&<5nqo4VkyIn;Fad?ny`NKg_RI9`Tr^5Qacwc(2+uu(pQb zxVHDGmf`sLf|rc!>VRJ2p(2WYNf3pb%-1Gm0-Ha&Okbayky-6{A^B=^Hqmu|9+Iq7 zpJRr&|BIA^tfXd<3$Gp6hn1`4vpbF<%B)ZnD70pOW=0MGrC4$q24QEt==nat{x>~rG9p-K8%8+ z_M|r>VW{GRk>jeN`o@IjFk6)x=(xo_dX) z`jg@Ogm~eG?Juw2mIiIttulAZCiaw;8b0`pb40{urk*3K{^V#oLA4;oXz0C>`n8+1 zgSo0K-DV>_rT3i5^Xq<==2HleefSKx^~l0y{P_~xEu|=hnTxHnx;!DEz9zm9!*xvuYO>|YO1s(_@-5@ zr*8J`&HD}svx}hweCN{Vy&2@68klW|;`*X<(!OXwTc+gsIyZ-mK(h-eEVA5f&&<*4 zlM1$3K0ckST32UyynwTn9LAOlmohdfEBAw8l^#mg#aWeK-k(6RU$y51xNHF+v6`}a zGE4q^pg$QoVwt0E-~j9}0l#^BVaeJEaQX!N+ECUY67oHc&PAz98|B#aBn}QyK^}+1tav?g}B@aXN)VuHkegwEwJT{g-vB7TcTz?elIke|t zRCj)UVvXg2_mKZ(WgH51_t&Fs)lH=X7PJAga9y1bfPNoq#ir1Qkb-e`1EInuv*j1S4<@zBu}PWq>5UBmd(a3HumT~ zr{lcJErVmV%=21E^OjQ(9yxo=uhr+ui1vLo!#*)5&E&(0BF3mHYghid8)p$`{LyvZXGOSqYzRi1YPJmC)D-dXx1>q|{w z7@^t48Pw>dERxoNHYkDQIiPzYPto7_(UlC`7aH69jdeWtROR?*g7?kJ{t|Wlv!>$R zvQfD)a=v+S{&1}Hn`ReY`W{qJO_!?3irL|W+07{u%Y9=GSMV?4PKf9_G^t8u)W6Z7 zt#D%_4n^FkNO0wVoQwy>-OajAu6RBEQbOql(|pF$tr4O{*025a{;YBS@>9fHKd~ng z@#9O(2J>E9@|#djv!K}Sz7L&$3#g!7aK5E=9@e@;o->sI$vU!sd<*gBfee}^u?14Q z;*VY{AM;E5ETi3N2qND4sG5iX4yADZ1bV7J1~iZ*am(pryR3*!LCk6Xp}D}isVw74 zsMqU&Vph7)9M@(ZG=W~|Zwg@8S@E1jJz3!~k_n8!n>b`Lel<>!O%|h3j5a5z_X;25 z5zijxy~cO%n-GK!`C3sq-Vx?)^h9zFvJt6F9=avl$!?pkZIM?rx!03R4n1t1y-lMq z6L>ekx&Fv6ww97Zt#}qwv&{LX2W9ge#e#(N(MQE_fj?+%gMJ`sB2P8tQ8QrL5++*TZ1DWt$5#etBC{@kES*Rkl>ctJZCgyp zfVJ(Md#0@k#r*sodJxck7uGq58Of$@9(=)Fwky`(Dd}Y3;I?F2Gxo8&bZ*8^Uumjg z3v>AF$JV7r5jnqDnlM2Z!<_pc>d=<;%u<{@N<#P7d91p}%P%b5T~lul28nvgH7W+~jfVfV=5qLP5US}o?dU>falBM zxrN_S{_L&Qaw)AoDsFjdx5J%BHq#Wdw=&D8UMLu*21Rva1Ca!eYrYC#ElmGdYH%lH zS0ij*GKKR&o>cU03d?m@@w zmY3PL7DOU0AYlIaS^6E1-59EOGY31cDx#M~OIQU9o_pk@q1^y^R7jqZLGO_fNN;FHIvnYA;XrXREieV^7?jx_p7+ApTP zL3Vf(S#fr1ln=aX=;_c>-AH>zi+@u?w$gIfDqQdJi#VUB0g*j|~Up zB(MY!+#;M|7LANJlNd8EPRlmaBI39@#sY1%3p1#9OL+SPbK~xoL%84btGCMq^WDhj za0kSowAdu*h$Ot~a^ZIV77Zg;;AI0)G@#!FCc+Ol`M|zbPqdQ~fw?psrnE?-`IkSp z&SHGOf{dLPxBZ|GBLj0hiNJCCmtp796wmPRf2uChcEPcbDzs#HMS7!oHI{yIUP1*u zDuUjQfE!LGo(8*uby`;UPO zDv86kurGJ5O)l`Jt+jFp*=DVP;_mHb53hA6{(Ol|jB)|gHQQrjHI*UemPS0ZSf4;BcNM1mU>U-mg)(2A)I(^{2^K0L@igH{7|!UBn|Ftr z^qn@|b3B`N&K`2lEW6Bas?aYxzC5*>e6by?+LORJ`qGUDZ{^z_-@QdC9YWhyu6>u= z+Pyn!l!@Vxg<*jBQ)O8&|2;e-b%}V0E)1fC=ELQA^yfK9d8|f=xDDx8CrA8EF}hw5 zaQ2R$PFQ#R*&y{@CN~@ev}soJ6n|7qq?^?OOdNyvDr;XSB$2;%0}Aa6U=XwdS*|lb zEZS>mYU{vP~)BvtiA9 z04GD+mPV=QzT_(X&nc3Z1V*0?6Dhac^!G`L>Pk@r|I#WZ5*P60t>g<|T**s33enWc z@>Cc4WNu`JpQZX^X$GjFlNnshGxgh~{^MJ}F5Cb6wG&3)O{P!{B8jYyb4{v_YuS+m zx!x&ig=kgGQURxBuSyw5Z@F!4-XgDv@p3q*DK+%Aysz_dyiz$`F0Ng^e(wSAMWP#g z`jLjlfP6onrM0+ukXF3N1dOZ@~NFAV@tM1=tWbkza4eV6AN^?9mKyLO*X@m4k( znN?H9DeJ!bqQK)IwmZq#oyF2x#+Eb`uOlbVXLIHN;83jyV%~=Ggl!3sJMJKk+zdKz z3j;sW{A*YL1kPh@kpy#yX6wKSZVMq7C`|#!>BMOe%Z!3l&E=~t%>f1o*-gLxl9fSj zHMBrZmob#2G~-+$%vWwMeOlO{ zRSgYf{7H;w_kBp1SB^VGO2B_g;!}?Yl>!%xaIzF%iJjiQNSv&K?kJjx~|GBkY z;lL0k-qd_0CRGuP1);Tc!}wrlEnL89#fDPB;R$^$g|RsC4Q{S4H#${)*hwa@+z3Q- z!{l}tkyaA_?sVsQ=Dw#e-iw>v`0*cH{XuYG-c$*?(^oag5bWYD8Vukeo1+w`Gm|9( zdtQf26_LWVbBII#?p1Pj=_@*8nSTkg|MzPB&p(EJ4(+Ozu|(DZi@2c4`vPxyifn_Z zh@HsKLe;S<{kbu|`3Yb7mrF98TyE-CeNW(-CD6tAM1oH#<)^NwJ) zhaax3B7zflbUsM*Bch2`HEU9>01!rYI1&jylmUzX8|%9Z&m6wK$I)E}fIqdC59E-t z&=oz5e$k63U&3Tu2Gor63gZD@RbPgyE->1MLxiLL z#QieSq|aJkKXzK*Ah^58K<$troO41{nX1Dzig-g33IA zX9~+J3dH)&vHVV+Iui!O5F864{C+FI=cSj*H#srg-?+t$@)`+~XIZxSthUO_@MSBK zaiIFJwMbq-=`npW=#v1NH`5nI_0b(>A|NaI{E_k)4@@cvKGBjVX{GD1!Wig_g85_^ zcZL}7^j+-`KfVlDds>RPA%;a)@;x8E;S*YC|J&z#8YKcz(+HLl`aS1>^N8Y^!1lR^ zR2&JKr9-S=N4q?W6n~ETKy$1&RT7t_F9I557gx-4s}dWsl&i}whPqJR`OMK z6)qfsBee+pPjtsSQ|DTNY1iQXO^}=G3iQ7#tOvf{l8s{gfXEUA(j_TQ^?zw_I3A5%t8yRWmHYZ%G%=ZKEZmiI7n{TtUcCkeXj` zl?IdHS1N$>SCZt=hpnt4l_GWad`G5EU4pk()>2reJ%DV~|B#&c0iiJX?* zuZn0=<+Q7Ih)J@V~r{bdP0t4?7wIh#e?on z#fV*y;}W)MXU_$|tpA({8T4KwlSV8N1n9A^m0pmy49Kkd?)u^LU`TiQ{k<;0KFvUR zgJ@&5fqo3e{sPDm0jRe6i0J7Y#=ohcVZS&r#sNn&1B5C<>}@NcoDIrxe%r=F*?iB@ zEP0*oFB^pMAG?~&jslGNJ;^+#1d zmWKyCyj7epYz@K9YX`zc>8K+VNd$Kcj}WD?x2(eZOPq(JYi`Dm=s{G4QE+(jVSnL0 zYH_~+GX4v7Hw`)Hu#4{HG9MK@L72&uO3dXa9cBeNCOc?&{AC}Ajljr@2BHIgO}!h` z>Ktrc#5n^e0H|CfC*tO;ZkQ<{7<9jqC|3YV8fJo>P4&CS)dBQ^iko_*K`gf_`IQx! zW>6(Yf5cudUaAH(KU=%hLAgJ^_2)AFzh4xdSG1@3aQo)zCM7AIwp?lF{gKM2*Y7H% zOXk%0zD_7l+#(fa^k`1_N>AZ{Xw5K4oQO!}z#&Lww^@0zwWP_Qlpc^od3LVjcZIdr zipvDg1T(EXcLv2l$z$oIPAE0{P5rx%u4_aU;y1is298i0(1m}v5wrsX;udg?Ks(Vy z>p8yn(SVp8g$BR)a%!^RXhtU=}bJjsUkIpyoPCDOCcea{l$pX;>ru!l;O^9EhHt(rYe@;Zqn z1J|AZyhZR@SO*3>?W!+{9)5u3He?$?F+kZBhseQPs$A^UD`(4n@xlxKr0V6P*RG@sAe%yy7M9xD61qRDNu!gBaE z#w))TL}mxZ+*+}vaG}W8Y2w>J@E_SpmWFSpOo?cg9E;^2H=1|}I; zl_^$FVHw0A4I&CMF7-Su)$5R+SwBYUL4fC_I?+sLV*~~Rc8A)Pb{Pq9fD3fJ0Tu-@ z+0(1jpe7>=?ZB^3Prv+|^aQ><20~DuxnNS%FnGa&4*^krVbZI4OFZaZVo+1k;D;QA zX4(9UVo3haac2VPy~S3e{4=o+^UA3jL)?FSyK708t@z5Dm>(Is1~(zetsotc?jI7P!K0;ECunAx4Dj`6IxMdF8XEAv{&2>hZjBUx~p=MB_f}6T9C9 zAk$$6SM&wHzyAiXRw|{4KA-1^CT`M#fmim@Z*>$KB20BfmiY5o!x?2kFCZH~=;=We zAlD`V1lKQi3!iG{_*P@$(e8$1->18L?mAERVsV!K(0{xQ#08AwAbpqRvPLiCrMHxY zfZkwHz&USpQ+(Wckp++f8akzk!PkH}bH=NnjsRwYeK*hD-MC4ue9Hc3uZ0dIpX^e< zT2UC+j@sV;DZ=;vn`{33c}bDZpwHe)QW|Y_KZp~HDeOzEdXoj2&^ee~F4=c1aSm&o zx;$|Lt?91g+8dGKPaa;!idU}_(bw^<==v4>AmyaxHNh@td430Zx;-M4wN;hiB-F>* zc$`ob_>PpGjB{$cjj5mofOxFxOultci{K`34&-VoXRGGW0yZVJMU5*#q8|=MN_uqs z?xDA~X^x&X(3ls@q6qoMlCh=rMv-dy1cE>uXa|tyEfD^$BfMZB^*5km0JhilHf45q zP;BhoJ`>-2 z?`FjRqcKOza5wcSf?eG6cQ{25K#X2!3X4n&!EaxrLky7G;nrsW!JtR! zLu`)!`5t~-Z*Q&H>3eu+dqhWbPr(2D$FV4+p@QUb_xu};OFm`yP_Xo3uW^U$;> zRTAW+(s*f`UIPN^X^=>*GxhO7gaL)p=ZT*qF;9&9o(-xGij#;=ZW z9$N&e#Katn6j8qA0%^LUzey3SMO)bu;{8smV|kdSlsA1SXmyhL?4^3&U`YZFzRb{s z*VHd!7L*~)GCOUeTYnmnefcju229Sf|PNO?|7v!3t^#55G9?TY&cVXdBaD9 z@M~ZL%=~FUCn6luZ2)^|3ksvc4U`dQf*Dw^+o-x6wLHchkYHg;VyDT<18dbVNC4WP zi;$4+O8o-hRv&ub+8Xjb`WAM9QH7pBlKl>HQ?W0j?Nwu6mNAj|jcjxp`(V4Cn!@dx z-K5ypj|Kq*9oh>H3OM_;WU|Re)@60#e41l#mh?$7RCB^*405V24M*Ovy>InG1RDcr z3XJ-0n^Din1=L{OXINqbzoFk-fX{yR43#u(pd`9{e1J+WJ%BZeG+g@m7%;w%8uz`q zt0i)3>J$6QnN-Q0yE;q^MseIK=sT>~_tLI)tca_O! z76glaIK?6=RiEg7E74!)GOe;%~g8i_n9>@_%GMTNS4ZLU8hZHXR9sQ z-{-jEsP7IH9Oyro%zjSlmMNJaGA}Q*MI%w9NcS^!nAfSz`9li;-t9ZB&27Qy35`Bp zQ*K$_WC=vP1qww40aFmgty?}iQGAgF;oa&tK9oCBR`51y0LLCs+YE*?1V%f9=Z z&4iL~D8xQ*9S=(sf(U%D07-O`NdHZ@w#sEB^B25aesyCXen}aMa>W(~p(LoHV3dL6 z3=Zkm^7EY&?fBObtyJ@(Y()KJ`X+T0sE`OpB1$k2d5E&8W7&{9{xldyLr>4raQ@cd zyM>7%w0o`bUh(=Mh0)vegx%1)^=ME>6IE{ZYlB`7_k~#O@cT8={$^dkKbQf^3oxgm zTW$>KT!rluiAa7xzB)yIN2fg5Tg&#z5aErXVrI=c*Gfd%8JASl;vDx!gdji_2jV^0 zb&c$ZimySuIq1TR@|d1;M|dW1hYRJ@X&u#&s?NfdBwAZLktwC;QL!VfwiAz=bmd*HX4N*rXj6 zp;Dx0RcA{aXX?>8nVtuQHb~NS6)@kQ?(kxkiJ3M>Ld^R8&%`rWid9YTZ~gVHKmYAN zy|9%z5z$-g`{uyXg<^v^S7yQX1|7#61ClszVXo@f$n7e@{A~`NVXNLuSrU~^(m%*2 zsUZy@Nh2u6E%oW+uqbCj#3igweAIQ}rOXY_Hv$>C_&5@0(d3H90O;rFX^}uF&W@`P z=Ef(&9TLVtN+IU)ZwpKWJqAa_40lyUz;Wr5Y>nY0*7;44w^$6A|I&Omz>;+TZ2!G? z9Q8nF((4KX!GCBOqGLd-l6F7REP8ivS=xqrue)Ba-+rcz29DSMR4;ryF75}p%Dhb1 z=~kk(tzH15upN#dYGn}uJKw9#pm7hXwAYd5f=DT0N_~)-uy`)TZ<(MSfkw4jy3|=G z8a;<7dMe`=@i!#>&XH^i?PL-sB3{-;TT6rM6_*-xsvRv^9`}Nua+Y2#zwgZGtKgR! zbKS`?z-wy-nE*CUla4TO<-%Tih2Q2CM!a`+Df7&lETs8sE-Q&z?(@AgmJh)%;Tgeb z-0S*kk;etlWa#+@}bzeNQZnfD%*$Xi$ASHjD-_=f?_@$1zao-v-$uhE$@{ zD9T==R%-Oior2pKFX%(kzV3IxRI03nK;kwNC_sN0qqGQGb1ZV z3GAywWwHV|o@pjiDWs{qps-WjwGTHw8n)d7tj@8nxF8}XTDUFgQ}NdlF==VNzR@Bb z3%nRARE*6rA z%8efRT$Mrv8wm5eY~^;5{w|b4up~tz6ZuIP74$uAqYhs|gdhS?hf>J!m)wMwBd3tg zpV07T$;7AM+B>O<5Zxs9N$>wI4@Q0agg8dz6B%v`d=O{G@Yb@Qy@qYP%cNdQoxOej z1<&|}`QDkf*vBydP|hbtAtHS4+fNmHgL%g2vjWQnM1G*9_TcwEKo!0M{c-M1F@tt*YKSi>HXn42P;6_@8?7OM zvjdhiLXktNtV>*Glz^Lzf<%1%vdqZl8K<)!j~T%|7m?CloI8(EiU?y0hFm%>K!g)< z1!mi0x^?}YM;W0naK8DmNVmQ-b-Rl(|9V5LK6WJRW3{^7*~^GNF>-VrZ6qJxf-DA6 z@IM%5lyb&ck;UJH#kyK*bFFTCQdAuFBuL0qLR=8rr6HcwaV6v0L@6 z!Q!kGQ47eYMdW@i;LJd%t4j=j>8{&IdY(L^d++|We{^2o+QgtF+uRn*W6ehtT>3C^p_{PYSAy1r+r(ULKq=V7BS>`c~8)`qwh(#3_{b$i5JZh-Q=$5VV< z7>bv7Ht(B86O{=RDn{U9)pM6ho8>eyGd+NpVx%eD`pRQ+kdFZx)=)|FcjG>k{CN)H zyQ5z;taW(kZA1LNgfbPdW-ardsqtHs;-zFBOGFYn-CYgqnh~G76_+;MN++4*EOX7? zWbW~p3-nxQVMEKu<|Kk_fO zwF-mcJgX92I&wmupC&=|ZeSEw7??JHTVvuFky8`&M%db-Z?l*mqQnPs{9m45^tsgw z2_=T%bhdf{D-66pb(7wF2;Ha;t29|l2UuYBlr`yb9@`AzBp~gNL1+&h^`Cmli{VeX zg+rBBtnwWDDd+v>9967^Fu9xXVA^=0z^@ZqXp=(w?Hs89X>%(FIhigtr2y;;X=vMpyc;M(7jga z=jHZ?Z$1Dw0;V6z;&AQ{a{MyGdrJ*{$b5DVg1-{d|I#v-cz)twnGfeKAC6j_+gQ8E z{PCWwMDRR`OI3*}VcQM!CsBHOIRQnGTt5q}Kyt4^8GDCc6pucXBT@{*pu# zLGEBW$@_)Z|4_?9sLG-Y;jHBqQv4xz-LtBWSxx3q0bUe+vf)cJPS= zJ~9DEIX)78M(Gf;9^t72RNZ@yDLHbyUPvupwxC@nyF$XG)-i=aI>7K7_x0EQzla5a zry$m3O3-+S;Q$JN{rwT64Cx)$dacN$HM+}~oczbE$ES{{}K9OO(8TU|i*v$W&M zCx~F6IebgyOK{ZB5i=b+h{{O#{?ti_iZv0EARKQ^{LbrNHD#p5f|+jNH)iW-M%r&- zps_F)1>5#vJB_of&%~sTF%g!pk$7vP>Xx~Ys7>SfXjh}~A!vO<9|66Q@W5c$TW|p> z->{P#p12yTa$tYplo0lUQ6-aCd9c=}Q%xuEnFs5S!?Jg7Z7L_WQ8i%ToV}4jl!wtT zF-RjB>~veBncMxGU?jWAI2E7M2Q=tDeQ3NLqDaWnjueXDOwYWJ_&!{09CSq=Yfb8= z{`Z7R0PLm1WES0v6s1UdKly}3gm#qoH+Tq}_U1l&rr2{w);DZf()LUr@5OLwaFx5UiYxG;n!G*8roTlY^I2D@q ziaQs1f;aIM3+x}{2EIAgg}Hx-Ke2y7Fi4hD$j<&&ss3D%AxK7Y9@pug%!}Tmp~*4( z#YUcwT-O`=kaxrFmoFVPa`V z5Ix~#3`ej%zN@+ly@_&M)xhZhDI^E{?6i`mV>;%1MQ1)YelwS7lY~lq4c4Q?H?6 zzQ>4VXF7$^fwrl57pIOfH3>~pLgf7CI3m0f(|*D*PO>+2=&1pxFS4f@h@@H{R_BeH z#11CvnmExN>}{A=Wmaca?+LVbJd$@1gfTQBolJk6o%tD%M}G3Dvc{KPlWya9fBYC2 z6~dVQ#g6#IuJ`ZJ<>`uAjDW8dju1mI33Z^Gmf%OkQhb;7Ri_j#OA#fDwv`X&iKXIp z)&)Q!IF34~^Ed)D`m8r)`87w15sHcIo8I3+X&NswX$#Gj^^Tg& z_#BVfQ$%wQxx}(myaJYMqp3V3H99sTITIxxy|3hjM2!o#&E1fFq>`gwv5E&Q=oShV zkxsokIkFXv?iCLJ4UC^+Or^y=p1I-Xid%I?ewZ8f0gZV(Zwn|D(=bbWE&4D^Y z?KjJSq48Fv+Xu$;jlp9g5U)NiKsi}I%;`|HL#vKnOXi!k8sOVXGOphkoD24iUtVU- zw<8jDFHT<&mLT`P6FG|Cq*~F8SSTo zt)d0mrHjNbpVR%T%h>P#`twJSztTk-tkyRhm4qHMUJ{#`TOOmYrnfWEDiyw0I z&9mR8z9xw3YyrJc2fqs;J)amTxMngPyS_Rcti z{Sw#ET23b-({OpI$*KjKJ67)g9d(8#FNfBlMz>%Gy(NLi7RtD*_eD~2G5g;J$?U(Z z2zhRKNq|+moVot0(c+oG&~n|<2s@^VL-J<7&Rur?akS!Oc(iG`ccP~LW`}B2>8YEk z%D&FA=F@xG6HYU9F3Ln@uRx{nLCU%$+0%=vN;Ire0AerC{)K7L_5Kd(ui`Q@zU z=NOp}uff7YY)*i5QENWq+%Z2K~8rjV{)KBxNWj>seSuYLYn~hB=Y4?D{ z_qI@)1^4Ae=ka===Bx`8u)IvOyMUMgPQ%%A*G?cQ5biCdVmUgiK$AlgE6IuCd!Eq` z!||Wu-*`wnfOF)BrWJgdr2hHm*SGhVt`1z0E~Y)rGeVi@?mS7Q^Fdgqr@Jua%;Hmb zs9;4!{CtgEK{hX6xBek&_0&W49$*@h;FtT9kGs3vfN54InYaA%Ui>Q~^#0akm>Q=c zm=;j1$NdOojBABF9y!B>jSC!(L*|*335fqN>)SjZ$FV1-nzfQOjYlEOZ&(H!R}u@` zM}^$N-A)Y~r-6^;;7<1I0lvZ2s|alrP8*Wv#23Gb#{(>|BBcFuchI zG%c&ggZd}z>3R+BIa*5uVlf~A{d}v^s30o1d}PRa$Y66?=tQTO`4VTV6mIUl7G^K| z?x@+WC_NXJlD5RwjI!0o&~SnLvBbNOWq-`F-fhtO&Q{{k5t}A{qT6`+>L~Zns@j=X zo^IB9FsdVF)w%e5Yxmv&v;8Q=y1Kp_k%iF!4Y7)eR|(9Vd#qSF`n@laA|8`+_>cF@ zvz)A3M~SC~c8$aW8LpyZ8&$yt(s*Fv^f6YFcO&+&@S|uL;RGpO_mt!;o+8ig&mHo& zS4L5un74Nov(3Kst=9XuyJ4$7N*ovJsWOU|-kw`=k#V+h+Xw7Ddpe_@M%20VX9{T> zN0shcs49tJl-;Rc93zV*C(dopj95M1PCIuQe#}dvj&KM?NnLGT0r|8jT}Pd=$xBFU zI6dMzwXyHsnpjzDVq^ibTnw=RR_01gpZaD?Ybm2Co3SoJMhT~Ml$wSxoT}lt% z;}M^k6F3)2f(#t$`)uk70bFb>=w6EP0E!wEFYR=Cw zTy$EJSRO(ROkUtFbEXv5atle`R@RIoUU^8Hl7@M0Yz{P(480qd%6& zczjk?;G_8_0qK`M>!FV=;)YI%37hBzx`d+_@*u+O&>n^xc%k=vXLhNv%lMMk;$TsK z&nCM4x}5`47K7gmjb&wq(W_JHI#f=HFXIni-)DO`Dv#a2R_~x@J*mK5hPTAB)5@P$ z;Yh`;q1yviGMAs4?_@dXtTuzxBIdxN?s_l%Gsb3?0;i$$qo<_Fe}R)1Wr)@4r9mzL!?A3w6T_Dbz1 z6irAAYoSsOw_YszRK_Q|5o|xX6FZV)8Vp*Bu`%ejZf(DY8&yn zu9IjOc6S=EhN18DXu_+~=_r8%9Xqnt(_=hNNOxhZb}2NuRXY9jjR<|gwvhj}d4AbT zg)fkOWRq>ypmIApYI@i4sB z1!ciU&ozG8nhmr#8gqq?8@a))c#ekIzL$1G;_|MVyxbvI`X_4FWU-X=@CW2Cu|7J84Z0_@ zbxDIx5V|E@6w5`UHkN4)eqm-07MD&>wl*xaHxjlUCfV8>ez@#2klJXm z#qmo&mCAvX)y4KTMNtY1L;!L$bwmJ7p+#N;YLqN zs#!n}U>nv4G+&$dauYDLIpSICsTt2d3<65gwla;r< zDaak%MaQU}&l1{?sYxD2k!RJSCoNpIE0OjEXK>NFyNv&ei$z*;MOFdHv&5nC=j3UH zje1V|FU#u*^@XS3jpkalMDI3pm-Q@!=7!K;N-^#>g)yyXLS2BJJGItxB9`56?`#FlUW>==*z5F)b;N=XBxUq z46nW9W~nudeAG?+-RPbI_eVUnOaoCmZY{TP2S@8P-xG3){5P;eiuXS*7R zJ{dD+v{85HFTWfwyk%SJ-n#I#&G7rOiR*AI%2DO0C>expLPc!?ePd9?X4RxQtA$}4 zxE@6lMS|NSoUvMo0GI6adBS<;%fxz&YJDBJV%rUr1g*yw)~mpXTFc)#qgGy%lGue5^UO80Y5l{+nS= zN%=Tu?$OZ4b*qODHkY<`rxvG{oyd>1L*);@d7Lb6p8f8#Uu^h_Yb)+TUN@I%N#Tj> z`!|c(<6+1$i}eFF_afMF<;))Ogj2nA-SN zx%(cXBSOSmg)%9W#w zzaEnKA|j3(HLF}HfQF(WD7t)qSxTe&#dzq^tOi9@q}hYS6NvQwE;%~NaGb+aKJVS7 z#e`-nGS(IR<;R2ksYM~@EaJ^N>`5NZ-s550H&5Md>euGWtC_w3Sz<#nuVPM98ms?R zk^EF}d6yOQ7C9}+Kugykf8JK2IErgX^Qngg5A$#*sz2~w46YYnIPjJ;_JngKz(3qjVXMG-{&kp&`D-xlW zi3R(CUBkuS4E3>$Hbu*8uK6U^pW`U0qF8+VnJiD4f6<2RlAp<@U;q5;FC>E(mnVkU zHrm~=+{%NKD-1a(!_3jQoE{#le>N{X-hiIgfFy}-q{4?(=3g!)J=n9|`Ls8(pXGJ8 zq}VkmmdN>UNs|*Pu-t4nzErt*RLti7`L(e}hrD3w7piNghu8PZt9)UUb86Xx*`Q5o zk$s%Mr@{e|G-fY*vS>7puIxG*IPRaU<^X-)#n&~~$k(Eay zmDW1wInPQgw@~7&8pczb%%YINwP`oF&zV6*#!kx^bXaGQ%+WvF*OZ=`hFOj>4fgHb z=_bQ{RXol|;I@LYT`KudkzCqMK5o)`d}NS}xh8cSXSBbSED-owZNS>WwWqwuU8u)2 zEUI&XvGapa(19u7k}Y0CAtM?V>$|vPo0C_5TIgl2#To2a&;7w>x8o*ia?GXUin8H~ z9`E$~ST4tVUxV1ZJw=5P4vx=uEzFvPck(S)UA7K~#$4`W4cEJ|1s_?NjxR4CQt=P% zzx1%!|6Z^D@#WBJ?NNoHhrUS7wz|vl^RxR80C8%Q)K5I>-o1r(uaq;?ZRRl)f0dLI zbsy*Jk2`%iXUGr}=MLhDHvSTQVVTf>S)G4dtbcuJam|1SwHua&N@1*KU~|;`VVk+HVs%oS=5Jt`_7e5R1sMYmN{fVHlye@wWK8o=DG zN`4&bM*iYl=en}?ia=Y*`tBsi>wE?(4hZk$rhM)M7tr~_cX+s6AFSV9@X{eDJWk%a z@{(cGfgy2pK|THS+Kk9 z_@vKdFi*UDof~mrbSmd10+8}4B*YzfcJ^&?*X~?*!7J0G`D}5#C#Wyo%-z<*h64|| zwGKm*w?p&vJ}wBkx;>LOoXcbVfR(XRn2*YGSXdP=Wq$vD>m`m4rg80NbZNJcT{*Fz zqT&OmA;4zZl{W6>>t+P8MThXFx;D+6mib7A6tOqaT$0Bfhb?_LKsjnI1hWBU8WOz4 zH}x(TV(XYkf3A+^?QUU@c-+GH>7iEE(TR;_A)nM_;iD3|vA%_GhCbB?rb>@0-S7tI zLW5_{_r~Tj4IBFbw#d$*-Ogj*&OFYR?#=Pcf!wT&7(M>RLqFb8%nQfoYlH_~RJcmp-3{|s zl}2($&io8)ftXc~UVx_SS z&dkXy*Y7H@MV{1KKDso@T{Y4@?2KD0<7l%@TlG@p^trP2#l=1bR{;tW)r723_V#~0 zA}GW7(Ch3Ca93pJUV)X%%a{xt!Y-M)`%2vZ{uxq6FkRj5ymr8jv)mMJCbNHTkpL>! z__+?#FQj3br-pdJDcoFppK^7#?2mD=FqDK$82Nn+6#lq5Zk;JS#W#b9@u5so0`wc%~vg6;~X=mn+FE= z!ni&wFI5+wCQ?fqd3n06?09B}Cv@3&-*y_M8FgO#^59d-HJ1rK?8szK%m;%L#nIS( zrx}V@^l=**7pff?6^6w0b&_7;ej0*3m2p3G32G4h7F{&lK0CfCt+$FR+v6h+6CFs* zdqk2_#Wku=)#m??Vjc}~;m1Z|E@LX?B2kr$LzET1yyF|CjPHs}6lTVvs$~zY$sQ2t zQm}O}_Bd->d1?K&jD9&Je~o*;zT*sAA!sADe}q0PVxG{)H$_la);{ zsbjKSk^G|(tGCKw^7u0D z=i*ln)#tM^rx!fa5#?cF!85~`__-1)_T4W2T=b_gUMoZ~7lyItp%cztmrij%EX)-? zqQ7CC#5eOgeV)!h_zsyvazpK#<&|%rpSbw_Uvr( zGdB>@QW~woe5F>j7_^THxlO^;TCZU7v$6KKjrAYCG^!Q>NQOhV;P$tnhXr4N1%Ys8 z5jh~!1Y1AWn(tzk)yw6B3Jtq6Z$WlS zGTxnwc`YAt>fG4l)%?@9&fTQcbt}_(3q2}HyG_wvnwVRri8O7)qc4<|M4yUcqqnKKY>N5E?7ie5^{YD z?NU~dHc}v@l~V-sL@o;y`#@vF;$$EigxNQM5$~rP{+4^D%L4>yv|LMK3ZQi6>@K`QQTjKIKen3&SCL&F~$-TA!amd z)D>67s!g?4-6ReRZ;{P~-XJ!aEpSaTBwTF~TePZ_yu=~Ks-au8bH7!rleJoof0+wJ z_TG0JBPT`JGJ1RTZTs0<>Uwd@rfs{%IU-;l?CXgCCMvJMW-v)TQ=u16;8p}}>!Hcr z^5$7HWQUaFp!UCY#0@&CB|w2m8K#TO8wM6z2mkAB`t5ca1vFGSV4|t?u;(<*TIxQk zJ(nZn_@G<9JoLr0d`Yi!NsJcIfiP+9WG04FC7zxq#hgQ_F%F zP|YPeCB2r5`^v9!WtpFU_08edFdKG1QtO}QHo@~^#&59~+%G7Rax}jV#8!bl(B#AE zlZhDcx&POtyeHY&onvQi7b~$y5Y&zr*4L`$u9-`7+h^xmOpj+KWTd#gIQ#1_GN^N$veN^SdQK>s@|3ty(yyi8v18q{0sasCpnO}sHA0g zbAJ4Bw0dqR&c1H&nqp>%(WK28>~ygdec|~ofsB_{)F*g|l91B@HU)awN|mfuE&rMN z4qcosG6+St^wFwb$&3&9h5v(H5&6P%lx%0%`ksa=S7CM`)QY>FIZfr7CA5_h8;xqj zH)q~uewD94iDl~x*Tiv*Ia6pvEk$0=4R>)vo&KM3@AuH?RZQ?kB`aKkck-!$>wHFx zw?Up>t+P2i3Ow&Ja4h3hEj=ZD2HWVZi0^5lQh?T!@&!RpUwPQ7IuF?9k=(|qlz%F9VN&S>AdNNBKYrf$mByo7}N*qyMA^rCIY_z*2`gJ;0Q+Vb(Hd!)J z)5*=zSwtx3hvrQf^Ql4UfY$;tW`4Co)w)cp>T!!MHz#uM`L42CYVEkac3e*2Ggjcj z#eC2osg~Q)L^u`MCYj>lF~8~&!)#-d?ADfnO?Ck}olnE*3^Dx7o7E9MCWXKVBqkmYqhcraSJxdz0Fz+Oum`7{wBr z&(w7=`%)G|n`V2ckO;QdA7SRdzpA`uAgaY(H|MMXVu+;*d@~nx?OJK7zBl3O(zTyd z0ZM_+*9n~xIm+%E3ED9h@9M7eZqMhdw?PdW)A)iHS?IHB@+v_vWHMMS3T9 zMEnihcO?n}EN9{iDf2!C^Ne7H;?svTSXTIIC%ZY?CVeQ+pqVI61a{^<-Xvezw+RlT zHa=V?XC`qnjJw>=i%=e7Fe@&m`1BU&L}Gh=#qP_NOi{C~L6zH};mWP_-Hzu9Tz%>* zTSN@^m|mx0><&w*LqBt%NM2K(Mi3+*kufmMn4#&m{hz0=*BShsjc#vBCJH^(OP|ed zsTI2!sALhGQr&IHh6=F0=AL*f*1cWhqG2r?)knHZ&Mp?sB`?n+gOq=~ydRza1_b&= zcI$9(>ERCs%owOue^OP~%_!0B9snagB|y9NX1s|!>6MPz%b@rWfcMVe{LXc+>1ld< zx8E<%F;b#oWgt#~=S;WVU~4=C7f!mGf=nfvEQdu1E}z8TK?IQP=MX-Lo<*QhCUZ$x zZ*O=!J^qGrnfg}5X)j`ybgV1bK4pGqBeq7>`Ip!$!yK|yb5zK@+>li>&+vV@q8E$e z>8jJbrkISch#mUY=!4z$>2hNxjPUc{2JT$qQ;O%ko2|naXIhAy21pRwq%aiKB7Wo0 z#aHz32{L}A48w!?p7Ab6CEC-5uL)T5h|zGOf}a$5 zsT75>l(seH9jvE{V0y>>%We4|OFj%2lEI2ZpoL^I<-ZmC>26rJ zYcl%ivpoOgQ$jA#>0d7WtWep|z-JOD!jJg?+y_3F4eMlql)h0QYv#|P%gP>n3;2AN#;8^-+j;Jw)}QYkX*0Ag6-Ymwk$ZPCwjP-C!5bE zC1WlMZYTU$^^g_!yJb1t=9?|6uE+2tC#G^vvK7hMCD1=-$`a|W4!SHync+rX4I@P- zep7Z|(j+oU$;3}&yslT0%%p*j72y<5NJ^|vN1h&3l5&1vhlF7j2WcNcAl($@<&*VF5n zxsUs2y73Rzy;m>M8|BOp*4iIR16k|%g5Xzl3Ctf>YPa>s?OLev4QqpRn$v#V)T$~t z;c~|px#jXswOicgy%L=-dG373DmwS)+j)^)(5QJ!$<^*}>b53{-Sg%}-z%R-(=R4V z4W+Xraa&i;!nB+jbLmQDPg+KVLio~ZI8`ks9NVt?V2xn@9((?kfBNLR3{fBKaoJV% zkX|ZJ5nD`1^ZA{kv(?#FI0vtI{U9h5VZr@kEJCS@K5RkgcUB=uE=4U{4rzx^zlLfo zn2do%pY=<2)XP%|2%aFU3t8bCIpTx=D-fhepcC^OH>wm(st83gIzCyNk{FhZIo^6{ z6slgJkRQ> z#VdZiH&CyWiApPj`YQ)`)?lO;i&%XEns1sF-!!QoeV+Ku7jQZ)-Ac9jYr)J@6*}hq znDoEwZ+du8GO`&1y{LO;{S98>n5LRx{n6U5r3V=>(L;q<-L~R>9BgP9J@c$Bc>922 zbD1gl5{<5V<)dLsAnEkp^EYnOR8)Ycm}28){yE(+l*RROKXn)mI`O9>v%9pBk=ISa zMe5xl%?aOhDf&Phr()Ok41z~`DBSMD-OL|b!{NT_KaXAPbR?Y5Z#pYp`g2wM=S5ho z)*zPeN~vo5y5FuZ~79kA#Rk+l8zVFxJ^eEwQA|Mn_O(O`MV zyO0q#pHbnHszre6-Oz~nffS_-fB;-lDf>Wt`IOd|H+S*vh}c>f_ePp#mo@%zOX0US zn|>yOuu$F;-g&EVi{wE^EQe@HKasl5EBh`!x{F{koXm6~!89IsdS)g=GNm6dMy0(s z!VvA*&pOY){+0MfzHX=(_iNN7j-Po~!aOqBEu1k_mI0X7+U@95XHP@IICMMv7F%e> zZg}D91>Bmw>>phMz3&4V#yF~(l)Ws=U(nu(?z*YWzpaxce|bJ!HXV9}jOwhPQ*GE` zty0pUe}3&Nno+%)6h2x+h|#7B3AtJ>{Q$Micc|^u??7SkU4YU{OLGU^UIyB5Cg@bqgt-}=M~E^*O2SEp`G?Fk$F^W5dh zVEY^wPag1M!Kx5CrdozMK9(XkXVLgTHSit(nIp3S0- z#Q_q%Z;1Eg8OyF z6lBQrrXO4-bAk6g>_Bis&FSrx=urLz`m>k0I~>yG?+lUd6q`uC_{^XPY2Ufd)5;3y ze_n@yxYw7QjB`RL_M3}`+Zp=qFV@%7)$*?4c3is2o1hg2Md#%eA8BkOA5YBY+Vy8Y zz6K52a3}bXyivJ*iC=|(OT&CZBuo0-{EyEWaHtNI9jeJ8x9kUTEVn%WX5SCis~O^y znqFFE=|oK7qw&l5xAZ1ju4Zs{M_zGZPM|%OEB}cg`VOo4mc9pz+nR4*dZ2zAQWA+! zl4E?^VsJUZyfr0-;((Q2@tVO?FEx&t&og~Pk%+gEPRbRo#H}fT)bji zz+fM_ns>&3KgxGph7ks#0(RyWYGw4k2qg)IRB$*md%k*s4)5@YK=X2WM3Rew^YnT1 zPn7e!b2CkSG{tH5tJYqeQk0)Dzy({YSYpUDS&oTsMv}5lq%*#EsO+A{#r{wXB-4MR zrwh5f`MME$nUZmvJKW=K497vqY(>%d8$lv@BQBeKhEVuBK~J*xkSNvluaEohuSAHk zfoCa-QmvVQ<=!Kbi*i`IGQ8z@Qu&_G=9FUDgU1mOH?BV?cf$r@mCFSsmWO+&x!q=W zK^|G6EyhB;KNsOYtB-nBDcRWWfCPaKy8^%=pw-g1S%_#AAbLZ<{HyhQghQxxF~*RaNsVRZn^H( zCU%g!_VaR6%$vEk>pkYelUvJG<@jha8exq@RoA=y8gA&{e+O5 zvB~&~#Q(S|Ef1xqC*6N2Z#__%w@o1-chB#6% zLD#J+WhR4LB|X8@P&uCRH(Jf_clhVk`fLA*45I{{R{ec|8qx;ptN1KPBZAazgTW9l z8W@w{lan(J!ItLxAt5`Sp>snkz`vad1= zfJu%U>Z#$^jd~Rd$LRpJdDDmU4mqy%&z`eM%*M{mwLSBVyKr}0Hinsuq`k)|srB+< z>=$u&57O5&<|cJV3>Svfjtqq&(MpPHqV@EF_MY#88E{&_H}38SkWx}=)$^At@NZ9} zm9%D6KBE%fGs+7MO?7JWs?qhIS>?}|-V!o#xUH=iz(RqiSp7t4qsE8Yvv<7)^7pID zEvAMIAzy`QZ2x!tmVdb?(ISy4)9M?g*txcxPK_kQ2@L$~Dz<_R!V}OO`Q&)~MTdi@gI|i34iT_Nt8dCatg!rj-K8z9%+?8vhT^c zHEV9EJvA&?+3h?KdK?;7f#unTtq$Y*3c<|mC{N<{M2b}PjQ8m&N?szL@e=R8dMO|o zayeKeJcDuVBBR@hFQ>lrE z`7c@N@5hZYM>F^d_<&;s0>~f|Xpk99gYAz3m}+tZDuD3)>hbwXGLOVhP@hYKLFH@* z3o0@YLmcIJ3=H}xt+1r~=QH@1mS^g>&UC}&cbfNH1`C3Z zGHSb)`K1bQkw|;g-0Ok#517Co4tRgP3XY&RI|SQ^eIs z0Lt{lso5U(`e3j{V%?GBz%>cJrn+f1U-0WV3}>A?wZ*ub6-Tx|8Qe}z4*$_*5p6D z0RG;83FPsUjxID%sB+{Fp*k0rPW6NDQmPm>4CWi8X(4;$U7<%tTqs3teLZWZND5Pg zGjzjj+7whx1G3U^n11ps{XNTHp9Vhc!RE}#@d&T$xoJAI0=1r@l0lkuPYg`UO0v7} z>EFKa(p|(Btwh)YnhU8AwmZ)$rLwSk{6(VpFE2^=SjkLAzZpsOh`IeCdbw%5Bv+P8 z;lx9c1oW+UXFB2;XA6xJ=)G}~j9p09xZ3-|rBj4;=W)=CeU|m-PIaV4{RMq_GifoZ zbRJ)i=qGE%gg}Gv)>`qDSBU<0G-|2N4cq#}L369~~_ABm9tc zox;Hyt+iZ7;DhgSM|*UxC{u>ptacB#t1IMN0NQp+=Gs1YQM|cgIhCwWJG<-(S@*)w z-LK^f7@G4lzSps~+H`*In0&kpT|t1x&<0KXaLonw-wI=y%?VQ5wiF0_d4W;(0uI(G z7ofNt$+4O&Z_4yi)6MUUvPt)u_bQFA=q>}BIBD%jjA2~$;FFlW%dF2S(jn6Q&g$yl z2h~59;OCJ#=!?ZyE z3Yh{|dz~;-q05XTDsBIo0sH?{5dXUR|6cK)#5C5;S27o2$~f_(9E7~U@Z$c$P=&zu z_cnDHGBOc_CQ_w#Qw8-G|J~rhh8)Q^wDAYRFQAG zrGA2GFTla^A4X6PF{`sN)ZANH!EhlB(Ouh>x;2ux1UK>qp^x7viS?Ti#>Hc~>-Xef z&}#Q}sKaKi0uMbpRsCY*!jVJJtN?3p;TT2D?OS4AJl5l*0bT;ogj zWpK`k0h5AzO{8f>ZJB;Ykgm@SU3U)k=*hOW{D((K;Cby82>q4|;^Y4R996$WolH4^ z41B6mb;MF<9?WERr6+aOXFQA0@uUjRV}d#e<0|B=T=>JFm;)O;3^Fc9^!siBYeF|r$?k)SVB0l&DzsVbBXMw;S}NwJBTExbhHF>DjuuawkPan{dEshB3^^>}YsS zn>2{nm7kPPGWcnuz#GE_%!aoX2lKU30su*iOZ%-3s8U}%<9v{F z_FJYKyxDSeLl`S81=1dqEU&&3K?^kxMJS1tB3R0H!^N3CCPason-zU_DGNFybwZYP zR)c0gU1~%l+W%RmAj$cfkIGw7}#kl4BRH0^_%igy>7=M+E%_zlg)aWzjO=3MIVKE+;ej z;^LRHlN|PRKR$+E0BX+owGcKL@L^Q;y{5oG4iXu=ccztJ3bEgb<7h8E39~miO~B*{ zY`m`BQ9#W$*Mbz%G>(KmQ?I(nKt=%=jN^{OWQZ{Y`5<8NKuhrRoSXp?6eLx(dblo$ zhEwx$U<)f+g?LweAFhn*;Lsi*@{bkK3=&^&76Wf6%i+f{4yRU;B1A7jWc-U|*=;YI zNI-mC#%qot2XXLO+4JORDFk#tmf#=0oHcb{nLdp!T^d$siA;JQDDIKAmD{3^8M@pu zG=~j1n7JfJucGe@Sx*QLiAUX?*{$@BL0(!{PW1(y;H+U3W0-> zp=Og%wJtrccQK+Z08@g}MDVSV&9&qt!~etEx^Va5W<;jb@Kgca+v_imMgb-YtQI z%6FD9HFsB;R{!9dMAe^sz{wfmDT7g`<|NDrl1>c$M`Wb;p?sZX&J@$|*}%?$l8#0_ccOJXgQ%iM~N*vSiIe)))9c_XwX z>$oIQP!^OdY$FZGP@S^Y)Lp8$0L7LLbSmp@iTGX4L&s%UPC{Qd)79iC*;y$ZbW_Qk zz@!gvwBXvU##gN?B>~0{+lxzQ@Nw|=QHN;BqI4YL>-gn!XtBVD=s1D-XqKPUw4C!@*isEr|1M@zpl&_v@ z;z8ZZU_XJgzvvJ5@n4qQ*+7wOIShhcAO#2b5_sqMwhnX&_=bTC2Uak_viX$>^w^PO zf&TZkT1$;H z8U;k?L|8f0Fl1KpaQx`na@4d`2;@H-y_q8H$3gLU+YnE zC}!gQ`2V${IOxv^qS6>5cqvrnZJ?(SnCPvQoITK(Nm{^uHOa;4vw%D7Soek_N4X^h zzRM=q7z4+PG6|Hc9NDMRYTqobuwVl3fmx;_Kn7~fuWzbIe$WPE5EXEwFsbtsaK}C9 zf3NYiT8EEqf5(m)oPKh7ZmS3Ydlg@eT%z$UBa8uxvzdNUmAJn}n(n$u9&AWOR1rs+zYw^*UrGJBXkOE%@ISOAN5dVr_AIBwdO zvj@R(jx`)bSC^UPt<6(CUQ8^9>;H3rK~_cUjq*o{F!)TkWT}qz3ey!h)H3J5pC%GF zl8fb@Y_2Doihvd!BtBj_X+7r;i}zpF&EBf&Is&(!N1QXKDaSEopu~yr8#3#v<-_%9 z*uM(kAIGg%>&MVnSD7bid>{1J>ChAzPyu(ST(Fz^0Di)SFC(9Kl3QB~$H-&U2Gi!7 zOJLM<@|yurW!;4?c%6;wmmjMx^KSWQ-I&+CjfLbUp*J%-4UQ|7<;gB<0Z&K+1Z@3P za$aM@1a6+^W5=_U9TMJsHQ;#DGU!`{R#+3v08hU04D^p3p6?o(2X}Yu)=HZtVN^rA zKeL>-vxc&{1^8bRu8;tG#8jDHVA^*)(Nt~wS$kSUdsf`{a@^MQHG12IR*wLUCq?aI zBfc*;-SMIROlWj_SCf?Uh!F6SG}=0BxiRp5%f}uF3vSw|~9BKlg5(qSngPxvn}? zDqC$Gp}IJ3>R0yXslH*FIV_9(-98jT#Vi6VI10A&nVNG!pi=V5YY4Qex~5}=`Im+C zhn({U%n>vs3tx#_IlS6Abjf(dw@qIK4Ed~?_mBSk=l{H`3)kQP`0kvr+Gi!xz20)2 z-Vo`tJZ*V;=%n?4!#IAJRVUQ0qxge;D+=A|+G5<`(lmkRT+g1@4z={{8IhC;*EyJ%-AeMhj&5g3st|a(1qV-ip7~&=z^R%&U;z2glHyw1j)udPj~0^G2GHaEieXw^ zW<}@DA$%z^c65`a<|`;~80zr>HeKyHNi%!*4RJfNeK*(U(_l3E$aJ*vJ8D)2ZIum9 zxjF;r$wND2Lf*#Dan3YEZ965~)-?S1nLH>x~XySyeYeE6em9& zuOhpJow>Jn;m&G8hFjMe@!>xm#>|J(bG2F)67M$$faok@t@o2q?x<^b2=}w+3JI_E zNHp2g>tsF*Ln$jy=1QTi(dFEc_{_KFzcoB1Pb>gPdcX29@g|G}oHi5HOaM0!LfR#; zLBLeZC13QsjnVZxE-k!mZJO1{Q@Gk=>`}AoYZLAWPSaB$FjWB9&!&;PvsR#cr3%Ct zX@GzjgSu_bE{j@VW8_W0Pt9;x4JN7zw4d>iF{r}y_cr#tzW31QGz6Hi1>DIz)De6A zxKK-Pj>3r(z}*s1x)(-t5Ry4CLOU3)OItGljknD5v~j?=VYXj7ozqOl*6}yUaA(2I zi4U6yi~j;0IM#sWZV>1DaL1_xtt|*u9SL%ALrMTZ)@e2!_&r|weMYtKp8YoMX507R zI{5jiBUX|go9T#eO{b7 zV(UHEQ>WMoU_T9>8M{)t2-4I-im|QC_3aT(turx5i4Q;nbHBOvrFWMdG6n4BlEJ9w zNba%eAG^gp`>=)Zv!cN$pyq^JyuLZh`}u-of2XOkR-k8iengx{hIClA0RDatfHE1h z=E<9c=?PA3R4GSd;B%%~H3{+(73D4%8ZTRdmKOh=^X6pS6wIn`w*Ax-&Zb^?*A3e{ zxYg#7kn?;~ zngW{^m2NBSdOQ{%pvTrm-ka>Il2mF8{2GcuC*|X1(@Cu01S^jvg5rE-f^ls?^R@!# zjcvEDO|4Q7#tKH6w4!KO75oPm`7P&&@*^sByLCSRNozorTphQ|oXPcUqN&S! z<9$x0o;CM&mdwT;mheb)gq#~WNq z>m8J;H@J<>j#}zpQR3k-x|@DkgHK`Rf|ChW?++pI$L&T=M}{!`ops&dLhH#Wz{>I5 z6%ZHH{i%Rfj0pQ-L{O_ z?2w7EwmK~6k53P6Ho5JPKYr}8KJ0bHKooOq!D+rEuFHzVwpRG}b z1SyJkT?G8OvK`zJCKbwe8}t~rWC;zftRx&wE^YKO2y++?K+ zKqgpVdwTep@{P|hY0x8`8C{T@%V|q80Ot>b-X;j{iBa*%g7qMpp;kjjShq@CQR;xi z=_JuN`KaF%L0rmjKRdX1G?mq$Yfve z@vJ}C&XU;gJ4o2(gRj={jG8x)CJn9jhR*S6(>tF4rAPZv)fDOT*=c1QYeJ@Nm#GA@ zPpsdH+Gd&+evZxa|I({UK5AYnF@E??uE}8wO&6PP{Z?ALT6`r>gItsD3sh=v^G!?e z=ROq?JS~LnRGMzQ4?Ek~)2up?vOSOs-U?bf$JZh%OR;fN)RF1AD{8n`H6_M?hxzKE z=V463$r5bp)kuXCr}t`2eWvu_qGuP1pJ&dz{QT<2j&Kh>oWG&~4A_Hi>x~KI<9h#+ zjn-ap2TMt!@}&v|9x1NP$fSu}*I+62OW*RV?!EKm<+z(h_e5R1DtW6oV$;+Fwy1g& z$-xH+%0GdYKc+Q))sQJ`c52t}>vZVqzd|U2WONp}n1Yx6wcrKXN`H;RSmA>`q-eh3a4*Z)@`}%uDMl|0yNdh zu#VI%6@Y*)lt+3*Uh3;_!6={mLtD=;0Zu=2@Tm??p-mA($b{soa`0=rKh_X@#c$g*ub=X9#~|<@5x%dSgZ*lNNcoh&T8}ZO z%l1lVW?^?LUAXhoXNKZN0n6-j+z1nmK^5`JQ`M08a*_(auk$s-IUu+@+hbmzj(Uvc z@5XO<9Hs0!<%&}D++T3En*ZcOk=xMW==7BR?5S99bC=$1J7RZ>iKsF&{XRNrNenE$ zxphAs=!YG4#b6CYDWT|L=>0~l*r~g2j8@#kaOlG~52QAky5O&kS%Jq2p{dfAO;(N@ zb7G_9dmiqx!sCm_i?Yw4Wj8=d^hkHpQi*64sB|=JSzk6&SUZeU3(nY^L@C?)0P2uy z^318t1S-ID^J2L(YT=-5*TU-cY~vkYk`cw}JSBOZhEbVdvrWcpoAy-STZ-evO568( zb6X!1A5YQ2K^n$m?<}LdTOZ-Kx?)X_XIDAH8#3H2xc}<@Zm{6)X^wmmOE*kvnE7fb zxxwpF6y-o}BTuXFF7q1py3!X&Q1hoBRYLfaHJjmnC|DGqyYg8L_f~|EI<#I7xO!y_ zeuM1CD^d$Ylea!|Kb%e8+k|+1TaYhE5astid&FR9S9B0r27ZU#VLVHbqO7H+*GQt) zF>glMjHA7o%>Uu=^E(e6HBW6tR)tffCEip|M#a+JPn#%5&li&%m?6MLXIYlj*Aps> z$Jx@y94zwY@Xc$$0Q*xf>c6YJWG&sBgv%;y9${sh6CNFG%PdhQOjgaOA7y)3hsps* zqa!qWS$M*&v!ImN@Vr0mcn+D%;t|QJdY?8~Nh0;?NMsU ztKYVleZoKf!}RG!(IU|LowJ!}W>ngR0}+1@Gv8S)+g??b{RBRr3HQbIvRwcJdXmvf^QF-v0ZZM6X$Ip1?Mw}lJ z?9sdr{l)u<0XP*5821!A91S0J)gcwlW)n%eeR3Via7OUec&rynhdDkhdx3p1;WA|; z1ufgh9;htszdmD-txtR2nfj@xMd@uI36FVIkf!UgTW=Dw7PLQQm>MNtbSWAun@%ly zlsQwfHjv4~&4bKZy0VRkyymP*R8;eW=yiJAm7JnrM$jafhQ0A*(gdQ{()jlC=^G5e zkOU6i`iAa`@Wom^7~bECLwJLuts%$CyNvxNM0xl3c(GDwF|=*hmCQ8<9C_1CC{HE zhX0iJwcZ@6p^vcCzT-Ax*Z1wFL0CHA)ADk0(j8EPsp&-qx`j)*5T@FSW#C(OpVRqB z1jPs6Ti-R`dA?c!`=_LsWAm_XlabUg!g)zTmJ&UZIO-Ts02EyhQg?F@-)RYL7I$sH zh+t`?auOiUly*C4QPS2$^0}k`U=;YQS(H7)v|pMpCdYEo{h`!6#woHbW7e@d0|T2f z7q{02I}t_)SjVX&qvN2=N`sLv7vl+8C+Sxhy=YEMr_Y1F#t+}9`nb;Y+E>%6%=Z23 zn_V!?Bi6R&!Rjj5dFPY1gttMRL~FqQ{O4KUPQ0~K#AWbOjZfr?J*KZf+iNO-Rn^b< zXo$`FFv2vb!fMGWq7VqJ;EdL=^X|HrbtAWBR6D-GE^J$ZgD{9mF1@*NV_L^pj-2+e zP3(N$Vy6YvBTw{tl1~}Q={Dsp7z4!Gg37t(LmdOq;v|4ct?)@`@luqo@3i<)IB8g? zUl@eS=?Y(v`m*X<4E#bOxilZ+{W#rT%8ogvLgBG*=xlTPCq}bHX?ovoa>77^>cK#y zA1I=YN|i7m+xnWPT;j+*D{Qzsxl5CI&&cISw+$mMO8>N0R3VJ)sSm36Y zwJ_$Ix{yrYttSzO+J&cO`k{3`LHdQ$Myk7TU3-mEaZva>SCGwM+b^H0F1lVIMeiYQ zm;r1Hva{-d4oG$emHgqBK|t?7O?P@RDhYjO8EEIs0`9l-j4rxuGs$P>+CBNiBY0XH z46MR7+YR{ciaQXQH#Y3$&~28pn*X)o%kUhZr?^^;Tq)dareH2 zCM2bmsvuL}%;2vh<%U@1yjs;~rHe%grf*?T`J|T@M35#9Sa4;&gdCVbuf8t7a{Goc z@7X+~4kK`lQ^~#omYcm=#}58jO#cL8_gjY}cMKe5uLl^f2xF92Jq`-RzdCu{2(ZM$ zsl=p5jyb?hVkPQavT>{4P|ZzGMu_f6p%0UZHACYvO_}%K-AsyG%Oq-dgws?W$_QGQ z?=3O**Jc2<+53N%Qsw%#QzdKrE3-@nmJDY~)rt;cDl=_+8(n#!jOfYkJ~wlwvzSj4 zZW^sSG5M(?8MpF>Bx?w`tyKYdC*5NOY|c)hKyKqriJlG<$uM!m(Ye6N0Ll0TzCJyv zHoohY9~m3;XjPcbcJk3n9d}zU)Sd|g@&qvRtL*uBX7(z@+yP7wuV`h#W%1r zJ#J^Py#CC+@=4bs6=I7Oy6=4X@Nz$HPPp?OU~)^7J(O>EO3LxbVb=X&x?Sq3+Y<~2TkN=C>DWM}2w_s104+5RL`{5-4nNO4s3I0}q5> zD_GgZ*dghJ5$~1?lR)+4+Z@R4=hkYb9KW|*S7*9EKRWMHGQB->YVG7SlAgRW&Q;Nm&%Y7j;q`o_}|4ENb~ zx1JoNPZi$Xy6C28UKq}VOmFAhJ%8~J1^K=Gvb*1=^DHxV;+_>f(?-Bq!M@W$YVW=1 z9M2N@Asy5H67<}drw%FfQtvfVLl}3dc0ThiC{RSaNV}S(Iw6nUPRi!&`V6sUTtGy7D2nXuy#w?>LIDIe23tY(QgR{Fc5a;wDo zCwJSGm5Pp`Tc>*S(l|=jzcS#}SLU!O8CN{Q7g!(iK(n`;SR1>nS4#%Sh%99^;zU;@ zTeSkvV4T0Vt*|HEWkN+Ba}F3&(Roi|s)Kb#@dV*9K7ClgQRS-Up4)ZbXO7K*Sd0%9-h+yMiU@YnWT51nE>f zw|h4QI2LW>dUwVf=t-GCn36hs<>-;^xgxE-b>g2V;9z? z!ECt%D-aM*1Em@VH@a+BJ@v}{{P_Z_m{XY8hW=IS-q8 zTP*OW`tbbvGznGzzVUl^|4&~;l0`mTbE-3&Dyd!})uWy1O8>YWzX45w&jQ^!$8}A+ zK(XinBck{KcS;!io#;dZenM$+Q1aeqj;)oiuAr)#9e5StzlM=JEsJG)pJ@*Sh=hnkTsXRc?tS#0D=|OZr9t~K@b2GYzwDfRH z-w;U_=>C*NBjph6S z)XeNNm{io{R@%YZqjhEVfd0v$OLm;IA}R1eG_wqvFwAkGcX*h7ws{yn;HwcNjWxWQ zD-$l}&Aoo`vp`%f*`cEAn7M)+tXv-TjeB376ma#19n-BEf+-Rp&K2yUhIE3eYS5OuZcDRg&c#j5$N$$K%Achsu9 z`gQ(W)6Pk(>DrJpie}EbK4MysX+>d#Kei_f8${sqZfzR3%IJ#$vF8B}dL*kEQ^$6$=(UukPG%^ieR)s*_3j1H@{kW@pq=Tr!w7dvLCz0IR66;};O=&N zpm-W?E3`{*gKtcaRP1b77!^|GYN3i|P8^D_9z?QxaHn~8v+&oip2%}mh zf=Uwk7o4_M3a8U8*ma}YESBx93cUeO&xPaL-zsCDQ6ErIZJO#BrG8vz^W;otM$aeR z;?c!G`9%MBX@?B{A&~!}X@>0g?$feGwg;iVrEv24YAXzz=9nhSGiVBT1h~(-l9=f} zfTh1$14&RYCfy9;K++K#0Cy&#?Ow0B3QQJ!TB7Y)bGJ8x zn93qVvj@aq(4n&kfPtUKIo9dN@i2%bvzd+cru91TQ6If@1U5yhrf`?g_hvCf8*H7# zEwW{tzAvT1gOD)nXtyZ?ln<(8(fYhR!qbkLy%6a=9;PF00))$L3vlC5aBc)R>0N`j zLqey@B&MK|^(P_F1?7jE^iytMx3^XLyCJ)dg9fkhrx(Y1puYm4_#Bc^U13UI4F49S z90wB?2g1Sq^SZK2m`#HqL~B|o-mh#A!?cq}FN;&8=Rj7wETgL;i9#?a#GSWOqPqym z{+Ve{CzIzoegpJ6y8UIvOQeuoIs)TtmfFX=f;qI-@KyI%v>)n++KU~u$H(Q9Bu#rI zX)j6A3OsIGovk{Ta!c5}4otne5zV5SDn&uLVZrL@;}LRi&PY9yO+-9r;7%!krG{F5 zmC;%$?{#0H&3MG}cSs^P*=qbt#S-9P3X1AB0cfJ)Gx<+?Do+!U(hFU_|H1OpF@q7# zEFPZmf+J~HO%)35=ELtofAOJ>{U9I~TMX<)a}Yg!(0KOpAcLwCK5wk6+c`~1rqE`S zt5udhUeIoyjAuR%7CJEi_F>&OzHZ&iiSQ2S6j ztIM0N+nJ^*?6#=VnbZQw8Kw1?cV*`)8lcA#m6)2xgKkKiag2C2S0h|4K%V)=*CV~eeJjHFX*BSKvZVk#8SyJrWG*j0X1hOtnuZxFz;W_5`{W$5 zpG`UQDs&<{8iFr&04e4UbBs-BSN?-Z zHD>OE{&!}v)S6rpS_htkwuQq(o`UsWUH5I!*Vc-=d(j6<3n_yGlo7^63}>2Q5cL7U z&=?+W0xn_g?!K(&uH2}@Yb%o@y*x|Zn3}@wT*y}yi&0Ltpyg3gW`!u|*41Upv%#u! zFS!pxP}4&Ku(slrcft0fgYCA$=e>ymV*p)DY-pk%PP1;fIGWZIf?=IIrC$@dnyC71&GpDwiJYav4 z%>)+Y#TDxEFC4*0$3d^0o?ZMZ0|}nmKtAaAk~t+pjz(9YMGukHS|H`~4(f2c{0|#( zBu<|?ErMGW{kDtf$Evtd@X)yP=oXPSqvEqq_ZI>NKXGQ&q;hh1rr-PazCh>`&;Ckp zl45TmX)g0C|0}_10@YL7_|VOgtn0sL3=pj-BX{D8HQgKdOFbKXk6pY5DXJz}EI0I6 z8AKAmqbu0zFuzhO;smL!Xr4bn3o&`^&LR8ul}DI7b4_-QVkIa9nFDmw<>2Kbi}5Gs z-xq7*yo@kIQTpivbNa1*1-O{hgV@MI`N9%{t}p2#tXKCJ@CY7j#6`=_IA|GlvZTmxzhA0N0r* z=)j)1mDK*Y8$6wn?LNwyZWI6&Dt;8u*;jV3!`n5`5r28<$*{7R7v!CM@!5F~dEX=$3O_xUwzmw1&eZ?y~E)CB=D1{)jjZ z#pDgS_N%fp?9{h2?0i0Lwsm>);>qPi)^^ z6MVy&7fRSi>tv^@v21@Jt0?c%a@aV>rAvds8^vO8b4DK4U2JM-eGv>U9Y_2hR;>xx zun@N`)pZaHcfl#3COiGPjzJ5jvt%jVBC0*|isL)CL-C~UAXDiZe=z9Mx-qU;b66Sa zz54B<=6DRd?=bqQG0t%Bc6xCm7kCK~+d8|9-{<}PR{K?`%9_p8USl+KcyX3n#fAoY+-vF@U721Hthd-=06YQ3dTGHeX`_HQR3e!u7Au zJFR(&OZ~xiapm>(#6*iZAfiF)?VZ6qBi{D5yNxcqj z?9R`~uBJ4+k9l=HwvA3O`kK$u11ZCca4pgu-C5K8ZF{AFzA-cYNhBpl;t<>MvzH6S zyDVO;Jn_`_!6&^e8*)KhU_6wo;lhZ@p2Yzx5ua>5j&raFZVq_F6zVlNhxVREecugI z8fjxkl8`_8q(&@&_>IE~1eEt&$-_pbSG34eeu!`I=sRDM8;>k2KwSVBF7wSBi=X+=6#dEi5YKn`9m=LW$)qOUBK_jE4!Pb>h|H=%X(-3-e45S7MhCd z0nGaKd}m0*gIl%TE56$#kVF&*U+_2T->I$I#|AIJ39Mcv(|xo1?_I zq5n@oKQgc%?qpi|D_%RD*BJE8phsZcxCrN$`%1X|S$$$X~$j@31~L<*A$noYlKv_C!-u_4O7pWz{3 z?MHe!T_Et&g@69#KaUbsAMQjpHq0j*_mnktUSAlFdOCCtp+_9C z*!BTF3=uaFu$L41Qm?rK^WgMN)nfYxn4rRQcUeooQO#!QGgFc@t@pKiv~Q37b?^L6 z<7jej0}K4pd^C>A0|DJ@g%728Byh997d%YhGV6%`1tdy~vs;V?+yP6Ga(7mPiNmcg zE?;1f4MQ<@s=Q&kS+?%Ub??Q9<7vcb0&EFiyRFTqS9w#yT+?mugBAzfQHRzw^YY*j z^W)`eQh*lB6R=I81Hv#rBhA?3%f^C@;t=+Xu9ds1D5{@sjNs%pQ@d!Ym4Muq47e@w zGZFhRKj^FfTo}tcS_8$e8Q2JQ^q=VH4{)%a19n{|ZU!L09%(ez0sOh9MPIiY%Bp3P z1KDE=zn>Z%G4Q0RkaXiG&kub1nE@;%Tw`_v|2&)f?*`G~H_rd5I| zA%-&<&UE*}-6B6j;6W>E&Veo<5iW%SqQu6)ocX`m8`djDAI^0XjzrQZ_?_Qxp@eF|Z@IcMZ4fMbSx$;W6OU zBZRi6xBYzhvr9*>$(tr)(O#rZ+@gp)V7XIjmyP(@{d+jERMP6cFo~USV@N*wlp^jt z9xH*azVx@*%+wX5u5%=%OWgLsQHsaS^1p7ky7{h6w|~|?7xITg?ods7-Ym9P1zlI8klI1yvL{i*wlU(`P zaNN}nJ;mnY8I9Imy5l^%UPb@%4wy?#r@=g7iowmSPsrU07WQo1S|gvGRhu?irZ zWlun=B*$vM_+fCQ6!(QN9j6wV4Lr0tVRt z)Oa{+35;7=A2xg|{pO5(0T*&w7qAS?TG2$+pu-&9uJf~{XP*a%0|J=>+2YMI zZ2!Dy#(-=}&<_lT<@7o8a4s`7>Tn8=EKnb9E?!RnCrs5mE-vHdNNZ}>3(q27NZwvP zfm{JK6tMI9owK;~ZfpvwrBW@P!ZVUBF9MPS^eU#5dNQgcb>fa1(FRxTSh1w;DWJNy+jL$h|^G~wvU56y{iMH#7lV?1?Vearb zH||{-*+x{Tk9^}0+wWc>(a_^K>P-9KgRBozQSD84k*t z>CW-6e-HXU;?QrW!GHWg9p?}OyRW&|_os-e4fHD*d@8j_AV>9d_cAXyY@(}b#k(6es#)l$4#MV=%_-V$%onWPA@Veszw@!oj`yBiB`UkEDIz9B^ ziav1}$Unj%f<$DW`H7@om!OCgG2ajifhPX})|dK%lvSCR)$=W?DX}7HG9k8I9Rkz- zk9Bj*H7zeKn=kT{ws{jiQw%-1_8%|b|LzCwiH9a=Sq%Eg6G;$uc{|LN{qUTl@P?Qd zDG7dq41%MllJImzhQG+O`r!p&M5%Vw3Q)aN$_-TReo`2NSfBxUI}*;ry$A^n5laAp zrP`AneN-`fez@?l%lD%=#{#$7aPJw;M&IU!F|WXD-ROaDAd34-Wb zh09&oHvT1|UteW!Gye7^-O{~iJ}}(Lth&r?*F|M$HvgM~Gf=}~+;J71UpW2t`>?7C z*hO|_%*uqT2MQs}oJ5Sok&g48z!QjpB^qWWuR$(}`_sU*pnV(~==9hkyi(z0$8 zKG2-+Pj~~U)pxhuAZglgFg5nfTuml~kLg#2N-H@N=9rkhF@~54J|Eg0<%CJ}t$^Uq zJGLx+r6f8wYWZLZ&FOEJAC=DzL4Ut|Iip|MrhK98bQT9J?N_tQC>lKb9mv|T$v_dI^fg&8GD?LRN!pb5+`znMOb8cPZgMCi1+xq zes7823+;FFz^kx>{mas?dnBF!C!%&nBw60){83gRgPkpk<6|Caq(zns0Wy}W)*d9$ z4Hn7k_6I&Mfwh?C1EIcuY!&{;XqR{=QXD<`@>1(pGmcU}{^Cs|$0n)>PSrrlBXwJs z^8QZb|E*7LsR`9upPTRfsCLkR%5H6lLdjZ2>`6G^x-eYDZ8>rS#>HzyogFTS;$!R3 zX5Hj}5QzZ-J?rKLgdY6axDj(r>?t966)X=zuG?J>8-Ll}_xT8z|JAaUeUAsNQU2DzY#l96`v zT(U`tV@-dV^eb?PL}Kbp*Ae@se~X{|j6*uogDy-i%TfXY`|9&_$rOrd<6Qd)lP`E3 zeL1=>`RJpZ#ZRv<8C;})?zY@cb^H@HCuvw*9Jwd$XTM293Yp_ zfC|NRI3z{(N}zTQinJXjQ??jIC~gwBiRurm_neL@+yXs9j#dTA1++#2zyNvkFzZX$ zr6AX1Yk#eoS|@kE(+PQl9K=mav%bQC&MAe@yVj;o&*py+-FM%y_g$5M&5~=5GIHuh z-pAV#oS(P$rK6Gj+F$QQ_gYPOB)bhv=UU6aB5UK+5JO7YmiXpMS`6=CG)79O#4ek{ zeTitjPpUH`g#V(;>euSiX`5Ti-*w;ZO9dv94xg&-Q7&crL>Ky^blX+AxUY^xC%4 zSXbt0rUL=Xv%`k}_8PyujWw1WU=n=XdLV82ogX4QSk$W+j#qjLsH#Z+;4LC57v@UT^ z(e>oKQ5$L-J`yf)BgwS)yZIJkoQ;H2m{irKvo>(%@d54aMc>u{MV7~xZo>3B(@cq- zR3>&#X?GZ%k=u2G1Opk-S1zrTLud7HI%~b%Rbo2ZY;vZaOm#t*wuVl1Gp+A>WICQR zN0!%7zmS1%ns|vCL(e%|=ey?1(l+%okinLbWcYnGLIy8^Ms>%F)HDA{GCA@til9&$ zopTba|0RkpT`ebMaw#8RI(7-KzK!n_Hds!$lPRXUf{?#c;}S{LQiYpun1DpDsp8?l zfMcPfy(`l-iWd>&=9d@x<5RwwbCbEf3UfnN+@dKee`-FsU#5uMWs(`>3kf4Kfz%vn z?29c_>ybd)n7AFmlx={ZH03WR-BLK6`uy%Ol#STweyBVH7K7x4M?_MNM#^snKX64f zTZhenwr9vVx3|wnLdt!GCBN0gxhtRNGoDd094OA7a322xA=6~gT9lbul>a^6{)eYfd2g=CG}QnhBBJyQ zRVw1+w6iI^ecbm?e?H=cM9M{>mO6Q~N$JK|;l|iI#L}zZqKc#tMs8S-1}ILw)qUAw z?z;T$)R19^)k2P0+saZs=X6ln*637t$eLRk70bk@eaYU*4OE)W8LcAhO>wppTtdL| zw1#6)Q7`xMUo8T67OJ=0H!YPgz2-r9_oYHk@t>-WIt;UE0p6r_v8E31C@BI-Pyp|9 z{Jpn2@>HajRAcs>$x&^UB=N7r{Hzw;`i7A&g=>N|Lb4j8wV@A8j6-O&arsN8=;N(* zbGLVM(|2_+#dz+;hZn~C#guocTFVwVQSwab*tynuw+Mo_0=0g7#b4wW%IEk^+DozS zDugt$JDrQS_M#v+xSbj|k_7Kz7(e6GLy>SI@R;FesAqbnPoTeHJ2v5$+?}PUmT*Q& z5|v5wxTCbBJxz1-?Q{0(hitp1{Wiq4Dz|K?l*F-w@ub)^x>3jFANRq79N?iT^ zoZEloEH5cRK62T0`TnL19tKSn#ea7i9AEZyl%V3dme*(b9C0HAZ{O>xra2ul8szjA zMD3tnPDK>SUNn|BobwstfNPUx4JWt=&`Ul5_gxc#`N@Er_!o_B6Cts2#nvzgf|tO6jklEWLkS?d^P-rcIj~&F)N=;x^5W zw+IJ1-?qtNocXcuO@mNI*p&4tF{W_04&lsyYbT*dr{Yjsl#fc{AU<>Sf?jn^ftN@W zm=4Ov&ztNdcj8ms00E!i;#KOQaAEeiJtBG|I==~+v__@0*+`H&%L7@9_bjb}%fIDq z?kI8yG+Yd&ZK`wq4qrjB09j4d-jN^h!OK5PXP*BA&aE ziZbv#->v#sMA&23i*Y5iY-j!x}x@((9?0iamESx83cf*?KbEOuCa z-N}Zg8m0xgGK?3xa=2Fhseb@*duBb19(S$04JKF!y+Fbu*!(Xyb_Q7rly+9~gKw?n z$wxy+v95icIbKplG;ed7gbeKi(H1<$3KZ!ey8*kB=?iiWJ;05|`ds()~X3@%X&gf$oqis6H_nc!Q3-S1>;tHdc zN&o$HdFV_w|IR#`v+Ndb=2tEx<0EZQ$&SZMzT&~fVC+HCYB>I7KUG@ty3&D$C96M1 zt3T~6Z@HoP57G6UocwDa$CGGW?H{P5WB$1{KOTuN?)UH5wfcC-Ge0(2E@S@z8a`RN z8sKLk3ol^j&`;vx!$` zhThno*S+iuls>*uLG$)x91NpSesLn%iV?kTCFq=Q{mrM<+)cICxUP^<_A)94H-{!R zXJc&tc6haJdB_PZ_oHf8wGKsig-}j(-7Z`k;QC$?+grH=LCf9w&_oBTX@W0$rr4@9 zJH!^L>NgPov7Iun=k8A=U39SFDb4IkG;vF@z1e;AYtWlAzdu< zYkt4&={#CL3VQSI|3}$-$78+!f53-0R-qzgBr>z2>=~(~qU>Es_FmbPaikDg*=1+% zeTi(@dtJ7WJuX}>*ZsOW=X}5C{LXpY_xJv%hpxos<2_!l=j%BN=LE-P|HnE`=CKie zz{M+iPFk%7bVBdDwypD?;)+(T8I~efPh7w(x+9pYTVM;j}fqC0KeebLlO#lq?mt2AV zOuy2uy--@m=gFk!nt9zJqu9aJsw`p(&HnH!y(psZ^xsZF;b*+osO~y4xZ5qOC>%5D%`J@(tWsp|A&khvJ z|L4$zI$AP^9~_|Vs6kt4-!Z{rSOd)dMDYGwkibV&{!qF3ZAulMo2M}Wk|j(U()5|) zKRIO-RyeS#o#LzAe~Qy~Yv|g_9~dXhc4gm78pO$f+;iyD21?8|aGqaK{+2{acb@va z?pJ5ae^GGVG;FSpo2Kzi-+HaeFu5XwSV}T@6F)kWP;z|86-yWLd&3JxY|KjwkE7 zeF;nW6jh65ym|>@XQsQu^u6?450}C=CUs3{EOA$yo!TY(LZx7aIWx2g4V+E@`4gB? z&s4RE{e4C=Po-IY_0-qHA4S)>xgHqWM5gzpaq2z`@9bt*J4l(dIrTumX`L5Xzpi6= zTAP~--`YohN%)^fnKF@tVA(5%8sDj(Y@q1c>WE?Z`$_qG74#NbQWizeMi&C4|(i{QmKS8A-c* z(sM!q^Me5kMNKjMOm9TgdIkHb;6wp=?b0`xlTvhW{M2O;xW`Q;Vs(F(4Df;C43CL1Q9ZBrbwl%Pda)Ih;%5VCIgn!IzXWH&uA;T+{!ub=rc*>-rHHf}{8 za80@L^IEMZHH)v`dsVXKY-u8jKYv!_;F;-E-SwURC+Wbc0Nmg$t->j~yMWy~BY6P* zMy$xTpVmAJ<2beS&JP`aL(HLiJ`3Mc*%Lwm;yTCOvQ`}f#?qIRO#q#$T)wi@%$N%L z5X)6foIc}{Fd@gQgxGbmoWCFX>ReN=$jKWaLc-xqnW6XKVxl4(SVfy(iUxC1ZBG3r zG$|sPJfspr-o6Drn&=a=lJ63K4#ocM>HhV#qS0}52Xi4*t@dL9GFILB|nv0!0~#i z*P0Q6mZPdbE7W;naXRYsGA@m)E>2O+0q2R;rP6oJ_f-+GxT18=Tf zU1!s@?3IvO14x_M5`1sWr2GmPbRk2y`PSOGa%m?RX(=$S=s8bB?7YogYm|nrz4!Kt zln!dZb@|d~V9v7}E?7!0EJg_)pT81tfX&2)JU{k&8*+eke~z?Tz@#RJWsD_=9`aL= z|GJGGD!hflRE7xe;Z=FmuI^!u7Nrf2Cnyo@GyO>FQ*zYEj-HUl+NqL3ZN)YAPI^o< z+B^2TX`%Zv;`f3Q#^kSVNga!v>a;UaKiLh~a`D^R+*)VrR=gbYo~_lrRr_>I@$Y5b z7XIY=My=vf!Oj8uq(+N7_geFd52CJ~wdVnE4c)I)mb~3&eA^-epQ_h<5sG=(Xy%K_0FNhqYzKlgAN) zZ!t~<(tK94N9ARvF&JlCy2a*dkM{9|h*~{Yw*_?2ISavmu!`?H=a^*ptPktoQ91E(REtn6m@dbG6ou zHf+9GqSW-0%`eGw2me3HxcdaU{rjJlUDg2S94xkBR*drmKK%!NL;sonGQACvbHr`B zX?(98MbyB?EWF2$On}eIae5YpikDotx2;q8a(Pycx4VQ%34O&f_0#h-|dMgh7nxJ~kAsI{}WKUBGy}jk9M10bb0G@geq! z)+e->9)YvbE3!+6*qiiv-rbmTUJ<&W!Nby5Y2!4@Se+QG#x?6^q00D+?e@ra6n3m! zKcT5-<$`rHLK@}@qt9b4!=x59IeHse3~i@gjQO!*Jf@HJm1e&mPiZ;~H*$F(+qFif zc5Rp@J8IX47gtS}ybw)P7c-kf$u5-g1Np`D zM*Fp{d+FreqyZbhn>pLvt3$Jp_jisPY_9Kgpg~0U;H4MCv5xB-zeSA_gR>eV=&Lb{ zsn6ENULaY|nWC=m$$$O0mI|})>U3Ld6Ivv-SyR>1sIM1~C3U^oBmUjx6@QtQu7<3W zTGJBI<;dC0Qv&N~C+@6u54x&I-qLjp<2ps7y`j7KUi{6nUX?tMVi*qRqlnsRXQdu4 zd9Wazfg|?mN48co9=p^LAU)b?jW3$KRZg)Jy-z;7tP5S1rU-}xd2xN2Ar->)VS}BjwSLZ6cLm2nnB-X0l3w|4S-bAS{V9FVb zvSumRwon#J9_Nu={-2Xbf^G6=mp-$X?&u*Tc44UN>8e5Ad6%A&c~CZgwi? zIbP$d={mEHcBy4R^l1paMee4e^nkOt?q+>#D z$|T>8;dw0@ueET*WP4gIEy{5H{jj@Q~Roxg4@#UdFN@WISd z#}^u8sc9eE1>sSX%Q(k3&bc2?J1=@5X@vd&QGRdO|7d&;n5URc4CQu{fWBsVun#UF zEQI~^U;Ciwn8#C(wJg;lZX6Z4z>qTk)N-ETN*{I>-(qddj^kZ3xWTaF8IYsw=rGPS zsw~a-yxRF7Tg4f{!x>s`dyXW38a?O+;L|5@tt=y6nKc^a>&v3kVrJ2sxeU!AdTE-dz z?8WFv^Hw(%2p&{0QD2|zJ*SfrlGo;s`1z}UrcsB%lagjm;F|V`crm7eM6Ex?-U?Ph z?j0*FeL)LM^0kh81)_P4?qhV<(a(Y>69Z8-2D9~x2i4ZrY0GUtY;GK$zcZ8M4TZq1 z+QbTJD%3lH^vyV0CCNjH*xpxYA9tyTCs_kk0w~;&91mt|!_uWFTG0Yqx1{$AQF@ujRC`E(;mH4<`S(w=LswOv`k1SaqbSJl=-Ev7cIEvWNy?_opaoPq0$pq^Fua-XJZ9E`_H+Ig#3KB3KFpq=eamM_-53Px=PQjXHe z&3OPK$5fgaKKD^4s%ezXUJKu~4CssC?O1&2Q4pGlcAA}XFp>xF#MdmJ4Wk$U&uj?^RNMT6FvI%tesw551ubHiPKv>9=rT;-6~$ZKP6=D z=ZIs!vRvi*)!1d(e7j)*+(x2YcOUIrvc-Ei(SD>RkM(;z=&o-#ieskE<$9wcFmwax zD=~&gHMHsE+?}beJI^U?t5-czVe@wF zW}VG-kgG_f_OWqQ-9oST+$Q5w=Him+NV!We&Um(K#hy`LqN{81sBtyf8ePR@zajd5 za^b+O72|xdW@39UZ|D2^a5=^vX~2JS00J|SXZTZ^)*C;ZBwyTe>R7M1ZJpjmi>We| zz2mjlZ@5$|8Swpu&H%_s=2cMJjrMjPKfaVP4A(=OJiX{Bu%S}6j5NR|zHQb!nphp1 z^a}ihdg4BY)u=&+i|)UWS;9oGF%kA*wvX3%CBL1-??hqFdkHm6_gB-pAGIT6FJdO2 z8QMH9mX@1z4n$&Y8QJWY$7+vf0L@p#Ppz@sFuz8`SoRvtZM*CdQO@&Qv%3WA3x1X0 zF?jGYT?xIz1r=jb+Bjr~3Y^osztEGP{mUhy8d3LF_->RQo1c^lZrdv31w8lIPp&5s zW&O17cCuMHjA^GN;6y}kTI?07LWSGN;91&>);!8u>SX_pOZ>GZ{s~w-zE4OWw+pt- zY&1(~S&tA94BvZQ;yPJtGejr^`kZYW-uATC?@4Sl)K2_Fq}I7h;>w#tXaNeE@qI`I zkh84|3Gbm9J1mv!J`$$jt?Q}vaB~F8JXq=~-ZIEvMXNo$UOHo5&-IV*oTN-R?zIW- zo8NJUZy@aDCi1J&90zx|Py!`js|7EEymFFgzkF&0pxaNN4-z6FbAt%^9r#=p%vCrq z5WiAfj2q|eN5$-B#d)6y8;`>I8zjCV@BJX|ytZ|rO2&mda=AXUV8gk3^{Fdw)*`-l zBQW~t1Ly+1g9Iz{jk$+)D}Tu#6RXNE3L*UZC6S8;>4>#m_%7vz!lLaP7dg%N<&!oD z?J6eaGj1p7CNg?jabA<)8eAYY&>@YyU(#sHdwe?$1VbZ5Q& z{KZF=<<$*=)gdz;G&J}IBj4@s>v|_#{f)auOJ0JG=-pQv9==`z&(EkNtJKG-t=SbBqhM=%PcNUb|}VhPm*pMG0?+^<=s^m=W}P1|R7LeXuUU zcI~^3p?Pe**q|+k_5vKsG$)m@ygO2_5k)o9XXW0`9N)wB>>@|Ocs^~!`&Hw3x>D-j zdlCmaE-k;1wj#P4V1HP&h@`Vcu-Y$UXsjvdZ{b+Of?PHej=kNZ^m`Hu|QV_mkB!_M_a}6p1 zs1T%nrgxicBm^$VS|;0U@JnjWpHL_7T<&IKV2Gp6z433p2>)1{Ket9w8-cFO0>}#c zAr&J`7QwrReo}roN@HB<{T%fFVfYAgUAr5z5U1q7ts}jDhC6?d2VZi76y)m0~&>2J3y?pC6Tsv9mabi`>@ zlLIc^ecfN-wd8$*ynE7ZJqLVFS@EX)xMx0g;L@DH-86w9P;|HnV?jO$F~Wvn%+LL* zkF#}Pbx&1ztzm2mlG7Q1S+v#Tw!s4Gh{{$xCAvzT3%Pj^2m_WFLpLhgz)yaz%@@dlH1|gM%^wIOkm*gh{lM(#f zUlG)L{o=n0gHr@M$@AZQ5HTu5LggFP>E!IpaV3>Vg-8vUxzkmMc%0%4* z&~imD9KVAyns2=d4O8t%>$5{Wr6$yA%1q+ zdBdx=(oHJsh!@Bv6|7gw$#%2J>VvI1RYtc!Byut!@KeaZ{`3O?Nc`u`xWOD5?^|M`|8qaFYYH#af1-GKhzP=;{(a5=4a9~|@yVjGu?ag-1gUuQ&)jF<3Wo&+)I6iHwefz`l^_{z z8)P$3!uLK8Due;yH>~~9-a#0V$L6{jQr~9=FCtx6cyJ)6%evn9h+mG^UQr@kTPokP znkISA{luz&R$;&YAu~x_9y)~c0FAY-)yk{hx_hSD?t5|o+YN0=*PWKw-4-V~z4rqi z_7qb4NpN3Dd7QnH_yasw#30M97{(Xp+{-mfCG8zOd9{U~)cekVLL=!v&PxeX>^2bk zk+a%i&7T*DA)Wa9fNnCkoYj-de0GDMkcQTA^C3}P;}S5Kqp6}2)`QF&x{FQwY`$4E zQ(E+C!9AuUb-3NZ@6U|x&aWiAtbBHt_xZO+BEeb$ViN5`KLYYTQr>xY?v0a;`pK>> zrMp5ggxl{7<>43jfl&9(Bw~qvXQi7mq;?(Y##_g5qUcDx3$dhYA@1-0?17%iB+iPJ z>XkRv01RV2T$B|~a&PuCog$wIL}T_ep;ry_@C-QZhD92lH?EF*~xQ4btloAEZ9AK?~Q)rSI4)}W2(9kSo$kVU!G_mTQo~aC9=~tN3v)P?dz-_zsuE2bw);1I_GUJ^qZV; z*ZqbZu{B`x^g@ffcgBe-jE%Fe+RtEOg3$uDv?ybokNKySFZDQyxmI#R$qrzR$3b#5 zvs3xXj8!||EpO1*FwXuW26v>UJs#r;EjP=hKz6FmQ(D^x{1D#BK@QO46|596&|Jjz z1OMoniQg+Gu|2rTt! zq4OTZ_r9y0V#aRdAO54z|I0f2^XtP@=oGOC_YxFpeNdt&zJc;QOLwZ5rW~I7APyV@ zS)NXoHL}(W*1)OaQ2B){?;v(a8^1-ax4nqF7w$=k^Jo_R&fr*!z` zOwhdif(vnfl8o9=)y9zT31AmM9iWet8+P|!e-k#vO=RL%nKS)D_0akF=k$&PQ3p>U zER+&^E69f_L5yG+u?U00RGi$ARETv^S)R}A#(Gd;;V zZmPob_<3qK6VHP`(93h@au#)&IpdJ?oW==lJA+Qe9v0o`nU-pnk8W zNr@WzOhu&S6{FI=Xpy&(Ht*C2aSZSWgQoF94{cpVD|1RVIek9XLQoi4#q9mD` zp6IEKGo!S7Sj9(v5s2dgR%H`T%Ty0MZJ)6GO3=nN74%e3a}LZC@^A_qoDnjZ(kj)D zI8C}3uL8Su6zC_#n@x04&XK=!8UA)LkluL=UgMPuAIx!FN%rZn^mwNa4z0t2N7v_Ew;DD$NOWqM8WtMz_zDkBKFy~)a??)Ei%}vzh=0I6PCc+EmIk-WZ z{=NPuH+Z?1W$n!KYMiXDC#YWnIhp-Jhr;XF$~%tS+N;M#L}L5HzCkKDf7ABnS`V~Y zPRU@_f_k9{94-+urOSH0-=1;Q$NN7Q72)zX_H&(>M$06(Y$`Pr0nV?+Gi&{GLmH7B z0jVCc?(0dPFdbuHl2<&p1Y7yeOWCK7f9twnJMBUfZ;UA7eh7pnG``e&ll&4x?)=r? z&TGz?E@0JAoL_7GUQ~gX`-rvjyAIpAmSW8VXCx=VFiq24ILG$T-z}5n*5Urk$wzKF z2{mYZF!MpI&*>lTLS2%dWTY%{?TbH@OZ9`e$zQ$QT&pDcwQ^cEt+w z9Ux|rku`FpPH-4)I7-4d-U1-sGtqG__uQVnbX8Fz>NqTyK~1 z1|x;K%_#y1CiHv|5tsPN-p;9)=U%!_PovQsOkhlX(Ck0(FTMtU?v1~e zBX+my2z3~2cHlR(!U*QVQjj8(qPz)#FDyh1E)F;i>Bu=7TVE`UB3t)?OWH2~$ZdBy z6>Q(xFX$0O{Bt5qs#Dik{8Km#x#Ny2gFm&dDi1{EsqSZwqmLn_4z!ri>)Q7=qtc}@ z3a^MLa>qMf4A7F4pC4D`t4RUR?cXbskGr_ub6t^}a`~7KX@#tn^rIWP6H7xAzZsDOQT~-C!BO(GdY=!L9LjdpFlj9B4f0y$E}&9d?Zq%F8!2hknhfH=BjOMX_QNyZv2trwz}fT>q_OFa zJi*NHI7+lKq-%_uh!GbxGztqlJku-ujBD}2+VoXF&tv-~py;`iGowVCtotm*JgTDk+z$AYW_3d0dE+kL&0x;qZInY=YG7P-sc zFCymNgNI`sTmmbUoi4At(}%3QduV{~SNn>@P zs?7zfLH$+mZLfrC1aQ_^)t=ty975eAOSsAHY^rYuv<{IiG4iT1ka<@UbF808q#-Ee z+Sna3;N$beKwO3YikHDpA}H2e-1o}#MdwjdcCb)kt0H@D1&%g%eFg@q_V;xBu0~Ne z6is>=XcyjO8fU7xg`C!^eU4NyXfTl0ZU5a&MA_DdQzeb%34;9O<~l2pKeukVGM#1d z!$QQF23ZLsuhf~^YJ4Bvb2c0W4R`53(%@RphjtI5gZi6~NdwM`*ZJ0k6(Yaw4k`vk zCb~Qy@#-qO9mKEPzIazGf7*{m|4t{kOnPCtuvnY?xUTRHdXn#*WlGmqd8qIb8-66E z2!pfOg^A|H$1TvQ`CiIM3{Y-3#>t|#uo2!>uMsO={)v&i43-A3sXm@tC)h;PaZoeP zOna%XWhEkYlUVi9rMTndPr+deo%7KOtRyZM@a5TmHez=FXvDJD2pa6Z`Lct(Mfq>? zt_Ma-5gJtFX&m$>;R_uP%R}WypOTrj^H7tLq^dmlI)CE-DwqDT0{^HWLs#&@S3dAo zFnuOY6^=8eFCDY`e1cp=2K@aV0YAvD=Abz5Hv;$Rs)k8iG!KNYGR5VU_ytQHnlRXY zJ&n7EgYLXk`@e#jqz!^d-xOb5@&d%Wy!w@#J_Ak`eMpVut)~9wBWUM+0B)zuD6-)5 z{Ia-sDe~g1s~_@Vc+K*4v6VfsAB@}MsSYdvF@N;+Tcf0;7(^RNzQh;MEkLBq9m$zl#>AO z^k-{ba}h5AXB&2mdpx*sk-rhtZTG_Jj2cn^z36(2`zd1$Bfdlt+m8ukO9r+EO^Aou zesA-;9M{35P{8T}sWe3R6t<1ly@5QQG6MRS%lY!_RbMetqRHofq{Ui&ILh4?deR(v z{tkzkRgHCV+A={stI!kaTeRXrIRUzkicdRXe#(J!o;Z$YQU1K;RDI^pyObkJW&v($ zS3F!|(#<+{q`&=a!xt(}dTBDE?i9$97rUPdC8mJC;g#tW3Qpaz`hV?`{%t|ZbdqtC zvDY1m>z?v36e;Lv)bqegeicYAxua}Z*vck~^rZc*ZrG*~2{bDP(!L`>PIoczWQzxb z=hnu}?|&I5{n7h-lDMC};)n~(Rw$UnElg`gY6$PZ()0wKdS4KXJE)`gfCxld1|AI->`{= zuoz;^V{BG8yuy>JCgkLIJWvxFi2X*serWf{O|SCYxD-Mto1kZBS=&%_EBIdCfPp!W zpP{&^jCufhm|W4!_Z2u*r9(8L({N-`QRb^aC3_~_h;Wp65HBXk$+Ak>11UI*3Xgwl zkT-v)9({TJ{5P3PC;}-UTd-u$K@Qbjd~SNpnT^-+PNND{KMEDkX!fSvj~zFEAz1Rg zo-DPS8l>l0rao%b(fKaQs5O{Ts&2l_a@mu*-OEI_R)mJW@B(Q^NJPVBhRSPTMfhw^ zx7Ey3MUx)1?a@M(+Gprj>R7RByL;wEp>1GM>&E`c3p)r+P`e_}n-LfBy>^4U)06?r zLtXKXA4Kh+pYi;T+6JZmAV{Fz0sPi7VpX*o2Aw^F_`-u%rX*krQSKdb@CF(%m*I~m z8X0OAz2zD6b^*OIq=lwz)-n~3Sk=!vq+!3j9lWRm81<jmcz?Jh$-w%zCAsPv ztMjK903}BhXsPF)&L|Lb&@1*p+xG?}W(k~TN4#>bKBttyw&Y$k__w&b_LO}SQg z|NTF!MmvM4pSQ;>ggfN`I;5!sV(>NLN^fnPd&g3!9Qng2UcE4>NJz^~_a4l}H9aFZ zS}c5P;e&Cpqz=qO^63%75J_1|Vued;>0NQBTWafmj1+~>Wb@{(GLLO9c0nPr8sRQo zxzC&YVnoF#`;+A_wP?#y1w4NuRDb^9R?2mgL?5AzS#nR4h1J~(ZY^8V7+QP^YxkdlsTCM zFL|IGx!MH0+b~;6XZ35Blx6TIS&^2)OKn_aCaIdREHVUexRH_~0HUieSpS64|0ol` zhQC$?x1ALBggec`lXp%Z?x~4{ezbWSO%)tyFKhMAQ%Lh)-0J?;D^EdtkH-rp0YbpdTIHmcz$IX#MPo17x9Qj$Gxx^T*TS+=N;#FPx(Ef zCtmIjg#^$?-+1_#UnyLkqz1m8b88+3gPK7eDBHZjknTk|Of83={^(%)*BbT#nNmo7g@b;tHl0ebgnf{RXss?D5bgD?D6#sb{Kw(&rI=EgN<= zL=gl<^i#j&fNm;rIPE^|hxw^&ky2{|Gd66MVogw?-V1;OC^Is^8a60Q#v7ctcn;q7 zg30nhd3lgbnZZbujXX{LHZ){Dq{QxLvo>6jtzW*9n>!-| z&da2H8jUrN?()%IYp3UbdUNZ7L-ZVoaWcW`+#GzSzF~#^!GqK%o1_CUkbYWsRWEp! z;mGb2zn<*AU>x_3K!nouK!Nte0LlZF)YyolO;<~)s8 zO~70e1Xlqym+zwyUYvP2mGpm6iZ=GEreU%-E@fKkaME{?(xC1%Gx7mqOPfXANz-?X zKAWZ{bw9!H-)g3Rc`dXZzjk9ERLK;LE3UXBaWKVZ>rGH?soB7lsMz~sl$wS<{GH(1C# z8!)-9mqu(k_q8#V8;6Rk@e+ghceN;zMDQYBQ7pL??fUmpBljU zK<)$tn^1WQ-{CDiCm^~T;svfichRfqlyi?vuKeT^g^GhM6}Bd~e1;VAsCYS#*O4qz z6kpMtAY?fAM7v^Jz2^+U>j!m<9~l@)MI<5Y1e7vebINaU5k;1=hs&aiap60{)UhsYU0mO2hT3fjY*~B5SQWE!cq$5$7`@)pUe8DvugzZ+)*d0%KGrN0Qa?GrMK zk^yyBFftUxIs1b?RADm#ybP%K?iM-y(R2P@oWsJM^QnUztUM)YjB1F))^8sw4!PwX z5SL>&e26ZFqR(KFShSaDPud5wueia$V}6=>$KhcjM)%O2qDn*{PLZZkC$E3|&G}>; ze$Z?H6S(*Hq(8d4+In6heVk+56?rQpGPml%^!dB4IUap!OFQpXs7QObd|MPW^fM{@ znIRwOejLYyeTXc_%i?xkQu$@FUtX%=e&j6~@ZfZ*-04*Wn-)6uax3<0W1=`5 zokZp`XHUx{MH7IR;47A!=1=!G_q*jNSf{^|ciFV`K;cjN`lIF8^~a@2>Q^Y#oA9{D zEX(45-g1a>Ob1|sMf7j#aL?iW?Yd^!hgNvgux zIH~R^tkdw2bN!1I@INjW+&QG2kB!TQgER5qpe6l)xQi z0@^W`67uWk{<;)lq58<4vH8-6gBFH#?N8xtVBHKMn_3*~!WrO7Q( zrpBi@5erkEVSS?=#IYhjr!ZR7dE)`^yeRDHlQrPKeYs(+C;PGmig#WV64D_p1rN0_ z5T+3(8;*lGnyz)6UDQB)p>24 z#l5qc6+GayCZpyDwgrs?r1;%j$;c*G=DN`|OPrNM_)Va(#PpjBME`5oK__o=5Yhk_=2 z`w|48b4r2_*Uzm7O))N%)>yqV&1=XLW+_kToC5aX)QE@KpXltP9{+3$MDoY&>4TB8 zEsgfBX3OK*ZCPt)9%*7hF6Ns*s1fdYj)4{YBofTE@OAxz6%ToacxvA$ccr`ehe2d z^^~NC4NWQk><9jHhW+bCfPd9G6D?>S33IQ-6lGts%~ETm zl%l;p#sW&qkH9;-#>rf9Xl%TGfwxdVQ1x)TaKay0Ge*`6Y7*=;uF;?f(Y-TDQ?sxf z`mNN+UY~jshmG&{D)KD>IcG5G#;f9ItzoaL;}-ujLHYA=m5C(at(ZHryE>*p9{g1K zOjrqQFPv?fg6%X8;=?5#pSi^7agI+v8~%ll#KM+|k48zFGeu{(@QQyBU#%v%Vhn+) z*XO5uqLN*ZIDM5f&IJf^%P{J_|5|d;;gxY`94AeJJHXP{ttYF^%*ipiBcJqRQW?F3 zRR!&_`PPfQS0z;moV~K7ovD`;<0ainJx@kx0@B#}l24*)+MjOO+6x_vqg!BLdq>HA ztzJ7x+@Io&xCQosAsU=r(k9mUc*6hpsEdFFv0OTi z3>_T>cceMpya-8YgNx2d>Mb{n!JduCOT2r^AUR_g7w@bGZH3*GpxglQGtc#Bh9uPS z23kmj(XOakF|s(@>HV&z(4gqh!t}2DdJQV<@ns^vXKtE(Nd6HkCHY0jpSlb=h%8H= z9W_6f>5%_=W#`Ekd_SAdKk`yTOhu23;r|Rm3m#SOieyXdT==|H#uoE(Q;pUNa?8A=eaUt-qHvm zCS~m;H)qqM{oW9}pE9LOu~0o2sf4@yg=wIif-faw|D&K+3VjDGv3FY8AC)_?QW0Ny zM5+F}Rn-4Ek^kkdNf`w0n+1HgoZcxKywHq)6?6#&fQ1-M4EN^;8OzQ9w|#~yE4j|V zQ*GbgC)&`XUWJ^3m;MKS{m6M;ktZ+*&Qiu3wBQ!*`~;1?0>2qeU*(U&_L+uzf6i&f_7SPMh$^|Xr(Pa=1omzZ z(7t3JkS}IW0U1Px_PU8OF&C++{7GWfSKixWO>f>=A@rV9r3(t|f21Xxe?+OehQHCm6A($cmu|E$%naDyYB0o#*n31Z%YLnkuL51lOm zIS6}+q4w`ApuwH?65l!&To~rH^wlKOvj#sEE@sWui%O=B>8mV0H(HTI8b#?{w;C6* zEbh65W2szs`Y~+rt@75wEOPAH^Zu5PL1xM1VRTm?dux|jT^@wHsdqQl;({m~R-bXPBKD|fCV#W=d#`wD=PhWOsChNt>AT2R z9-3v!2ieuUhxyCDG+h7oS||#iH(@1c4+n86U*%Kn`0SI+>?c?>Az^U+gSq_e_M+el z_k!{uT}D8|w8-jkq3Yo;zY4nC$PALzg-XA2<~7$G^T0m^56T|+KdWUy^E88_8EldB zMVm)dri`A{)P$#Ro~Be5z<=q@{QRaoRb#d>x$$5hES+_U#vd0tU%2{TyL~d+UcDn) z`61p7%F7(TWq9N7X<$b`7dS_c#Kgx>tj2gOqgIx#P7J6iIcvPAI>dxzKqa_;4=(CN z=R=-=d{PE6hkQs_J)Ga1ZAKq}s{DSvIsjKCFxl#~?h7F>r@|R}O7rc7_&U_uU-W5y zb3x@t#@P!@*B4#U}iWC z={dXHn6WG!X=1sknRSDiWy@JULlPe$!a5!AJUIfs%S+Aj%g0Rpygv8lA0!)RD~u%M z9NkAISjR+j8pM=Re;9fs%4?wSw~$`B8ZFzU65Gs4amG#bd(x}wtNqaEm~A`k(v~gf zr`->V^#!PSSn6QztQ%BA+0N^ejc?^rgKS49;_ZZIlMLMOZj zv$#<>O)a2)ErZ>SRDaJNh9wkDuLdi&YK}+1kE?lwOpVmOa56w!XC;Gr13nQ3Kmv275A(;OBE&TT}bDY5wjU9F0{>C%0Wc2Q1S(XKB;jF~w z*RxLWWW@PjE3N|8BOIu%5PEleXSGng)pPT3B@eExiRXprI~#X}vZarvDKc4%i~Qyc z4QYieqH_w{u4I-MUwvHn3nFI;TYbLm`Q;~{b4o|E!lJ8t2diD|p>c1new#IX&**a4 z)dL`_%ysE;zB4Li4%qdwHMGX7p3`x-dkrPk{(}*lp}96Wp-Yz>dd>Fa&t1au zt_~`M*q&gi&5{}i;GtUcL(>P} zQbcg;fOWUjNRx@GV6I&A085^j{xlfg>^f165cMO&^=?XNfG^%_hH-1Pq1%`bw=cSU z?eBUg;@7*g(LmuA+YVD}B|cgWHL0xS#f7tFzJz9m*>{CX4^lY2`-YiQ?|WPhbT+Yg z-!#{9T--!!J`BmNx<;e+Z@-Z)Dl8u%vBzb&4s5cb_OL1SJgu;h@U3hr6@4+&$Wt1n zc!Bqt+B;L`ldhoUYaL}v3-w)c9*l%h#9EZ5TNpiO+GC3_#_^__3IYyN3PL>!NA6#n z=X(8-wM}!NheC2Ew5&bzWbHtvsx$zQX@~C6)qB1HeL$PzJ+qGdhBd?##LCu_qYuozKx^CP0 zc=pakon-ii5l-YU-EdU$9LODyI98mw3ki((jK-mgTtx3;o~5wMT=F5<$q>EvW=S%f z?t!c~ZlC*%UYa^dO7Q#f`||~D7Mn)uhy7VU76oj|q{BLE{0z@9eqhMQ^Yn*63MM zd*|am-s{((U-vf8`j#IF=_xMW z8L=i4uLvpikhp74tTxa0BfQHUcGBDWig=Yk6F46B0zAO$;hnwyT%Ror4B>}SNU>C# z&%Bbm)-auMJLIC2RAcJy;mJuKO8gbdyb5HUz zjYZf;Gqk3CG8(ycT?x4s_xhHGzDsIZ1Ih^N1QqVjN2e68GYF76qPU?ZN!i`~}_VTuzL zEs@AJGUt$E#0cGyF{D-m+=kKe2C9wDx_TPbx_igkO5QO9l1;eue_o$U>ZD;hOv=P7#=cLGTzHu51pNq;VG1dV;=p@;fS zR&A&}OTc_>yaMMsOJ|9|?7g!OqsLu&lUBLKdNyAOGq)G3@}XBhbQAjF1wLj6j`Lby zNa#`~8NXjRd85>Dv0C^L@LNop#okK3SMNew)Y*H#!427w!uocHCA4m)@gbDo4;`8r z9zx*l!#Vu|`Omr9n>E#LJLA{R%UAt4BX1l}U4eS?5Zof;!N2{TPtXnsU^34YXgCQto##^)OaWdImiD!*p$9acZvrj^Kkty-n zGRw2z?4`{yyWMXkeXw+9W&sYBJK{HhImaA9;K%R>VwsN;55Q_S5F~y-nk9AN%=L`> zt%=`cT%q>Hs(nd#g9up(-ax>R&|5d#da}v2B*(W1o8Zzy$r@#x~s2OQtFd-mzsWzUKB@FQ}M z17u6x=Wyq#^Zn*5Ux|Q~oE`N>p~UN)I6nX~tjW3zIFercvh;fOl<>5Oi*{Dz5lygbx!1eG{3%*Hh zFdmZ^{LV15JV`zG|Do)?p>xAj-HlwJ9 zca%Aus_}1mU%OaoWgF~mFEd0^Te)!@H|H@vf zgUu>tJ@(-f*(h(wifk52 zQ;^V-IrgtU|9{@t+a&Vft~!JdEeaiSHD|Vo<fG~gVE1KT;vs-3h%qka*9LY8mw z425V|y}f{Q(=a@B6_tX>NK4$@fa^I}fgGyAbPTb1-NeE`N#5Zy&}FYJIr|HwdVR?l z^gjLyr45O8j5L+?lC(Nq4%F8#7j@YPx4YZ6_m9flQF}-mO@%UJYKCbBjO;c?XY6Ky(^ijYv-#_GJu8JzkLY;i-ar zBT8|3%^R{!SvR!{_ znYjk-I_>BsB2D>vu$UDw?XeVVk;{*prE}eL1KZF`Fxtv8bcK-(xOSqn1D8VJBIaOR znF#o(VDMR@F?`Fl{)x{-m`GG~^xALeHkpMpFLcecI)q$2r*ZB}i~TyC}B@d&E9#M+%!P)OMw$`s|uYFOCSd?u@j}qd`ziG%eur8ajCClYeV~r;)$|{JP z`?29_IB>3Z-u{5RoAlm&d${O)6>i7OXa`LXjxX<%u!c}p@Zcd4E4X`T3qWyjv2F>aYp!nV* z*zx#g-hEbtZv7oH;NW-^Y#DwIATv+-a8d>^_^b(e03PdOEjOfjjj_t^F2E(s*LRyUjn4QD0m3gZ2V+gVTh@ z6&7;q@&f>iUAD|V>5vd?JQLl;B`B@$ekm}=FW_peu-mSkt(SoVKvLYlmtVcNet>JNWK{#u9cIVjy{|zIB!zn7c zp{3ZMGeTCzxUGlpo9SkPdv~{&E!li=$J~X$9J0UE?)eeJO<+rUqGoKmHm;&_5VP81 zqTMGx*8eW*KK5;!YNXxrurPIrZTNDO|HCf(z%>h?0}EiGa;)u-`H7yrBR=3F8^ST^ zA;<%UXm6TsVRvz-KX1RCWH$y9$ue~=^Xd>38pXi~h`&t}vsjYYYz7LZ)(shYj|w~y zL$uk8XkGU*{D5VgOKw|z0FUEg+&)CEoVjGaw12y1O1d4v3wR$Bw159-xhy2z#q4{z zQa78M?k|`QM4-DXo9H{-&Hoj^!jXL`McbbjfGTSu>l76v|YeaxMFf%)V+cs zE@@pI22zt|zB^3sgodAT-O=lju7X@a3xAH{4=f6?-d#UnE5#$Ig_+eF>y;v7?p6{; znND`1#`3|t1gqq0A$d9Iky6QuRa@!;98!)p5KyQ~NPJuM24bm=GRhXea0=gOR91-X#UWeE(I`Zrq!vTM1ek4%f$20l47+gYHDLDkJZ5A8ME zB@ROEr_ma_h0i0H0tLP@FbjS93RBc_9qA;yo`Z>k4KYJAef&*^y`muY%c5BqfkCF{ zvWpBxg}l*X8U1*DsL~8@%O}{pu3nuk^9Z%p;=#^A7fxG(XVY_zJn6nO{iM@UOs#tE zWfJo9K_0vpuZu0~nqoqv$o>Kam?huFs60^JQ(RtZ;eI@S^RAfsl}=N1GiDP64pEdL zZ6%hMoGRh6(R(Mm*th}GS*fsZX6Lh$cN!Qx78=BO~7|z zl7Nx{{}2tofF^Ycy0^aT8CrM!wkTnG9V>_*q9cv6|V ziZ^(3W(D^OGBXc2pJW6$e+=HR07b~bbrQWMY{oX}mzU?qsk*NBD%;ytEuJSSKtxM= zjGKsU1A6-oAb_n0z|AJn?U#`K`@2w*or`%gm2N<-tkSh7TDkQhF^)qpye;%1*uUYP^c`f7XP_}2%S@h3G|)emZ& zkvWAlb8Fbea#>TZqRR(A&TzYrS8=uUWTW#v(hE1A;yP03x+wo`MEmED8A1feG_7XX zb(NR7t{|eeV+0g4)w>0%T#u4~{dLa)E-*ibPdhx|4u7if_Fxxe`+SfKv0ok@63UaO zxuRWamDKdb(DIp7mJj1mE(~`c-?eQ}77+=7_IwfipCzEuOF|XKb?`hN;@eJb^EFt~ zY+cKLXyk7Mn~fcSYUu|m$Arxi5!DPp3%$Se1$zJmp53~1X-KEf$?wHM$>n$3a8VV5 z;E8$QDc>+B(JT;|y!dE74$Tjr5qF(7Y>cm*=tM@Zfq@#owIY4r{dt$%4MeESf{xUd zQ}9z#CmfvGBqg>iZ(GRo$RTeHwTdMC=rD|5*c!Ozolhz{2rztW)j|J4oMkKK2QN4^ z+A6ni%=ao_Yg)B<(FiGbz0S8Gg{JM8BoDW&AdkU+x`)ob&VE6P8oX-_24C$wNgm(K_M(tPu1 zl5ay4<$U>~)Ge6}joG}VO}~Z^3(RDS=6<170=cCom!00}VnIjn+v}FEa)<33!W~>v zqbsR=g$0o*&K;1Mu&eh=y2{3g!U{$Qkh1@X(9kRMwz{j_DI++S_*oVm|5znWp1UVV z_KZ(I*SNhzm7yE=c~wJ~ldBCa@e+#)mpR)eR_jXoHf_@E9`{EkaFWQ#{#My^5V$RW0Ad<%6fF5r;Q{qM%B3txR8Y2S;OZkGeL;}AePVOx-6ExAnG4Pj<9m3qfxcoE6yH`TViI-M zBmVKg7Kt4Z&(V4=7ykFn#Tb9&1$&p@2h#ros{OaI;{WmE+grpxYi!-VxdVQU;+F*F zZay$k-#v^EKuwd@dDZtA5?}>N{~<(O!jvhsI8dw^=}*Co%VkNC5ENX zJC1Qtx^;2~*RZVV&ERL)6!HyL92*#bPo3j<5Cczj5l?*`1Sni;pD|ks3IDu6?)fTpv^edc9H+%PFvp=1R zC4ff!=085{%AJ_;`J+qWl_7vexzY{xxa(zPMjtV)ImZhN-xF(L22_=s0~PjEAEaWY z$PJv*4H=Ryehp169yo?=RbCr)j`SA@{|x4*CZ4@J&2)#Sma7k|XsSZ4yIByDG_;&6 z0;xscoee*K73?z&&47N(&Dfq#9lo-gGeKzhNN#4*zm1jRi=;6wPD^wx?PT4tvx z9;|9<+~+T=LY6e>jmkm6sG~br@Au%KM-P;zb)8l*{{M0$SaoYS{gixo^Ya zy-H^-KJ7XH7d5Tf`>}zoe_Z^Hyt$J5#6Gc;_M1H#C2BaYpYY5t$DH6a-IF6!ApMr@ z;wC{CGd;W0n4TDSH9>yhHAX%4ytyRpl&X7_uET0_v-5OMBJrxP+v}JuawE!VO4fVT zE8zU0F>nmE5~swy1R3>?kPakmns%^Odp`0e%+ zErsr^nx6j9?+7en4o!+iIoGVXJd%n&!cTw8$*MC<+iI5=R~GH1MJtq(-$3~|B8OKu zylB+Bx6?Cx1ph_Z-N-1#gS9$)n(A;HY=j%xinms!Tnj52aN6X54c(U&RbD(QJQ2)iFs)`cfjVe)VBA3J?>&5#Ecngs9>pMe^-S9ieHIb zA?6;1^nc9H|E(90i+(Pm-skIV^N0~Gxk({%_}kW_|9W3DxbntIOmfMVV2sn`%6doE zrsz0)0$GtUVArLfKzbd#y3v&Hl=UV{w;9^^MnSGXwktpd+7~&`9{07tK1Xvvc=$q`?>n=+{WKir`E5 z04nUglu1U}F=$nIF#f$o%@OHYrEDS?zeuYn9L^P(29bkLyCDYYFGvL&Pn8S-Uv6)& z)&8$f@}K?1^UsIGjnj-XqfvU!Cih|{4Qx9}3h^8_ETZBc!}zB zYSwF>g+wz>qLG5I#spA}?Cr>oFWAUj@E(}D?f|05VxYgdsN>H!Ka8V$+j~dpH)WX# zD10rX5=#X%?BuS(R@?WWZD@I1g1ccTm)v=NA?IOkEpyLO)<;9$V` zYWNREt)=FFFx_uVOW@Ocrh6-*~+Hd5FjGGG}-)oqmUte$ITk7{9f%ymovBM*|z zvYfK%SUq0(0p@~KMr-j1`&FfgeZeYyH_q(A;FY8~B8;Z`FmbBnX!&w$f_p!X$)m7x zn|~hP1`PyQfN4nh5@p#2Y zS}At|)~ZA=c5J}{lqRwQhV45qbCcdWAs)Ap z#Oh|gv&ia8k3o>%J-VFO&&d5UvHQ7|IDy0*QARw6(4DINmpTT#Hv$mQR8eS=H_>5} zs+-|nwYY@Fd~SIz!$jEfX6Br`l8e@5VTL)HDIQLikMzNwP7=Jf>N=IuVwj+(`t-=dBb;X&}?le-*yB=SXxM?w>6(QSnDJni6+2 zd0xwXm8_mK$9)t>`>&TFIwy0WN@VRxI>zq%S-4*+lQ`Ww zOJOe?{q$~wT3L3IZcep-nvPZqd;XeD`*G!gp@!`cTLCHzH+!ObD&Ea}?$EL?R~Pa` z4tPGbo_Ve^*dAiV3%Nf(!P(@GTQ~H`1?%qZnwMwR=fP_BYLICEI}T%;bt~w6UC;=O zjaO!Vr#(<#I<|rsJnzyS0@xtkPV&6^Qagp%2BdjO(+fGg!Tq{#htP?KI~^X$&~WUz z3ixJ(P?4=$3-}%n*?ZM(i6l^LKtpsB$sxb8?OE25xOcs<`8P*MF#AQj06RVOlXHlF z`E@ZMI6o0V{01~!J50D^lpQ*K-I$!$II5nEtXqpvv(;?uNmH-rS}L^5O3dB5AF9#a z)=nWcN%vl=J?TZY$7@rQ>s5YQJO=Vw z&SB6Y!w!)qE&_?R=jMXKIA&ljeFc|oUL)q%8(a!k^<4!E`SxegC5NmEF=>8O=$G%L z+IJpw1F)L``vQm0rP(RQ@?PEa;HFuE9V(X9)>pRc-V~$8Z35%>?H$^`GtHc>#4cvz zj|5!csn>TIVrtLFl|%`CfxZzJ)`8pl`sqXY6PMnCDUQA^<)U&neGnxT6gBHz)y~Xa zJaN&S9MdoxVmr-%;jT1>oXo8)do(LKA|b!3+HRdwQtf*~lHb}wrO`e>ZOO3Ezh&AL zQdXqe^Q#qus0jUWN*eEszF>BP>=>r0a5dw`wXY~LZz%9vOkKMah?zcr=;~upAPu@_ zp3c1&PK}1ufy>(ZEm(8*PM0?dH-~s_Bxp7xPPfOQJrzX*lJ}PUlS7zNjQ19qw%zNW z$rish+3aE3e#-V5D}s4_CnzwvDU4~Gl&Rwtp2L#h*RjTn)It*QwX6{0eko6S3o)T( zXmw%xSSB~M?AM7}>PX|htN>mRp^dO~3y>A@^rZEa5*8UmBqDJ?e&*(&NB$1vRB7#& zj+-rgN>#zQgBR*M=*?*m9Zv|A;N}3Y`!txGHdnKP#&9)zi~ah00-j;a?J;IA>S0k< zXKkY5gm!nYgI9M5mH+1A2q<{E5+x^u1s#{@Fci7Q5o+q0-K4!3AkTTXQnR>eX&pmN zbbQA-0Wxk7fc@@ndUbcVLSW%cVW(!0PTveNel*Pf0v|lu8D{d|=P&1&Au>27^s7j2 z1~t5Mc!TQ%r`>zGVs2rz{I;74*xzk(IqseR%mNs>=qc%11;N>@E+X&Jg++$5vhweb z{d(7G&(*||!L5uH5bOz3klQ_}AdM-qBq9q;P6^@+ml~qG`E;-}!)1HvJDg2=jP;98 z7?VpzO@`Ht>DWfK-Wl!U$&f)@ar%ahG=EA~y^Xq|WwW~Ul$=r8+Rd;w*)4l~tJ+I- z!<#)jo$Jgls%aL@+2dUTY7vEOC6BkQy`GeX>V7*coBIx?wX;yBBhRDXoP&M$*KE8P zzXM1*YvF_aVdv+NHtd#Rk-{HYANCpvQ_ySDOHdSINgxeKJTqZ1F%VYperw{Kw)xol zK9pZH^ZlY&((NoxKwurPNvof*75t`yrPh<)O;?8IWluq~IzofYwc1y!ZFx?*c)Q2X zQTG%|zC67;;^Tc7CIE3@&XZElQ$Ro|f|!fhdOT$1xlFvo1dndxgD$EBS4G$(aC0@) zx0$fq`HN*q(%z<&nsR$WHAnxwLPrwoIK<$0X5v(g@=~eDISA)MK6@M(IMiQw!ei8H za7BRcZ$#_A)o7%MQ%a12mWU5cY1n=>2$BaBrg8c#D8p)W4JN$^s8(&rN@&GQ{oW5c zcdTZ>)zV1-yfqhkF|aIpnWX#q7W~SfrxE9+TM$nQ-DZxn(hocMGHj5DTLXk zO&;1}S$==A<^5P&HG6T8C}x_DJ;pZ66l=v!E$vzzJK2GGc|ElOlba7p+D;r3+LknD z{CnJ%HTFX*CR7ga>sx+d?cWOwTjXXk+o)%hdU0VUUBbu^8Ef0F6_?KRr@#oPL`KFE z$~f}^Kg`ViX*%*aTXWsI;hw{6mf}!zqd2e)1u%#X<3>v{M5B0z?6AcGU(6S)mWE?S8uP zdZ>q;roq+nm8&KI>Cg^fh};fn1+25*@Ea}W8L1Tyz-8Y+w%sz@$Lr?ickIzcRem9& zx~lhK3R=ap4+a7k)l+V#N*iic{O)+H-_hW%o8sL)ItrOPeFtFP*>hfaU)X*FP5A`N zUT}ij#+aL=wC~c^cj+e+^)Y34r_#5FdE$5)2KPt`b9LKxxAUTRH?yPBD|}kqAt)Bk z-$zl?%E9Dt+1C>PrD+9IQEb0_EMi1^&l{OsTM))q2L9`ZH7@+<7caK zvbibo?NL|HtXjag|&YrlsmyNmQe4t1PhIHAUi|(&}|;C%)U{ zx=ZGA)5g@>vkpI+Qrqb&rNG~oxJ2!7>+Hnt;}&V|U8A~7*~%)#3?9GpF=GzMu-{5@ zE_x{)wp$GVcE4}CBqglOpYbSN*nP;<<-VIddiW7Gx@{Xe?LBk2Q1=T&P8G!`JZjL# zE)KNays7PCQFtwvl|Oa7K7B@NyX!cO&Vw3XvYY6Y35%FI;k%oUTA-?wAXP z-mn#(IVfAgm6~THWKdinJaAA{CahA`S<=LryXu1#7z*m^E>%Upz8}}LW=)fFDF=H+ zZJBi$nuON=bDh!3JsSNQ%cps5)-k>N5jDR6M z6&O7-;*jlcrl-GiX2w2E-%+6r6rix4{A=%cM?)aJ8KC_Y9u3pAc-OrjesgCJrH$FTx~9yB2?%e(jqh-)gk%UM=i&BOp6j6AB1_)|v-Qtyb_ zm-A@gElMJ^nq|2N8I@omkrmbUek%SHSM-@nIvPeCLF+K{Ug`_c`Dcd~{D2@z&vYx# zBgWP_WK=4Ym-wvATil8BXJ0+9`Fn`_Fa6zL4WN?W^V+PxAZYU`kQ1-BL^wP!Bq5-j z>IXSy)Q^O!u{@9cY)A93D&ed1HlsU$@T$hp`9&bR@6?u5<~*9eH>N&anFO(~DUzCi z^wIX?qsiT6A?|-rZ(g=Z;K=hRFOG%(Arz;-ja* zyMQ!r5q`yu!1942Gnx^fDM6N%F2yIXZ~Ag9HQ`6xi8Lza>t=(cUoX4r+%kjJeYoR& z);BOihs2{~&$W>vEjC6t*{buknvy&Q9EO(ubdYdS9LRQ4B7o# zxPLppdRx`dZOrapJNVe36xORMo)st7HaBZo2Fk76#nR-Cu7?U`x7BVs4_d2Tb1+2rp@r8m{E<900ET3K z@i&>pezU(dgR@;g6z0g|jJSripG`$9W~2nJwZzb6otq(LtJaiTjcK%_Zf0hPS&KB& zmTccs#O5P;2L*=$inD;QhX6O?z6F|At?i{D+lLc}SE!;fg6fzHagtMY?PgyKqBLygT;$sjcT%zzWgBdF z56h|C>hA^2(*+2MMG%E^3wPLv=$ndf@58`i2@q_y>>DRg%WmvvAW-s5UiX@$bC`ly zNBfzZgAYJVT0m19vhoGKrKRIqTX-V|GvGWP-B8l7mvD=+*g3-GBgpDrc?0jUK34ID z=MDrfv!X*E1&AxKY53ha7&+We-2C~yhDGRDJA`@K+{j#{pKgzzzirC=i&Z=atmbV& z`JBB)8H*bzCwnw&kx8_h#kc-o118xqlOgv-ug8Y7IAz<^&5&eZlvY@OCAC{7f zEX!K6$gwS5Cv$mqSeCr#fl(fy# zRc;PEDYJ4FkUkMI&GY;*ls#pDA1bu-qvfMV7vEFjX+>O1`Ajd7%0i|J5|(mfpyznq_U(_yZ!KOUEJVdJQ$X8! zs4GE2{+U6HLb!0NtnGp5F9pIQ<_XhbHcG>L)nCur7J$A#8OrIYA_m{R4 zmgr)H5iSi(t#FH0{3Vz`Xi$Fx8C1%kB$VKrBZIioI6SpR__W#{JcLN*-&%1wIQ9l$ zVt5Ele+jameN*u18^I*ICA1$sK(b#Pps94>et-1X34t$525!&P1o*gB{Jo*m1*U68UBKR;Z(Cy|m zEpVGl*b>Q~f~U_c%?RsuA!491l|Z?}bFDmqONmmW41&9O)`lnFbdA zfmQxj(C8m8@HC}xf=_A@tiUS_FD*;QUJm`M87_%4OC2f(uX9#;77-2SQu_k1$(&-;Hzn*f(^yk=j>9*pL z;np*iMJx()QT0ac+;h;*83JEb9RQTXwxQ}1-zs^x3frXLxg##gpN!If=W^x`?)7Qx z#0wer3>ZK@&lW(|yH);kK4nXFHPg9c*@6#Ch8%2{X`S#&!pRG|Y=ofrHBXIb?a6r} zw4}+F$r2CWg)XI-Qnpn;u_<+XAk*LWJ~2H)&eG2dS=p^=*fujq2QM*M3fA&m_{f!hBkw?-^7XVpz1RoDtF{+`W^i9rK}i3#|Su896+Mv zlzs}1#0PqKBw_n|`AZUS9mzlbHo0)bx&8KIHBCE+V7wKR(sS_>&kV*=CjMH z+rZqcW2vX)9YNkv42Nk56Fu-f7V;(U8a<8v4ntf_Z2`{GRy5$E#^tol`Mhbmi*eU@ z+AyPsx?6*U94Tsuj7C1nT9U?xA9vBF6EfE~AWL!O%1ua9^r7hk zt~lU5xL{T#HDAKx9~|Lp>4USw|K2YHJN+(L_xE|L$Qm$T=&&3)#NY7AF6F1xi}KH@n}5e-)=Qrxy6 zYQ*Jo&Nl977SPed*lM5>`T@?lKa;Fi*P^>vYqz&JT^|tF#2NMOZPlCM3t6HmRjrCx zipMZ9@NF8Ryb8fMm_X$7cn`6>7@-?(@?<@-;9q-=rtGWFIs*C;Bc5lKKcR3UN+kOHz}Th zkeDj&DP^w}i7VnF5?@_h@^{Aw;(-HQ0N}6)KBX4SpxvdLB>&-b!#PHB?;$+wA)*xp zH^N~-4XM!S%gI`wLXkQLhMI)F+yA~jdZ4E1A zXlc=t72()>)hNiOa{$z2FOPZSB*1fr(4U96<_q%xFdBe%DF!KHsOKf{m;8XpZJ+ou znZCt1OSV%+vQl?NNO7XJ=+V`3EA_(z>K3d@7cC!KXOkaGKH&;c@Q=HaU!iNb!2%(~ zk6hp`s4RV6YlY%v{Bo2;>#pYAuzJ6Zxt^AuI@NkZ*K5Ii#FMv?P|GclUF{Z(gZ#zX zt8^I;VJ;Sk(1|8Lm|k}34&*Vezs?(UWJ}+&z??Kq9r2(wVhM>v>gK?S$4raMf~g2v zcg6ZsNq$J0iUB=A6KW+z#Ug4nWnq<4A;c*`Y6JALk11Qjj9({MN;nXtD*0w|rOdM@ zePmqN$yPZs4}1)we5+C@fTQh_UyFFBU7qX^LDP4afQ<95yFQ^5e*`ZOV z;IYT#zhKNThmfG*q$ZfTjVQZeA6DTabaKU@V4Uz4xDe&1`se@uwS-vU3f$Pdh*vuY zsD&+v2OmH-HYe9Apr{F#st?_TAYB(>L)N{tfNMN!Z0h%UW45dEg`VG51*9bMBg#38 zq8{@w1^(5*LDX4M5Xfso!jsw6<5H(QUn+=Qab$2^@pMdMm40pW;o8w0h>_fzQ5wGw z|FTLfF-C|Ao^oA^BP^^B*wdA2p?)UvKK~_#s6OKO$BzNuu9J+Cy?vJbBbFP~Q4= z$%GEmfo@-P)GK79HAIr}ij2R14Z09k8eIFuuv+t>5A|!CVH^KtWAB z``>3}qhfDB^pv)B9re6`eX7eR+jj2qohQ(!$)U;E($)0l-TW6SKQTxQ+%_y`fs&Wj z3w|??pm6Mx%vHdKsE_&?WpXMV-cBByt8Ogjwj92t?Y7zDmUw$vUk#n{RP1^MTkP*X zCF0+kdDGs~ZJV1H_)nX251rSp@aUecW%dz?#~O}bC-Dq{2lo3(hQ67 zu}c6cI?QFJL)gmD+|7H;?pq)lAA*?nSqn~}#ItpsXH$D&Q3+*-nhCSM#449So*Lz5 zNR1xJUgPCuNHm+ES8JJOHVT4NwfcLOCc0Y6aYqPj-U~H7^N2WBH!6S67NZg#98dS9 zC1!lOT~eU^?5XMp?IWeY_ADpgr~K9l*V#0kYAn@I27AKPZ*{GfNT0+Yrj{V+3Y(W> zLz&o4hrv*#4^ZS$zy%|lA!2n9{I3w~y^diO3GeepV8+$nc$ z=Z5yOJ}NNd;LR?7KNdQ%Pz4Y|RITry^FwEmrR<8eK*aL)R8{|D)3`IVyp4UwArwW% z;iU{c;sDz0i=%fjuM@hJF8LQ6qvUtQODn=k)$F)Z2dfrOb*7sxM6q+OLd$LAc&$=x`8@7;7pu zTHGU%5kt1cyN9Zb1r3TxV=jH)M}pNZaz7%(7W&KK8vn1m9tvlw_$bH-i{UH}v0!n= zpp5q2pI|s#30#(A+H8`Ug4_#BK#Kx}p;sIZOgF^q5N|4q@pF@yHGNN^+iE7gmcD7z zeGOo(4c7GD*vS>^9yN`eL#Z$VV$}2JxT=XpooBskT^NZVk?T&V;FtNA?8|YVR%!_SwH)B~t3E#V{an(O2R| z?)}N8FgJ$Vf!UJf^GGNMMX}xM7@IpIAlnREY1hK4si*+DZ2|oP=fXR><1jcze}*z= zLd7DV!7D3scZ3HQ)f+ABDigLhyNR1K-3GoLFS;>Q1F%o_?$>F_tW%ybS4S7BC$be>rjSmn_4D3C3jcA=+m~4oU09 znPlDiw)(S3i|u{@2#+(7@a_+L+nFRounnyQ#!vkY|Dzp%QL2Vz1pos4&+jRVz&WiI zXTWxeegx(P0r(3Jh`v8_5gR#pS9KcfxF5}O%j#jTIftbsrpN7p;N!+%cIgio62i%k z?w#*s4`Q24+{j5Fu0Bms4@y-9y?U`G#;IG!LDK@3aL|#og68uSoBO0HZc^r+twL9P zx`r?p0>`$Wog&sFbuiSAJZ6UbqH*~2*If3=F?Nj&0qH{OFuDayYkSOlOh~~JtUKq?TM7k4SKmW~%kWcjb0W&mVVaHrQ&9!` zugM|!J4JW%@^JV0n-KQbx_o;%nGAA4~cg%Y!s{_ZxNRA#A*(*55(R#_P+x*wcFHv@6CcQ4Hl)X}p zoLam!U}*ny9vb~WH=#A`p72FS9PzYaLh5DnVt+8h-zWM%oST1)E`Rrdo@>l2Fn;2} zvuuu}{v-~&?^$$7uhVE=ptr5b|Q$jBLH6h4)LhKW( zfkm`}%&Q^KcaVt&LCIvhT>;lFf$6&wX-8iMroUT1gxk@DsM2QRJPXG4G^sQY#MAMc z%@6a^MnC8UUb2qV?To4tM}fMl8abP;TBM`QY&2=$%zt(Q-eLu`py-u{pj{a^2EhIP`eo=Vvg8;tY-LS@_J`6Pn!9lx>jQ5`5kD#u+pM~b7FcUk= zFRyh7ceHC~x8g|&$hZm?7K4D8(6%>9HwmGh`oomE-HIS(77hh{$Ma>|HWxVcDt<^0 zrYT%JY@I7RQ!Lc;B8w(}gt|R}DNI~!t5Qkh_{GEpSJP8+wKB_`ky@r#N6x7VQzxQg z3qYoWW@0+SPOWWWi2c>O5Nk%OS>IIv24KVD-5Z~bBom+Xe>BOwp<@s)DSBsF_hSX@ znM>QfF<4`wbl*aW@X4pBQ%TE|%heeo-)wn34qQ7V2?m|rzm~UNPe1H@`;_K}HW?wV ztnJ{pQ6VgOxrA-M3XO*p6@WV{Eid4$EC~FI5t_U``YxAWeYpgX96w@Hv<)g`d` zkwVsFpTpObzl;b(>EAYwDTc8qyoaDEy$2SfpFQ2HdbP}uu~YX`49nDiXn(se9>q+4 z0xV+@CeAF!n-Lm|> zKq`C7m$F!gborP^yZYkAkNj90k5)8qTyM%uUeYjc>ZyLRRtS9~gfks*zD2Og_Kp&c z!Z&5xd=Yhps&2)`_x9JV2nn+!k9ZvENvf+t-dOVsWS69T;77j9Gv_0FL{t-5Hgvm( z5ru@K+{o}%=PZl!(^|bBf!K_b@+Kx{y-h%SlR2M#XnVE`d=gJ%Q9sE&SWur+s>(t4 zAC^Gk7e+o8CH7Z!Wjm;Rw`!NQ?Iq*C;1K(m?E5^+6FmCSdUOPx*+@V~yI_7c1&A7`_me4m?p4pyr18`gDd8LQD2V|Pcp6mI@Av>zBvMGJkp+s zCz2-NoSl&K0Zm1_$MsCI8NOM`-4%*doFrp$#4#)SeGW9k*fDE2I!+=6n_o$?15>xe z8Oj}C--q+|(qcM@z#1lNwfe%z9?t)iu%`Xv*AY8*h0#b4?ANhF5V)nMDo0v58T}OW z+;R$#7QlJ!ip`I0up0hA#xf*v3$b+g|M)8#4A6C_IQjdA(XFa+&vBM5Nh#(|4@38{ zVZ|O$j57tM-spA6@1mr)Y@R4jm|#J=Dwuy*jce2 zX%e@H>lz~-khq@BYr=jK7MIA1?Oz#6K~(h$b7)y7DYw*Lt}ypREE)Q-5q>$o*);V) z&)^;EZE9I>nXlRU95s5$#&qOLh8oW0%7`X!g7T(5xlssf$lO;(Y|;%B@l)AbiuSnX zH^0u#eZJl&(jp@scf=DcNC(RF=jO7NjE;Yo#_xT6f7tWnl=$|2a#xl3)coXFRCMwV zgc6WD7$#T|}QQ}?u@jd8*zafvAbD4;3o!Jo2+U%+5PU%25&(zL-z_j;z!kTzJy|3Bg|QsUMY4TEwZkAMMc2JWVMk0 z1h5St&-wg)Q=lNPF(F60@9dvPTmRtE*6zIBlXb5;EVDF1{e;uGQl9?v&i=pJg@1d2 zCjs%#lvc$14Aaoh+c95t0WEEINN`3rf&!g=;JC2LfWK>cCrE11i@j!%=`?f+1oF13^ zdkJzoV$!M!+oF5S>St+O$gc*N8Bfv5tR6J8WxpTqubPOy)Qy$*Sf*^YYMa=P{+4(jip2Q64}(XDf9}5- zp7nOW8|^FNKfNjUdktl}_v6E1_q80g2sFL_?e;}zO@Y-@OXHZ}e% zbjd|`Kl7>S#&s?D(6k1KW)Im$XfF_(Mhs9hi~jS1M+H9bPU5@1l^R7E#Y;)(NlS(B zOnfiJ3IF+uzdPf9JL-S@$oi0AH&~P5q#}$WiZ+z&M0pQ8iRxF$1UFYdi2Ueoz>TF~ z+xY54uk;p({L}&O>)mMVfoxQbp&Mg%(4)=E=D%e41#VFraG2!=eVicW2jVA|@Fr=AAPj?g|nTHotzPD>8&#FZIsg z?L!Ut)(*`xHTEK|B*c%fkD_qqFyoxbEU1$?4XFZgATvS0Zvmm4pi@21+jjsRaEW_3 zSZ46y+RJBFRkS77PKMy}n*9u-y$p7L=>#tFD1dLL5E`ATqamD6)$KV{x0?JOrO9rM zU$3LDB{C{!vm6&UOkSA#GR%oic!&{DJ55S$FHBO$Jo@_~1ea1*9i3!&Fj)H9&}hvu z+5SnqV9e(HcKP$j+QPwXN&*P1f`-Mf>K2L=sq?Z_5HE>2rQyN6p~g!#f$E&;zgfw} zbc9y%%4N+>{c*Q*7XEqJ%b^yXPN!;F=9U~n6>hs}Zi0_KW>>nOA9^X#%*3+{zGs#5 zL_&6pXAOcra%wA(XWtW*ZK2G`#0`Wu4<11eGn||L%=P}J z`iJ?+r1Xs5G9GvvzQ}FC(><@-=~RKA9GXutsAtPhs>I;B)1ML@aMFn=eeTI z)*~!Mnl1n|?1n(YiT4GP-S3=xS;+HGHNX*qGtXi3(6rvCo6p~b-u|PX_jXB|(j0{-w0C;9V5*9K$5?bRUf8u*k_9%5X+ zx#L;(xf*hJiSLs>vQ?0)0fmw+)&(H_J4Mv+Z>?LOI*WOO!;xP|RnfkFXU%cb|vqCZ}ut8a+sd}5Gw>%`3A>Wv)8 zLmtLd6dT%nU=_+=*!1p4k3K!RH~M1ab|LER=E2@{ZkZH)D~YH&v5`fIuFtDT?~mWE zXYbE{z3@*oft8-Xw8f0wJI(b)fA?yYGqfezu5>RWVHg?T+twl_ZRZJSBA!uq?l!tN z!YpEfOFXxG`@Tc#66u@e1;iH-b*wA;xC!NpuQ zfjPXH`jlzEoIgao(%yY{*o{7EU^w3LQ2Xaap97`n`9Zu_G-3YpZ|F{)Z9j94huRg1 zsG~U_at;2XNJHht9%;rto@k<04U}`bD$?{a-I+_iz)&$>uqgD5VsW*(Vb0vS9@~Pk zy7UL-DnsYYosvjT^WW-m)FQRz$j&{rskLi!KK;VD{+()3~p4H{q+;NNg=HbVcO{bB_ykRuHAI;eN z&W1x<2~WFR?LDRR(rCWLd+pYSq3TOt!!}8Lf=NP-js`tdvvb7E$t0bijv|P)yi{D* zvZGYhFtaKG{a@|OtXtHFgkfKj{m5UpHtvsu>R3*tm@$&Ay2dT3toaa7jkGE^;!V$8 zPT1WRSr?4}K#b(y_HO%-P?2|MF@6Er@e$8hDzW~g>C=AydTvx@#g-3&FQTOI_?smE zHwhQC)Z=Lp&;|w3?CJfv( zwVjM7NqbiDqR-o?OGHlhN*9b7Ja)s;(J>oy8g=YO3kt};>X-;r+8pEl*RS_)mol#u zfz7Ah5=(v2x^=GdZ-g`A#sFnp^~?sN=>NyscgIuR_y0$PTq2^Otjw&25yENXL^g+v zWY4lUM?;d4Su#>&@4dCiE_+61_TC+SuTN3#?|og@ecj*h?~m(xoN&(hykGCv9?w@7 zbQ2=TTVEXF!}Z$uKE7s&Gsx^B_?ikeshIag(AZ!q>bNi?@FFbIdw@|k6dHh)0;j%? z5kOh~*44VZXDahiimD-5Z~AU43uthAnq~G@unCF84@?+~remdYMFNLBGMKI)a2f3BxV zh*_$uoHLhC{rMj^huw?+CY71-_1K=4n~5WQRlWzu#9N$372>BA$*X;rq1e5;CNmDP z{ITmc5g|#Gwh89KoJ(yh5+rHO8aTFD$`JRKEz;_?<9m{pj?Sl{Mey1^Ce9muKy)kqEN7J%gj9K@9u3}`<8dl_3`kDGJw{NI5D5KsHIq8()-EpbNHQ&Rn7fN&;vUMQ;Mf7 zb)5Afkj`BlUOoCo?1#_h@4ZV)ZAJu|=#f?HIjBi@zUV)1{K}@h7M=<>8SpPnUcUebLh z@2&YwTg64w9Bc@1Z#9Tgim6#`%67%oLPMD8;KxTp<~`vx2F}cFoA-|s{vsX&Ilgg2 zQdwGpz}+>Tu}WYtSMN1}XRqy}u2g=Xv?$Stx|I>(JXhp;4gGpUx;RZi$&GCR+qf<| zIzC3^h0f(@zjm8a>$%+@caUT@yBL;%pfT61>*dwdwW~Hax`*k;3bZSm934duYWcO@ zfl>KK0M1YW;4|bRUlX-T%y^q`jas$b>ZHjVAav4fry0xEu4!^q-KTTnk>@U~JQIYu z92zP8aY}maNSGAYU%BD*_(ajg4!Y{aYxA;^Nn8zlG~${Sam!jVB4+6}-)8O}bNuF% zuq+^TzPR}Mbk;pfvD&P~n{RDrM(v>%`_#4(35*%M2n?xNXA}Kd zxBa8)NA9In{eer<`mI1=7eG7X{ z8=23L=o{^2Qp?g;BG$E;y21F==3BHrZe8VCPT$=^U#q&&ZQ~D&Hs;}ev_!?Owt8h& z|5jy~=*o)@=sHw5ST%U`CnI1zhz(7LAxxc)^I(z?F&w^@MXkbTaJP$bl3p3o4Jed{ z8fS{G3^Tjw&3)K@Dq@d&AN*FA52fY5O*Uy$&K*zHaO?d@`6K76$n+^IuHzm_ut3Jo z22g$mxJ0tPJM2Gxjga%BC-|iLH9XJ%SAztEXqDM@XV#nKz1GH-oJ6ncDqSjoAvH%aBbcI(6a)J$r)HKnuhDbvY$~-8a34l+cr~z9s76%Xp^F*w;npV{a`^<*qqkWPHUr<)%zWg zJC`jZ028gX5x$LXf!%}BhQ3riLmPf~PHCE7?UKKl;)h=UpPFX-3;qL3VwowDe6uKk_+Cp(45pOPI_WqjINR)(4WqF=)u zdcF2vW;?K*j3=Rj8!xBdre%@aET3bwPiG6+hB>&rIRWB57Ji!;Qv539mQSbdPS|?# zW5@XoNnEONtf-_3&vom#S zIf>a`)Z53a4ub8K)Q6v+{R~4>HGF}(2t+9A7}74g@21s>?LRxh3h?!HA<-=@CwavR zkao`hpR^deU;gB3n1+>42a+HBba63&KxT}XOVgA!?#_8WPGZBlNDW4R=tux*xap}> zyS|u2!MuxZ=R*X@pv*eQQ_qO3n`Y^SN;?`$BJBvkqAykmnB#LsB0u# z7gB-35`^4|wBaeLHBCyXjdX4Vj3)f!{prP9DuKEma~?I0TdvF2s2^}#PNk@Wdi$eQ zkdBmW`7fWdj_)J{<>kIdoVBp*L1f|6B^K}ZTaP<-&wWCan6QP!SVq2|pmeR;^p%g) zIV$FD^lj)&{f4s+TlM5Ht1-w66Ytrvf0(shb-C zl8b)jF$30{Y^Ccwbn6{ifVaA?aSn~IM#UD!t!dht{0thDTeW&8(%+qUpT+z-r`z&_ zi1?|UtvWBnV8O6~?dp*JReH15Y$KP~_pFd>MNExndA1St$YgVZYkdQTQT7DF8*5{+ z0cwpTTNj6tCP~f-0Sm$JbAR9m1E4@X_KW>ic{$e*9I-vu7JiZCuT=ei`v;j6`QMnb zKryA}zny4stIwo*p2R$}Iud+8i#d|t#qk59S?5!L!^$1-rGAUStv|OJ)d8)ibfxO| z6~VKx8{xyW)Y5!|e&tbx#tw$rpU;8yfYsA#ci27D2#*hz??IuMlC6fH0Mj*MKA-atPuq|-EN%=ns zG_yI;Llmyq(os3PIhDEaC8@}oASStyK=C0pr!gOcRI;j$m$vs2$>x=pSIADCqBPNw z^fDuVZCN5B6Fj7~^)jmw4I`E{-380x(|=eQG=#68 z+uG77>x)m*Y*%||RIu#HmB;?jTwEFWVKv&yD)v5UEGFv_>!;3a4herfuS~9+Ftm2R zDvK+chVa*pyIoja%Jw3a%=aasH{SLhtXe2+Qbx8PVqfBi$R@eEBq*o6?801x-Kf}> zq`O1Ib)+k?Bl_i`Yq7jnGI(@*DW-c1>=q@Mw6% zU<|_d*E%gQpe!d!9yJsHI`j)Bf{jI94iWVuqJ>QL^+G>4|2-tb>eVo#b+4b_g$*E7 zPT5O$JX*Qx$~li84}yA0Vm)@?`g5RS%R6)6nnlxzaK^38dDqv2ZZFn-Rbys8XC z!+Rt%3++N37Xz;N1aRF6VQK28TV*drh41}!ZiZBX2@CJ}`r}>_H%bf@f9$_y09g1? zOYX;KPY_)@3wInVrAe?-;X{>b#J5c_DT;6Hr|ipJy;-7_NhD0Kz{OUxqb{VJzK}t? zeXFgL-^=}UKPxu0rfIm=)E^$Khma>!4Dvza}+SJz6qW=2`m6dR?Aj# zfwZdS$>`&C`j&41e+Q^#w{N;mV7HFq#R93^84+`xoJXz5-+w;H5UspWCv<%4P*6OX z>S1n{$_x!3X8I>b_(h_>{$tc1dyhKASkHcFtP?~VL~Sx|M2IA_WW+Tx%QpmCQZ;I^?b}M|$JvOuXF3cT2df&1=#MTi+B5xpWD>@7 zo1|=qte|JlDC(m369+vnA8V1HA0D!`-}iXy=}w&hs?hK}{#-4`jcoDtB>;iG%1fhk z`6n&0D+hp21c;yg)B^wDO#k^$WHa!~)+6}tyj*bGWWz1xQLBgc*KgpK8e?a}~JY`C%Mr?Jkw+Q9VUF;}^0Q`Xp$r4A&yL&Fr#UCa8A?Vl@ zD%C>1c&qW&Srt3u$0$BRu4v^v^Uvpwk6hR~lPUBr(*0*Z&bK^{Kr8a!(s9lu4)|06#GRhWxW0~L)Lc9MC$JQ|i>LC-LEq;uU9&lu1| z+(7kT@$tBax%hySxva=C&-Z z&!*f`jwfV+1k?{35`KOz@`Ydp|1bZ;p2V7@1+!lBhh40ijvNzjELH0oLTPw;!p_!E z8l`B_hbP;NGdP5>tc-m=u4?}I<lf&H#2C2gO6r%_a4tC0Y64Ga`D z_{`0ZhEzNY8Gp(o>H@L9EGMJpl_T3);QxHhBuxI1Jfh#z`E(yHeD!R6asG+P(;h7` zH`mXD(0nA>m4^;4HWZH#CM3x+FX4Zxj-OI!bKK6=_h01s3AJj88Xz@^@ZHvSihV6c z*Kya1@8^Z|%W8L=uA+ReK!JLpi&aXB5p{~GtqoZIx_|4!B(7m?CkGc9C3~GOUPyWG zeBX!~pZF3QuJ?1m@V3|FAA}!5A}pwqcteQe`Sn*j$^L)4^rr{T4jmY6R)`%>BM;Du zjXh@1&n?+H(Q!G@z-2L5S28D2DX`FnG(ca&{^m*Xe&Ph z@ipjry6{2CHt~J2b%j5DPQ4-0M_}HDQTgZC7=T7_9%J5N3`_^I>_~BEIP{4ZV_uIz5jPYUQUv2!K>j`vM{cN ze)m9fah%9c*MJDTYopfMX90C8sejO!d}aa*y|Mb{94ET^OXbPSwlSZfuLs&pRSL15i{R+$B7F~oLuL5cAzd6U|oOQ3I(fn z*~NxuRFD!uj)dJ!$q?O&cPHb_HdSwHgRBdm6 z=jW1rXz!xp%(|pPPL79}>SL1eDU*%jly47&)b{ z#Xpbn{;~VwbF*F^-p{(Vie8TxC<5`BBfYCa?@RquP!#-NhZg5*pLD&L$vXsn)AHq|DPj*2hc&dG!?907a+FA{#0y3wKJVjB9i~s1M9WX#$$E_ zRauS;{$QVMPj&kJzD?BJ-gE28;A%7%Ez9H9dzD&Xec|AT7ehaf`JFx8+9(}$f%^+3 zaS%_svyj(_)WLqapJ$*{2bNAzXEWln%vsfE=6Uu?aUpA>&SBPi(KKtMY-g$W2 z|NMud`IA}x?2lzn;fvTxM7gkH`ja^nVy=q^=URjw;q%|~hrfBjW#Ki$1Sh-E`~i>3 z)Ur~Yv1-h=3PE^*!Il8TnuyMyr%+;TV_mPhwpLL}N@_yUKkVlh%AN=7!^tge+>+>V zqTFczLn;WZV$R>~kI7V|+TtcA9`L-9xzw2T^ayKyYNLPW*?kh)4UyW*)xqT7j3%~y zwk;9(vs3-kpWSxHe=Z=Y5GO_Na^RYlD@TWD@8QGe@l%NCgZAtT+9!TP^W^uJMD*ff z5~;v`jY1;_Tpsi95X&|N7%ea08|NHFp8eo&<5_W@J* zSyez*swyKd2j`KkC-+arPf;iGGL(!DPM+S?>9Y&}35A5u`}1e_{JLJ$EW}epU6S!i z#pLQcY5$+4`5`|R;OtCbF)o1BC|pzG78lpLOGMrZ*i%Oo7GIwJ3-X~Zli2sXR?C-l z96mf+%^3?G=L53XGYx-ud|Cds|C~M+9m*XT=_CWoQ+qn z(Jso43!7HDqC!W09bpXbFJT;r!``Sqnnd0s0C6K@aaUH7LqiQGT@jIr*pXyZ(Y z>@i%8rDU`M-(Y89n^9cEYXn!|<1OlvIaogIMB;yX5hll!t(DHYg_9<0a!+=ET|et~ zIKh>GaAlp{{+Z7(K27;Pa}dzsw@p&sBF!Kd+cA! z#Gi5x%5<-4W@1p#filaQVngx<`_C$ZW}OEVg6nE(nz{?DlnN~MIxLNijjy%%RsYpz z4{@jKc`rbW5*I}y^IQ#xrC|1?;sX18B%`cVD?LBI=ZNLp7o6ReUw;H;#&D5EkbJXmNS%A;juZ z-;P>ub*&g-8!vLVJ?`$#V$2pzGrb!=yRVNh-)XLI(w=quhSRmMqD~$f#qHDwc8bP7 zu&oczlD+YfFR`x04Y6L%%a| z_u2FSf>I1yq(4v5wXw#_i7E*A+309oY@tnT#;w@Vrq~qq*aU^x_32O=Z5r#HQ zFx0$EBlEo)rwW}~(l<9TKJiG9zHNyB5qM0?Ms|dmx5_iSl9VaOxaEZ26dNsm?z0hr{i>=cLj+L9<)6F?ZtQ05<_ zGQjsfh;B(F#MRwVwn_9xT_OOkWqN#+0PGnGv1c<(jRXV~@v>McYDZg{UrqvZJ_Ow7 zcQ-Xr6-V=tZ)wf{L59EhC-yA$N=uq+EV=l1+11rmLhkfIr3}?EwR@^t$$;$>|2n(B zJHDo~qs#35h1HSs0m%(wq?CFPjT2<#UBW=H+MJix93#1k|9vj>JX6|pix7a}?rXTb zIsc|>_S%liKOv<(d~LL3IVP`npRs>LL`rw}4e)IWn@`N*$`tA7eq<;lDDY_Yp9MBG z7YU?tTX~1@YNY})%Q%!qdF^GAeLrXKrGtI9gp0a(*t^s#!?Xz+A{;D3+J5Ep6b~)% zHpCuHxA}D*cSj8pOstoSZ|pA^fT=FTazpGMY?^jSHi( z&7H1Z=2{Zzx@J_eK2>Dg^x9{tV1$lW*5qbPE279mJOc&_GUP7O!-3!>P>IApFh)8R5|w4}oHs zRLL}g)mYWl)pHF>aWWAem6*Sh*_R+@Dr?}?Vnd#{I-auU&NuYjCqMn=hu&I~yn2+; zp(jR;TPabZY_r6=71P+Fg4WEN6uZA+unXUzWcU%F zPQMe=p7AGWO@1;r7v|XZu7j{LWA+&`WI@BF`U1vjS8uVy zl$Z17EPy*H10r95&xdT+n3g1!ahL`=VV}y~ezwNV9W^vSc!W zD@_5$1q9k5H|AlZ$tOT=P|DJm*3;Gf1|v&c@wbcyBuH&_7)J@XqC*yK6euJv;knX( zU4C-OS*wYapc)O%okQL+qb>o5<)guEn6rpO=bw+C;MK*aww*O5RxEZ$#}DB`F8r`v ze{~uEF6>zLy@P|Ma~`Qn2rfe`jPs*I&W+zcs3{9DM|?J8ie;<_0-CVx#5Z0o=h+XL zx{A?yFwc$5sz%jT<1^i`tYRS~hcT{Z(&5eq@?AG8HODVIi4FxREHo=zUtL$VOhG2L z$?@+1PTjg>`i~W2E93i-mg};frHsD4Gz@P&#JFJA?)qyzqO()^0}C+Km7tQQ`K8XP z%NpRvjN8+1Zn%OL+7OyJOOyR3-~l+uo2>vuK^kDwvCr;{0~D`omV{vV`#ZyaSS>kw zS7eo_kA8<%*?I66;e^HJG7cKA3YRsFzR5bcB+56vZZwLMblWUaeD$E%Rc`bhIrQ|0 z9<*0k>+1Emq%7)mMf_RFz)Yc^&07-4Bdhys=kY(a=)AOf2G?-8mn!+UW?+6$9>6kJ zVJ9Kjd!s!Pfgz}JQ-FOC^rtrN&9dFM_#*@!1;jRJfcjRV1z`>DZn{o|aKBzIsmNZAdu#qv+4a-*{7nK;5UR|N6 z)_+1pYW(gAqsOmVhR1r#%EVh60}S-^^hO`hn$L_Cf9Tb}#lih7ggR*i09;_rGOwr1XCEp|)wJS!> zh>1&n8RMhEJ|y|RlG9YA!mi^vhyqK1l84xWGeOh*$aYTPGtF(1oD)iqmYxaG|B~L{ zy76ybRdLT$vE>J$durQ!gT(?KDQ0Pw_C?DnSQ_* zs0x3;(;fPTpj`-p|6B8IftKO|(BDCiLMHTUv3*~4s;YsALX<(QmYbp|3dg}!8-DeaCz*}oXz zhuJ9G+=Zx33A+ew^aCy=X|U=q+6AatV#5%s{Q!!Q~sR+Ygp)H*#F*Z z!(N)!t^>NMwUTq%F!teXB!*o#Mqxlgyndb+ay8;#KBpGI#;!&BFTIC822>bE!cLzJ zdr9=L9?7W`Rm*F%^F|+hy0V7=+N_uU6{f_|hKydUJFU#j?gOPs$Eg#zL)YeF0%hhZ zy$dUs1$~<*E6)`W6z661F84%Vw9I+l%IdjmVE%Aa)X`~cH7~?oFI%qrgx^zpa%M;Z z)Zh*LFIU-rllVn3!O|3&Z+N7pra@o+zqu%XZ?GwNU<#Ci_fB(`F_hO2e*5Tcy>RRB z+1oDw&+RLbWxB3{No4y-!#QGe=?9L7t}Ts-F1%5SDj^V~I)4 zxn}AZiU;B0M>idiDg6~V=W@>Sy!hWB1F)wLonPjx2AM=UQM>wZDT%aLA+`6Xo(<`!B!Oj*zMsXcU;fh zLeu%Tz1i7)K})#aiqLj@vWlpa8_XvxF3BJ@kN5dVvKeM?=jJT+NK#C@U-{hngBt-c zEnBPROuJ{k6sShs(U;Pme~nhb=tD?K@{NMVs8GE>bR}=`0T^uxjExy3sC)&8`jtwn z0pXM{&>cEgX`n;I$)?UTbqu(FMKtoYPX$K=JqTsjy7FI0GUcx zhiO4iuaXA`$<~NA3@_c_q~S7xwSOCPfUq=5=)L&zLx}8+7oL0vjYcbRp!8y)lloiP zCN7P}$*uyU!L=I9(%{(XUC*aqdq@;)$c80}=aL`{O00$fsPe(^rNa@UmlH&1-&5ge zZMYNKz-H>5XDkKKsK$M7ZvBOTK;^L4g{>}vvo4amE{yux{0O?pPTd_tYR$R$jgjow zk=i1=&^AHL7~{a$n~YmSghU~(^R%PUo?Jrhj+pct;|*lo3*w%}={wRbsP80?>3Lfc zSu~vQ-0YcL-_+!NsAz9VR=Roc$j^2FkmZ^X$-{@GbBu%edWA_!`YR;YIKPO)s*;(5 zW;b*VJ9^L7eL5AkRGj%3Ydx|L?z|z7Ko!{)j~jh@%l9+rt>!c>aloaMMn-QZgnCNq zYd^(2TPpsfW8(^gi{A%tARtIl*TxYH(;o_NJ=+D;4&Q=37n^6f-^Ir*pmnlCm0A6M zYMpb_wrY=1x`drMfu%Ts%*sJS#MosL6L91Q#^z*iC!#1GW&(>#EtcMKD7!Da)7SXV zxfT?I6g~$>$oCVMIaN}d=Z0#$!*ecs(`-1xxcuJSXGB;34c^oe0K(rIw9K&q0SS9Dd^U)N;acGR2KW8{WY3Y1-RSei2PF7*_i z?}89WEghApk`~F8&x-@6o^AE&p1NP{9h6e#8@a3VQL*ExfzV)U8s@T@H}{TQ{N#r2 z*S8m*(uW>$%OoeEMI5Jl2h*cHj|uZFc0G%XoN55H{Q;&)9`nbqCvTq|;3Ef}p{yL@ zxHtwum19+urKRNp#Dq0tW|Elz=66bbRQXA@XUgF4a3TN^go!%k0%+EhU)50|%NWFa zxU6&3sC`sbngXwe#Q<0BbA(0WuHhbh@x3R-v^ESjqi;O7Kf~ybvfP_(#>uT29&Q%b z0{l=Oz1LrMT$a#5Y}?V1eFW?rgfXK z=E5sFQOA`oZi%~uqUnQ*dfa9uBAsBP5@0QjF^pRfUazUCnGe)SQO$U%tu9H5sMgb` zPcHz@;VMb~gMG&m3eJnoglZ*i6h;X`*jZZ5ZvIBP zv&fqCN)4tIfUa2`*TYr%%$^H6<*%aY5X<$XwZV1iOpoJu3S!#p&&^*e0rWn#Z!F$N zPwPq~v}6oE0dz)X#PJ3h8wV#m$cGBXCse4t?!?4Kh7%1aBj5RrBCjQ`pE!uAeC4~u zjptH$!;AzJ60%S>Wm6UhcXJyRhs?J#_EK@a@V{fJ(WJNlYw@#k!HuHh=sRv#|@G zn&ne+$1V)R17y>hD~ceg60}1O%vS?Iw;3W#S~)Pmy-pIx_34embkN3&(U>0=9%KRrc zc?AXN1yNb4Oeavu{qn*4qcETdLZ^f}EQ})U>CyU9Xp+wl6HffQOFJd&kc8WXkWN2Kg<ES1~fZ z*%@@nf++0KE_}TMhF!{PC2C(>r1hNfi+;qK2Z#^gl1jACkZuzaDFCF?yF$eE{>hFa zz~97Kzu!rG^dZXUNZlf&ri?l=^~T!Lq7JSsUct;fK+*v);^Oos8iq*EiO;qwX})g< zh>2?Q*7T24`pea@pFIa~M-c?THAuDN%wV5m2E;)FY@ahH#lO$ob)A3SYmaAC84r%! z+N6bBQgQJ)amH4_$NeT=xs-KJtVr3nQv|{Kt6tFAP3x|8IPjU0m4GF)J@#9nAU-Z z>*Ba<0GpG$ZA$a!TA0C=a6)tVKIzcneW~SMUIz`|Ih}&)aXJXU8_ThcylxyA6}`#M z))5ZraCUB0hBOO>Fd+rUDWTC;^}F}fQ`Bq5d406}=8_9AYPA~Z)2(q0D1`lZ8uDl> zf2Z6ZzAT?_K##W)x{2J6YOM%Yb@CUObHRSUY zO`LY?!Oh2s<0L@|E~%JJi~;yr zvoog=!?qrTBA=f)&vfNsuswSdcg0;sQZv09#i)~wYl}n9O#5~eNdF@zA9Y9d6jmlE zC8dUmEX!d|?nXbzG3yc#XTNCp@`T+-A6mgR$#~%HX@Ot|0IReGX8;iEl#-NFPK!58 z8jhHQpsO$9%S>GxW zhZ@p&PK0-SYiYe-F+fA^``zqUZ|wU~Sn#L7r}4@{A55^b7=322WY&nVJ;6~3KEJMu z_iiq`+)Za0!}nUiE#(iyK*{YYy^rv5wo8342*tk3&RNQ>da+;iIg$v4)KN(5&G7M~-M84uCuZ~eRjB6c8lEzP;OjP)j5emiCsr~r=9V9sThL-7 z!HM7{2EX4)wWDF~WU|-MBH6cQO#hVHe=gyOV|CUZ%V)u$rQ$6nFGV74s8ntKK}-?S zudx5(ReNQ1=Be-9!6%gDF#$#$8IU6jMl9-l|3(IZ+GJ-A=M-b^@2A*l!BCHhC%$lV zt1CY}SwpE;K%j;Wm4aBCIz?T@xJy|xD$06e^}bgYmqQ5QXiQKVDoOb~Q;O4cFbJS= z>tn>*saY1S{QSEtTdmT!*v5iZ{@#fG5M}Ue*;7ql|Me!r!1Y6J^52W@rGU0Z%@M1L z>n)C*r1Rn5C$HtEM@oeH-Is(H$LuYPw?T(To|Vsdx4 zt9f#SKOltb%?~%G4+TxiHZOE0e#zrecXu0or?R{Mb+A*759>2p-+NKLa&BD_ieNb` z0{A)uac`RsY#Z#IE;IHl&Bun&)>N_peM~=>Am$SnIy^Xn8#K4l&{-mO3sPPuo08JfReG^IeQds-*js;EPn>+<1r-_W^{_mdTUlL7E=pB3NM} z@B3Ho=n$4h?eCJaV!6T7n=D;3#E4g5h~FBwdMi>Ab0GzG2L_txa`0M0#RKxcY(bes z8NT@?A#PlAeI z0HuDxdrVCzy2zGL>Du*BwcI~E8gh+}!@jGhD4-vBc+t{d2V;r(<}xE-Eho9jK!s7* zIn0J)^_1i~1+GDIy|L-`w$wrYx7eCQn1J-!%0NI;iS?*FvQL=S%~G>Ugk|-(^XBzA z!Ces9VPhy~c)X2!gbg!Un$F;U6?B)tcaV;j=OJsb+5S`{l~^bSxXUBj*bb}%2jN4=dBsNXsJIx-9Mw$j`yzML(657vLvU-@yU;R8I@VUHlzg|6g9AU^v92 zRl=lADoN#_Om1B(w^xX?dLE6AQpyR;g=FOvW?l>6E3y!?o&dv+VpkkO3K?vmjIbn> zr#zvIyT^yFN8KPQ0*bc*O&-cSMms3{@WKDInc|ADRXf)jDZJII=>lzU9;L0VDX-kj z>mQU?a%t9$~~?@|M9i)R!Q^B7)-9Im7rONe0z4YVuIXp$PQKE zE9&V>;ntCEMyUH95#Vy(hb9hUz1^l^2NjwG&>mJLgKB3MJ|4G0cSTh0d@P151YA{b zym_S{B!p26iP-q9o~BdK_f`-D3+QDzE40`XRig2=T&TlKP1^RR>|xtVCSea9xZV3I zl!vT>^Sw580wr(_(h=DF=yyjTvXG{oT>OtPi6E6g+Z|&6Ukk?X_g<3M9+5E`sL<|A zKfgBuMrTqy>+{UH9hZ*q$FNGryq3P}FjC*x_vTF@OM_+Lq=FYa=jB;d5oW9+FS_f! z7jL}FdgKxDjghqvyqZcyww~4!kvnpyyYS^G?7v0#S$z2V?$zznGCw=5Q69vqeQumQ z`%&o?WpKEl9EIND7xHg*JVPI>((#wyerBvJwpo$m z_;HxcD2&iUgG4Au17y4iQf`JDLaKQo=JlA}O0(9@Qemr6B zFs{rYUS>#@q!c*TMjmhr^k4u58aT=y&|n9UWJ$@u>=CATd!zpna!>I{?zDKrc* zSFBAHy&Y7Iu8H=_ybzja+Hvr;R4~Kg5VWt}dZ=p?NgxwzO`s614@8Tw0M737mv|DKX*^7w^aWglri?ZNm?!r#{`&~b( zx(HLd5NbNhbrzhFc%gTGGi9@#(wOXM{&cA+OeCU^X4CcQ*krCtzoep{urvF~7e`Ke zE^)2Q-Y22Fp{6$~z1V0rkLDtDs^S4U>ADepa@`^%yB*&8?%@A+l4Qop9;#YPzWUgItTh;B zOkHs%MwRbNR?h3nsNoQ+J5Os4Bd`Ikn@*zvXpbQrJ$9=x zTtXA!DzpZ(EI3M z{-glpBx1aI0%&;tz>mSC^O43FV;_Pf&Zh0>|7}bpoU!5IZ{IhQi!ygKmz8Df+~;$& z?$3*&`KfzhM$={OfT+i!1+>Lpvl=FF(P$OajFtMddHF)hOU-1KIH;$LHA^OHiVAgI zPolc+KD+9*9M;GL1?bfBrOC$qS0&VQC1|3$EAF>18>8im%+zmcOxO*Ux{$VEegqBd zCxDY*(*5q#*-tGYO}3%x^X|&+R|kl#$60es*tj)sq#H%um-^B}6&J;` zKmR8Ekv~my-y>0-d6{DpYcuX)gj;)A6LPL5wNA^q`f;>-OL{akdY-iC)f{W% zRn46gC}76q-YByDd@CK=yJk7ljf0!>GZvP*Tg&p^xP)3(Cw4 zz_{nKg+aE4YLYq@#*!(_@Mwv2aI$4Mvl*Pj@>IWxc5e#ONlx~olN^R)es=W!unjMc z5>8YQt-lNUuhjzE%zPC3R;3gVh5X7h)AjoYA6V!i@!oI7`T2_B8G(R#kaF5SR?<|n z8iBkjO2Y!9O5Y2?K?f3Gz+5tr;bc5Z_2?H-i4eUS0VGqb<_E1wZHvnLj6DMK9V|}u!)3Gxm9@-18H>-r$La{KL zAhk%QaMN|vlU_>f6)xAgSuUI%b$S~MfJMCiI9w+xlN8EE9ldzj+reVB5(9rQ%wFxS zee*j@^ly~;6XQHX0QDODW5M_2UOlj`=3o)6w*7aC?!wwbW`#W9X37l?Jp+hnN{y9H zV&;-HiuS5wN(!5c3!0NLCo%3X!F8?5#o%*?UP_{TBDD7_7#ge#fu@sm;exzTO-SQ3 z=jK>a-yKo`SoZe&=CE^A>^#vSBG1vui?fxDN-C03u1A<_Z2it``{}5@Z?9qnzxXF_ ziWaLzt>&~@l9Acn6m=k+$V>2{jZID-^|KK3SxL@ zkfbbM6C&?N*O(9|#jQpV$nrTe!FKYg`RQO#pJyq*^@yw#XWUbZrCtw*u?g50mR(~1 z$8R!%+on{$Mq!%#F;esceN})vpE;Lw*d-?a{`>7v7=j0KZ%&I^s2BO5b)CDkUs^C4 z;$#`^ia)AcqsBU#%x?Okbci8&a7y#48Uzj0oHI3AQsiQ)&KJ1H%Y=uYK1!iCKrTc_ z0~v1H*efT##VHR>5N}yfF!ecV=)dE>hosmi$74IPmXGBb-~~J&_w#0zmHc=9V=yAL zw2b-S9ede3#-a?;dyql}n+Q27KIjB~_Uuh_ZVI1$de9TbW42FqC9}Ei(0H{3E}30= zw?Cc&t6vv$UF-=|bYUBDOmT64(oH-igL>v@zUH(fKaz+g-ErQDPt1nlepBbJ_xe0+xyKA*6KW$gzMv73#uZJp#&$h@qJkZrlsa z^=Gk;i_GXmn@!w0YfI+SA(wUK8$D-{X*mjVB*OGm@e|P;7zUVkTI#8%**?$jlkLKO+pF4dg$~e@%rXUp$G1Z;o-8g-Y~KTd z``V|u(1zmN$6@mxx~v#JB*VlILXfBus_CLsILZorI*-yYj*gI$^dNoY7XC|U5Qd^S z3<(%LJg;}&EV~la1tnhV;r`f8QL$tC;$J;-tJUFDqdx?0>0UyZ&&xP(EwZ+#C2<9{C zu=OEbq&o%cKmD_hl+WzMF{flcy+^u&A()I^vCvtNknl!$bL$TN<->x?%2PEO-`;Qh zzIr+CgEtF0Q7;yHSX|b%k#3fYp4tT(A}~j*O}~M#PrqdOS~M(^@0*_(OS;R94PpNj z+*1_WAZBG!yYn`o+mOr1&c2q-dpDGkPQHG>cAS0dxn&Dc5yJB0t)La|uVXB$p|j

  • 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

  • AvoO~-><$vLmk3mt8`96Btz-k?NPbf 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