From 48519710e59ec567a7723214f4692245e104cfb0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:55:03 -0700 Subject: [PATCH 01/53] Bump mypy from 1.10.1 to 1.11.0 (#713) Bumps [mypy](https://github.com/python/mypy) from 1.10.1 to 1.11.0. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.10.1...v1.11) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 70 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/poetry.lock b/poetry.lock index 5c87ae90..4b43ff21 100644 --- a/poetry.lock +++ b/poetry.lock @@ -312,44 +312,44 @@ files = [ [[package]] name = "mypy" -version = "1.10.1" +version = "1.11.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e36f229acfe250dc660790840916eb49726c928e8ce10fbdf90715090fe4ae02"}, - {file = "mypy-1.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:51a46974340baaa4145363b9e051812a2446cf583dfaeba124af966fa44593f7"}, - {file = "mypy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:901c89c2d67bba57aaaca91ccdb659aa3a312de67f23b9dfb059727cce2e2e0a"}, - {file = "mypy-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0cd62192a4a32b77ceb31272d9e74d23cd88c8060c34d1d3622db3267679a5d9"}, - {file = "mypy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a2cbc68cb9e943ac0814c13e2452d2046c2f2b23ff0278e26599224cf164e78d"}, - {file = "mypy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bd6f629b67bb43dc0d9211ee98b96d8dabc97b1ad38b9b25f5e4c4d7569a0c6a"}, - {file = "mypy-1.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1bbb3a6f5ff319d2b9d40b4080d46cd639abe3516d5a62c070cf0114a457d84"}, - {file = "mypy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8edd4e9bbbc9d7b79502eb9592cab808585516ae1bcc1446eb9122656c6066f"}, - {file = "mypy-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6166a88b15f1759f94a46fa474c7b1b05d134b1b61fca627dd7335454cc9aa6b"}, - {file = "mypy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bb9cd11c01c8606a9d0b83ffa91d0b236a0e91bc4126d9ba9ce62906ada868e"}, - {file = "mypy-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d8681909f7b44d0b7b86e653ca152d6dff0eb5eb41694e163c6092124f8246d7"}, - {file = "mypy-1.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:378c03f53f10bbdd55ca94e46ec3ba255279706a6aacaecac52ad248f98205d3"}, - {file = "mypy-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bacf8f3a3d7d849f40ca6caea5c055122efe70e81480c8328ad29c55c69e93e"}, - {file = "mypy-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:701b5f71413f1e9855566a34d6e9d12624e9e0a8818a5704d74d6b0402e66c04"}, - {file = "mypy-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:3c4c2992f6ea46ff7fce0072642cfb62af7a2484efe69017ed8b095f7b39ef31"}, - {file = "mypy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:604282c886497645ffb87b8f35a57ec773a4a2721161e709a4422c1636ddde5c"}, - {file = "mypy-1.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37fd87cab83f09842653f08de066ee68f1182b9b5282e4634cdb4b407266bade"}, - {file = "mypy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8addf6313777dbb92e9564c5d32ec122bf2c6c39d683ea64de6a1fd98b90fe37"}, - {file = "mypy-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5cc3ca0a244eb9a5249c7c583ad9a7e881aa5d7b73c35652296ddcdb33b2b9c7"}, - {file = "mypy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:1b3a2ffce52cc4dbaeee4df762f20a2905aa171ef157b82192f2e2f368eec05d"}, - {file = "mypy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe85ed6836165d52ae8b88f99527d3d1b2362e0cb90b005409b8bed90e9059b3"}, - {file = "mypy-1.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2ae450d60d7d020d67ab440c6e3fae375809988119817214440033f26ddf7bf"}, - {file = "mypy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be84c06e6abd72f960ba9a71561c14137a583093ffcf9bbfaf5e613d63fa531"}, - {file = "mypy-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2189ff1e39db399f08205e22a797383613ce1cb0cb3b13d8bcf0170e45b96cc3"}, - {file = "mypy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:97a131ee36ac37ce9581f4220311247ab6cba896b4395b9c87af0675a13a755f"}, - {file = "mypy-1.10.1-py3-none-any.whl", hash = "sha256:71d8ac0b906354ebda8ef1673e5fde785936ac1f29ff6987c7483cfbd5a4235a"}, - {file = "mypy-1.10.1.tar.gz", hash = "sha256:1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0"}, + {file = "mypy-1.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3824187c99b893f90c845bab405a585d1ced4ff55421fdf5c84cb7710995229"}, + {file = "mypy-1.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:96f8dbc2c85046c81bcddc246232d500ad729cb720da4e20fce3b542cab91287"}, + {file = "mypy-1.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a5d8d8dd8613a3e2be3eae829ee891b6b2de6302f24766ff06cb2875f5be9c6"}, + {file = "mypy-1.11.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72596a79bbfb195fd41405cffa18210af3811beb91ff946dbcb7368240eed6be"}, + {file = "mypy-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:35ce88b8ed3a759634cb4eb646d002c4cef0a38f20565ee82b5023558eb90c00"}, + {file = "mypy-1.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:98790025861cb2c3db8c2f5ad10fc8c336ed2a55f4daf1b8b3f877826b6ff2eb"}, + {file = "mypy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25bcfa75b9b5a5f8d67147a54ea97ed63a653995a82798221cca2a315c0238c1"}, + {file = "mypy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bea2a0e71c2a375c9fa0ede3d98324214d67b3cbbfcbd55ac8f750f85a414e3"}, + {file = "mypy-1.11.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d2b3d36baac48e40e3064d2901f2fbd2a2d6880ec6ce6358825c85031d7c0d4d"}, + {file = "mypy-1.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8e2e43977f0e09f149ea69fd0556623919f816764e26d74da0c8a7b48f3e18a"}, + {file = "mypy-1.11.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d44c1e44a8be986b54b09f15f2c1a66368eb43861b4e82573026e04c48a9e20"}, + {file = "mypy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cea3d0fb69637944dd321f41bc896e11d0fb0b0aa531d887a6da70f6e7473aba"}, + {file = "mypy-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a83ec98ae12d51c252be61521aa5731f5512231d0b738b4cb2498344f0b840cd"}, + {file = "mypy-1.11.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7b73a856522417beb78e0fb6d33ef89474e7a622db2653bc1285af36e2e3e3d"}, + {file = "mypy-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:f2268d9fcd9686b61ab64f077be7ffbc6fbcdfb4103e5dd0cc5eaab53a8886c2"}, + {file = "mypy-1.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:940bfff7283c267ae6522ef926a7887305945f716a7704d3344d6d07f02df850"}, + {file = "mypy-1.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:14f9294528b5f5cf96c721f231c9f5b2733164e02c1c018ed1a0eff8a18005ac"}, + {file = "mypy-1.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7b54c27783991399046837df5c7c9d325d921394757d09dbcbf96aee4649fe9"}, + {file = "mypy-1.11.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:65f190a6349dec29c8d1a1cd4aa71284177aee5949e0502e6379b42873eddbe7"}, + {file = "mypy-1.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbe286303241fea8c2ea5466f6e0e6a046a135a7e7609167b07fd4e7baf151bf"}, + {file = "mypy-1.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:104e9c1620c2675420abd1f6c44bab7dd33cc85aea751c985006e83dcd001095"}, + {file = "mypy-1.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f006e955718ecd8d159cee9932b64fba8f86ee6f7728ca3ac66c3a54b0062abe"}, + {file = "mypy-1.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:becc9111ca572b04e7e77131bc708480cc88a911adf3d0239f974c034b78085c"}, + {file = "mypy-1.11.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6801319fe76c3f3a3833f2b5af7bd2c17bb93c00026a2a1b924e6762f5b19e13"}, + {file = "mypy-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:c1a184c64521dc549324ec6ef7cbaa6b351912be9cb5edb803c2808a0d7e85ac"}, + {file = "mypy-1.11.0-py3-none-any.whl", hash = "sha256:56913ec8c7638b0091ef4da6fcc9136896914a9d60d54670a75880c3e5b99ace"}, + {file = "mypy-1.11.0.tar.gz", hash = "sha256:93743608c7348772fdc717af4aeee1997293a1ad04bc0ea6efa15bf65385c538"}, ] [package.dependencies] mypy-extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=4.1.0" +typing-extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] @@ -827,13 +827,13 @@ files = [ [[package]] name = "typing-extensions" -version = "4.4.0" -description = "Backported and Experimental Type Hints for Python 3.7+" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"}, - {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] [[package]] @@ -963,4 +963,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "e3fa63991d39989af47ef9380ec497c17c30d57bcf4a6c59d8e2146d22d27828" +content-hash = "7219da9017d63f148c248f80a66242a67ef5a0fbb826be70332651970a6a7e35" diff --git a/pyproject.toml b/pyproject.toml index dffc7ae4..f5f940f3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ certifi = ">=2022.5.18,<2025.0.0" [tool.poetry.dev-dependencies] black = "^24.4.2" -mypy = "^1.10" +mypy = "^1.11" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" sphinx-rtd-theme = "^2.0.0" From c2f955ecd3a9878ac0166a997b97ec5e73d91f0a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:59:18 -0700 Subject: [PATCH 02/53] Bump types-setuptools from 70.3.0.20240710 to 71.0.0.20240722 (#714) Bumps [types-setuptools](https://github.com/python/typeshed) from 70.3.0.20240710 to 71.0.0.20240722. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 4b43ff21..b258dbe8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -805,13 +805,13 @@ files = [ [[package]] name = "types-setuptools" -version = "70.3.0.20240710" +version = "71.0.0.20240722" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-70.3.0.20240710.tar.gz", hash = "sha256:842cbf399812d2b65042c9d6ff35113bbf282dee38794779aa1f94e597bafc35"}, - {file = "types_setuptools-70.3.0.20240710-py3-none-any.whl", hash = "sha256:bd0db2a4b9f2c49ac5564be4e0fb3125c4c46b1f73eafdcbceffa5b005cceca4"}, + {file = "types-setuptools-71.0.0.20240722.tar.gz", hash = "sha256:8f1fd5281945ed8f5a896f05dd50bc31917d6e2487ff9508f4bac522d13ad395"}, + {file = "types_setuptools-71.0.0.20240722-py3-none-any.whl", hash = "sha256:04a383bd1a2dcdb6a85397516ce2d7b46617d89f1d758f686d0d9069943d9811"}, ] [[package]] @@ -963,4 +963,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "7219da9017d63f148c248f80a66242a67ef5a0fbb826be70332651970a6a7e35" +content-hash = "0d5a56908d1fdb653867db55416e55c841b5f5ac94f8607b51dddc177115d6d1" diff --git a/pyproject.toml b/pyproject.toml index f5f940f3..931d9805 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^2.0.0" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^70.3.0" +types-setuptools = "^71.0.0" pook = "^2.0.0" orjson = "^3.10.6" From 5a4e2041d5fde4a7536ce792634b66f805b54f62 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Mon, 29 Jul 2024 07:52:22 -0700 Subject: [PATCH 03/53] Add related companies demo (#717) * Added related companies example * Added image to readme --- examples/tools/related-companies/data.json | 1 + examples/tools/related-companies/index.html | 30 +++++++++++++ examples/tools/related-companies/readme.md | 36 ++++++++++++++++ .../related-companies-demo.py | 40 ++++++++++++++++++ .../related-companies/related-companies.png | Bin 0 -> 193270 bytes 5 files changed, 107 insertions(+) create mode 100644 examples/tools/related-companies/data.json create mode 100644 examples/tools/related-companies/index.html create mode 100644 examples/tools/related-companies/readme.md create mode 100644 examples/tools/related-companies/related-companies-demo.py create mode 100644 examples/tools/related-companies/related-companies.png diff --git a/examples/tools/related-companies/data.json b/examples/tools/related-companies/data.json new file mode 100644 index 00000000..2b63ea05 --- /dev/null +++ b/examples/tools/related-companies/data.json @@ -0,0 +1 @@ +{"nodes": [{"id": 1, "label": "MSFT"}, {"id": 2, "label": "GOOGL"}, {"id": 3, "label": "NVDA"}, {"id": 4, "label": "AMZN"}, {"id": 5, "label": "GOOG"}, {"id": 6, "label": "META"}, {"id": 7, "label": "TSLA"}, {"id": 8, "label": "AAPL"}, {"id": 9, "label": "CRM"}, {"id": 10, "label": "ORCL"}, {"id": 11, "label": "AMD"}, {"id": 12, "label": "NFLX"}, {"id": 13, "label": "WMT"}, {"id": 14, "label": "DIS"}, {"id": 15, "label": "SNAP"}, {"id": 16, "label": "SHOP"}, {"id": 17, "label": "INTC"}, {"id": 18, "label": "ANET"}, {"id": 19, "label": "RIVN"}, {"id": 20, "label": "GM"}, {"id": 21, "label": "F"}, {"id": 22, "label": "LCID"}, {"id": 23, "label": "WBD"}, {"id": 24, "label": "CMCSA"}, {"id": 25, "label": "PARA"}, {"id": 26, "label": "T"}, {"id": 27, "label": "ROKU"}], "edges": [{"from": 1, "to": 2}, {"from": 1, "to": 3}, {"from": 1, "to": 4}, {"from": 1, "to": 5}, {"from": 1, "to": 6}, {"from": 1, "to": 7}, {"from": 1, "to": 8}, {"from": 1, "to": 9}, {"from": 1, "to": 10}, {"from": 1, "to": 11}, {"from": 4, "to": 1}, {"from": 4, "to": 2}, {"from": 4, "to": 5}, {"from": 4, "to": 8}, {"from": 4, "to": 7}, {"from": 4, "to": 3}, {"from": 4, "to": 6}, {"from": 4, "to": 12}, {"from": 4, "to": 13}, {"from": 4, "to": 14}, {"from": 6, "to": 5}, {"from": 6, "to": 2}, {"from": 6, "to": 1}, {"from": 6, "to": 4}, {"from": 6, "to": 8}, {"from": 6, "to": 7}, {"from": 6, "to": 3}, {"from": 6, "to": 15}, {"from": 6, "to": 12}, {"from": 6, "to": 11}, {"from": 8, "to": 1}, {"from": 8, "to": 2}, {"from": 8, "to": 4}, {"from": 8, "to": 5}, {"from": 8, "to": 7}, {"from": 8, "to": 3}, {"from": 8, "to": 6}, {"from": 8, "to": 12}, {"from": 8, "to": 14}, {"from": 8, "to": 11}, {"from": 5, "to": 2}, {"from": 5, "to": 1}, {"from": 5, "to": 6}, {"from": 5, "to": 4}, {"from": 5, "to": 8}, {"from": 5, "to": 7}, {"from": 5, "to": 3}, {"from": 5, "to": 15}, {"from": 5, "to": 12}, {"from": 5, "to": 16}, {"from": 3, "to": 11}, {"from": 3, "to": 6}, {"from": 3, "to": 2}, {"from": 3, "to": 7}, {"from": 3, "to": 5}, {"from": 3, "to": 1}, {"from": 3, "to": 8}, {"from": 3, "to": 4}, {"from": 3, "to": 17}, {"from": 3, "to": 18}, {"from": 7, "to": 19}, {"from": 7, "to": 2}, {"from": 7, "to": 4}, {"from": 7, "to": 20}, {"from": 7, "to": 21}, {"from": 7, "to": 22}, {"from": 7, "to": 5}, {"from": 7, "to": 6}, {"from": 7, "to": 8}, {"from": 7, "to": 3}, {"from": 14, "to": 12}, {"from": 14, "to": 23}, {"from": 14, "to": 4}, {"from": 14, "to": 24}, {"from": 14, "to": 25}, {"from": 14, "to": 8}, {"from": 14, "to": 2}, {"from": 14, "to": 26}, {"from": 14, "to": 5}, {"from": 14, "to": 27}]} \ No newline at end of file diff --git a/examples/tools/related-companies/index.html b/examples/tools/related-companies/index.html new file mode 100644 index 00000000..1b5ae182 --- /dev/null +++ b/examples/tools/related-companies/index.html @@ -0,0 +1,30 @@ + + + + Codestin Search App + + + + + +
+ + diff --git a/examples/tools/related-companies/readme.md b/examples/tools/related-companies/readme.md new file mode 100644 index 00000000..9f107550 --- /dev/null +++ b/examples/tools/related-companies/readme.md @@ -0,0 +1,36 @@ +# See Connections with the Related Companies API + +This repository contains the Python script and HTML file used in our tutorial to demonstrate how to identify and visualize relationships between companies using Polygon.io's Related Companies API. The tutorial showcases how to fetch related company data and create a dynamic network graph using Python and vis.js, providing insights into the interconnected corporate landscape. + +![Related Companies](./related-companies.png) + +Please see the [tutorial](https://polygon.io/blog/related-companies-api) for more details. + +### Prerequisites + +- Python 3.8+ +- Have Polygon.io's [python client](https://github.com/polygon-io/client-python) installed +- An active Polygon.io account with an API key + +### Repository Contents + +- `related-companies-demo.py`: Python script to fetch and process data from the Related Companies API. +- `index.html`: HTML file for visualizing the data as a network graph using vis.js. + +### Running the Example + +To run the Python script, ensure you have Python installed and your API key ready. Execute the following command: + +``` +python related-companies-demo.py +``` + +The script will generate a `data.json` file, which contains the nodes and edges for the network graph. + +To visualize the relationships: + +1. Take the `nodes` and `edges` from the `data.json` file and replace them in the `index.html` file +2. Open `index.html` in your web browser. +3. The web page should display the network graph. + +For a complete step-by-step guide on setting up and exploring the capabilities of the Related Companies API, refer to our detailed [tutorial](https://polygon.io/blog/related-companies-api). \ No newline at end of file diff --git a/examples/tools/related-companies/related-companies-demo.py b/examples/tools/related-companies/related-companies-demo.py new file mode 100644 index 00000000..221d5f0f --- /dev/null +++ b/examples/tools/related-companies/related-companies-demo.py @@ -0,0 +1,40 @@ +from polygon import RESTClient +import json + + +def get_related_tickers(): + client = RESTClient(trace=True) + + # Fetch a limited list of tickers to keep the example manageable + main_tickers = ["MSFT", "AMZN", "META", "AAPL", "GOOG", "NVDA", "TSLA", "DIS"] + + # Prepare data structures for nodes and edges + nodes = [] + edges = [] + id_map = {} + current_id = 1 + + # Iterate over each main ticker and find related tickers + for ticker in main_tickers: + if ticker not in id_map: + id_map[ticker] = current_id + nodes.append({"id": current_id, "label": ticker}) + current_id += 1 + + related_companies = client.get_related_companies(ticker) + for company in related_companies: + related_ticker = company.ticker + if related_ticker not in id_map: + id_map[related_ticker] = current_id + nodes.append({"id": current_id, "label": related_ticker}) + current_id += 1 + + edges.append({"from": id_map[ticker], "to": id_map[related_ticker]}) + + # Save the nodes and edges to a JSON file for web visualization + with open("data.json", "w") as f: + json.dump({"nodes": nodes, "edges": edges}, f) + + +if __name__ == "__main__": + get_related_tickers() diff --git a/examples/tools/related-companies/related-companies.png b/examples/tools/related-companies/related-companies.png new file mode 100644 index 0000000000000000000000000000000000000000..ac9b14c73a1e281835da8e68ee7b9e9dbe13ef23 GIT binary patch literal 193270 zcmd>m^;?u(*ETI7f+BE(#7K&C!yqNn-JQ}g)X)tgD&5jZcXy*8-Q6hNNH^a#fcNtr z@B91*-w$$lP3*n)>UFNQ=d+xQC?+}~IvgAvrnuNU1vogQIpAL=DhlvQB6%@292^3x znUWe*O>O)L;$(-p8jg0jjETLq4itp`=0CG&Np>G&rXS6hXSmW;L?;>yRjsyN* zJKcZde{c!L{JZY~+y}(S_^%v+hkrG}2m*-T4v@3VN&Xg~Bk=YLqHp1f`iVB+-~`~r z-w7%?!*9<$N>mzaZ25D0B4Ld;&5-&DA&t%#7Z=0a;2`-kqex0y2tAdEG%FQzsl_(B zIUS?9L7Mz~K_$5jx>ujrI~hQD&%?^f8yha0m+8ul9G#4JduI=LQs`Lix40MVo%(K0 z6AxuA%D%{93&6o6{hvQA%s$YLqBj5k^TyqWTkt^ZKmEMn5Kuw?`;Yez1f)44loh-G z`xfwVZ0Hiff8S3Z-WT%3&yM^5k^=0ATKDJi|Jez)`(g>4AZLJJEzy6W1P&m?8Rfqo zz(&nGHQ`69)|3BoayWpHH;Dh0dM-MF!9IOChJgQeaDb5H|GFF!5x}igrdP2-|Bcb! zsV@fp>v9NBFtDNa|3vk?{NF5weOzEL*yO)02L~U3j9SP2xO?Tl9vl!G>wjC$`~O?9 z2~Z*Zm9;UZqLCM$-g^JUYEpyXe>e@&Lokz8K~qaGV|Y-xcQmQ3 zm3gk=munvk+q2pGOz@BUB1FU^fBvK*80C@Vo6%q-Fe5Y4o!}s4-3fz4Shp``ktQuP z1atn~7m(+fHlUCTZeLICg^iu=jWRudQ6qyFJJEfaGS<1sH^oxKC5v+M1@e4mm|Z!- zB-UTUIpSYg|;|cD=B6sZ^yX&+xjw?EHtcd6@F<+@zn}zr;nA+FCVJ zs5evp!hCr-fUl)%BO!W7xzRPMpHBgk!5 zdkYV$DpfSQN)Y0h=oq;e5J`|%|4D1|B)s+iMWpnfZH<9qpp4-XEDI#E%BV zkRNV;T~iAh;38yR*;~_L(!N4Z=f0gr@aNmFT&-lChf? zBDsb5+$|a@)_TS3BBlN&Ux`_nRH^Wcx+n`O@r7k=Uj6l#C5nIpl0~?Ggnw4Ekr`$= zIZly|lI3_^RTR-&W>-&CtNH{D4-BWNrNZdcsPQt|L7HWpuvX1F*dUN&5O3pv@M^Z9 zQD@bQD1x=%sf}uc5yvy!nWqnK-iHHF#ObgS_x$ zRbEZ>=1tvG&15sfAY5(p!Y;>-{Fi8BY+as0>7+w=J65qpxfNO0D%}J)7|Y!_80ox8 zOaHFlf`$#n(25<=gK^9Ugx;&GO+7+7LxxX0GhyGy=~Jyd@nm0X4o6u(iHxW$M*jsn z*F>qjm3HCQ!GVN&L!ClDcSXY0S#2nhOELj8+r+ktJ(;UIo@lKayzRTXZ)B9`5QTq6hORTg;_)Q^dr4n+*PH` z)D4vycr;s4fAS)cF;q>Ex^I}EA`OiRV195u0%ZEpQsBYP)2KE6GWFefZGsBOx5j^u z9{>mqysS@sPxw6E*FWP=rc`!zI6h2xe&2VmwQ_vr9=W%W!fc;Fca||O;XO3RPCom6 zi289)xt|Z~+D_Pv?#q3={}>Hw6=1)5r~HMYFkiY~+Okvr)^4&BVJP*Ju7tR4Q^8e* zNKA~nIue2$^n+%x?_-|D)z#G}+tEhU8_pIEg|l6sI60kg9UeS_4+T0lRFaIN`t6-- z2E`#@(dUGjllHgK5vYKi)JBZ2bs#Ra!z8~r%uAenv*M+X;Vs%`d}TMU=Xooz{yL|1 zCGS+t>~}=>A<_F32})nx<#uTim9T+KT&rq?jC0*kHKRTLd|DKL*XA0PbA)9?Qp`-)%~U#GCod0>P)w+g`s#H*2wzB^^2f~26HK)*xiZcwNGdYahf;Ibtnb9yfpfI(_bHytv}g z16#rPp!M7gm(;$hY(m1DoCVa!!UXiBKwj{kiT&)_-KD(39try(3{p|6h zhaA(}8b}_`t1Qg^fvp3$z4#BQA15xZttDvaHh~NmQBAoE;ONEtmbZss7uv`|=$d?>s;wkS{MdF=O7b z1~o#!b>BEv;$y&zLUGV*3*W;JPxey!>L9Hf5RH2y6IcXDL%w+mR7)^P$Rb=~bw>e774M{39S7aC>)B-Y3;I zfi0~+$_0DVOeNb53{$r@Xh^};eANNLF@=5 zx6OIEf=fmB)>Wen>LXl_N%}QD&8=HJ_QGPt``bM6#`yCVd0lwRvO_FB)qA~xgO>#g zr^9!g^5XZD*HNXy=WGYDP3;HYisH~~D^g}l(`^$z7OfQleew~RSX6v^|3PfAJix1D z*x9q*KR;u{j&hhQ8;;MAW2O0@m7mQwKpgmv=*kcNl*DI46u0xsL7p?iug~`Qo(eRv zLqPPl>-rx(QTuZNc8A|$h!1>Vt}Q@dAY!QEeN?td2l&HkG?%5psnS;p-Z+}N zKIygHcFnCDoD@_)IFGqdn&aCzz5Xt7U^`f{ov{%6;yxk*&NCMqv>t=*u>1L5m3)y; zNTas49OkOFb7IBY=dtFOkzQ^1^BwS*AVx~OY+bm~`kQKMkpa~iC9xp;gOC&!BWTVK z=BFj788`AQ`YvBl#Jakh=laS_(`s@+j!$#i_8*Bxy8p`tpH$!w7!tB0GB9TO2%t&5 z>W^sHhU$hmYU=3Fn2^l&;a|rwNIO=k>#}8G1fMy-4>tX%{g9ZUg0PVQD-c{an!eLG zY%!m}?B|_sTUW7i`hPYh&Zm^DspXikGEh>XN3linYo}#U>F7kh(!ssH437u@>n%_Y z$jcag{=r`{`UrhA5%(Dosc)=rlE@<7E^d)_G-k@uT2;F(E@z_t$Le@O_L+v?gA_`E zpctqea(K^xeeV{d@j4UI!r~JFX`bS=5R{S1S%wsi!ShxUu)&2q@_|g8*Te#=HnW$5 z7(>}OVaENgfDieCZC5KB_KQDzzJB&yhGT`28jV_T&K z4dNG-2qunNf=St`I96Q64(mTmrGPPY(`x$83t+4HbPVj#%+S7gLolgsOy9zvDjKh4 z>)V_a{gFQ?mRR%EUg5FsFviGFPQE8y?R=PD<2erg4bl~OotBM04^=^i#^O$;Lz#_3 z5>Ob4`DIAH7m6&nXvh+-Jegq?Wf>VUylqvFFu_cX0odXSMs`USe`JDAm<7AJ;xg>oKByg1Zub_1$a4w|?3)iD{2=*Xo#*sGbq~%5Q!R|+Mn%!9X>pGJzNTbuWRgMGb?Zl^Hz+7Cr z%AS#V))vZiHx)&b5-GjnEqMIdGwI_$)?Rbh=3=YvTGZ(%Yju44Ssqtf8yqf2+w(rC zISf}BG7$INw^<=uB-Whun^$he))7E5Y@?i%^EV>}g*^uN+a_5o^6_7lb^2)fuJPAH3T}f8R{Cnh?x8oH;Skb-OoAGynX9zqc(=t9 zQi1oC>-wf}xZLey5JBQaxENuEx)CMLS1!7lP3l`J>Gf@&dIy!v-s>6-8F0&tplFf` z`1%vX?pM?(zh+WgIq5@$#}@kl*!jC0JLx-D!+}63rgkJ=7$o&e!=R_|sZyY7!1C;m zx~|NQXQ)g`&_l_W>NQy^t`0pCQ_vB{s_`CH$?EQ@0K9Ia4rIJ&%0Elj?Q6vb5|e@bcA%DIE3eM-B~J?m17Ye|l1Wgpv_ zdkTs6z3R<4ZZG2LINi0fsQ4YG1FOGLlk=9#Dv#~C*S4pSslYdhrHTu6Qy_zcs>KzF+9!EN;MPnYX#}PO! ziu$4NMJbER7{@QGGgnE5(nR@v@r#VBz_pF#o3}EG_gGpQmFd}45H9qSC~TvY1pWz1 zCziBb#5u)AgR;u1#Pc>2mIb!3FvAfnwb{p(pwivniNb41KP-y|JnxnbUBf~iID%znRM45S~N36UfM(H2K5r%ZI} zlVfB|6NZ(G?j^OBo%o^~w}t2^itboWt5B~bm>c!B5OME)LfD9*MdBv+sV>(>v}T>3 z{n?_;zP33G6&?{vvd5TFobqL(c8F<=rSQV8MTIBHWN%)lqYz@!CRyFJ4o21m~~A_ zA{rN}SyiO6`9gU9vR4DHNO{UBl&I9WL)_Rn(tY2^FVRb^Dbek@;*til@Uc81&l+!C zJ9@*4rbR<-&w*}FwdCn6n+uDcq69n01HhDW#q2nYJ#17o1pCh^{6BBHee%0cY{dKl zvsKEmmj%qWr2|1n`|6t5qD|Ak5^rp24aeF3;Ln@A0nHWPbg{6-s12;$h1ZSsM&0YJ z_2a1ao6|!&9XhcC627+kC6=`ZAM}Fj>g*jeD^GqsIp0I$HLOm~)ePPD!&EMFapUE$ zPV;bnK+$|C(AG)QXzmq`i_B&Y3>Vxwi?^qFn@`S|ZOX}g}D=nyrVaBYOsfvH;1 zRS|tdpt68yBxWUx-#n{ZWaGGM!Nlj&hLv%)jx~wuE_t^#B!)%Dr9j++3sLqH(|IM7 z*$OOC%-+b^*~bJP$0F*c!5{yo1K#yWES?s)PRgIB?-B%O`Nb1;0Pp%-xjK>amQiJ) z=)>)cyL5o?&QF$IrV_CQK~(Ce z4vm#MI*r>?Jlq5MArQ?Y+s=5tSqe_i;sE!x7QN#wEECH}FRw8WHOZiM-I@{CaLOMY z!vUS?Q!|$LyNXDInL2M zD+13jyK6vpw4l5T?Vz?*V=Hy5dhWUB|<^t^_)(HKWxw@vo|WAz)J zQAC)32TdXrY~XF*WFG?(^Cm|C7gks*Mh3|aGG2u!v3v<^*gtXP9**a5;%=@H`G$8c zmvnKmKGldAJH}G>>CkPr)Ytk{vz3z`M|4?I=)J})JQrp~qoNAs7Ux9wq#*af(tGrb zj8|%{93zSsk4X(FOa9p_qrl7Z{8e18Vi_w`I0P}|#8mzDkcQ;~say=9(=IFvIul84 z?bfTkWq;wp+}#KLg7N~|mRQ7KF>4;mFVO z@XgA~(6_{1(If6`e5z+C7^tUtQ9a(Js=1Z9y`=#Ip&7nvfsnbMt$S~nomxdVTs^kv zu5}U#Z8SihKf-zxOR|*&PA~~mg+)7fq$`S+BL)6rDl1sjR{+`gRpvN%F?ks=jHb4M zEP@L(bHGEsah z@^xc@-_G;|@${J%7E3h<*&?(yYqP|58{u=yv+3VO!T!ymCtq55ZmQIy%W?{2WQZo_ z?1Lxxi4wJjg?61Y-#%#y)2m(shoRqNMIxX%PWo>z?+6gbKg*i#KG^VK4>9l=($#o$ z+7-cLqWaSgy!HW&$dtZLmc^ebjH1zsz(#Ud+QTk^pjfs02Zp0F%c60efY-<43XzQ@ zKKuNsw!c6Cg*pHPM6}it!%`e-pIc2Oefsg;g(23Z0`^3_Xy&)H^Cl|UZ_I~|f4=&R zKln5!@=JmLKj%E*AFN zbE?TyGDBotEc}!&|E1b=xych9y5sFNUbTwOh{dttoH*>FBgJFl}v` zJZn{$`#16PSq9)M$tG?mSjFr9vZOIf`~r%lSvZGZXg-4~og=3nJMQ>MGYwA-QWz>M z-r!xdCh}Q(vGp8RK_2Jw9Kxe`>x`Xe6*0lTFP}d9QOe_<)K4G*GJjMiOA%NZzpl2( zY+;_uFuHS^hK9SFqWCf(WdFusd8XPr)@i|`S~}Lq*jPee|J!2%mUndyTjR#f5K~Lb zsIh!iNpm${^fXEC`Po0Qou ziO{@y6=u8ivnx+I->@Tun8o(@J6bp6nP%i7wbHkF`T0B7efUe#@8DVeV~=Oao;lPk zg{Zz>*$+o%aV@DXi*}rRWwCanaxz9>t<*J?{?&0d4)^k*wpIWVj>vc|7+8e*)jK40 z-))G4PqnTOzfY^&IQVLrnt!8&enQ(RiO9Z}nLgxvyL@0d-l8ZxnpU-HvWT?lddIql z(d%5YtFyD@)J#uykJ+gEdF{=`Rzm26A-WU)@yA5R1@@Dw%f03W&&Iu`%Z!Q&B|JJc z(A1Pw_PcrLh_qvgZ0I*ALuxu&T=z_^Vg@-$V)Kt!FR8(l_q5&l+igsMy)QU$kss4O zbOFSoVPUh&UKbWNe<0M!T`o6byqWb~&*N+Gs%k7s5J$zHo7&~M;8{2iNwn*x>BF5V zGYaGd@1)#bWfKd$07G+v{$c(;Uz|RDHPUML!Cfrcasmc(@(=#d!*c}U;bs-!}#3QLkTEwfHFwv;wCAfDIneM21G z^yWEUuH(%dwyNLzfHnX|pvPnHhdCz%2Dur~vplRPZ?)e?78CO5wZKie?KNsvmUXFjsbym@7#rl0Jul2?UcZh|l;y2- z@j6R5KV0i+M63#3_Vp~`NTPS~;OT5x(kc4^UZeAa zmEl1>OrOWJhpT-SIzqbxUN_}Lo{M~GBcwE+pX%{ePijl{Y-QwF&#)uEZ%*SGAmXQ! zjfpEbMYSNg7#=RX6# z9L6>`Hx1jr;40|oKpypwxGX#rf>_L>dOrBGvaIXTeM&tMFSrJ1eG zOw&`ntC#wp*wd`1rojaKqql-T1^9Z|2w}NMi!$Jgw<7Tm4h;~V;bX8d}i>2lYCwA}Oh;t6RlyT$mV zAP?rG)qKMgp9&%bi~p*G*tz~fmJY&Zy&Ywa5{D ziO9)Q=%GF12*+K%Pz}Ix_L8!4Sg`X5A(-6^&r(iT)VU|YzO(WK6-lcj7_ zQ%`lBlZ4g9u(*(mc6?p2)7?2ut@OM+i7Lw}vH%iS)4&~fQ{Ba3^7_i=AJeWq^wkw= z_InYM3}#P0#YeJDA-CTmfbE>7z_&rO$6ldBZ|`Vk#0V2>?P(O91I*UvIof&-Bk?tE zMnpIec|E}2w?n=xE}^bKKEu+T?q!w z+XM=zwA>h$+gcP7K@EH4)gT)f*_+G;ZK&Lr+vO|Y0!SjZiko%VP_xn(W%#e5Qx#^B zZ*I<(%FM@J$AKO4h~JE4pm|+y>F&%dxNa31uq2D*g%+J=`7{F7uFBEdI7Ue96!sh! zx68JJn7Z6#08hHX<|lzkXNGv>wqDr0#m&`unj*=-o5NnQSffiXB(TN+W=20UVf+<1 zrt-Rq^X$|bb%*n7;k~QQ5CiEob7YFe&A_T}J{&Gn=PLKo%6^l=FSChKTg@?Md}iA#vMgcC)I*;yV+N;rfMC3wZx&DITjP z0&7d3{&9Q1-1k04Mh<0e1B+M0u6o6EF1O|JA@Y-d!SWDPq_tapuJ7%_cUg)Os3+b$ zjyRQnCdxy5q5&l?HU$pTH996n#L}0F-T7q7WM-R_d|rlUhwXed!Fn6{oSiFsMiXB< zy)fPF>ShhUi(e?ab6{YX9_*nUSVVcUrF%Q=Sv*mkn;SmoIMa92%dd^IZpvF-r2TSI zlpWdjTeqGQ_kAN)07Qdeb-Q4v0O^swBc_2amEc)VQ_-;9z_zcjhO} z5v=0#xadq3^qa=4aj4vh{6gk-vN;y$t*QF*)_yk0-sznSN@#T;lMl?Wh$EcVSEJ z?|(cP0lBbu8zl)xT=>If_jlZ;0zfdvhy7&lG(h_~7l1ve>!^&ir#HGyuI@P4E%Qyy zTX|zxc(%$TGZaK~<{OUN9~$q>DQ*S9AACihw9%y`or3nIVV(k$1ZmOuIw`* zmaqq&fEgQ8&})9$z6nJsU|=DFl?sYO7lM zu<6Qnuf74_zW_DbGoVxhsWHIx1W8cOK)$L$b9aFzE7RibFe|6tVSmKYqGOcQOL67> zD=Vo%mYCyNw)b>Ku`NyGgeHP&=?a>O7MONDr8jzSAMjM4HdtES!0ZGoyWDAQx=PO@ z)<%XP;O?DEN@P0{j8W?CbIQ24?iD>fn-t@VD+$(3G_t(MO76J(LsQ%Y(tPI99nx{9 z@?s2&YZ@J5+xPvjmX`on_e9W+0PuC79E3IL{#aZ-qMfYt*^B4Hv8P2q1-!MAIWr z-Du26i`FKAzX>qBiKlV?>>ebZg`HA#L9Ev6d-jKB_l;ZHN)06PcEVwV0v)Ho2>#W* zKLCXh!O(2mRR-YMyBL|_O__j7;qkyUaNt5+zT3}I%R-VY{%6oWSIAH1rhMBf^dN$- zTbB-V9M;9rKSZD9tbD%LSdcoxl}I?9*)A;2I#XLj-HNUGp2((d9E^SF>f+>)ndoA} z$(&|Y}{6pF$5w;cZr1K`B8 zi(mj8lGx(G61w4M_P4z~1aJ--8!^O~2j#g^w9@100GX2+>I3u~)gk?0Xj?x`md*{q zxcucjO@0(9@o-_f(B$7K#Q!-bD2O{~202Zh*G#6JTkUE|xJfGTApE(G)`GO3{~GbQ^zaD6q%Dnk85KMz?(NYTP$^f)8t_)H?|^xh4swyp^z93& zZ*2zUXQ0#Dw;Cg>5AYQzObaHW<5dVuM0>~#)glT+EN?XD%g03yC0vZ!9l0+DA$DD* zK?vf;DRHUc;^<+$Zf@5)u_WSfl=2>2edsccR>-+mN_YiNx^SfuP8DN^@$Pgf6xJja z6P1Ty>MfE8s>yO7Ki90TM+{gE8&L|FHN;>tO$MG2Z_U@q%n>y2ii@^t<)2a8)Z!*y zKqI|G>OD%Dx^L3o{%)&bxzBM?-vI`RC;st%8qO9?%faB=^7*OV?pzH*n-Q8! z(d}sRSW;bVRZVVgK6qf+wGLOvkW0JW5wa*W@^r$*t0I9aAnsEB6aVYB18kco_e(#4 z`1(5<~g8a{_l^brJzI z6JuO_c!*Yc>^RNBpir%Yt&xHk<*Bt0i~lFKr%pg&^o~%}X`StSw{}BebI3C5BEa9i zaG8lxSUsf9hWXxFvDfPWwJ6fGrGV`w5QGr<(WooW;*psA0$Z)gNmf*ltEO=F zLJAuz07Kjcu(4&0TmO-8E8`1;jKB>~ZSt+&fGX(5nb?HB+crYH)Hf(S&}A16Ys1l& zx4Zd@QJ8vt_S=&C@>kz@dqP2qEKhbek5~3&Q4asDN?~D?km&NKkXKoE>I>L057Kaa z!S9efIgEQfdAFOWO@mt*e6So5)+ay9s7Y9GtFSZ0+T&^!QE|jJRgx)FAZQl>!3@_t z9P8KXyYaJIz9Pq<C?5zut&2Y(Sm|6W8hQ@cse7X&!;z zqv1}G&$I76MILV^Q0hXgqlScLpE{3tC&+m5Udoj*Q}6Lj*0_2vUp=s$Oz;^P4^@ z2vj-7I+{CxtPz%Q2~7&1yfWL4PvVcsYw zNB9=RLk1#~E;$#;#pY+GA_JU1f1#|8nvC1q|5J$(%L>n_eOl_UcuQuXEkS&)GE3d} z#2c6`$iq+#+QUwg09&*>=9ZQ*^V`Xgx@^zt{Lv08zegSfK;M8;@>zFJ``vQ`RcfvcGd%&nOkKDo^qxq0L>%nixP6w?THSb&)x%rP*%gqY z`Z?sCeV%FR4$yY#*^cHh+=(4K=)u8Q`E%&j?IZNH_p|b-XEpgiemnvp5#NzrZ?`J7d8IvF$I1-Z6R9n{@9smK*977ZuiK z33AZysZD*I(46`zx))CVNIgywYlbJk&$RwsRf@$!??B)RINEQ{W%N52%7+UoeR}{N zM~VT&G_IA+Wxiorp*&MQ`7G31apCepYv8g*C8jVx7B@wOQ`O8wWtB=CpBA%R`8z9f zD8W}+f{kF7IiQhf<~)Jm(1*VY>n;Q332Kdmx9vvJ=9Aa=&>tYWUQItIg@@%JtULxNQuB~&guuU z3792e?^k-OOZHHx?mN6!oa7>w&PlI(MUTw3E-7B%jaHM(4&UFVVefG74}2*AOiip& zTJuhK4Dbf&vIwzR$U_a9u&Eti56-))CM7SAAVSSqDN7M98gc<_O3ItJ)MGX z=RnpVxM4PZ2f$!gd&}^Q==P&Ev`bIzBLAa5%7EdMdZJD=5JF9hvV6}KxO~Jo-@xlnekJ37%6S;;wF`ESx z6(i|1D#VUz_9KAO{`%rL54EOVFT=nE=vEbNPKo6dOB|m^oku_K=`1-8m6WNir;v~zagar6=~w`O z4r(*hE=O>{^YCsr9QH>7Fp22T5Mo-OtkuhBO}{jac#Z8G*k4$l?tt`7=2X+cY9`gv zWbMN0c0Hey1)WwfDG#2LxU}0o2Bddav%s{x3P2N_vG08Cv)4A?(WpB|a}{^o)=?{o zc^o?zZcaGe+NK>Qw5ca_y*v)DZ;y+;*qgloe#{`v_4Yp{7wKf5(0b1&;owk7r`x2J z>~-UE-lKbC5SqcW5~Ub_y7hv1B@4d#>dIZc)-JO^r%~ewTpEKB^18%N=%R;*+{i#V z$UPZl!MEXOLR?dCIqo^ZXNOR{|t48!~Dua5)J|h3k#pDvn4UO?zcYbf#DLY z#=Rwey2Xtr@uTD8(-N@$K&+0dcnJTE^QA?9BKN`Zgl;vhnwr`x01I|Hj1AG^*(xYs z-pntq3Qgg()=4>+J3>6HVW+g6?qA7dPM3UAs=| z2XvKokXSTNgj)f6!bEi z(4BVxQ}|Sy9+Qy*y`&_Lx+dawZuo1GF`7&Y8Jqqn+K1T~feyeWf=~1r?_3Q665q|) zdpFl?nd9w|>`;#YlVq2lp1encLObEMb+U->37NJE)=g^<4(!fETQFD(8@iZ|kxbdxPeCS4$4E7C%tXtQcQ-|z(`;0ay-f$@sA zh6QE_j*Y$9njHPT`*45V5)a|qQHzHSJJ$&70Vt7zy1JRF=md18#x@;*bb4;wcWc+C z(XgN%m7#nWVlbe_Z8~@NYS*cmHkALSX8l~0$o7Lr!@1~$F)a-ZGpT07X6fx^^X-g5 zf;w$~0X+Z@KCcDvm7UaNw3bS)m)%(LQi3?N>-e8>)7mW7Y%n>@25EBIgW?S@((Prv zJ*~k{f&72(LKLyjvp_xUM9<9H;zC5+QNf$ozod4_R-C%P`*^D`80P`0m;iWZF zb$HV^P!P8P?@eRCL;7Hv&}4vU|>syW`8 z2sD-$v+E#sn%w$1MS61>8e%h2xdb4ubnNWxeG?OI9)P|d0BCRbSLXNMWj}B5e#SL0 z*xIMSxB~P5@DC4*i;DW2Ql=Izl)avq$E*XG za^-yc0|bC=;{zK$g(4`!;>s1BO+WWqr&)HAF{iw!jcE&A!}_S4wzagRGnJx!Z<=u6 zGT^zanDgF6zS6R7$6dvC0VKbjn^`^YnjZvU`moMjgZ0Vw)QKBrzsH{2g2g;!e!VdX zwa&~&3=rsZ4&q$gHob7>;8XT>N1%u64}dZrUmTOIpHUaoIeL@h&sr2WZl~z?#L!#V z@@kU~Bi%YI7lnMn!1_S1(=f>=>*Z)RC>?05HqQTwjh%f;J;{M$RtSsNFm%*otFW4a zk+Jxkgs`*zXjpP*Kv`M&Zfu!mBo0f2heK=@OLpPAen&ZM}j{@d#g=I5(}i;^wS_KPH*iEnb_s*}SBaLIoI|8}t)p7Sf=O zH$)d?(^AqQ2irwFOM!Wx(=)MQUv(>`e+m_Vy*&~zKxc;Ja zEB5u`xHt#GTpDn+QaLyPKS}0d{|8o}%(scluW96q8l?G(OUEXYcOVkqc}Ak=#m1_Q z&VA?=XrV-?zvL2Rx1A}+4?ycU|4B^et>hceTrMGgFOYRE{4Mh(%8 zUmIfk1wSSI_>bdP?*x?Aq^dXTseapp8w2=?P>O^YvyrT+VhntS3f*JUr0+$U4!-zq z@AJLN%AJf0=;`PzE3gdzB`*@d zu$xv(p6DKXf-`k+hPcjI3w|V&-QNa;N2&vEvKICz5#3GZE>^VU7dM&f9srKou}#uz zOLL*@bc0Qv)rf7l6?`p$XhxV(f7s8nLV9}^&={hyWv0IBj(HSJ%roB4W$MYyarxV0 zY{Q3;jfFh+ccYHn0B77AzhO`9f#7HL-h7O8MFwdI5DnHojl6X8zNlfqKD$(PJ;vS; zD`op{4uGUb(}WSt<2!{1&=_Hb*x6<*mC)Hp%8lXPI8FLc!9bR}Y~?yB^Iwo}k-y^J1@yA=%)?}G=+;Tmk4(}~7NL0_s$W7j$I?cm z|H5614DcfV&X{_8ha$1rWROFk%hH1)mfS60seS)bwuln%s45=+T~}=UPyxuboCl+ zIoZP5@e232i2zWE0uyv&qz_CoL7-6i)F|ZlRm$gh*1%0is)a>89jPPug^4N@Xi=Wj zMFH{g-Qkf_5{lQ^uYkZ^AhkK&UV;+3sdj&QN*-T46TRfHTpSX?O1@fW_oU;Y@)tM& zLKWpe{QXERl2Qv2La$h&H_N-Z?Nmy|!S-94A&jq5nX8v{7qsuZJ{F~C!IuS)dQS4y z9@m8vBEh=+Z_bw^9R=tBuPMo?USS&Up{4qa#*_?2nlL@H-0b2+@anIx6vx+-uFi1LP#*Ja}J2DX+uGQklNvOG0bo3+4e4sB977(k?!CF~l?d8WJU~w4MR8 z=AIX%4^m0Tk3zHFD0W>*_MA znW%(>-XKz-Xy;(X*>tvi3G`VP<3WFq<6FVL1n7mdRcsdh0=Y-XlOFyjt;U;(k0m z6%ig2d;L=uaFZF#^+j6*^s4K*+Cblt^MnpsjYHq(^as@fRRXG|ur&Z{ZUQqBuk`TT zsY~CkC6RtGL@!tyKexyB{NTC3^qpSo!|6l)wx|NsZ;%~=&AaPrix%+G1tmERKV=FQ zw?2YLxp2PPt=kpVJ>IHyXylPfji<@f=3ElHPyVpQk^r|mI%R*CF8IJh+{_K*S@#s_N9XZPoB566UqcLKWn_Wy!8-e~J=+?WmFYA@|N zF1h1;yEF(tJoN~7t6Adx1<#oXt}?hwmSHKXBru~>f8lpOFNq}AQXp$Io{tU^43Iu? zV?oBOQ<%nQg6Cu>TO4nCdS4R*eykB@urr*akMF8F0l;9_8_KV_kX0w_(<>NLuL~_m z%v<`9vS#=r9{Qg!L^GTc?15e^t^>2M|YjtE&o)0%aS zO{)dzg;+sJe){!SDZvTabl?l0ag3A4%2%H7Jro^q2qZvzWVKZ$z58xIU|t>A!DBo2 zcvp%?%DeJ<9K|9ZusH3C(sZ_!>>dc#$sR4T2NLzOpP7|3&EFPe)o!Gpc80TU$zCs^ zm`D~K&xp!=3=_yu54gXo?+LpKzc!y~bw^w>-r%C2ctL8qmoG^WQ`hsW->F-p^6$PQ zLV~Uif8xk%=ukT~;zdlmhR0t}}_e z{v6cgn!a6a5<;XDMIW%&M~Y|p&&?g~vY#ZN5vlAx@tW|%ofKdp2F z+oFJ@%u`~@%yjP3{hwF`tR|l1)?OO4?bl^SM}u$bhY{V>pH}?S1N+SY{a|m+2C$*- zuLj_10cFQ(hcmm(z2&!fz;thddK49=dvL&=ZK~Y2VTjgL0_B_2@K){(6|IarHs2E$ z({a9hZvH9F=)Zi6r`*~06xmL1s9!H(#AysJF~mFJQeF(WO)cl?uH`dQz36(!CsYb; z?|10p)N3E_AKx(ozaSvI!hWLEus(1yK|ok>V5iSpoz$4^V<=Kndnw*zrIN{u3EgeB zSOI=u01cxi_xlHZ7Z!7y@)iSItFNSQu{#%mLkR$%8Cq;Lo$RTQcz-JuOf? zYjLG&>yvPw*o)CLi$gQC10^%g(`&2pw~j5+qE$&y0Vi?e7W!FXKWn$0aA0gcVR_W8 zy89XJ663@D-(tYi9BPEh!zSc_t7jPNouJ4ewolmLw^E{CTq?hMN9u~~2+v?mdtwsm z+B^r4dW+bgC5N3V&Rf=KHs#i;@txV`SGwp2tSgBD)tyP@PE=Z^9*_S{jpYNTUVZZT z_~CY+uQ$p(v@JF+4gVLDE@b?v0a&58N7ye*kdA6GYb3*u5DK+#zP0(O64zX(k`*F3 zw_YX22i}wxo#$mLehcyPcbF&RF1my(8ZL z=q)oe0+Ja-um*Pz^iZ01A+ibN4ba3%%$<+wSW~`UR}XucUfBCh=T*nff;LHfv(Wt2 zC-(VAp@Yp@@W%)eKX zFeRV;HgrL>1~V4qVmzRX&Na1(@=oA!y8>?GuY~*aY_reKs{iP$9L~+6{DHnKTkOnu zMpCQ1eQ)ULfROl4UR&J>2{p=FykN0?NVgOkr5Z_tWW~!FxlV36V)ou8OVPGJsM>L| z3r)e+ntC_43)giyyJv&78f?p5=mvtoZDcv{1E-ddMnJMw_H18I5hg~0~ zCKi9#f(d~tJ$FLHH}1k|WlXZ`xzzs1fKSf8x2D{9;a0c(X4QKRRgMc_F#ONh5F~os zw3^-z;^+_>G=l3 z-NE1c-Z(vFo(yM!#|*l$GV63opMAW3)9!Kr3=pl77vDS18sJWM0&Sg-#C`U**x*g2 zq6XCP7d=&^fvV4NqKXP}i=_jCS6zm3dy!_-o=WzW&RD#ALZ}iJpFsVq2s~}&d~2yI zn=gw%UVTT{|N0rEYSeX8rbxBcVjoUMsc&N~*}4FI;ZaDlvj@Zrw!9?jHA0SCNmG9W zNfu`6-C|~$6Qr_8_J9d5K*!D`0OE@4B7goruC6jF%C2h*0us`tASK-?NSAer7U07;agF=)w1T)^a1*=8JH8C(&S$gH2e$228|C!y4;8 zzVB>M0*ZP+y@kz2-pr{W?S+xrKo}a=D#qQfkucaEh+=)&{xk?G1seUum{P(&$!5K! zUi8v|CtG-_FRx}%4TLBv9%LJv-@nWHB0=94S2kBDi>tCZ1KKsiMn2-m{Aico``#B6 z3a#WHj|mDEZlh(me|tPAph+wKgevM`;Jpz6l8kWW)IS|0kzNR- zRWlz83=+j%SYIq+<;B(nj_X^buXz{9oX z8G!9hLbwB$bVT9J=d$2@4YGOhL!0xZDF%1-p6O( z+s80^7?g$umgBLZhx53cj{BIFE_T06>x(McM8wwBHjYX)QY^L~TqU=otr=s!y2&$} zIntz?k7qW8=}~$Ixc&Lh-0gnvDkbIuuPEi}`r4xj5dqY)`l3O(r-%E^b}bo5OeJZ% z%Ax4KRQ4RM(xK>CRtdaweVY0i!Ord}#^wXxz}-EtMp|PC?cta%VKErn$GoXqs@FuL zUx?I!SO4^rmTN(H$&-YqRJ3|D+JilLnC`30NffxYm#{RP^|uqU=LZY~wxch{qf2@R zq1GclesUzY&_}x+^pcrA0Atv&YHFUN8HiHR8U{n{b8`Jj=4jd~t{k1>UvV|ph)T%y zcI^JP3IEHe*0>Fc!!Y!wt~T;x6KxkpZD|4+z_#P@LW0!q@^>q5v85@)?Rs)Jcsj|Q zY;HK{q3c|lr5?=u>w9p(lNP;)m3^T}YA7`#6n@GC5|tT{b&J+0mRD0kRB+7N2>%4! zZL4Tvi^J6*J>2YQP37xgsr_aw)nyYu^k7_b(Sv|V?g?cC9ID~io%%`oH#R<=T?#HVryw}e!30NL7 zUfymnsQiuu77&25RKFpN^B5N_L9sBTY^TNWNiOYS%ty=yOZ?C=uyqc2-#j@L#DN$I zh`vzG5+UC9rs;~q>3fz&N%Ypp5P)Q?eivu-VA}tOF$&h2N)wH`lKUXC8#o6*u>fkO zl$Y`rdq5K$C^uU6(gtIrRIs{>Q}L1XL}YLIHmTw+kwfL-sM7_%y!H4~Bya~b z7dYxLkw72FQrEWeKnH%!#mQ8(l{KufNuootm3yg9&%Tj%lIL(N{x}7FU|n`xYlN^= z%3+K!XY*JDYX=2ym$fje>`AP2cRv)omz>;6BI{+Uu>lMqR+M|=?coLmFf86%%p_w- zvZT}$Jw-LnBx7>YONuawCa4#oHcpZY3u~t{Kn;gEf^3>h*#+g~x)iB&(|S8b(5d|M z;2@~L?bB*b5;)M(=|IBnR>Ei)!sPcYVZ)yci$5KmWx;x|$QMv72kA|uY~+gXg_xl0 zGE@O?s_7pnGvW@0i)%l}FfRu~mAds|$mK-^8V#Rby@pnz=jGAhnN=_jvbB=u)XMXd zisE+B@<`2SbA;}H$kYfe08@je-xKlR8xPXlmEGq9wrkR;V!lW%4;xm1sBwY^Lwo_J zJ;r=E+5t6n&s+t-uz%JC^6XMfV7Yc2Bkz;#=N;bys7OiMMRKC5t#@b?p6B!rJ@Of1 zU^wsm1p3WG*T0b&@=ClO#;UZ^^hBXJj52ybJ2gZoYexYRlr>^^JBMT9SE{JWVpnq! z?F=`{+SPqT^-?t)yDuxBDjo5)w2b+`M_sc@?8?Q>$iEKiC{`}ZwLB=v$-p(mowCo z`CLC5#b-s;9?DQ;jVD9yHgEeLA*z%Rc#~q?qax$tR;rA~d#L7C zsz0skc&@ld=TuCmGNb~se{Dl^3x%O}X_KC*}-{0HA9iE|%B?(XZ z5eZ{1&PLv&nW?dLqJ4{&)>SF*W>0K`s z?*pqz6D0kbuFEGBbnWDK-|a6tA`IjfQV7 zzS2p-RyvAo!{EUh=Aj^BU{qL|^YVQ>OCvxgAmRg$wV;gxM4D=`R#`kRFHgK2^iEJYn z5@%=d$rqU9&^O&Qp$bf)l+moQn`I$ep&Pr45ETmJq=TlXTc@)u*?Gh*EXL~^d0Ak= zt8cw3MRh5HVa59;d8cQk3fvJ<`(4OleTK?MwLa7nvby4w)B;7o?4#I_8_rUt0=gE3`Z2ARrm!m8b z766(BEw)J>UBtkg{zDVpurQ)!dNxx0`MZNa13ZIa{dZwb_BK=dwDd~dDF}8zJ?7F< zQ&x)^(zwtx?M(#BJbbyDj;<-U^M39EH(%+Cd%M)A1Q-zK(Rh~M&66h(=djTx=~?i# zn~cum|! zEmq=17!iDX)h5>l_plQ(n6xA6g3K^lL6-@+}X6UKf&NB*Y%xX8g*?_wu{83Vv^;wGTNZldg=@^~-W8e554U8)Q)?NGSH7g|=p)%wcUsD5YYeiJH;S`jGa%*yWQyU zJA$KK;kskis#>q&If>~r2e> zqC)JVh*;$1HlKbMf&ix)dY_TROwBy-m;se~gN3}4pJmC$p`^x+sW1{~vep6BIuSq) z&Ggiz%P0|dPdi=6NM=HZKyocpg6)OOvj;6lF;^#?y%e_;di;|w$pr$j+)$>)AItcT zLchX@u&paJlQL&_bP#HWrBkFakNd|(xnZH?*G7(0R;VbaYroLu{ll@f;$7S6Z|gX$*!T1798 zJX8FcC$M#zl#?Pgt?m4e7cB$>r3D|tsy_@q@5nXD6+fyP2l0sMXhD;Uq{nO~43@D} zr`QBA3Rep0W4T(}CrMTq--Tfiefst%)C#8YC?(4w+18u+!<2_&K%2x*M(Yb-%WmU> zxV8byqGrG=+m=;LmhB3v%RlP_EFWdrmrAnh%s?Y6BkL5^Y03Xw`7ETrwUynS4CjM% zoPiQADx%(|qoLkZR#<>75Szf*#JzemUL8P|Vx0UXC~trL^e2wNFj~D7?yyMRT+YZN zGmhJR9aPC}23L#O#`4_`o0{qGmemj5(K^)A1vq^*)01rL2Ap zQ|S}Y{N3$2m~HzSfOcIU&s15Z6&4mcBs!$5*B-Xxh9)M`o7G>YPtpLh@JHA4cj|h5 zv7@zpwd}x9;Hq82b$n_@23YdwWLUZfm~0&QHCg+T-7t01wpHCD3RZl@2pC zBKS0gqg&SREGpkD<0mBX6FcR$V<{0}6rc&(wsF^=xj)!xuSz7rVeRGRD!m&e@J9yT z%n+*KZiE*CcKKv3aWBilSTzd^OQ)IZF)rr<>pc<-n1^4jT2BbWHLH~s6BFCn#nEA2 zZ9(QOeF{=}me&&|%|mH7YZDdcxRqtAR@N^mDYbuBkqd8@Ng}FsWG!!83%^T zD=tiU?!kXYz(nt4%0Pb29*3y7c!}LEfEHwO{bheSR#8vNHftRw5z8V9gY=350gI;a zT*G!!w~u(-8h)$Q7kw32U&v}tR8Pa*joJOgdmru2xZCY<;t; zM3Mpe2HHa0`W-$2A!WIHAjpy_CF><^8gaG}uFw|FyE%0Yg?RAu7f^So>gdAQXprxo&+?GxPJyzba{W1e!8>jm((# zMl;$r($dpQTc^gtRj;nCb>B}g(>MGoR!~qVjn=yArY`6NTI{JsMT1CdF~+n&U*FZ~ zbX1A$*-UT!-fRspy*u+d(e1WsWo2aoe2TAPZCW|Dy3Tu7Ro4!N8E^KJa#AZZiuiTz zc4ud0z7ODCp7B?hlRNWO8*G|&N20vI5ixueYv_9Z?7 zT8>R5NljWwWBbY;mN#ya?p|uCi2*uhRNSsg7l|^k@RT^AxR6hNj(cd1+ zqb;{P;}^-`zS>ART8+{WGc?S)Ni#0ptTq*oqKg2CB|6<9IKS@sVbKhDF{PT-)p(CWfIx`^;K5cxqUp9H zSr|+BuCBWO<9ui{!*M_Gdsc~|ph$>E_-?36`oBLl#w zfwfs0(}Xg@T>-yvc4gi{;N}cowmyjol<^CP{vbU8%zyWS*`!&nv-C)Bmi*{<=w~Yc zpEsE@<_gTDPb*6`T+i-z12#)f+HCYjrMHu#@7q<~zRS;Bj@{DX9hcaX#d|RI{4w(V z8GHf>LeWeG<2rh9JeU@Dz6{7+T^6+yU(5psYrp4vVWt5l+aZO(j8McdWzJQZrCJ1@ zGuZVVTa~$3k6{Kdk|&X-7LPMM=Q2|+`PD>aFA?1ce=yxea80)2bR_?314D|I!zkBA z0BSa0p0%KQi;A=Hjn$fj(=OXA=(`@?sAjAlHM{0FGWr- z0LRgR|Ax)w%9{PSmwDCgcHJ%2Y`*^9xm8rg1u7298goqT-ki@@oEtVui!=tjVwdX& zkib|S+ZGY6EXws%eilKQ5(qeDVIKg+U?UHk35z8W}Q z<-^h6qrUOXhu_Sf&AZ*P2K4p!mjl(OO>k`PLSYLMI&(znX%p{76Y@^dw6xom{BMXo zIR`_B!GT0ZmeC+(j!HpFAV>FH`gZANXW2oqW)tLfN>-Sj#ORU6-KmD<#t)yV{g%7I z#@S~C&V&T67e4@+8J@)&``>*McRsOuW8xVPekk_3^U(m^w9Vz7>@-zSEO#Gsz%YH zbt84$-RkXpzvx+ojA)|)$#Gd@?rxe|-B^46u$R9!rQM1}iVWTJ0SXAD)=fuK71z@o zjY(gWlR7EHQNx^jr)MA|$(*}I0dzVH)oi-6=TtM2w=&siaWahyHmnu6_ha-EiuMQR z7)>7QZ84CBV{VPHp$>w3f2g)$Td9&fl2p}^M5SE4Un$I3Qt9W8TVK_Z>P8$bdgHJ= z$<^D_S_q`_fpH8Q!I>)7M@s`JI(t zT{*G?wqTb82Iu+kX1a>?_e?$7QPV}Cry4jC!+hZUvUDMlAwyQVK1Uq&`l~JKszqNP^A}E?>C*gq6^>DfE9t7f9*wVIJF2~E>tu3QT0A?SL$->6Q z_F2-lhrnMU0=#|=CFfcQ}iD9xu_ zR7o2M1>0381?yxYBb3C1GWl;g>N2*o#gqDM)CB%a?KIx=&pS_KvB3QzUuGQPlyr5Fjy^~0y-CUVLdHBx&YY(7S3&>CU9%i{4cOfhK zv%@QH)rjRgY`EU^5vy9V_uim6Q7F-_XADw)UA0_z&LLbQR*tfez|I|47Atd9> zEk%)EPV`L2Fta(!lmCnWh24{|%IJ@$!Ith8FFb-+fVw{x5J%npoCEW1%6>4ut64t@ zW=DY~vU)-U7X!>}FrYtQ^4Ts>;+IkIB>a|~l-ap7_jB7bN#KP52Fj}fgt0p3sF){c zgnU{sXneuFaPMI~pL3`BSl?}D71qqVUdPXKe8|X7C{bL`JB)L2T^|AGXPom)M}{Qf zkpN(`-yd$+nUjwxxpztOWC4Yo@`lJM%sX7AmO*irI%(*7TYXm`j47tZHA*x>h{sQ% z`x7BH1Q-vp;3seopA)ht^c6kpNSiLNQ$=bIY*PlXhMF=a|9eIe3Ev=XWJ|wP*uxd> zvrr)CRN1+yK_dC~i$v!}l9*>oJ0Zh?nc+D`{|2y{$)cTBST63ua1JQJ))FD$fwWt(}w^NiiMFgxKS` zBl;sbK!mXL5Z^(Ic$_LykM{^6WpLKC7Ni)gAiXod@El0yGpIRF=5H<>?3B{C_5bhT z=};8aZPp8urhj%Jq_HoEt*iHtyM@lQwB#e0sz-cvDD0|xHAAGKpsjf6=CAlr6d}_- zzlpPb6h9z~AU;83pPhXQU-gbqM;0sRG8(n{SnKebzt`|V%Dx76O)RCW{&AoAI^lll zDyQ_m!0m&A_Z9q#GW=#5DR(*2K5qKo%La*n%Q&>V68>D42}hXKIPsNQaMs7!UqoY2 zAM5W~BJ?moOWMHdv(PR0BV}_)l<*_eh{yu7FhSxtJ|YLcDb9CicEY^jtX1M3tL!TbgzL3B;k2IB{-y)quPuo3vK@#w7$i9gFuS|lGfjz$*SSow` zN|PM|vw~1BD-$LR-RlkJC}A=`i+mG}GR1Lm&gPaBSN%F;$oQO%7M-@7HzHNk2k<$2 zU7oLK(4^#F!F|I9?s-hBf!0v3_1M&P#qQPd!PUxVRIe4D4zGVo#dOVvL5?ZFo5 z|6K@RFb2YaYZACB|0t0nihE}|QF7Po={ju0P>S!y7FJh|`ua5zJhl2vaMWZ30sq+z z;2#H`fF4UT6r(*Zgd&bF85`F~6l1b*52tn_nWC5!9n4fLH})$>%^P_q#*^r>nqoJq zUDD8hXyJcE>IJ+8jk|s9qkhzq1&iqn%gDl-yf;C47D5|itgGy6MWJpShqqzH1h@A; z%k}`SrSN}!{a^w$xjo+fKuj>fm~=#*?6tr=I>>Q~M?ZX@Ug)Bf)5}$5W`@G`AfSi; zj{*mYG5ea)e+TNfZE+8Pl7lm~IMeCT^+w#{-d|CqI(ZZLx%CGQ36A(5!@>tCgp#zO2*oug_V|_96Rqjy z4BS}~SR4+VQJRz~ee}f6wW{5g@=kL3kLC5sJiI0SPy%Crl;M8YG~s|l68Rje?_m#M z2_WE2=Yl5NGDf<763kJzWC(G7HHR30ifL}+x?VS!arvM1RPijMzg+TFP z?;lSLuScj<#)KIeEy?4ut)N_wt;1%HdetjD%;JWW=y=N7KWXQ(>q92iXjl02=29^= zgB`2#Zcx!FR=D8oiTyvM=}$#3DWEdy7gK35C|inmaE1v)o+bshU2r zHtTJnSk)3TLFcNKk7vsT2{pl|dR02xX0c7#7%1<5ybg*5#>jcnT?PA3+yneM^Q&*j)?0t@X zIX7uDS>1p9ujxa*4`RN2?WPL>f*8I}a60IwOWmZ;Z`vo+?8l|XsVxSThRAU%H3vbP z8meUIwAgcF9ABpQ+Ha10#9xgD{Li6}ym#i76O)GbZ}kle0&^Ng?E9NWI-ZCh&Yy8U zpGx%F?6_W;r*K_5`Z?RC$A1}Xk$S(mQxtJ@BR%46_`-nt?*R&S?|_Pa-=v+C8~C8B z8j!x*<)rx#YXz7lc`}exm8;CQg4yD!ReACtrzIEmjQWN*%90^z7^3KOacb+ii^5HL z1ME%Lj}G{L1F3-XfE5vFmP;|{7tMat@qIkKPz&B9*xP`6#w9lW#s{u3%gdPlNGDQK~skiE>k!St?g>k?LTD+p#BVRv_uk0?l#CB9HTco#(V z-Rq!6Y7nv3O7^1axW8xUwgnRJH5}x}JLsm@EoYHk9?yeUTfBiDK&qVgNkQ=EuieK| z)lWhYbpuNDrrXa|S0`F>R*r^^Ruc5VGwfCOA+mG*=i)udUq1hu-=X`R-drq8v9ebd zqx*DB76W@9@`l1?>dONRlU+6zyl)}BVD-Aj1SY!e@WZ3NQCAXSoSwBw4sHBWvYsEB z1&wMWWrvsF#9MYYcIT%PcGi`Y%+9)Cd)q zm)BT@&w=Vtj)A@S@8d4$o&bu25khVB>nTVy364BNGc?=|cexfy=Zskny!)uue_Fl0 z{3}N?!L>w)^{v(nw%(Xn!cG{+7m(fp2)_un?PYx2}n#M}1JAQlZK!#`RzJ!3TLr3Mf>) zwuZvbsC?rnXg}Q4Nz^Ga|5iUS{kiRxOo*0eiYJwJlUI71N~1&vgcnQrU< zGPPPy1tpx&mhk_Iq!kPVQ}#h_b9HWud92C@3MnjQ*4?Rtqui~f20*JiVeKi0Jae~0n3cFOft@0XYnrC{U~j-`PBo@m zLpOYRB^v?yxZM_ddx!tcu~4>d_8?~SN@Dl$)!%mr<~spG4!^l*oJ~~qRM$)UFqTs5 zPET3A)^eSe56;HcSS9Ke+6~n8E;lRnO!Hkh9Y8#Xf(Us6@@s#ajIE9UifI;PmX)Wk z5NNHII8Eow@Woiz^|pa+YAW?n<50Da`$uCM>45NW2M1ujuUhpbyX>=aTD=1gY9Qea z#8>svYXgrnpbk+5^czQob2Z!HIs2&}?=%tMVF@KRmX6!J31bU`Y}P~?jSm&LN8vFG z77Ue4_%|rf-s({MvSyD@Cl@^Lw8j1TZ@}6L_^^r>&n+3%Y8OLCY-t4!OGC|}$EQe>!dlcuE(q^t z3h9;$xhlHVMOO5HfrM`JU6DnYuMfH=^x4%y;2O82q$+RPmTX)3 zw72}`UtcAsR8WmSd!{syb49izQqX{l`u1#b0u=dqF7Vn^+gxEk}QU#oJC==Ob4 zr(RKw-IBXUy}T+qUc}{jE*V0?cnXw0&ncpA@JKB$h+G_PcFOGHCrmT=tesBEV3hZD zkZ))FIkIx7LZ}h*eq_F+twS?#wE6zbnN(B2oLZRWD>sF!S0t5*cQh5;{aOA`MM;2k zGV=Y`X*vk|j+q04l#>F=Fm@4af@E#TZ5?vomf};%Jr1+ylFa z(K5B8PM)!=C!Ge0Z1|!V^VW2}no&a{VcjCH1cOpn?FZIxzjj}Bc{rwQn3e0{$&pMZMIXiVx=I!1c-)#+^uK zC(?eTZJp{JUktMTYi8YG-|`F5kPJvJblgoZI95uQd@`5!BdYCtp+wEbHJ0gfAqp8n zet@8#C-kikQ|i+O5V*lYG0{U+=$L0(4Sh4J2ym;nBm8<$fcJwwF?s1ZbcJ)~qzkQp z=c4Rd*+RNH$ms*jqUt&G2J+?scoyml6C-2E#<|No>?W`Hg&ao=(~24P>?+1kMi zu(c>`btv>S##&x>31ZAOvw%w9xItF%I1r{f-dxA$qomIzT#kp|;f3LSMuwdC#(O3p z9c9)_N5L285e#XOK49MTi*^-{3{F!*c0n?dc7=(6Q^A~CFChsDUAN79$4YH_bU^NA zWck;h(EWD=Mt+}6zdBd1Yw!8xLeJXS8sg;@becV|{XMS#9<6ak_>>r_|?m)UaAPHub%&%O6XJ3ofuI`_A zIiJ1fM5*K*&XBeX64beF|1jRoJ4UlzEyY%U9KYYG&wH&ryL*_Wp5Pd~R1*4c(XcfL zh)0&#*0>#i6_+UXC8`@)j~i`SyiVo(c;T{}uIF$Tpvb%#7RJjUo3KL;2lh;@u`ZXqUJ@a=IXaTF?i{X8&%P;Etl< zqK*DjP$lzEu99(T45-V08#t2@unm=m$j)Sb~Rx2Rj^nn zl+Env6s2tFCA?8(5P9+icT6g$;-mTSoV2xPg__ibapDmYnS=}l(H#qIWz$!wFmen( zDtT^Z{eEj9Hq&JQFH(y8+VOg~q9z&VU6q3Fe7(yN&=2bV;S&%UAo4Rxxdh3AUeJCM zXwB;Y+&#tihgzbf)rQ|F$G!*(Kzm20zwXuk>rqgUAth2#f-IyadpHw}Lhn@OHtdHc zwuQom4rrb&?vBljQU1Is;qHmxl7zHHyBNGP4hNDB!Bdld_G00=`C%e9o^Bm7+y3mC zJSO0EL%pQg9G5V&)Ipb?8LmL5D-!5ziAB<>Q8}Hb_uH!|Dy~6J-z?gOl#?mFmH#52 zAr+B$v!id=B5r|KJ6oDmK=b$2fFSEW@k?0VJG*LG3+!~L+BBE49LuO#&Vrd;C5Q9$ zZu}Yl2J5b@f;rrnrr#n@PA$;u;WCBu29%cacCo#e``>0 ziczhHQyiU~iau+;r#gQXi7QOC+jrEwbVojaJ$JqWoWx4!MFfpt;Qf)JbZB5{M^T3T zv5!dpI^|$K9iUF*w=}qEwi8=~^^LaSEuo*g5pexi z2A}CrYW4kdA~bmV8HO1Gh?zhFgkrrZa=|syS|sy`i3W zesSDUA_y&6yX&6i0a|LS0c>-@02kNvQO*2Ke;)BHFD&B+GdAGZrL->p-CGn>KupQp z^@dIr#u`4Qt(sjWk!PW$&+WfJnY?x{98wk;fq$1%7dYHkV6pAfe zNaH0T8TZUcSUyS!4Q7WH*IGGfc1zI#Xp*L9tKb0SZ~$5V(9{%F8s>+if+4v4@o7N6 zsT(f)%yb5l_${YRE2`Gz6&GHOc*4I$KK$S6fa`sAz^r!`|L)BfIE+vqv?U=wbgk|( z>(DOqd0|L5`>a6+QR#gf?UcS4lP?*YdD0dTmlFOaZ=)zGW6GZ;SbOC*M0V$E)y~-N zPOa*Z;!6H!UJL{5_6a!FRl+~r-MK?K7d^D|Mj7kYFzV*%!= z9~`vgDF2Ah>3VSlK-SY#mztL+S#CB@XFQ&716|>ZPF@X%Iy8Gvi_)XdbNsUE?)G|h zzTj6a3sNlUc?7|(9=#gyvkbN8b55X2%HlXZDjY5NMMQivZ1K|8Qwf*#e_;p_VLzEyXRzN zKq7Z>O@!a6b7gZ>1(b=b4ywxKJqM_PtZh&e3{!*yLht$fcy2bOYZ8nci&Iw`@6fM& zm&ZR@1^DA}D(+pkXz0#QOLu*Nmad8-CON&@E{Fm;_Nrz-FE+^(Ds#NHt94Ub!~RhR zNl4OoDPO(ui5zRFezi*RcEoLTU+C%KQ^vy!Q|VfIAgWk+O~^ooZLMh;jQiUYP;QIw`C+M&rB~bmHRA@ zRs_?^S=~Zjv8F`#BY}1qfo|Y zLQXD1_BDBP)%02GGl*ZFK(Tr1UXfP*2>RI3EAH{!h3~N2xId4^$4yMEXLX=O7>lIx zhok+~4|6p(?5F?q;yfnqYnI?2fo38^MhwQEoIB>%67~%@!<%lH3gC20ZmOnOr$lFp zO`f7tt#tRa+5m;LVx(B5U1P91f{qu73`My#RV=0ovVepvOPJx0(*vHrYD4H@jtbm8 z|1kN!>4W;(eBKX{$wcO4oCC~Ktpai}GV>Is`=lm&*t0(%To6XS5Ja9iY>Y}jK1kCp zPRsa1AbRZs1(1#-v``GTC&QXd3{qVc%PR=g#z1kA3{-2RR`s>O(-vgc#nWZD zBFP4S!JRq-Y(!{~Abn)q-iuBO_WY!m40nQII zhr=*oOE0c4tPi^d5sA_f5<$3z2W8EA5X)b*bCb+DkTgA52xg|i4LzbZkhhgTN<({n@-x_51Fvz4!` zf1zT^VWOK=WLt(ziFudm#-IUF6bXtJBr7bauxWb*?giQi!q37a&v)p<0^>f~-?HGU zbHo0=+73{)?aMzrXv6WuBTCVKHD=><+b4WEW%#DvT$h+67}*2u$BQ^*dUbHDJK`5y z8s^miZ^y-#Sk{B)YV@8=d45Fc{6SRHe>=Aj$H0ch=$q&wgdqpra_FOAk|X)K^5(^9 zvQSZb3=P@q9@AK`v@_iXh1saDSb5NX0RyJy;9DqA0Hm)yf1#Dl0;H$^*{wm+Mx~^U zK-2aFm)#K#<+>uu<+)UvW8?pNLq0q8Juu zPoi;jqtjn*N$!3MBeb-F9IsSE>w_Svf;=3%@5shAe6S z&>6^mcxc_i5$cS898G9Q=e2NeVDnIBMyC5cqrl#|=}jmTiBm9?PwsA19kdCmc@%|p4G zXX+n#=9(Em9tMtXi{~@Et+F2^jxJ2C zBi^V#5dV>hHz0QAPlEE>c0aQ*b6v2~u-)vd;w_%n83{1MX`2|_biym|eQTAa=R7Oz z5+z94Q0#pxxFS#_`i*IGRWEx_tNqD2-TX?t9o5*klCs1$%YWeze2~xXTa*&P^my}1 zV10UW_^DxHz`v!nXu$6EaV^V~%J5bTfVka)`6}VH9jr(3FNbzGF0WoXJHRbpv`wy= z_2-49Z6oE5W4=K;u*6l6e;t*ef?k&Yav!-FaWtiu3{}jO3F66@gg$i;Rj9+Hoo8e+ zL+glmcJ4#7`8V2T2dI?wB^1HVgoXuXn|tQeA01?y!oxg$TK>B z0!1xIiQc{l=^r5y1H1M4)tj%Z8gB}O*Zgxr$16Nrj@KgkB;}?CH*-ZQq))sC2=Nsq zA%$U`$CZ5!NcFj!DRfc2qox~1$A_*<-CtUD&DP|i&kP{`KHOvlJQLd0d?teY-?E}& zWF@EjuKp^cJCr3c;6&J@imJD2^hdi7Jkq`dOM-g@sn0v-+L10>e%%(Ii3rYOW7Xys z-*>q`ZP>@;PoW?cabnj4GL>t&)3W>=VIOdN*vNX=RjNh?UH7h@6_n$HD=1<53UBJ& zU-Q_8x_~Qd@$0n{n`Z_4a?VOQ`CLW+HOw3z3Y7FK4WO{V0qa-K)Hs`ZkpAxCB^jg= zr+T_7k3q?v1GVR3PoTZM2Rf6}J7u2p*!rxz{h$7lJz#ad5Ii-eb%!-SjH?G(LVJFnlp(AnnrsmjQGoMoTKN+7 zp|(|`7F1(@sTDqhbS~NmAK!}dHT!bjkEv@FsI@xLx09PXqJ-bcSjipGX7YTK%0Nd<`)v~Wux7gGQZx9de&3Hn=tnk=CiWBM~lD;P;g{jUNYU!wRjd9!?olo3GGA$8XwWA0Gw zrUu`*^w%~XW@{e{k)L3G^Vzb2KUC#Tt2H1tvf&F?knIs(6z%9wHT`^KdCUQ&Af(v) z)H_;ucT>;pZ&#GhGZ|N(zaMHr&D#@t`B_xu>k0Ud<6a%*^7<}QfT&mv#nR@qc5X2> zW=a}k?xc-z_>@ZovK-~2X|k+1=ZBi2$@8Ftv#WAF_PH)+=hc{5^~|g10t!pa(T=wK z;hq~hawB51mLQQ2D80K|zX}9ye2F42#~1GKVlNtVBE!76yrUh3B2WJ-&j<4zKo!?K zhc+XoE%a}+iz^#Buo_Nz_O1x%!-ja5qs1_mS5t_i#(Eb|p&qj~%#(#77g)Bjo%V6WLkF|15p{zyq^xN8SUG{C1C~R{aB6@n?}7 z;?mO)0_Wrcd69i5#}A>)5H6on4?0H0*6G+rP9{Rye5c4byw>e^BlXxn ze@dfn%`kqd1$hM-0xj^GOUVy)c(@EbeR=CLV_uqdYR@N1HCjOY<^?eqHVVg^nUNsY zNtl1)ZFlzjyp2(b+c*#xqL!leLJ|Dd0b6G^QgL#g=xBe%iCeIj^r9tR&~CRp^Mr{laYdV*w9^P42q z+62v8(&^pRdM0-iLt~EsGH&#iM#9mFMo!c=@t{7PF|w)mquBowJ26ND&C<1(9of*o zBI>8VrrBjG2Qz45bD6MMljqa_;tzzFrt@zU-#+i^W&DuOW_U9(l`L3=P?CI||3S(U za3MIlKf=;ZF1YICPOJQK*0a7#UeFa+Wil9b3lE=yi)-dCiBVhMhj|gDlWi7*{u=Xx zs3+)@7d_xSXbC~?JyiZ+BLF&Q7 zWzjm*b0FAImT+SFw+rhT0>l6efjFjTp6>Zw=;YG4(v3xE^RSsH5fnpwxs^w~DoSth z*(zHx=f^;XXt3Jq*dxBZsVLJpsvIlyQo^Ik4&GsUC2%f+iOG8|IFY9$@_kh%+R;B9 zMuLi@;)XA02u{kn)D6>j_`ewzqv&VTj{O5w`wyOL1q(~!IK>c74)qj^86BNFP|g=q zsgIMe-eqTjY4YHVN6B5au1GnO{iO#2CCcQ%ac4I-NDVwcOFr&eTtHop$C*15&89Nq z#Rhwgg4IIELfT&?uqH!yKF~wUN$MS~r{7BbS4|0@1GpEW=PB=S1JDMrKiem3##6dX zGEPxYlLM%;Q0_n`Um^|O6ybxfmfK;HLksq4vuCZ>Os)nIr2v=10L1Fh;GwKZwpCvt z|LRe{6nR^r{B2o|Bvm|bLpXa;4yKgwBGtN^*M6cJc}crs<@zas+KgHvHuv5r`Bob; zRJLmVG;WMO>N0E)>1poi_b6Y-(DgW9R;E5}^xYUBn@483;eFz|ew3(A{_Y4HD#sU=;rNyB*MT-Y_ zDQ-oJJH=gsyHlLv?hxGJJGt-s8~1*HXN)8#IcM*+*P8R0Ub+_ziLMk5_BwS2pws^? zBGZ5yXr<#xjtRUtt7Fj?U z0euH_AM7>f*G;()A<=mZyAk<~@&BI$=zywC4C68!of#t$LHF|H6n#|=CDL2Y;EbI* z11Z>QNw|ElEQ%}G9R@8T|4a|>VI^#1>mEm6Q>4`~K-GCLZbatJAy( zoX)dgcE418&0Z|d-+dNqN?B(L}F0x zbrem#*O;YYTrols$ZRw3fv9^NUENxO+3mV3tTf4aenm<#gQ2gcFQ;uMTu@Tvh+?zS zzRf=rkdN|o6vT#(P|1bFxToFy_eU2(asrx2CRf*Ejo#=h0YM#FZGPaYtZn%sj=8}g^)Y&YPJ!mvK6i!Y}^#fTYt|Yx9j}Ld7 z0M|aQ-4AWBSKzWjce~Ddkzs$PECCqZNdt~Kqx zv7;<&3SQZn0Wqrv=%TY@XYd$%+4o47?JMac*jva4$p^_Iac+;)-&CY|@m~J>*Zs3Z zZl}i~LK{t`Q9c`U8NlRq#$8k6L>7>-e^q5di>@jD-%@$?jpF!j-1j6|3psrCX4e{R z`{56j_S++5a#NF&ePx~(j6mY4`OL|`#+^+djP>wi9a z#+o+cwKjav$aa9&B}pCQ;QnWL{tG`fVDF1rzTe`~x$7qevaYu`0S9YbOiav%O4_j~ zM09m9a@$NJQ&cE`I6%M38QifLrST#yLm2Yp9qp=w^36}qX$RVWp>netiIIoVWf%+W zguE)vJFzqN*rO^R_2trQ3T%hE61V^7*7{e@cV0k#czAd^Y~wjW&;uWkCcQHbiHnaP zINcoFOmjPmhR0OH<54>Uu^0=)A+4DaTuTs9z~4=y_jsCM47k!uB^QBlBh}Nx^3!2$ z>-SZW!jh81Kd1-3b)=uPv{IlzpWJu<@jPF!9|$X8NxvB~b=9^pKr|&v- zXct>nH-#bN%}iH5plCHOM%l6#Yzv7?2YU$zIEsLkY$`IiUwpKmIubb^bs}$J+}(^1 zSH5!bx6EhwSjINvz&qv0C-L9EjQT4%u#R4aOJ@+4XjJtOEC7akz8kKEPZ$?&kKYFXyan*=fRSj01LPqq&E}G zKMlxxt>91gGbK5=2N3yNp*w*+i$o9kG~Zd%$tddaU6H_aiXGI-W+vhUt-ddjt+Y^N z7Ow{5DNtGsZVS$asaYqoblD$p=9@v=*vc!|#H@e+XTz)ooC_#g5*>KFMMXv0GUb7< zq2qX%{p|t95#aNO&sRUm$n3S=(&~BvQ7{cn zKs=EQpQSr7YY|uy)`4~Wj1Ujzi?9_JBB?uR+K3HV6nYN2eKod?d!Q=&Zqa!%vUbcX zw&Q1^XCh%&8|oQPn58WHsHzPoPOZb79LH3@{r@f&?Qk_B%<$_^6c~x9$TLWl$L&OV zJjV#PsL4>`s%ug^rq$6xL-WC6vs)cw3{AS3nc0pl=uVv$oAUQFH0%Rgd1vszN2|Z@ z;YKp(#kAHt{SIXQpQmSlC*3}>)1)=DMK*A1qT5E-l9j_}GevVTEJGikVdXI1nz?9* z|MHS4trw7=$7kz94{ctDhawI4m^ z|CGc+_3#$-4CGZ^ZE^9CoHh&?SgWQ%*3fSjk3F{^GgjxSOql1FU_-doSq)827yrbl{7yhlFGCq;zL!$P$5IrWFmZ zo6Q8{z9>qh3jWW+X|mCl>p>k3gCl9&6Ae@CCe2s@Cj zz=(1tuLIfeOqBYo4?TljJx3Uc|0*lgJ7oRB;v7f)Z&^X%vjj9(FHG?6r~p2L^-KD9 ziE9DG(l5$QUL&*IFF4Ixm0qRz`UYPDnLUcmO#-WPm#N3@`4+8}mE(&?J3Bic#MRZ^Zdr52*u9_uR*I1@2*;)_C|v=s<3G zlTL-~=qmnbH#`Fg?k;@;nD~Ff6Q)`&N^EF!$1RAFIMZ0QodMuIrr4!wu0pzibrzmG znzrNAXFDL!<+A=@H$UBpgEW%IJa6G_K~~aX-}Yk^X)wMN1o$EI@Y4L}nx=4shpG#R z`noDJluGwa+9}46|9kO$aB~WukNAU~zt7fY5PT7DpEV38bBNohep?EvIs+_?r@ z1L-?NkP+$xez(hW?)P>ZQZx8yWadc&KycB*gw#@$x^>Hq3D*!oF9QPuvadI@cmN)T zO>LM|{XrYjE**$jPEFVA!4aN%6ji0RElryWIFtIuGDUSF>m96iZT;PzdcE$0v_|E) z7B>X8lZ9XI3y36=zc-6os9KSHx1C4mY{hla_vfSU?WAlcxNqfQ>!%L5q@yt+B|<#U zC2!`%?QT$kT7i}BV$car)=r}}k&GO8xJnKWFo{NVC+vDZ0kpDj~k2lu>BR-?r^ zH=iOdUUDhL^A8EW$A};snC3$}j^_%7S88f%=}O?8P5mnBE4HuRRAPsf23B=l0`v-H zd=nIO!s~y$}lPV>eK+y71og?==;V)LZ@;M*2GCs{6-=|Y4 zzX^_|`zhbM-Xz9pX><7QQKo7?C$Cbh#pyN5E(_hlKSGysc(>Rhumf9kh4k4UEY>SX z`?O_VId(tRN-u9;UtTyN3+L@&q+ddcZ;*4*avJB~G^^3XcdNAM z8!`y?Hw|3#8=F`qm6xf6uh{FA^TG<_aYgU?fSv-+=Q?1h>SE>A1Z{2lZ2dH^%i}Cj z^1OiM=b%D9LIS>!?mykVufKrHUJve^LJ<4U#5&Eo40;+u;&p#w*GCxyBD9c%&<_C9 zcD3*MZxzy*{-YKudsU3%2!t)wXBGn)XU;QuB9$m0d%fH71Pp7c9b$SY3O~}Sxt^$L z&8Lesj;f04 zzAjN6j0DQ&na6rE%p3S~5lGaql<>-?|3y>bq>3Fh2Bdg&?DB)xFxK&t zfe<+jxr(me0BW~`PZ4(A1Zw94CPhou{a1g>aVm<(U^W+E z%&HZWznEATRL@wa#|_yf5k_D7TM^=csC<5={N2p!B{mwaB?R0UUL#AEH|LH$v(MJ% z*{OaTclVft*xao3M4NJ?lLA%0B83RJ`masru@vYt9qy}%O8!w^Hh7i%yh6!-rKNfKut7+M?Wx)2!1 zZ-ss51;V0qSUHXG`E3spGP}Nv+W=N~Vc@2t8Wntk!i93DHcyu}{Cmm@ zBqZ|rx0a5C5TI7$d<+>Kv!B4Y^; zsRd#gKGCG)FX`VzDA@6H9;6Ur%gxw46V7B*{e~fT&wG=2@h^cMai7 z(VlONR|Y1nX%?TDRKn#dc84`HjdJ%uPMA|?8*Y{>0QqR@joPfw%{8spQWrz?cuQGI z6Nz?7Ni8n?UG%9uEwwOft)lQ&!$tuK_STpZaUOl)+$@&wZuFT&-R?&V&RM>>6Uc8{ zv9_|MGoOW9qgbrBfBvaQe1h@6LcVpOB`#KldbhN7t}`>Ro;%@UM}A;X70O`9p$<$U zv};}RQ~U!L-!;x(@Bjs35|>TdJuFBtE-&w`8ibhN)nUfPzrFn7HnA!TAhBh>o^C$;+x|aG7zcP*X_@q(jTDcJkALXy*YMPeu?>QZ-+~ zBle0u|6cHao_;%--#D_{bJcRi509_BpYeJ~_yt+}@y@X4`PB<#vI{3nQ6yZx*dIx9 zl=b2?+T#v-vNL7&!+E2C!onvxdsOYE*rAYc#fcDT0Vb9GyqGz5UC_k2!*}&rMb83Q z<90_hZ7K#1{F?W>D*X)04_-QcRu0zO&=`k=~FfQUnUS_XW80tfIY0*v|zZ&J2 zt85s$FalYs{wK05PEoe!e(H%Z-RHjZ>krELw< zxv>{&BirO6IR|1cO5Po-^YSk!9We@*%j-vTOpdGhlAp7Z)VE!%qt z7ciwk5Wz&|f`m|qvZ1IA5Q_>U7)G3oZfz2VjO4H@H`{*UPTKEKp8Vo}B)*ySezzjX zg`|2$O?@kV#tEnp%6?R~7@#lI)=PWVRa2_^65l?Lth=qKIo`llppzo=(y)uWdw}akfis5=7Mt3VU z`D@mvJgk?WGtRSErlSQBJ!(%|W1XV_Vm-wdxb&XWn0~k}VM1c2FD)LZdct4Hof-G; z|8srsfaXnn63%FhH!Cu5WxhNx31t^F{ex_6uxCAB@A};oY%9G5vKuGtDx_@AjwkL*m{T$Bloi)kW#{)u)$_iZ5Je5B{0z!yVx- zu{fK|xqRp#GqZBsko^^&+$Bldn_RLq!`h&BaVr`M^4iw50t|PBt)77_DGO^Np-T0ziVr_1Q(P+ z>bOMF%q~o;(T3UF-t0a?Kc&A=p_S%-h{t~Ao>eogbrfe40Y!QenHkDqVz+-k8H zQcra&;pm;|V-DRtjOS(7{YOs|1#mX%9E|Uj1cU@eZT2Y@QRc8vC3*H8RP0BAD#|DQjvI_SZjSkonG^8j%NJ>DFA0djS z+SgLMLmfQkdGgP2w9O0nhwe>B2&IAX{cQ{mD!NMkAA^B# z17*T56cdY4ZmK$h-XA__HtOnR`rK3)k@U-SZ?hH{$E$o8Hble^w(yPjuIO#N;b$hT zY^AydT^;nRfX}A$T!!>21^PH z#=d@s$qQu}7#3U9oqxS`TYhAiNoFCN2i}UtNk6=n=XMmS7L{>S1sgP)5YNb}lKpFq zp$h}-Ud`BXne4GNh2rCx)&hde;fan74L^fG| zQeULtAPsln)E6O^9wHp=xFM3!tYV}WCc@H7s@?CnXqWWzUp4{-Gq75J`vXHppOr&c zLkZw&>IF?3<1zVa&M=vo?;UO>kb3?|7e=>v+f1)iN1r)fb`t5zd&|F8cV#x&Q0Y~O zUR@np&C{W!jUgsM_-_w@4mb(c8SI?s;(-8jqs<^!4Qfl8Y8zd#T(Wh)*68)%{vI&8kMmz><^GqEv_ydW~dtx1K9<=o~{I9G8>X z-uZ85ED8>hIS7NGpsULvAoT!xATY=V@Td=(Ypok;zh(C)qetUIcu>D5?V$Ci5^S!y zCtQ+6H+&I3;bk}#StRRK*~Za5z1w@H`gI1P#F*{kAtHso_~jgAa{rXPd-Kfmz%_J+)D!m9Lzc+07k+UTOf^y*FnqYeg9%14)ph& z>YljcrMjyQ;NAo|>0Z%1zgUfY+x_CL3SA)CF^$g<^2hbfg@jkAqyGqdHspYXY^e|O z41HDxcz-AjaMVi0d_v`u&FhNtZrap1gN?mUQbf$c?V*rj7wK%(4{{Z7MI9@Y+Mfi( zefxpKOsj9&j4)PTmz8VI&*6R<{KoZf7YkfuVZ-Jc%{ zSPRO>RXx}!p~Bierm^VyVY=3Z5`P{I6VI5aza|TPlfI9^P=#6bpI00F2Ll2AhIDU3 zJ>EGu(w!uf1>34Az%?yxIA4r=86z{V--Nnk-Cb(>bJjFi2^=1x6DLq1&sy6|xb(%+ zEIT2E=$WB3>GcTAz)Ik)O1Y5`m8FEVG;~d-?$|u`wqmI)<<%;EN9jKbI%+^29FOeZ zL=C1vVt@+!XTY{b`-&2N3YG-45&-W`0>udR+xco?mXpwtLJz1EF9N;toUYnrqU)Qc z*Xk_slS7YjEy|P>5?^B$%XLpIzD)<+?o^aJn+T!LNg!yeSkdqY1Epc&WgAR)E5*?7 zV=r((&;v-(a!bANrE~lzEy;Z7qkO2={;VGZ&g7BU_cE_C-t3E<)z5(8I(L#MpVjtV zb`@}l@s9*dOuqRe z@b8A-VXb~m@KG?!GhKl9nr!^A;410iEFD3FncU;hTWZB?-!dAxLlR-RzbTn_lWUZ- z|F=zDUmxYqcPW$YFS}HSy&FAKU_xeM?*RvwJi=B;krBYyGovhAkI=Zl_~$zf-i-Rcw_d z`&Y>ug^{2F_2U4=o?~)(#tCFLg_&bB0ubQICVZ5{n{aYfdaAq_wrd~y$XaAT%1(_C zS&I^yVx(u0|Gvg?V6tM$Zk#;{rB*c&_G`C_)7B{btL~$rThRUGO{(3JZOyy-M%Ar! z37mS>14tOMC0s7|AFkKRGeqbP6*9W6INj~qvFJp_H{X2*0?x_3!!Lb{;4oQ`QowA? zDF5w!yAxkRLof?N#HO8^3^BlGgPHD005Dj=}#!(!THYFpaoZ5+9oR8Oc$rvDn#Y|%g+CiiK{_sh%qJD8gZ zvra2A$1EtJ?M_%_!(SrNZDm{0RFQ{Fo{i1}Rd;K%AwJFER=PGLBNwM+p$z@qX@^$$ z=>^A*a2y^s&gC2LWxbYivxNKmXw+AL>g5+tL;AL_mR&Y@1+avOak{Srf1j~QASU}J z+u{$OjuHYkfPebPuoQ#~l}XdxO+V zrn_0XPxvPG?49Gxl2g)$qio9k;uv3Qz8>vQ zl`Qi*Rm^6(F%2bNE9}QUtzYcREq_LtKiV?IAm~!iE=61%2T(`g7Piy%?%&cBF~E6; zK(H7#CSpb;V~Y$nNDi$dM&<%ZC>f^7LpWBWO|nMTBm~o(Ma!=mH;D5N9q)=+Z;>PH zA6tJjGyce_n=itWvs*p5uacGUnw;wtL)u<$kf}X7h^xxG1O{lsm$Z53u~tpuBdrrR zK>(CCarEzJcDS;Et#Yil<=VWJUMh7Qa;*%Ur(}RoszYESnHq@tIf|k z%htXi>7#}!jNq%ayl2NV-A`d|pY%RU^Y(KBPX}>AbcM?=Gp%#DaqjVDRSG~ge)cPnZ@sn|@K2`( z(!D~gJ@HN5r~z6Tu)pGfk)uUEaoUuM?1gpk!*mB<7`!IJVaB=(yrK_D(Dks@e;L2s zK3Fl;m?%rhlud5UtMFQnUgi-uJi*0?N$1og8<0WoJPOk;R53&Ly-uXEq16?`xCt#R2<3A~s)>98wZsb+FmPjoo!ki|u3DvKds*lPU1Nd6~O` zJ_q>?+cM^^6qwkPOBhB?+RJ1TXWux`{eh!aogxl-I4z<*vMR(+ zGOQ&h#ey07AvQdzLguF;Vlg}UIyE6p$h+6(noPE?4Fob{O?Rt@=AS5Jbn(Y{e`}~L zps%>0FH5SUt}KP3_S>{B=s6uNvJOrMIeXO2{3=(bR;d5=N@iW4dE(ORPfW9&yvI}Z zww0hyabEdT%(6#YO^Ovc(_bPU;1+ztm2&__he&#NXjwC1YK&rqrkZNjG1bLqyAgNeQSF| zfnNj?&gCY9wnk&%RWKI`B(`(DdC&Q=lTl20wWA_h7oQv)(I-=4N^o z>I!5{&rsZElf76Wk*ttPuj#r$p{yL+X8Y_R9L6|*@b>G#{D+gdUF&cy>L@`(ESjm~ z6|v*mjlWUD=W9HUr?>II>8W@jh#PbaJs!cF$-4g15mv55{@xMjXaAMD06*MZ;A2Ja z;q!_jal+*@XFFq@c;&$ex@&aM3lebbKKq3weTy52U7SwkR}3w6gcFc!%|4ph@}72j z^za^?qKbvDA4*pc3P=!X5HiV@Tj}67x?E?i%0obx%t%YFL|?~$(lTWMeONsC?x(iI zPlR=Z5iNIwc_odYYwe}8M8VM`(K#q5`QqW5`C**#2p%EapS%UE3>>40%z(KT^x~|8 z{1phD)F?-#2s=lba1%EJN0lJVJ zK8=}~Td9?&p>_C>bES7j=upoF#_!Y*3(3h>O(JXON}CN%p)=i4Z9&7N(SVCspAT@f zGpP^NEXJV;N&{P7i1mMzm%$W>P}n-_(zP*kR(!EDB40g{$hE;J9g%^rn;GAbGnz?n zHC)$vZd+4P?JJWU0c0JR90(wf(|qd7$JV}cq{ZA}d~z;$e>l%t#{DJ%3uQGYvh*)i zHtNs5^cKP;rZ~>>Fh4AC`cq{wyPdA}M<=PGu??pEK+j5`a7+XkIKxbO)AC5sG#Oqu z5x-%1SyGv-L$2grbJ9=2bcX&PdX+L{v65n6?!Fk2+c8%IYis4i8NWxdSyq|EfPU1ZlcZeFr65B zC6UaB+arw{yPn>nh3^wHoLqMda2ghSZL`bS_ENRQFi}Zl9xN<&?=SFGU1d)?DJ5 zI~St6pjj3&ilX$4}<)KsyFYxhar|w`;6g_=}n#t z@_O1{?FCGlutAcV&nMTO46tnyxM2gPOecfSp;hHh8HA9-0xmTYh_KjT{tgF7UzuOg zRDG&AwxuaOeR9cfb8m>6YJ8N)%b0ByNO9p>*J&f?(+TmFx@oySjAWezb+E2izS za+PNN)_}t@_xYY0We_$KtLBRLSgpBem1;tQ)X(gn_igA@{3F@2ok}Us4irp~;No!m z2!=;z=upY5thY~ zXl_p|d+;ZkLjO1Afoh7C1uuRI&|W@!=nehef-<^t+Jr;R?E}j@Q%xUs-(SBlL2uKV z&e<`UcAX~sf^;hxE~c5RA6Qk# z0%ij*l3>qlWJe~D>)99HleWAT&B;7`r^|5i@PlWy&ROfN*>$PReM{5C37ff7R|J99 zW&h*D8isBE6*+(Lr-4)^;Au})R(g9%{*+%TN!mXH^pH4?b5U-oX=I511GJ)4J!cR1dvN+wtpq+rAkU-hwN{+CLyi>ag&w@H)Pw7wY z(i3M&H%wpX{9t*2y3r*JBZcmw^EddyQubv>TDW5M==vQVSqDSM{9`KH)BB72=~1&t z95+*1pAQirj_sZMc$e}j+6IlOBhZ2^1MsD%@WU%zEkY+FOMVV+y9!Rj#=A%3*gsgG zCiVkIAbZovftqwC?a9!Im*OR5lUmuFSqC`i>Ou&ulcL<--dSn9go&F;=nxlu6QR-X zPM`f7V&n<{a80TBq@$rfCu|79Qu09u>^M7B+R(sR{przm-O-87tb>mv@|AO!fm@B7nGlU@o7&7M*|<;q}l)) z1EE~}OVob*1KNm8txe4hu06A_B{zOYf6z+aSO{p^DB`fl^>nD_*l-nPxvv?UV7@o( zBa8B`L55|Ke~9EFcwZbqrrg=~AtfQjNe-W3$5T~+GQwN9LcCih*!lMUhUWBzMbqIG zmFh&OuPYRMY*&Hu=7S6$XoaWOH3B@px*4o^W*~kKi85rB&PYK>%Vrm4Y{KdKimBnB zeec$BW>eF&9QyfluHAX?v;9&Op5j=ENh!H>yPJVU-c1uzIiC0(pe7-FU^l^$1`aLY zC0K$J2vG^Q80xMep`+W}hxTzy{C$Lr&rS4iEC;eqa!4K)8_P>~ofprI9u3y4xc?-X$x&rsHRDeB{2d zNoWO#CqS;%qea--J+32#dEH-Hg%eblfb3v$F9x8`mto?(Xm}lq) z#&KfQ1UaD>pL`%m+IRtV8}(I6|`&OBdQVDctxj;W5Jf`Sr-bA|L4VN7< zqYK*e8;)D(1+zVh%4fxMB2b`>HigBjxjwZEx+L_SkMXMQ>&-v6uL}OVAU=D2-}uE9 zI>#p^{#W8piIg`K;I~pZ!<%_u6-Uz+j%&9Ev^y#6D`p2}e>PN`&VOipRBv(8XA!Os z4nf1YRX%`z+T4uqBOqg=d$EL9c->lJPiQ||hIa*aYURG0!hU=*qAS#^p2G$pd9xrU zNS5@Gi+&kneL(l6O9brFmkLTr5>Mj_Z0q7SvU5~;<;e)T?@vx~R+%kXpKdD;K71`} z-iFqWs(LU$2^l!s{UkZglPdp2y0&Mk+fYwN%e=whb4#=tSc-fUF9|njR(T+7`^ws4 zqtT%t)I86Y_M8Um2~vqh{q>oT6?ttxduNd)TQ@#&JkO61LjJlLEc%Na5pqU2;%MRG zURR@WBqc{qAbBLO5@@Hyqkt8FIcXv#SfY$rkOMn8(^{=0z_sBUYgUXRBI{T;2G1OH zA?}qxHZa&VNWcGk`3cIv8ONRe*t3|zN&baXFH}&OJ#KOfH_J-t4cj-!Poc078G6=G zc?GXsNW)ZQNsU0xdji|ylfVs(v*X32z4ws;K-pCX#vzlV1<1ajY}l7#?ifCk*9Im7 zp)3vjT9;E3MT)Fk=g$sSC<&dMx&!04_BQhjajah~#RWd4>!Lf~sFSJL{B?gh=gORR z40HmWhdb@HhMep=X5>klV-{x~U4% zH;OwN&9UNva1rk}$&e64Of88JWCP4mRv+*tUnphvV@6^HOM=-g)46uliHJ3m%M!G* zNcCNh@D3w7Y738}RV`s*8U7cqq^I%=$Yq|>z*(xLYBrO1z)Z?p4mpBYi&ASjvR5+^ z?$VX{wcOdM>-65SQ9oDzIOwlnyT-CryNYa424Bac2H7R{m?!Y4nt>G&Q9Fnqi^^C- zYR~2M)a7OgoNP+md;0)%oE1@;fmA`p>VPZX^K|g@(26GY_#dOBx7XqNt)GhQhM4 zW82b-3Z*Y4nlwQqcEQhIzn6mRIj`>jNRl5OUDaP_r{>Bee3Fz53M1wkX+8!rNMbH8 zFI5wqNPm}<{G?aOb2zm30}!dQ4l$Ttb-4WR#A}$emYIO^2;Jk#+O1OQu@R~S=g*vb z{K5XZR5CY9Ewf~qfFGG-l&#%y+mHKvzweJVUND7^7$QZ2Y?$X8wp1}n7E04@h)FK7 zO>jKeqVvn-dYNKVv%!yTY%*t9DZK;&Q#HAMQ`t+_4-?B&N$Ocv_+Ib(Cf|;3N+1|8 zJ%0CoLbJSUWvwGSZz(D+mMv|*)GYk{I~JY`)r*27aGe3&7$uvkFMaHzn= zoi&fZ-!&SA2S|dX&>~D?g;ddn5XNfqC>Ul{q4HT79uq|R7ruYimF~ozR=QUm5d|TE z{^8{6FF5j{Mui5%{#^0r$WU-^=&Q5ycw<5QeDLML`-27%QE7c#sN6-Q!lk-;A`N&E z5T{cf19^G}vlZErG=M(LedZA!Xjf`wS*+XqcQIYS!!>d}QsCAs(qj>h)pDrXKkFg3 zi9^98ba+_lYDXhqsEM?n(ev_{xmcj^QAL&)C{n)l*Ngl#Ra0s>+B!wO%vV)wAs9xC znd*!JX$atP5&3uobF#4BkIUWXa68ItO7A`V$G)CH102-JamxWg#zV*JAQ&s;Z{q2i zcNC&RbomPc5T-}_<-j0wbOInR{;~LjGtguH{7UMhfH1np?!l@pE}!WS4e5)UP`s2R z4%5a(AUDuTt3kG&I@e#Rc5LnuQoN zqqPF_1`k`&Q~jeL_y9Nx>*X*F5VcS)2k{G%Vb?cq2-8Xw%htY)g<$EjttNdg=!;WV zE3yj1>XGU$R-Ku3D4t~#Wo=%-YoJgia#VrH` zGwo?e=gXyRb?8)?$PpP`Sn>k#P{`ZqZbv-M{G8h5_S^DvmByiP&9Snw^0?zD5b||s z{R9Lm?SBjm2f~$xFLLgNOa&&^xt*oj7?GB_v*o9OKqtb9&3$5HMY${cEdq|#{hLmi zKX4fW%*oAIEA;4;BL~dp6prMU0%|>9 zLd1}ZPXj;GiT1@e|Hh}!BwgA~vT&>|s!bBv64pXL$w)sV9Cj+h z4$YHwZJ;+~doC&xU?8q7s9u!tO`Q+T5&Qb2aMYaA3Z=oxFv^Okg8}2Jz?pdZG}M*u zTjPnyJCr!!Y1Nr7(>r#p1)!FL{7zlClJ#lkjB2G0S9+c|#xvPgu$A^B&ox2Xboa`p zyCIIz`gFKhT5ASy9Hap*5$QI2B*1jfy<|;OX^^ec-;8m%10NayCv$pcEHAU&W|^yj za$($2r;|TIWlIC#36X6m)|HY&mHrE}XF!Se1xXmg#*^8TtUJK~0?D}EoI|vobjk#s z6@qbRa9HcQ(3E<^UdiDoo^;3*N7*Wn#2VE3o!2r>U$QNh8KeZpypa}RH?T^)O|#se zEL2$(1(6061ZIh710iujvVJ?YrlVxSiS&Hy%0GcfO6`b`dvq>9{$oy6l}eiXsWg|v z1)xWlbL5GP23kEWAL;JdM{>}0CZ4G<4LpS(XIsXL?cHl^HIn;{4L9+^fRu50`- zr2F=93ystvD(oeD$FO<`+c@AdQ>V!I<};(EqN1Wks7$bN?!J~EnE1x01MXjdXZexZ zkhTm^zgw$)g>?OJR(pmPATV?ewDOG~fBXS2z}$36rtK$QEjH@aUB8k*I)U{*Z|_?P zHSABZDorfk%6?7*$C5v!t{FMvz2Y2u#jt%9@}yCvFz~B}nX}~>xxz~o(3H-JjmZX8w=NW0i>u6jVS2uhwv55YQeq;PP8=Ww|Df$H0v1wRX0 zaxvoI5l(O6K6o7EuXPT!5+Yliy(>?H>gaT zg!E*i^k(%oXNPbF^57x*djVQ64bH~$Dd|=!&yOsL=aDq+gK;(1wf70B9ENQG#PdP; zRNg{1_blKOVks9r*$+I#R(~!*{ydn7wI5fQ+F6$k!1ErJF@5-(dV_+}M1WZS>P!Da-YuO8zq#&E=T;A1CA zf2e+ePB{Kk6o+3GfXwc=4wE{~>Yr9bdN3{K0>oqhva(&Qso`OoQoJd_7bh$$2@hnr~m5UTP z{Jc7pGOi%-p*j5pUV=a;?%vyo;&>pfD!Qo1?xxp`v=qU4J^PP3jKiDKAeNFcBTW_t znMn8>m6$dz>p>YQqPLPnFo{XW-7()K5y7CH`wQV4c9FAo6ziE8@%p!_#3a;of}l{j zG<|VeGci`A>sHBhbVw%ZP1xnTk*sI2vt%kz%#uU4Q16 z|2#BDLHLU1rCwIJS~%xusouSs^8Cpi8m;{9;+un>`V0#uA=fAS-&7&tMJ!TZ2YV-5 zdG#t;c|$$l+@J5c+y_vRJ3%?Mk>8(>h)Ln>N%ZAoxaak+&|s%&GPEUGkE%Yvpje+A zMAPrd>a@A{_=dT}-kZh$@aVi3JK1-UvgF-4G}wA^B#y2e=L5p>pdFjYCD#Q{^S5$!Kt=<2b+> zKW6>0q~4={zq7m5Nw-e4hazZa#vQ7=;SqV(DtNZq6D; zU}>7b_YN`~6Ay5oPy3P4urVPpD-7v@tVQxc$l@#nE?}C#kpzZ+eU|&os4GL+rB7ph zxW~6<8+)HM`o%&Uu|-Db9iu!=`!1LKVuY9;ed8-K36Re9pxx*6cQ@A?9UYRPA8;+O zh1|97B|`7dS9=V8uRlqy_FwE zqCTYM+g(&e8)&AIR4U&XN>fLYt!){@6rLXkt2l6QJ8|)i(;5{oVZTeR=0cli&g?HwDtV`+V-a5+HLmMC73y&!z)8~pOG$Q zd+KUA1t?U$xgNeuzd7GG0C2qT-!~EnlRs7}FU`%7QCsWHOX$&(lcighv~*l#vWHj) zQc(Rmzp2yQ9P)P?VLFytrIEhg-X!T_oQa# z1SoHKPy@_ifDX}f;Y})7KY8&^t9EIb8gp-P8eoAuw0!i`KJR219Q^c)n(-u2@9*I0 zc%q{^FPV=*h&3we2|QXy$FcC&hnjSszoBJ#nDWy=kCiuVk+DuddbI?SRou>r!~lZO zKyMZWA=&;X-7m=~Ie%cjs zkQ0?|u-5t|k?uj`vj);W`=Qxz0OS^!eE-1;k16R@JB|*2`b+EVWnA9W*Yen2QJ*&J zbyW-`R~-eN^lzd6$;%3hHoqJlnj}?$#U+H_}9UeAE`2z1LKZP z#lnhg4ogx<^dJZ&v=A+FxwXyTQK!y5AooS*)(s^V`&7j_)Q5y&vi1yj%<|Gs=HMMZ zBlWmc^I=_`r8#3`q%!h>Ni-B?lru2qt;(tZPzMPhw>W8r-@{_jy6S92v4d?ucjxBA zT$5)jA^fLZjBdsgP0XhcRd3G1Si>8=%>d!)S2Laf9GD70m1bz;!v#xT> zk>9`6%sFW3PL=6e*RltGEm~4%0J}_WYw!Eays_-7nH_kS`T*wqTu^RxKQX7>XB%v~ zV<8}pqShL4=fD~Gc}!u3yewipsneMyO~pUv?>k-Hi%2-W=>F-z1MS!6?u#dl+Vb!> z!y-0_m>E)^g_$xno|L>K-kTp3RM42?8OpMoPg0v_WhqS}Te80n|D@y_@}{0{*mqp) z53)GGYI2@?7S`2 z+M)_fbJClio4yUT859-u|KYXCVkI0+5?idi_*t!Q{{idhi`0x9Q?640R*FP7Ci$l6 zwS3vbM>nR$=|bqI`4>yCnR8Mkjjw_~9%rPA}7f>@)Pnn-jNnjsIS=B$-k@^X;qV zy39{Du5IHNhtS>-Y3BKw%ipN)cD)}o@rxTyC#yU3(q;oCj50qEuNyieBcdC;!*%&a z#3_3f)%&dJBRLdHWvNp93*{mo-L9J+eZC~oQO;nG^C?B`xuj2F-r%G)Z(U1utf!N< zLtVVQU}cPfBA87YvF`<{1&O+LMkg6664g$;MjQCcr=&OR(X}d!O&Nx-_ES-N)JJi; zQlg0D=o)CWQ$%jE+G)y zT?YwHaCdiicXxtIkl^m_Zh_<;p7(zL_`_N=XU^{3T~%FG?P86EqX%uGz=bjfUcu+P zXIDVUAJf3p2tZEu@X4mfr#GoYr7+Y-^M(3g3MY#aic~Tg6%;?qo%Mt;%g$ne=QOM$ zKg(E>(GI)Z=WEJ5V zZDf8Ok4)T_!&0$9xXte=IOMVtXsP=U&)c!P|B-{MhXUQKD!>D4 zHUPnY(_OJVmm-!V7uA=o;ikpYS`Njj6TMAdD=@c!D0tFAgQ0<~Ezf_JP`BUTwDU2T z@g=iU|9U5^?=y8)CC%Pv2KU}S97jV6S~`fmxz+8I%Kh=`aVn^&(EdTb3>;fZ?pyfC zGZQ+0CUX+m@aY%6j}Jw$u|>4Elp!1^lV$sOdP-SvDoQ7Q`xSEeyUzC_bARn4jdJFV z4l0NYN-@k&UaQRBJeKc5WB`pVXpjxTt?wiKI`R{Dof8x(M2~Xn!4Nd{P2z+iujWr0 zuODI}P{ybdBh3bhVbY`^6LP4ubRIP4N`xfV=Yy)IxCyi6_K&=WwVZJi`pqWt(k+;> zFAFJS^Hk6ihr1=Hx+MNYGbN!!+B6GbKN>`|K6U6!bi3}4aU_m7dqNC4a^Xd}DY8p?K|X zT~t|)t{iDD_B1rdPkz#*lOugnc9;)P-X}*F!?0 z+L5%>E}+m$ij2C(E;<|2SJ%?U9qSxzA|3ApW+KRTInlwLz}|423oY}7VhlWzW6V}& zEu^WwZFf+dHW!8G2jW0OLo%cJ7BzDFptXAZfM<**IaX_K&h+-s3G3OCIkOZ29t4Hq z5ausKG|F`dnJGn>y8|mriug(*bOsX;3y*=;J_TRaukp%;B;Dx|;XSm#ub;xm^z43( zJJv^x)6(Kf&~ss+P-W%U*7;|YzKT;z^MR<|+UC{psE&AHDSr^uwnQ(*#`LI*@$!y(HK`a?$zh%f zLjAz2h@Z(09pPTm;!^Pk6>3?|gfE5^%R4sb>ajn$$?#WVQbo@>cS|K! zDELVYRmGI3OH9Aafhnls)b6h4WXZ=QD|BL7cRWgH4OXL>J<+i<UJ-dW<-o6eB}l#|dm}nytvrJ~DXdFyhwX zJ|2w6>+Ie>=1}BI%TyVz*m*bCE8Vf+cFX}@3O0Bsf8Wp0ZuS#tcGpRCP(oj=JHE}$ z%_3admSBW5D{!<&2I{w0$4k=bzKp@Ao%@(j+@dL}E@7qwjc3uO{1iPVRFN;4SS^!o zdB{uD55$I!mw+&V=XE~f7BiF;&!)(TPOz6(e3C$|Lk!)N&0lu5sFUUy!N9;!qx&6a z?vF}n+<9aGbx*nEHFHqiB^_KY+|_HPbFjW#Q4TJ_!W!DZbxsRSdZ3;$vXOO$bhc6>UXP78uT zp9xz`GiCc34x``jjbvvxXeF&M;Pq^3s*^hkUrlHaboEdhULUbjFiTb*~`uH zMc4j#8AE%LwOZ}t@XZTCSO*Eo6cFh60KJy3DOuZD*Tsh1KW6UMbXA9pVgttShy=pO z?5W*f7}d^O6VC6|0Ez|;zV9!35(~qRr7<`MM?3;SW!|uz#~q&W5M+TIPc-Ho2p-fa zeb6 z>s|OFr@!Qz(^uV;?D=-Jj2oQZ+6C|}Wm3&~X9l?Sd9a*Q1+n0XYiYNpy9T_IwwN9@ zYWN^fEga40S?9%wW2Yk~^h^-M35z!g+!7rfMj%=Orrsewwv_#KlW0 z%oA)=e=`Q1ok{Jq*G2Uims+v^Vq~viy}_n6#PuV#oT2vSgk^@AOMQJF|Jw*T#(h|& z-J7)b4kl3ZL`blq-nk*FmUjY-jtR_jd;G9!R|3S)sAy`Y5!s9L!#$1^`2gHmpt;&& zo)}#F?IfQi5MZ$&#T%{vx`P8mh6~O7^M<<1uE2ZhHT~Xyd_b|fmSn+MC`I-Wi%;leb7*6CMdfv zed;2j`B^-huNWCDSR7%t2eWqM0QbOVjV#2AKnnl#MPJ!H6haP{qsCR9gn@>5=S-Bq z2+9WCOh@JpG-2IQitB@-Z`iIjS&EBB{*wq5>_1Shs&73J(e*K&Z_iJ0Ff{ZEZ51F* zKkAU8_#lwzo7y4^vv3I3TDfg=?E0E?JwUELvnpY8r`+~?_L!6PLG&tRHyehZ3Xkg`9-~JOq57h z{op^o8j6J5F)jx6f>HuWEUYU(2*`*haEJi4@iJIte6GwM(%63?tGr)D5(I}4KZO_v4ccnCg*~nOSgK?%54Nfh3xUeldDc!nb4A@psHYq`?SRCu z?hng_^fn}k&OD%2_D=8u$J@qIZnTgtvr}Y}ki0kiq_qY=p|sI$SDS;8j#_Qs9(+z4 zK|qpM6zy0nsTlilumYZNyBFY$wQ>n?@kYUZNd#-*SoB6Oti)$ci+UdGt$! zDsp+bpp~;u21))AdI2ub5ZK z`~y-z3;pzD@;2KU3g}1UaSnJsX7jyp9}Zz;F}u`SOcSaaYZ17bw32`98Fi85A>=70 zhNRB2$;N}bVbsmCnPVO?tEx~$gR+FFA3JXRIxxPMJj=cn!#Bt6I-4fh{i`!=4}ZsK z2SsWUVSIRMi#g77ch{=jRSzaJX-Wlndf*BB`=)>l+RgZfJ@#gnD?loO2p>Nhd0Z~mY9x+(v^sJsVJ!E7(U>=IH=2z& zu2^Pl8;?-yB5+4bnkN_4HU+#BRU)c&nyr$Umg{(uBLl7W1wF{P9?2xy*@;zI4^H`5YbK+mEt`e^aN+2=llbcAPO| zkPL5Mi*9qk73JXQu~%#6#oiN;9{Ighg>i#2wvuMb&GbmMS^in93&%VLqNhT%d3l%I z6{xBt{GiwC7@xxYeArVLm6Hr`dssK%emA6$FW9`iJ$Dy#yWZh?s=f3HGP)#h!8j@h zI=Y|Ys+iaZ$a;Gjx#ok%kQB18&JCf$Gw8lsg4M13EP_1^>tNB+xIhe02 zdQ*F&UZ6CLAOCJ~nUU#VEef&`OD{IQu^lwWO4muRZmuJ)cA3BFPZP&ausN=$Ve1Ka zg1vEN#&)+lAZCMg_Tsu-wHdR?{>)>ufpEjKLSoIgAJS>&C9f`UM^21h^55}|?9B@y zDrcN{N{=~TX__s>zavFV^ky@HHl&`pxpAbUt!ts!1Y8c01>LT;hIRph2mZ0c^>R{~ zix0fso&?y)S**1>Ok50iyt|5eN0t>UJ6AI2S2>&%6U_>DzsV~+zuvBWTq%Y%GkjZ+ zvdx_@v&~)+qz`#e8E5>d83h)uuKVLChve1Ol`Qzyo(@Y(o^_f8_yPC5n0bjk&<~%9 z^%6%3^>H6G%krO~7M<0ssxlHI#C)7PizJh6Xy_+YS;JvNrU@MPGZ7U-ks}o1ODYv3 zQU0PY@4rZ^r3lYHFdQzIA168jl|P_#ij|~_txhoau$RkK1aJ6DV(ErM zsuRJrf}(gkq!0IJq2pM_W%gL&y>TV;1)0POb(786^Bga=&0!CFMIE3~r8<_3CO97O zq6+Hb`?BAeM-qag;e53zMkjc1Oo zBwO;1DYt(Ziz%=SNQi-#YV zrudt@wKL*%c$rAF2gKAgx(w&;wz*npDVajN*~-G)*ly#G)+ji(xM;++8QR)x>`nGl ztNMSLlLXAPsTnc2udf~6d#(kBmFqX?!FDN1HX%~z15Yhh6Z+~rAcNb1Y$B5<;iCPN zscXEnEf1b9$1YP{!Ia$V4* zS1dfVJs)Ho1J0||m4uH#V4C$;Wa|;bM`d||eYd(i|6`V*MEK^hG1-@$2xg1toBfq> zKtQ6X+~m}6;M9JvjN!_I1C35fQm9Q9$T0QWa=n(vrKE31U@k?YI~qUgi#dgVA0O#% ztgTadt5}3JyR`jU+dR(AAuW_Vy6>l3F-U_Q#68#?>M@8D$P_QKo>%^Cp9_sYaYBkh zzvCPZUM3bna5jH$R-z-THj|}YZlCw^&W{43lAQj?@g28A4`_cG;iOs+&QBXaTBr@% zcbnUMA$UYnOerv>wqVi@WF23`3)x(ZW&T}Vt@!%HShD)Go0PKJ`jkOplA*mf&;y*p zKzKj3sx{_|DCgy3rJU-jS-}2R;^`+60e9@Az@yGv0~qXUjS2=%B!pr5F)$ic^gEre zBmwmT)Ar4*`f(`P9>}!J^Z9$5v%>t>011x1eKdi3HV_^o^o_$Kv=@GbxK;iH9?e&| ze(N(7&sZZz2R7|3#5C=rU6G(Jf;L0(k;t51I8=o6i+}>t7u@JtmLrOWBzWFYGxLa1 zEYh8HI*8(CKYPU@$V0_a;sMOPfQTkZ^aL`%<{i#``#?9^R3!L`TOYh5#w|oRKA@4~ zy{Se=JNa#vyZl40l!YQ^nOReLZkov)1;c~VN=g&lv$73ml z-w4_huWfH(3u4S?45| z-xyLBgnsC)DzhHU;lvgnO2#fSvs?#{1OUL8`y-~K)3CBlntvGH(XbeqAEq^;_ zR%(UczIV3bnQw4EhsIkdrvYg2(F$84bJsRKhYG^5y9jqv>7Rq3X}IjY(S;a`oV?*Q>{h=i5rbCZV~uj|UMRyYr@VsV})<pzg)%^aL%E$= zHR`VXp+o6P<)MXne0NVxZafbwKYG|~BcJ?c&FSWAWiO(=SQ5biOJ5qjG5$I7;jrSG zAZ%2(B+BBder}W}QjmA1(_(XX!8`ct-fLE}k=bjRn)}>;@NwyBJ0R+t(@#T%0gUm{ zS^hSrv`d40k3kdo9V4=c{s0q%^cgGfh*0hvQYf%{ldH=wY?+QagK_q`>c;Icd#C0R&)z9{LgeN{*2&I3cQ_ z*4ci;^+NM|gvebUezgp$lF^9Z4h>5#}@ zgah1`@dKWb>B09Y?!OydtP2(}+btsB*qbP};|hiWQ}maZZ5IGV6^+7CRy4l(=jikyB)d}VMGb-?v};L1{YNxWw^gE!_f;o ze8-rzccGhp4}gQb6^fv#NH)-;X0o1p)mAiBlma|3fu=p;8`Ai~w`o3Wx})t|-kH#i zG~AN9c$?UyFjNgNT zA^oh+$sY|9rGF|lHqefv4;WWo64;y7GyZm^3w=gU0}xMP)DdW?u$2h;5zHd?Hibty zp%`?v_>?Wu*fb*5D|>0#{DMd3TsZxT(76?Gs+z}9oY8)=YEY~&BdUQl0l$HNR1$hD zggi70JWe2OnY>BkNTd`Ox@IS%+U)#a?vl(EoWtKh%~{aBr8zFl$K5E=U_8kYJ5>4? z%*36qpmSPL2>3CMoIUj;B-p4y?N{?)If?&^k3>&kt&g2K7kj}hqa9q;iUmg^kR1-5 zIe-UY9=Dc6Sr`7`P|2jrJl9D}=?lnezsh>4AWLyK}YX>iCyZyJaNm&?N2f zc~SokVPC%LFKU$to#y_5V#63&cTP^+tlyBMOL`ff3WJ&6{$O`;;@UZFLCNZO8SSPX zjyM1232Dm9kq;L*XT>7*?P^oR1?7oHy!LAy)?a6RmEo*4G(3M;f73qIH8pgH9u5R) zHx!9Jv24hDhXnZ=@2|?dL71Hh;Z`tq7NiP}K@;s54{tJcn4eLPNHxy{MA|GLV9t^p z%9&vN2UTN$uDCdoTzD`X;RF;G#uF_21G2f|m_1Pe=rf>RP)^}Pf4dai<7DSI+4|*e zWM>BJFq7RRdw*YT=u}WG`8I0GCZP^^ZC0e6R7k#)aIQ+YW)u6)GQJ@hT+;ssYueeN zSb$6)Ou(X4JnOSrfz@cGLP(ffye0Yj+7;LRHUqJ)+f{^m>uQ5V=CW{IHrY*#nl3q? z_)_!J3HhEBPlkB46L$X>N3w$Vp8yH4gO3&&@5#Awn_o~j98sLezcuOh=H5n z9khHf_~}1^A-?Srp89l)068b}`U_@f!nw>KsXq|HG~WnY;NhG+nr-uq<}2mUE#w4U&1!D) z#j28YU$)g9d)@Bp%5f^y-g*An*5%~}X*Xj>VG)}gPJG%LR?tJ8Jo)0Yy*6MRMV_!| zQv`>**6o^>s6B)I-%lJ0s?Ej|U+!bTfL$^|`oS}yuAqSQcEHt>2iWzufPh30@fX0| zS)od+X=Wp{~4*xxuBrOqkr_WIL&Ww!ye_smDd8Q}c=@sx~~`{yv~Z0UEuXId^U z^?%jfFIEaW6B%4FH#b@{%o&`v`DH34GgsUF%r1R&xmWr|n)5O2h;0-+$F&J5D^LV7qFsJxivkeuVL)X|{X?CxS zw^8Ny{tLK`1)(hT2i!v-P>>xuGUR^&U`6q}J@y^21T+KWGsq1Se2;AA3}{*f(mo2p zT7jUJS<8~F13C|lrmP<~qrAToX;mzMK?=a!v2B?! z_M5XYIM|84Fi+sNw3S4Pks8C6NL0FI$Vlnjq!16j=dv=|={V9(bRPbPxh+i8MMh5i zpsdx1jD<)qA(R?Aa$cL^LNZUe7}D^VQt>DxqkLvh1ksyh%{FXBF$>RG`OAp*s)b3< zf>pcaS#hAu*KDRty5B>e)`e>PJzVIv#z%-)V;ek-Z6$Bb<$7^1HR(P&(BT@RBRL}= zZ~D2_=Q4pezbR1$wWU{{R-GuNxIE7pUmnaR3==L*JM`UcZ2Up@sx3=)bX0BaBP5a^Z%HW>2hXTX?;NS4nnUe#|h5zRTAPm6p9aMcl2|3^{1LiR8KS4=r zd!q^X{pUc+cVHt^*WK5bL!o~%U7nA{KvH;?!83q_F1V=8ROul-Y~vO;0BP`XQ4T@d z(CvfGbon8A%q3X(u9jVEI^fe%5yr41c*&t$^R9nAT6AMIi!bvcy4tg)8!+rzZ3;SIW^|^mnyoa3t@{QV zKp*hX?1%1rw&3GwXOS;sp0n$kXfb$>lTmIG73@gXNf0vc34659?f*9a6M;C4TszqumG&NP~4RGNWzaSamo5k5gdW;AW0-mR91Yh;DW|o_$amnQ@ zYVy_C?^6v<)WdGfyqF3zu;MUlYBHz4uwGM_b;~XlrvVkhLspMd@%R>|k@WK5edm6tV4it;9A3t{n}6VyXboy%{rPB{NQU$e zXku!cDKnQxAIHiksx^poTR*F+IG*2Z-4QXoSe<6RDCP)t@;%iR(K5Rr!p}VGja163_8H9BK2FcJxh+Bgwj*FT}ltH~Bw}syllG0z1nqsHYIe^e}%CXYPqs zN|@g9XrLhzg#JnyT8~nf%pcF2r9eRW8s% zbth0CjwUR#UaYeq*L7~Sx(hMXwXrhb(U8M8{0agd6NQjeqhW@RA?Cud?>;{WfgoH z;uNrrq>tUEG%jJ;)p@q0jJi+}77}O}J%J|XZdDbs#~n|lU;qt>_?~hQr%@Q7Bk!RW z!(8zyIpp7*{U#4b1oaQWhq3)At)I!L;#6x@Qh3xUUKr}LsL3(OpjG+;$03i~#XXEU zB4MRahsKHU;)&){?r`N9^ay92b?vzyG;=1-nQb-}{<8nM<#%-X`dn2(i%CWn!&vkLg@mzBQB(Ko( zeu!@g^)}iM&rB1xkvzF`uF84(+i*AM$MuAP6SLJqlh3>}-3Ui)@1P*m!Q7viIn@L- ztExt!Ni{4dFBn1s2y1LqaB8vBg<%mu_$eeM3)zTv@-XUN>DpScSmf}pmKE2{e0VrBvNia5>Ri`j!*8V9 z(!;zWb7^POW`>9{DDufL1o3IR%V;MgjK%x#l}>0Nru}BR@8e2|Efe9n{l_x(8f)N}x8i8;e=~|j1TQs-={KJb!bUhhM`j}YUtRV^G%AeF!{JLx|JrE1sHhKs`174v zH$25Lee?5!IsRX?S8IvvEG+|=AWmBfVg%Cxuo<_4W8#mouS0YvT#zeKbp&}`ks*JWrDX_EuO}fSHsPG9fgPz~n(zE>= z?PksoO&M)^na|C%k{PP@^3=Mu<(WkMB_EIAC^3FR~47Ta#!-ei!Q2Idu297o=knI3r zo7vQL|GA512uT;xwl(E6+U0mg!cNgQOV+pz=*DJ&J5O9Ahj9T@)p`lA(Eqa8$7^%F zw$fx>1`wnsS_6hSDzV@v!(mm8wx5RT^CY}_#r@-yyzvul4F?Gr{Bbvmjb+SOGlgfboxfo=7E3ktcuD-WQY*yB^ihXhAwBAe=7|*wRFU{m; zf}qP?jHJuD;kl2xAN7D|no(WWIhseB_um{F3b<^*e&@qm*Lg|#d;~XLqq1H$r`QLK z5;GZg-7>^JudGO)SaO3>JTJS{G4xeR6pH}yPR-!=4t%edyWcJPZrd=tfNY|yu+Z}1 z)1P52M<9ThJE+3t9EB#xW|4Xz$Z9Dl);4~S5*-L=4G`GC_>{&#HEy8J_twqY!> z+->LUhD-T|u9A>YH{}Da@0fDDXgiNTt+SHGCXCRAL={a<_Jh@Gqp{QpEqjb%So%!6 zn==g3@y5!$6SGsRFz42Xkq9Htc~&c?JRNwbZDHS2A!3Ca2wA8EY(@BpG%Gwa%mv4W zWFox2pd7&NC&so&tmDuchW(r4L^^D>2zxItT!HTLjxS>}EQwVr9UA?neCjpY-!l*| zpQ9qin5Q&P^(^SJQLo>QfA|t5y3&ArLUlBMRiCM(CGqR00oRXecBy!;i!iHm?3no# zR32iTnxmXVB%vWa{Qu3I!l+j$kl@`{Ins3220;kj-Z|aQv2$GW%siPEKz9-h?3#;s zo;Rr*&nEy)Fqi)yzuN@Q&` z)~*(By|pVF`A9902I}05c~#N)PfM}&SCS1ta$@SItDTi-$zZ^eM078?@~8mZUH@c328rZVb-GJ)yglJDDob7v>xOCF+A`B5Rb^rfuF zT5%M@02artiwpGw$)_z;=DxM7nyeGLCzA;5l>(t`56DU*o;iVv-FAx&^PNeG)6~pe zJAp;(z}@z!?+xC&>8GuPzatOp2xfl9@G*iJHZN3FWcx*1N&jJ>faSg?+m&>-ePm8i zQScK`B9~~(BjWbzF*0O+{IC52fJ+hIRTVp<@obIhYRb=B2iSRl$AyJlBao^zLtoRG z&&4E6@ZQQ2za2@jgV$PzXudl--tjExG<-MDb~htGb^-E_zLY3t9RXQmd_NtLs#{w% zlxTzQSB`!coag6Wtar=;1iCB`AjPD~xNY;H@S3VPv9Hh89>tE~_6?g*Zq=ZFtN~M* zn|uq~&gl5S)z%(Yh?h9Lwn(?>-b#A|ul$?JSHahM%k%sXkJbuLM0-tNsmiNPj&}-V z%bLj6U)6e9$&gb{M%v}L2RcY%U7)X!{Z;Laj+3Ri2Vl(Oi9|ACQ)r06**&!;d~YU3 z@PNv`|3cABgKFula#6#QW0d1_rF*oS_w%bFuVAj(WpSlmrg5$51kShj6&YHoVN(Ni zSNS>3D)_ihV}le2_A#Rz1B2Hj$jDO^1PQL7-2v8T*q&?5>yCrO*?zlVyL8SmwAnyn z{uc76i&L9l39KSKZtH);i!u_lXubbezM~*c-NCCJORQ$Y7+VKP)#tEvfbwE?C<_0c zU8Mw{nj)OIBh?#VCeweN0>Z&Xx7hAR)d{L2bpQ-SzQD5+ zZ6Bl;abG}$RQtQ@9Gngliy%T02zn|4={$|7tz;!sa4N$OA1T*MEV2wXhI?1K*vgx9 z4JCgA!yySjyuJiwu^-18RCB~JxYYG=7@SNru4`DPKAwm2@NUT<&ndcFhlbpu7d6fELprZGfz;amF9K0>RzE+%zKTo!_g(yheeXgtQ$Q`J z{GSf_3!m;V{48s@&LA$$@w|t<45rB1ZH8L>bp6Goxq7UH2X+pFgZR{c5Z2kqx*0T%awvnwnL7 z*3rLQrcJ`K`^=>H;ql6t@+}LAgWb#^Ov{>L&H5SX{F`{goN6eSV6`%NJ<|S|34U#z z)*~yCH-Si~boB6hZ;QHzTc6>1)SWTi3qf2~ia1PT8>TBJ-p znDoZ{*?oR%`8yqNYB3!;n%}fZgV8Lk%)_wB%`w0;ZpSqIrr(ef{*=2p_VXwK6W?A2 z*8yj0XoN2O!qAp+Gn?P!^_?$V zx|;vBHXa3dJx1uDP13s?b|ke?-X?fU4;UJsZV({P)bJ?RKXL}cE8&Qrc2U&%#if8Fdiq~8l=c@ zJ{$`0Je;-r+okdhdQ=tLW6ciWAa<#WF5l%0sM<*l6wBy?Uc-`V$)m=WGN(u$cU1jn z)RjSN-21ps^PfhJ1oa2>wBj{7{Ld85@96ouaBB4qq6cHWOs01V*^#;6Ad!hjF4dX* zCJy#;JNp+s(e~we(YC{nkWQZr2%#gmxQ~Tf{gwEo5FukF?K?m5PHsLUsxTHPAd}`4 zSJb!)63#>e_eSWey+pfLI!p#_Z#r}6XA9QeRu3#^7kJTY5UR@}yf_ z{2+CuTY51iT48?9kwzM9?b5B9hjcJVcpQQ>;5oa5J3mfZ|LEmKsP^{eIbSeezExKz z_H0qW;4&C;qa<6YJR)4{a^72X{$pm2L?{4^&|9_1%+5wp!9|AE13Nc@AO4H6BvY2_y)s@JFdqY09&Uq)YU`=`o5&MY*} zO43|RgghSp5ZcsRs}`FrfR^#6#G-f&-=d;^KX{ie$2b@YVXwP!$D)?{qy4vVxB8>QONd z(kA(R9{(bAXkM=4GPM9@`LcPH*GH?K9bG!CNt1dF?20gW#E*$A20FgA%4r^ zY~!ze@&SV}!XT`e?}m8kZ$~{?{(5UO`L-}P?wxsu}!OYNywt3kd?#%V|U!{xx>(@XKP$WsYIN{dOzBZZD1TiFf3Mz$1OOVT~ zxvLE-kX=XcK+gP}ki+nD<<@E*~Dd#g~XfAZxk+&>(YmY?gnc z2lfN1bu9s#E%3vy8U$3kr%@^dZ&HS9k0^-5vKC^n#@1#9-*{&=f zKTCGR(Pw$n&r9|`nFdr;R+W^mD~LPu-XNm?AKK;12hAc3MIAsf;qZY8sAk{g{oTI7 zte10ky+{_@bGN#pDP**$#DR}>yZf1XfP$76zatQ9_@0JpalJFhX!O3Tas2P^WNxhO)fv6H-~4DB~#^!S&zqrhr`ScQ5`G2k(jWye93<9>kavE>JMci-uLTM9tJ zQB(F%GnW8y0(P0|{3PJP{&wNoQ^09E(_j{>(Uo>I?*0XBE1ITqwRO^i)Y`k^%wo&; zoArD>W;rqDR~6c>*mTK-+)UO5kg?RrwqSyz{K$6pJRt{5&R^c1Zzh%Nf@>NwI0SL) zz!}?p6s#!T_|r@fS)c5KSzY%q@c+9{0#Il(z6L%_*2Jpa&mG6q?E&9;ozu9NWcKRPKYAkIlJ~HU~^I| zlR$NB4r(zTM*feNJ8#)623U+BaM!)ss=fCbbeP}d=i-d@@4M01vjeZvD!>j>CJ6+3 zD9&4m4>O312uY%|g6lm0I+4hKRmS`6?pCNNuCErlFpiLPcosd?!Wg$Ikbu6UIA|?t zSMJzfswWTF|K2gk0_IEj7QFttEI;mf;T563LB8VltL>$w??Fjq-lRO9#s?sM= zc&;&&2A{eR#!LylZ2eq@Jueh`+?8LynGv=AQrm0I-pcY2`&No6705vzJ5}X zO8_XsAwCzfYSMLWsUdWFG*0X8aN)70G{GbeXgA z@AQUgxYGyNoq80%b?4<2^U*qhT>?QFia~tv6K&^6!h88{uZO6{HArXfO?u_GqGPZo zviv#s7$+LMi#0RBXaxUycyM4v3^1ZI*ro@GQ|}m(ZOi(C5gtwD{JXO6<OJL&YI>k}_eBS_5$ZonaSc8z^biL3a z1h$aQ#4xB8=ag~)D!O0&bv8!muLcH~$|Vb( z`hVTtyAT2L$Zh!|)jnX7%+18p76ktL=S(*?Q6y-Q2VIV<2JPFm;Vsk|O}GMbHekH> zCdLN1W>Umj8xKWV#?iSjy-nD8iyh|p2)>=D_vBM&yZMKQhig6cN2%+%OKifG!EqV% zLUesT0VMCoAzPlxwb zQI%+3=RE}?<;#~e2rc95J!V;dF6cvl@%iI2S`RtlOOqhl{`{py#OOU)_%49>)mN=rN9G-)VAN^- za{1L`f@5*oG(}hPFxwLxkqC!EBoBzrIRU#&pV?XY?ZwGD3GJzDfn$JLo!1LS!Y^iA z)cbKQ!F!nbJsn27`v=dqdHdhDKi1D@3(23~if#!A6C z@l~mB5YNnG=zbL^dCA}SAdYMf@mw!DIngKy)76{%@OJGU6s#!TGMMJezh4$7mWiNn=}$Z97eyG`4Nqc4OO(ZQHhO zJNwT29s3{Tcrr8h%(d1!7jm<*3up}ZLB7L$5~vFx;U5oL7J0J_1v*(Nr?KGbV-F8R zTK9NF7ZUs~T5l; zb9dzn4i|R~vkeF58wk{EvdeORTanTO`#u^MM*oHE%c|@ZfstdpE3++Z8(3<(Ot7dU z&Ytet!Z@3g-8Y@s41aqmlt$$)O@I>E40K-~&8u0>wfLpHBk(?IWAS;mu4mf=RvlN> zq9>e#B*W07{DX8Syrna$XCT{pL;&o9{B`)buTi+t81$NDUW?j3xPu+67TtAHu)MpE zTRo9=>%GSjQokZK36SJ;w5#Ej6s(KfG-GiOiX2+@J=8Iq;L)`A9G5Fmu$I`g;)Ih# zk69e&tHn4NU9hB{+}uswn$P;u{aI$naHr?7L_{mF9VuxGJJOmka5*Z6MmHjz{k*x6 zbn5m;f-mt%hA+P7Y{QGQtInpHJ0-P`JAf*OpRYA9$+}b>yD~N!xE(NHj*^4}Uk81F zQ^sp_;}myCH%f-|d0dQtMo2l7BHbf_Nc2l8uLq}2voR11!0I_$tP(=itzbBaogfHY~n>C_nS1~!v*p!=SN6bV%locwfz<=%* z>h(=XaJ=0RiiG1C$giT-&PKZg~7eluI(fWYG_AjVm1^b6J8^W?NFZSqE%3)$9KGM2DvR|()&L6`-6U}Xku>J0-XZKtQSyT+b#I#`s%p@2IgPIXB zZkw|L;`#nNFNnNBpaQG^+B4nJ9fbunFyc3A-7X{|=pHefyb8qA`7=6Ptf$NJ-2Iku zPj_54vA>-X`vr`X@6Pl8wLh0+xP}%NEbcL9^u$jB5ZxKzyqG`y1Zz%W6A@_IJyW=S z2Y{huyXZ8^{2#za=gILf>QH_&D9YnE4UeD}1>rczF>>0{PXiG!5)jb~{&pXb%aJ#E z8OpSV5 ztTbzTzNuE{#**_P8%m0QaDW7RLBjpubiRG(K)U&o<$xhwEbg~ZGlBo6v{apNUJ3$% zR|HJiQduyY2s0Sl`E0hOHAkvGj@N)ZMk8+{=~nfcZZ5Jj$0sX8pc4|z^EimESG@F3 z?US+D>Y;`SnmmeKIKO6v-oNaJV9>FywG=34res3GHFtjellr@}l|TRf1xCOx-W^W) zSvDV$aRLGHrvzG;z@UBRU-zRneao*P!mFP(*{*;v0y85Y^cAyPfY@d?655Gzw+BB& zcTAkD(QbGbKF(r)5VuTf)Qldo%}|$t=XySJP`RaRc#K53wRac`BQZJk0bhq7>Z$ejQy# zzrxsMm2Wy*uJ)F1B+Ta?`M#QO&KNS^QNkViV`*#uVpA164JggZ!jok8TofuKjJi!2 zSduSz{8O5I`*)G$Y5H;-X>o0wiSU$x#LXRH-?MMZDa>;J$D@In5VkK5c93>P^{cI) zdKJ~vAja{JG>l&^O-x-jDU8Y?EO{n>p&wcuA4bcw68RQI$PwWlxV9k@|7I#qM|-GE zi42#ljAy%-%}C35kr4(xcY9vRUNfCM(BN)x{1OF%F~Gth7=@`s=mvMz84tr=im^H* z(>%nooJQ+-Cy=ji5A=NNmgV#`zI7=os&z?|ZlE0@|ciT$}f70;u zBx}306q9$g>sXBpx9e%42;Y_)KaAMEC?e#F{!2g;;cS7Bo)8w=7yi6sV}5$yg2i7W zHqf3vuUHK2S4>KF8V!em?$DFoHN=8+R%0LJRku%kmFho(Q1uzGV!pwCTZW?`laa!x z(0*p~@xnFa6L_+j7`;(;S!$CoMgy8H=nWqB*-U$n1AE`=|1M|zgUExT*C7t!`pbpU z7*2V8L6+`IkFqi2#Egk$mV3}YfXj(bNpG?eM592kSWccIfdox7j5Ut{IrEfd-qC5e zY?Bvt9o=Yt%o`)$mz{!5XJ}b2k?^Yfx(-Afvp6|3t+#T)cv;;emy__2aI(Im7Xz-+qa@nnOsXG!f9-p<2weuW=Z?sUT&xFvZuwTs%){RsTnZfZ5{WTj>mVE-Y7E? zMp;WYZ{d)9!C7!>-)C94q(Ozio@SBY|HYdyCRgso`(~Wu{?YjN{vj-4^bO-AKd%R+^cj6yfW9N-__p+Q@lZUbl8USMk>J-Rf zOMmUZ)~t^4{kT(A5Jv^$zV5|^Jz~y-eFP!*Lm*RosuYRV7~n-!(e8$~&8}dj3D4X) z$$8h@MfG3tMI15tojGs%tS`GtQGP+9H2|;At-n1=yA?=riEAy@NQg5?Q2*XtH~lLV)AdAF7Q)tT0YIN63g;(!Bal=X(AHw){2l)z z*j95H4F#>(;CId`dIe=+Sd?^>n)wlgX)%(N3O$iV^`0PtWfs>3i!@wAtFZlxyPs?}B4m9XDfq)y;WmUj3RisO)_WH`l1d}|V;hwS zfda@0K=>39bXwT`zDA|SFB8gsL&xBOkdJbazpZR9KYD}DQOhrl53rZQn2wcQM&>66 zPZ~c~LP(vJd`PFg?KK(EO!)Y1-Mwuw^ zJF;lBXZuo>IL_SOa8Z3tO@a5!1lVeqQRD1bugXeR@-WifgS77<;>E&OO~u3^+qTzf zXf8^=NP!ad%JVvddfW=&!mzAS-VTIsg-0y|djZ4?Y`p>aYIJ>J3!_oRja8#nyDU9T zJYt;qo+?7vtYQ<(@WS`O?WTn*Am#>9wgPP+O@YnG7wMK|Vo=CIwxI@S1G^P7&3pBc z!CwDe0bfN4VEk-752j{+x^(tkFq6LD5@;WrPd+q8*?$@|1TZKiqXBzF<{#*XakLL0L+V4kT-a5oef3#|;sseY^sfSvT2$ z^pHa#94|(W0CkZuY|XAzE#ku1qrc?MS++wqdTbUp~(2%%d5!F?~w+f z2Mg!PDo~CSZH)uF!nuE=L*pe_TU^a#;%@dKtTxR_*V%a^gQ7YS7(v0=$s`{+b^~i- z{bcp$K{ei0(0aoL>a&;dMa_iKl`NZ@%9)4y*jxN5NiUvLiwa&dmIRe5v=*y9`*Y<5Lkjwr?=-F@PHN2LAD|I<*q6b*Ohjt z3G%t?OZ7ivt{*5LVM{h(&C}X3!RYQuh&Lz?4!#W%c18p%y=#=wqHz!qrDO}|DUsET zRcCiGVRI!6MbdQ31|qgK`Kiub$Z|bFRl{>pC4AeRbcmBQsbxryH(-r=wd5f5WycBf zi4Af>2?c?{W%um&OvlMquIxVS^`hY$%EP6mTQv%RJ}~DQ^7m7G^1&yMG_dz&L$yj` z48BoDuwhi`zC(82hIUbLJOX)XUyZxM^9Z_y&^2i7XGemJV#ma+(JpEkB zwPQb|v9|C~6$zrUZb@olyfGVG#+`{bt_GR?b++Lp9k@H9aS_ttemR~SZ)Q}K&Wgs7 z(fA?kcHwtWD^*A2wr{ue*$Iu7BepvN~Q&Kr*n zvfsV;*pP!BxN4gtE(Mv*LRa|Fpq_{QFTFQJed6I)s8G41cm`G zbKioXJe#mwSSKr6Qlk)f{{ibd%DSL4*{tpy{j30&U}VqMQ;tJRZDvZd;B$SotXezn zdPh>piLC-FtQc{faJiR!k*c3=oyVg?s5$nDuQ`*zCbys?dpqkJ2`4ne?mXBibpW!Y zB#}`$B847%hU1WpvrP5U5Tv_KS3v2o1_l*(3W`gdOZu8p3m7P3_JL z^aYk#nfhQoqNEPmBI@FKE^^xt{Qu6RoN$na4r9OG094TV9pxY6nl?DNum-!jV3efXqE06CQF8&iqze@q5PYt$uxEO=K6e^*79Z@Y5L^B10JAY$0 zgVc0q)dv@$O~e>|l3vFY_Hvr!zB5k0(cvb`VF5%OdbqQh=?L`m4Y(JdE6`g7Q; zX0y+1EzC(ltz>N-^%n;Z^x=z8@7b(?W25i|$ZMrmnvf$q(s!j;89wpLfjk&gqRU8I zzp$X(`>glxVuM|K6BFCGpYxzEaCRob9h)-v!Q^ZiI?Ij|ksP-*JEyc{twkdt`kM!q z?KbLGX|oKG8~=#C@W)((Y8%h<1wmd&YkEKFFk2$tcO0b^=<7Hv;^R-YxmE!@6F*}& zX0v1GcBHw_(-dW`+^fUL5G{<>5&E7+fUFP08{FaY(0#Ka5+h-Pr2qwF4B-xpH8e7W z7)>nkj$kMVkO%Z73l5bh>W*OQ!4+v2B_5u~X~YN%Z?qK@>apDk$zRs35xg>CLchpU zDi5Y|Jlj7^!Ik>(6`(H5dzQLR1hX;`-gtC-0E=!jZ3OZA50ySoOz`&l zz&*3xt$=QrZRk8TngLu7BsA-?O=k`RW~Jqj^BOd4{o0-|G^XAjVeE0eIa+SJZF$4T zDgzWfeNQpuC`Gaa=<2M~RU{6Wmg^CyYU_^3t&}fS!ZMWQMXNG=Tq~XyXxagcT@B#l zp{ec3*?iH}(QuD9Eh&UQv23uk@dX@=!i~pwx5bz5;|PGL`D^hLOK(2z;d*L7fQKw&!?V5)@(h zDF+bonJCU4vq-Dmhp4>4l2qbRv2gfsIL(JRl>b=VV1>@Pi7X29U}(60u#}e+ z_?Xwg4Mfyp`w}m`65}}8Hi3^W;E*3|Aduf^gd08e*eEmXGOyyvU{1vZ)yQJk^~_sv zdOjK{K-lE+c2=FTH^llEC0xH7TbO=fxIh;%iA7@m4CT?ERVSYV+eu-E5PiE(U&= zb!*4V@*806m~SY#C{E-J70eY;1>+}f$gQ8eE$cD)4Jsq>uQ**?u=Zi{?@kuZpw*b& z14pqu=rBU&ZWur3v+nFT*lyzVNQTOGF?l@pkJABJI!{CR2~Q4$cG>$uhmgNmy*)|3 z&IiT0R(!1^=qvg&cbqthe8p=7Kk+wpk=4v`gPwOtulilKt9y_i8J7YN%6=@*{X($f zxo*+fH#&~7IDB7dn6k!a!>AgL8Fc{PQj(2I+nD-kz1eMmNn#6Q5W;eBnbAneC6;`@ zh`OtX*+h5k7TG+w@oiS5-Wncd9NDH^1!gm~Ya`@a4y?4ir5q|e7^LVX4Z8oG z!n}kG?jXIgq2{V4s+B;4bB`@97nSKzh?MRG-X&bF{x;e)E#@qVv=RY`2(BbMP1Lr^ ziaz9b(9yg<{!*=F*{4lA=o9#Sdfl|hAzkTw=U;7|&tY9|t8-IU`nKa&4ft zP)4$+WE*zet=Fy33?;!|cYI|Vxt%P+HgC}bvPl-dpnce_I+u7 ze?B=Xlpp^f9FkgK?KHx@%ocuzzZ zCh$!>IC>`h!JBk1kBX~#y(m5*kN%J9Dc|57J;X{~U>~ZhOOGVdfATp|_a3$f#v%a$ zg7ofWL2je8xR_A64q%Q%eCm`Iq)vdW&w7(N3Yo~$T}@;tR%^2w9`cKtl0Jkj;qP9! zSa@|B`!cfiDu=dL8s7m`8cyXGoC8i-4o7X}?K zGLt=_y$)&BlPtup9uJLLV;QEz9N0kcKe*A~hBf`Z8*wXlt>WG z3HDmPdm(ttU`Pk`bu-CNJ2_5Rp`OUw5sDM>R{wC&5WnjfNW$^`KkQSxt~eusQBGI*;yD@9?@sRiP3e(D)(KY1)z{kxB;NY<7E4n zsQ(D}i`@)e1vm~OsjYQK3iQ{pdwV2dQ8%l$O?uDcXn#Mht7CcgI>U=CrP>`ik zjKgCiY!+Y+l&RFzc4z^jsQsG5!W6Kw={fgnOYNJVeXiJyCkZUzjaGAfz@evsyr0a! zwtFm6sb-ep3UNvHT}~4!rk>8|@#V>AU*&vtd1t|mi%IyxHhw@F?$`h!R81FJAer}GitK4Lao5fpA zmR-D#^68CRfUe8D&-W8;vxjHeO8k$l#V+FQ@Z*V05~7s=YBOMsB8(!iD5+;?KU&BSwLwQ*?F z{2?U7&cGd=Rv*mEmV@)zu)~^vNjY_7@`h$CB%+d7WkXn0L9q;{pp}Vxzys} zeC>ACZsI54HaY@i#~eUUodNV#84>98TwN-Ddstk+MZVg|kgYZ2N6B?wsCxb?V=Ec` zqiJWpBy=xuRGpPwu0K0mhjid-Qxz4vB-}?Vr|!7oyO#9h+LdjS5`q}z^_hI;5F3Sm zn9?8lpd2Opxkm*~*N=n?Mm--V`s8QCZWgral$nQZ7?sDCJrQ@EFmQvx4S6migbio1 zh$l7rd21bNgP1=^#{2|m=}Z*gtIvBmmF0Jbl{l1*wlP7=E+BBDPNJyu&E~wf%jsDU z|9Hk(O_s0!`6Ur{V|!Q_w>&x6zEx1(P3tjfRyc^^0x?P;*)kzE13|t z@|7sJ^tUa{K};^veQ3VNMA_$H;>fJmS9czZZ^Fw>2N|Uj;?W$Z==7S>pS&g@34g2x zw4*Vu0X>nmhE2=aIU^AF=nw2}_vUXn{u)FB24fDiiaBE`c*iNJMqy$yN+0<{h3a|-FxJ{1xrQgnjcgI8X zcu94j-uCx{Q^bSqPbHxdh9uVxij=L)?+Sz;_`yXvq|=AYH0U*)>lIF1R;>kL9jL~$ zt*B0JH}|(pt!sdW+Oe{%KeQ@p0)0;$#|x4ZSe?slKdl9uMY6w}(+ziD8f z^pOw+6%<3$X|ug5@b8!OlOW~}BI?EcQ}doAoaVx(ls5lzRjIQbBk|Qt`QN{6ZR?CC zp<$CG60md9VQMFB880QsKv*{AZEIKMD0r@*3?L5=+zwSgE2^P(<>{m-&QjOiZ!8(h7m>Zt_ru=d3%xR=?42861h;+JCNqfup0wg zl*+|?H+bwuOs<}(T-(jDaaT)|uI=p9FC4!ZAR(;GS}m%}2sNWkPehps zoMhbN>_izjm<9wJBhgz&$6c;r-cG(yuy%h>DO9%p&5gelE zvhkxIt{ZJO*pwR>8`+V`ASdi)xywh24B*hWU3~-0WoN8cS@X4{C=CV!b`PVB%}ls) zYBRj6LDrNu*okY@BFoJAdPt!%!mZg#X5!CYj!Q>|tU#!ZLK&oq8g+FYW<&tJy#*1@ zum-A+R92;nOc#!^T}?$#fFctM&z|CcC`I3v*T)TDHJAwl!`>b?v^HKoqw_Z_@aCtt z-Q8yZ)jA)K#}x_H_%gT>-}8~s;c)}{_}CgZ;bXBR;$PKMH;|Y+0_YP3eh8f68=5zB zmL6$Oj-+p-0R!dP1GVJun#ZY<^_`@?a^fxN4c7s9qyFPj- z#7Z75y6z$OLAP|y=G5uDW#ZJqjY~!sU#`$aCxt3vp6RgTE1^X94by# z8t=5K0Hp~k$T4OD1R@a1$)e05oW7J~fB$yHDS9{7_{p+ml7kaq{fswbG}E&-`hsic zc&J?EpvEcwovoL6Bxy8;D{lVWvG386?*4BqKV(8uU?vYE6chr-yk?AE(|u}OTRaQ+@pqM{;y8P z?ZK<;(=ZhDHAxOh4jj&kc-13vcqKzOSv|b( z#B3Yi5x|$qtNSH`d-Ox&w;mW0+-)~Fz|{BMcQ42|O^XJs)f1T%*T?OMc>%?YfCA>S z!M}r6Acp$bwsIX>1N#|e*{l#-TLd(<*o|h>7!h{BMVAL|q4>6oz5NFsQ0}5v95R~C z4+4+tIUkwD>|KnZ)y%u7WQIT|bq>)q1dHkr>?hV{9aZjrI!MNL1wBN+0}(q=TtmEm z8jnG4FmbV7+~FKUMKx<#xI;Gck$$^om_wsdEiA_{_NE)D0D>_8A8^H^7t7McMP^LT z!-GfTqXye}WWdh&WIj{=OGj8bDDTH>@;B1$?(Gezz& zRHe|GNSocVPY~au*UMJH7<>w7@@{~NSXz8>oPOgfG8@irKcdV21)WyvmCZ9ZOKPD^ zl4n{PFPtfNYtl3xqakK*Wq6ZO>}UuiBHwYu+@m5WM3L1 zVBo+EU$D@Vd*})kwZ?Wq%z(0n6|P zF1N5<<{?s#WY5^Z#%-qgQugVT#6BlTF%m``qvfti2C>thGz9BiJ0}K``-nzN@&=P1 zSAizc)}2AH!}{xq6x#-$KY5Y7`^Z(%w;D^mrqirR7Z-nK!bp4hbK=2 zK3@h9@q(rwTLsPS5F61-m7wo1{5j`2Ggj?z#k=6>5!P4Ja-^Q)#F4M#S1*CiPfZ$F(ydE8cD7OFlWC6z ze9m&KvBrboj%On8+j~JXm0SfWe_Gi0G8$m4m%hLr&{m+N5+Er;G>!?SZYx2DQIUD> zkIeqfs(H>|cua;4;o<>08xru+NYMoN2OGR+L8GBpeQbzOUZ8)1kOp!I$aYublVw}$ z8$|%7@lf99L*h0^Wq>?UWVO-${6}8CQ$Q7m4Z*F1=MsS7xtkp{e5V1NwpWmCfcN|sFrfVc>Y8D=>>STmm$s>| zI4x&&6NDmRLaMHJMY6~Hl;YCgaBN(TcgDDi9P)YN^CCI z`dHk~m3Q@43*iDZQj|)|GLYAkayJ?>GIgjKBbXCus=iBoJNtOoq4?MSPMCD_uBpx$ zRLB9c2-bE|fdZms7yD#5@ov$Dj_9_XSQSdNIoIPUrX`9eMKo)Zwb(aQb>o|x6)wNo ztjh_QtE6)@q9E{up7IGQ5>PnP{A3m1RvCo#1`a}m zSe~rS0(>J$IhiP^nahTdAXh0(V{^8`M_PdH0n5fMDAh`BpEZzmd zfI;xz(cNU_koTNUjW_=LWl&0M57RjH!PxPJE3TXg=upT5adO>F^!R74G>+@47xk!? z=OQigmkKlsmDpN8HQBaeH$oo4S|w~Zfcq%ZJwB;Jdr?@^gq{S}h4{gGleg=+inUk2 z2<|tXdFHiQI%@=Um|vEA!+)QR?)=~}rX`vQJ>p{=kiF;-xvhF(Fow50^kShGWJkVx zZXvPBC0%$&(!-F}kP%W|Vd1`~vn; ztNCGir=OYQkSXRXEgn7Fy=xDYrVtDbSqYVG1F`guGhz5e8cq*1=I-M<7DdV~9k+{t zA~D$D-^s}=`z<)eK)}=owqvY|h>b_m=1afo3&nmGZy+Lx8(1&;?bZ-|nU8Zuhgv?< zeE~lX8{|`cp7apcOL%q^>HIFICkO!k`&k z@OlwpBZ)hmgOoVKP0h_IpSAB6F_313ak88t%}&6_5q?GTU&lKq&t)h0GCd55rkHud zvf&l*rpi|=Rhk0wxhzL>R5q*T&a}uQe$A>*(9|f2=LWvrV$z+$Fx4HOJKr_5}ette@`6qd6 z*%U5sB|lMfS)7QgYv{M?Bw;PJTs&%qK$Q&&`AFK~;GWL|{H{Q2BOy7CIQ$^8)V#0> z)DwrAhmX1;DdRd@@CNKA#zbba5vpCG&gi9PTFok12wc;qJmO+sDdOqC(A1bye|S`t zEfw^uoSMAs+;BWRiP~S?X#ggiW9ink0cpO|z;e5np!)3U7D2Y<`J*|08DoD^OAzD^&jO)iBU)CxQTuO!s9z`v1SFB0Etl4JM>^EHiGb5wB|Z2;6vv7YZ&2)~sW8hgj2G6C0M z@T+XU2}$JON?_nU^mPWS9KiMT1Szd%x zu;0ncd^9P`{Gi43i8Py@H-qt~j38JAfLa0r>bC^6FGPv=ONDLEXF`?LSUv*lY2SF)5%!xElecQ$ zc>>d`h8;>na^%8+^8-P{Q6pW_hE{#QAD`#@$I=S|dwHnco0AS)r4+L8Z+ZW|brGcB z-=r#gW6e@%P0JQpQi>S%0TPL>^k|(~rKp`A%G(N@V;>Zi@()&i(4XI8>RUSLPCvMf zJRFUTh(C2o#DF6I2V&?Qr3ZZ7`m}QPbdB~guph&{oE3*?Hnp~ zUR9GK!fJMda*a4KvPFqG!SV87Giz95aZQT;av55+b)PEcWNE6!Ti`V_9Usi5M_*Ke zH5KdtE0RTdmH&ubGM2=Q5QqiCdPEslUFKMGnMaVLsPhUfJ}>%)`}nozVGo-GTfQ^R#C`FbmremTJwpasSPRq?6T zJxt1TZEL}x4r=Yzh(P?_#`bY52yU)yZkaiuyUF>N+ZnnQbnYO~i#cRe%ZH*u`>uWCB*4vU*81Yzr8Cp6{8%({nI4A6M%A`pJ&g~6hfh;i z{A-}7AERkctyG3oRt}{gUB|s+htuM4LPjhWS?jdzAAn7>RLMk+Q#MnA@q6)0iigls z17HDP$y*ssW;%Opssib5Y2vwG>=|EJR78h0ol}_;QB+Nf7wg9*zk*WvDJx&1g0F0u zU(r}iSMt=?_T#ZyIt|ABjwiSpAxAZ8n>~ozI(~^#b`9|rg?wJ3gZGhd-u zEj|U}T*@VV6x;CFuY?gg^d-k<|8XTZS({!5Ins>+m5UM8k&=q&C_I}XgKbJ2pC2SR z3OBAnUlRL!wUGw#z>NKBPABE~2beDmxAMO!TG4VFpbBviXp1-4QW(Sys1tc3{KkD` zKrPTiOQj&h(}^PaJ=t`v9_8m}fuvu_er0DWR!+r7Vy7Hgl0OE(^-ORr8bLrqMbBGKu@z3!I*WgA*=;gc0DqZD}m)a2vDu@e0y|{ zY&KeKIUG;PsuJubrwUieXZeQLs2}ezSD)-18X$RGWYd@q?!;cmIqs$tOjv0D`{@#g zaa)Qt7!7Cb7~<7X<0&v)Q+BN7eJ|lLkT3*EbR*p7BJvr}c__Z0DSCtApc3J!C+ZHx z!9UXZYWYaq7r)VMj=He&67lQLjVT0NhaD7^_UbvJm3fEjjA5QwE2{~MSmJ+LL{2iN zMk*@>v9%H;q!98Km&C=P&0!DF2zU5=^~sGGyFA`}J72+ELmb=k7v!7P9!IW`O7$KQ|4Zxo6TT_f*W!<;39%}d4q6RJ9X&I&{}d~0KZ zenjM=h!7uVIMma4FYtxOtzHJMrvSDD{3xJq*&ev4)>?@(A)g8#?^P~=;jr>}_h4Dr zTRt`gm>3&JueWiPnO2Ta4)OJd%*krH?72UcIP}QQF!fN;c1rc7UzdncCFpdVDr5_) zSDNc3moO5Y)3u~hg%Ga_A1x*cy2OY5nirTAV>@Be&WbbkOcqk_gy)M*R58nZJx04e z6dA2r-x9~cB+um7@^^xFp#2(C+^?57usX+h-w>wX(#3<4E?H7=;?#cDZ}CgE;bl*- z={@Pa`lVp09^z^w%H=!~s3Lp$IxAM2&j}m!fIEJoVJ+9i%>bj13VLk46klP{;Cw4o zqM59yQbUFDY&V+b<9U#eZJ_8${HGo1N1j^y@QAotKMa3%AN^?7zu#L_`UFzat5DsY zf5_o~3~qM%Z7C9oky<^bfukm1LX){irt@#DyBy%IS4ZWFMb$eY?~Q%V+Zlo6)r;-n zWHzf$pu@U-VJy_`1T)eBKs=--n4HCxnPcCd$h6Y3Y*=%=w*j&m^*})Bo1(N-{>u*j z2L<(?iuhd1XVv@f>|&Z8msn3{J=FSVTo%7@R$*`how#zi?N`%ZZMC5dP$L(bwWvme z6NRxC;(BTltu*KIr3tx)`Dls@3)Az>cF~@uBy`v?eSB72bv<>wYi3$D(di;y%AhUp zNXotjLw97I{U~4SE&%_a_t2l4QL!*t#D4E!(`NU?-!E>0B#sDr&*#1{EyeLcDM0Ss{uLL+75T3F^5|&6j`pDev4)cq5&f_Y28AqKA>b}^eKZ)g&=!#T-oVbV zhB_l$r2|Scz-~|rh?v!9^(#b}D}X&evGDAq?sN7I7RDZHdWKgP2UO$@c|5Ec#n}Nm zUKPF$JbScdqu11%4UcKa6Rpd;);0E@sF%fl=twp|^jGirzPDBU%i@(jR zI&_SN{xohtnG!Bg_cOndM=O>w{mUUI3!m^No{!k<9{JEx<>xEai!K%{JQx%xu1`!) z$!=}iNuFf$((u{c1oPrSqt>ydpXZuE{{StcbNadOO(lYk_d?PZOL{lHlT>P5Lg?0k z*1x}yQuBjdT=$iQ^U{wqL`%l$l1-;A9(x2Q8F4+GJBndNsrKER*ZpaROMO_*MK+9I z%f>&Wc*)!@)t}W*VBInf0J{qk7M%bgUPp6uGR%31g{v@hB|0IvW+hy;M^(? zHmy@s6PX(=ztQPb%n+|-R|;ii*GuQ=wAvy;O1qSBt*KD+!d{#kzLOshdCa8lb~qj{ z6}LYQDVH4-d10t1KhFJPd-BGpn%h8T`8oqy{7~BCx^jU!Euze3K6h!8p6l5TkbJ?+ zWM&;4{%FN-4MwyK4MWbDhy9e!bzJs`cyFfv;BWqyL@OgBQw@}!3WZALF4_26$`c~v#uZojllh^%_t z&C@&qIdOeIcvfp^oM)_Up!H{BB?94h)MO8U5+ju3d#f$?(y=i6PQAONs0>c$p2a*) z0DSK`z`ld*oM5Ock0fv#rfZe^s)`-C_-}&^T=vQ}*y?fW%$IiGa(ixxB_G<9RIdW6 z{B_I5+ju+VG#t92R3cp+7q+=Kh!Y?&3%M3m zUE|e3KkoZqECXeXwB!M8o{Xb1k1Ak*F#^4gf?DDR!i8Lx(2Wa**znDBnQ$-k~=GJTig}5My?8>HBMr zU(&g$2Z3w!-4&dgS-HLqXsfJua-UiP>?&sn7I8AHN8cbhTR$J`wlgwpOTYM^DlHGk zZO?o4cHK5!@T}_atKg1k8&-*cUDh_&#iO(4C0OAhpdUtCAH5UFHU562Rklx49=FW% zK|zc55x-pEl<%^x2iDRZRgN!S|MC3q17$FZUj8S}iK#rKf?`fIULj0YxV$GjR52Wd zT)Y>Om@b|4tH5@|3St!mnZVU;oR7J3Q#qIp$m(h{lr$IrYolX9-zsPZ{!oQa()V40M?2syX*$daJGDFiCM_4X z-$Bm9+qUq0dFAnf4#Qjv3P%GsN?FYpi(%T@IoJlO*36?L9VB(8wmwU z&{+>ER=a2XZ;SnJx(Dgo65<%2pSM7#sJ93Av*OMwvizO!aj?Lx;KTPZR5VcKj4mIV z7a%N82e4;bomDRM`bUB0n^}re18e@qBLpU7&!-Ws;W#;7lPItIB_sSL)6#MXC>VhD z-eEz65D2^R;hE~0A2jh?N4Qq4DJaV8$1e_%Rk=NYkfN_ZNmYF)?;uD(p-yEI#BLvk z+bi_drXm)h(b29GJCchCl8~Q2=W1jMh#iu#u&}fn&H^B5)YrQ;y(z@!q1z{2 z2hnqIP31-Hhp9ij%5)37w^izH+mm#^RFmoVJx(jzZEx_$tDwdIc{WPZEqVPlZ`=yZ zNT=DkHVuEhA-jz9~5gMx+Zz34A1=#(sN-e$#=szg?*r9h%h8yOF8Ro0=Yp>&__Hi*>R&=Kb)GT^H>ATRRwF6?Xp5LBuz3Zn z2L({zz!-bVcmVj5Q@3X~crf^j1YQdr!2dSw@vgt5*U@uot@-gePxk3%2WpZzfGm8o zGtb-Y%$b`q9R>t0P9?j6d#b^n#;=ui`nGrVkNCReU`4hD+>{Fqeldg-(h;TdzoleO zND-_s`r}-r3hVu@<)&4;V_?;p`55!HghY zgIi*?M~i~%1ifmhcX4=}i!AzvPv|GOg3ZoRThUs$1KJ$0=V3FQzCp$}5=~j($oDGA zh;UfZK#K$am43V)@a^@JuQI% zHEbh1%(Qoe0?e4}vIhjq0%zI$7WNSPas6BA+ZctuXxVqGC z((n9pXfZss$P%8;Gy*Wh21i>#`1L&i^2PH$@b{z>&?kL&f46cg-jqOBkTk7R4_c8; zUW{PYq~l>CO+Lr=H@D+wt|;t$Rllf}i+!N|h+Z*fGCUYEQWlDoFKiw(Cm;eN=Zp#? zscy+jd?Efe1QD%w+AG0X`~@MH=lL!aKdHMSl5hMv$6|T zef~P_<}w>7A3{DXWkPBTSjh?$B5}}u{4fw%t=rIhXpy02D1O^Wx+3>q0&w*C7fsB68?yJ!M%aI$ zQvOavWSpk+8cbq?0L*7Ho3{3O={W# zu}+=B@`Qv0M|v)V3RA1nMFh5TP2%!$v@=i1E&big4BLT`^uqXf!FFl9&?t~~>~^m2 z_Sn>o+ldmz5=aJ^p^Xgu_+g$*vTxLum@}bK&oB-ILiPCp?qZyayYSB_^S@F7!$7%} z4hPV5XDK6-&X&{dQ6>i;#_IlmG@VscoK3TZad&ry;O?#iAMO%7xVr~;cXxM(;2H>S z0fGki;O-XAn}4lyIajlKrn|bjYS**(^}qN0q=TIF={Heq*Bm73a*|J{;^iDrDvbP) zGi8y$gyfPXhPjD_NYg?I|JB(XGWssWKjyPYZ6ESd*hJX?%0HTo>P`~YI8ny>s_!P> zQRu?<-V(23Af^)REB;sZyFeMbJPVz#^Ff##)tvY`$kbuA^e5H?{k!-@l4tX{wrw*t zH@d?C3AOM@%nQuuDV;Nan6cMRmKLcy67fCR8gxaI^j{T^e(s~?uj#Nj78v=?+kM{m zHa~*DJN3P8Ty~kYz7`*IIBp94sPC;lU8>9JogM?uD$DN{GXVJXu;=V^QQ~bYI@)Ci zniYA!Q}>B5RLZb=+;#~*u27>zjs}c+hiEwEk}EN4fHKH_UO5UF#o?J(#d zAn!7i{G1?F|FF>Alb_UBAB%NDGr$IQYF+^H8`h^PG&7R)t=Wp$0dzN-BXFi#*SwP8 z%Dn2cs#+ZMq=(T6lm~;mYYZN9^1tW^B`?@cU+G}n?6j5WphE{s83HaGLofoxk>hGA ztcY0_&`RRwv8SejO5tzE-Cop1b(lH-@UC^=v})Uy^u4ZBD}mcq8>K}4R!e$o zxVPhd;H(%sJu1yKI~6gqGVB~tk+VUGfTM6L_?(m#@t0-r&GblykaurgWT0;bi_rv~ zK5bBuoa(O+5l=ukmsfeh%cf*PEf?NHn+N%ZQk?cooB&MymcB0W@xiv6>h7~8`lh2g zAG_hJSk7q`@|D9Y^f}adl7H^;I%^dMOFH=b>#HpOjy=~>dO9#s|1e!1UKj4r^9n^) z|DtQtX?^#qL3dE3v3i&-Eo*Xbdu)W2qJ%|?)OSoH zy(!99Z{4v%)Zo2a-@_%D0xBqwZOnm+d4wNcZ=+O)UQwOC!U-o@`-;0G} zT7iT@@A`c`NU?O&L+*FSwu zt9#JpTtlf(`V#(mk}L=R>ul6pl95?{(L%q;_&6pdno925(}wyuPb#v%bE2pJv4AkG zZ0HLLe=%R5lc(qv^b+U^Nfj%Kbl=QNGKt@gU?~M;9o!F-UnvbuIB zT&CDZ#{gGu0dx1i62vm-oudW;`=u#LCwD0LDkK0G$j-4N&>G9Ojqf>!el&0VuA;zS z_aF3Z#d9z2+`70i8F`QIXX-xjAQW&dP>KS^TldxS7Rsq)(p@P>B)NRyja<=(22=lAxw%hi5e`>qxBnw`|r zWOX{#tqYae|5{dmIAXT+W$dleoN7pcf@YNBokN9Ap)=Hx#Y@_TuE#F>Ssk~OGDLq) z8P!gAe4-xFy9?y6q|b51T-D~9bnFMz6)&*|;XWrmMK8Z*uKg(jK$`>FLpP+7A}iBJ z&aYos^*d(UK+s<0*bb3e)hA|vuPuHp=?!2a{JT55+F4WkPv!3ke?V&aaL#>tY159+ z*xwegr>m!T5RA;y*Z_w@0Q!e~BX<`tc{x#)CS5$v_byW6Jn%D$_-b~}iHldX^~>YR zi=Ol=!IFA?KsDHd_*a{OJpIAXeQHCXTr{Yh7j1*>w8exPD8j0sm)@{WY<(LD@fvVf zcd%O-pyC)?%$tU+IXp(|M!|CMBd*eozcC0`hWCsn;CdMUG~t}S9JFzjq~4yYE^N97 z>s#6b@COgB2GQFQyLJX6*8W>>v7WbUh$L56y*)xXP9Ig{r~*LgGg4X`C2HP z>?Y5VZyW3|0`mjW|Faf2Qd?;FrJUYXa&c77o9_MhHd$0VGl+>8AUoBB5v8AXoHb3J z5hBcfWng4HC%=ufF3B{BZr!?~NRIc$Zg3X58KW$dP9S@T_i2TSCt_1s48NB`H+K_aL)+q!EPENQgBU3=lvF za}BL3bqqh3-i3gErz>wM-@qTH@X6#0K8ZKp~Fq!$_;nXD|gj8JfAobr?{Qu2`lujBlHJ$&VXWSPoc^%*OKjsN(@rQnX zXs~8vno~Ae*-*}dB23#B&%$D?kSk=AzuL>dV@}9L;IH6H{tll^aF64qsQXPyKqg@c zTj?^wKssewbkDNO|3Lb~Ksqrg5LKv{45CCP#mmLk3M2Hq}+evJB} zFxtnalRE2rd_i`-!BW>2+cH%bX87-yFzH^1>nLw5u2{p|7P;%&(ZkAuL}B}7tEBVK z8-nHC<$3*B z%ssCaLAz&?2hOK&vu+#v*IgeY>x&OW$p-#%2Rfr&4rR%dDG4tBL7c<*TM5ec7kvyV zRXUwT#Qe%nHT9xOvphmNDw%hxlwL@YtJ_rBimVnb59*U01SQfyg}cdP+oz<13x_ZR zIikr0^cYI0`gY0oPgRns2K*LX5L`%nPM6yr>);R${ZK?Q`BLfr@oeV)!z0+L9Ed=g&49r~tlttllG`^LqYe?)1sTT~ziI47uDm zh$Po@)FkU}?{5<_Q^|K{D*N3RZy9RDU+S_0UKD1;1A|E_Hr*2=0d(ySFbGto!K9BF zmb)msvedmQA4!@;a_!`RuefaR4sy#yFqVmfSqgS}M}$DXH@9kVU6$1I9rx1P3Ds6y zBUOVyhs&VqDDtw>eo2bxJ=sK2?#5Nn;zO!XUlWsMtiq-|G~@#{UsD{|r}81@PMwIK zrB46p7|D5`$EE;RdewQP=!Dn#xZHWda+d?a3=vYI%e;y!mI*EhXgtW3SBC~WiP6SE zdgH*R<_Uw;$5C(xYIrsXsp@F;?kgONgwm>_I#sy1I zK&K=~cgF2QW+n?Mi%}eFqh)EHsc}L#~QT(EtUCUn~%bCSF722{v=)t?7r;3ywVZ z`auHMSO8vqns6I}g?ULh^8>#Jx1YUI$=OYg5hR@#rY_5cW!m9bVOjSG2T!f(P6Ba6m8IvOh`0OT zExPcO!bj_%y7UzqZ>&b|ubbBnxmx36}6BT!ihLHqtKS<>hFc&_E zZcn)if#Gz7-iQf}*ui#g5Y?YNZdXW>>~ho)y~2y1%=)FB-As?dD!cI@99ZT=-H@U` zDionO#00HB6_wRBG$y~*^6-6*64J-Ah;<$)xz1 zfTw$|PLgy$6@Ou|6`7lwiphxzGYhvZjjY{b$^&VM$>DSaj{=z?C0m*U_i`xy`s7CK zARl+1LVg?ka5$W}SZWOzBmhx%(q^2X69vjV6as#guhTEDhfvX?R)*k)w+w1 zeM^tTQwX~sEOH{{C3qZi7v?~Qb~O^7ZN!yM2_#u~rv6+}&?ud*M}g;MJdbih9*WmE zOB#j0Ua<)I4nfX`<;WNR-r-6j5Cm5oDMx?GwRbDnK3)PClV zAr(v|cB5!KPLw<-mGPbhpEau+HOqcubgp1FW2;5>3B5mSG8JwMk`* z!G_>T88}U5hLMVcK?5F-WvsO>BWKoS6x2>PDcdfewn_e6qx-K@kw!`v-I6MvAB2xX z#XFpY7pAf+yM*&{pcdEsyF=YMoP=s#JHZM4uv#6FAH(`&0c-c<-aVV(lM?ItB3JM9 zH8%;1RhA0-L-H@i-qHd{aum?}n9FCh@aqZeThcHyvsWw})6Z>u(*d3vSSxNa3Ho+d zSknI2*AVfSM2NQQoOr@wKlnn#v;dEYAJ?X_6x&@UIESPUf~qe#to*;V!j7SPcja#g z?+H&7oR7F=@~(8bgett!$Ef^eyZX$&AY0kE?QB#yLdX+e_&3Q?0L!Ll>GlVt zNSZX3&AL#3T&kHb-vIhap58_Y$GIe0)io?XJZ7jT*zAS=Shke>zY#Y7K#D8K>pxne zgsg)QUs=_{LsY_%yrjRG? zWL<7I$ALfq^mE7%R3HQKJ^oS=RQ4Ys9g;IMwtwMaMn&eu&8~}hNUh1&r}(#Nhoj(~mkz|^xC>=^w?(oAOJ$*v1U~B_5Y)3#7tf`L$ z^k>fdVI=6n)fP~c+}$bZB+;b08`K2J$j~Nz&sHKiOe8-*%nH%XV4ra~?Z#ERR4LGQ z+#NIg&BwqvVJSHCY{)zLkp7u`Q~rKq-%Y?I;%oG!$i?-$G=Gf}?H?5Siel4gd0fc0 z2)^V%(*iSu4x=(9(!B$8E&0h+Brm@U8|&6=lQ#y2#w)X$*s4nkEk%b!B3p_H)%(1) zTB9nrhv9oy9sj%nybrlW^VzmP-~u`k8!4y|F;5tvSACV4h4JrgG=Lz67|4ML+ixAH z6sAt#&8zUugrxlJHcplH%_t@?Kb>lhdWhH`3?p&{7XiE1>`s(nrdf^2u7~Uj&9UlqB(JYO z7zn!@(rUNb<(A~a?0)yvoR0?&Gq=GkZs;D|QZsW*>L%P={c2UyGi^1-9%wbDBW_XE zIjg9WR>^Rlqc>$i!p;L1)?yy5uBLL6(A@s}wE$qK(W<;N)pH=_`^WvT)M zSod|1g)CpFUTHda)3pP0j9HqDT9{;NQ z#ip93R9=$x{jg6RObU+ES}u7;Ar^+@ROF>;1hViG-KC>bA<@W;@xn2&s>*>Wu=1PE|_77&+ynd}4$ z+4ma98J(2PgBrA5sFN;oC6`)udzWQDov=7VX}ulg%J2)R1NOGIot6aE=Q4A_U%?YU zs;+Od_=#Ye0t4&NW!FZflSNM8qbuz#@NV$_3%7R7K48ULd02Y;?DG5QJBNpSKr*vT zkG3AZ!|0CiInQe^YmPnC#c229xbnlL-1nk{PZv7Ytd)b?lyooKOuAdJ^vHX(IS7UR z+}e!m>v#GgQ;lO6m?715^y?-cJV)?di1Y0`Vm&&gIrlr)LG4;HX_DXl?uKpnO)>dO7k8eXaP9008_J^`&s{ELE#h-P~j>~d5Nz~XuZ+3<5Ib^y*%KW>~k5M zQ97pk3s7a+Qk(3vBcu{SX&`8bQ!>E-aWnNR-T+eVxvkmnE3a$xn#@k*oc;Ke+&ZcC zF_a)U+wKO{+wo)%~5_Ej@|p>6%%c_uWF zhV%&LlJC);aMd28d-I7W$)7v#e&9B3q4{~%?8pC;KQk|%(pdV|n2KdTDip782V=Pk z&_^`tyoo_}#xeqxX7Y3_Nci{523DpF_MD}OG2`RYKoGLG-c~Rkvt!cjLyi4%&48~; zboY{~rCm*t%|QXiY(8T@H8&nl|GY2(@VG$y)64yVS@*b^Nh99&=XpOSU{| zxMSt-$x!YpoPF=`?7nulz6|D=H)s#0zY#Ik%{gW#(x`JK z)!hoO2VIg?LS36CV{OGa60)=}6{AE4ZTK0J+kY3^()@GHa;yc^RW4F%Q1bDT#o|&T;mOFn)@uS-!NmH{1e_INIKAvbjpTNBx0Tb5CHU?=!FA?+)gY7t& z=?>_+g@8)IFGc@ee;2mhKLw9L><83g0LFs)yd)$38@I+Q2aX} zi5D!lp^!W2Gzn$oTNxO5qZkyh)!}TSn`KitT;koS@&pfA`Dd=;v1ju99>)DbhUHec}=sEavoU2FOe_yX;BBm13* z3f7cA5qby3jz)<2=ROF50ZNFP^N= zGd(n&Q@ZJt%BMpd=p%D+GMOd73o(%oszohIojq{wdh%6%UTvsKtkGZQaS4y#y@6+v z+kF1bDLSLP5CK>7?6!Wsk!Dt&}fnlb~Kl~@>BxoYTVj>0-m?mM- zzy5y~0OYXHZX}m%_@6R6jb~@Fw!fH%Y|u*gHIEUpb8{Nbebb)u3WtjIn|#y9bOn!qW$zmVOnirN6qDg%HodK{b}w`DX5H;W zL&~qg8&lDAa#`d`Hk!(R&t!d=N|0DIA0qG2BT%m;TxdY5FyCw2oYn1EXiAfE3#&NZjz@x8qk$m@f2k)T4td94whBp7L~y^ zM-RqiQOK&f#X3iH;MzXzjqBViqZaRL~u17O=qcCqE4qDny?*5Y)w7Kxy*Ig z?Vi#4(2H2+{G_~*`4sj%Y-G@$KFE1TS-mHXA~97}nL663*slXLxsgu7t1T<-U9lob z9P9-+tG{d2^GpfM>ek$<+E&x!6^J?pSmrS!XfCMBL=!hLBiM{6Yrp_KGu3(@k4{CW z1fqQAfjBRsFI(ztWL-O*We)^w=z^uhb8%&sfaWqp>SG7GRe=xCYGi}1Yq^BtlVo@KFh4e9N5^s;NZcvxQU4LaSi+;zH? zmZZl2v|kjP)U0Y~UKA?>zB_)woI@m-^a+%wNUOF-a89z=PJMor;1^vyUO|ggh%1I? zd){N~^M?+Nkp-=Bha8W*qHR3j_G^S)!HbCBPEYT2#8AP6*wLK2U(?X(nKr&g;&=4* zuR7zK^6ry@3FzzDRXoX}*hm&%8nVTpbA^%Vpsu5P!c;lXKq27*%R*lmlLG5@id3c* zas#aB;&aYiCcA+pKTNXU`Y8OyYo)o6Q<|;10=2~RC z?|SBu;kq=m;_0TeD&T+L{qxhfYm_U-&6S~|=U{kj4Hq(**>~5BIl^+pBpxB{Z<1dw zF(m$|1zCVskE%glFOW(dXJ=5s(QIN)-Q>L>zA#F(rTrC5Z6zV|f1g_i_Or+NTC1K4yoe$8f;B4^wcd z#D~BNqzfIQ30iBtK|!>Na^o$wkLY-aSAn!Z3B3`H{oBUiO(FBnUP`Oq zPC7RUZNAHxz55g6arMNE1WnBH)SCHCMq0C*tsAx6^Ece(1FvDNWDSj*4FL+V0ei_E zHX#7yjDM4qglJVEVPGp+`jMo)-9Pjr=8!q> zx0tU3o>V@j`B9MopQ*o$e;G9mJaK=rdea=JG^<|Ds4VSJd@g9cKWbj;orzg>q_X?& zGM#5a*ft)Td2Cp~dEWW`V1Eto(8L@5x(5)f`;fMO;S}i&xyd$l#xU}kqAZ<_;$I*1 z!5lI{^Orr@CW(J9$d+2ez7=JL`Te*(=C5Tx`n;~3KS`!*tn)5qi2RfFFIT}OUr&Y* zFiO*Nr`jyp@2O3yVZm(Z# zs&NDen2{uBLwSK3i5*NKpOI4mPtms&?u3t`ubSE%`=^r%3pUM0&M{|=s;#C@bgf|m zC~kb(s%iV;dy0ZWCzPaVy80=gc} zsMtJqgTbe$OHe;Dd6I^?H^n-B44j8}M${e5$Gf)w7TK>zl+NMTE?V9# z1x+IPanr5#nG$qi5tT4&6{V^lh84SUh?=L?1ec3B%> z6^g<-L+`6=ZXmbYT=vstj?6u82o}ysMYBRjkRNY1kbhS``akCX+SrVBB9N+bNMgfe zGyE~rV`NUd`HOS6=V7^gp#MA-*-H~A_`g=mr|Xduc&Fy35l<47_6shhzAe|?H%nzdq%>xlCSiE) zlq^y|)}Nc%!#JmI|0Ba|3(bL@LmhIgC)O`cvX;zZi}Z_3zvi9BS;>FQ!jx6f*L$cw@0*CKjhJ z=#>=P=JA7=Tj>2b*UEG&uUpLnxaDsXCN>x13bly>;DQ?O;C!&TDp7B@%YL zb*l}V=gGaeEZvs@?XF>+2^y9VF+z}-8ng~-mlPf%j}qo*M4ll|=gU>4CEE`Cg&?B= zhx~a9?(xJt`5d>w)Ot#fV>^~ONMU{bQq;cLnvj@6b5*+lD&F9F$n?-2hk4n&Ij9k; z$Sa|G4mUaZ-cdKO=O72ikx%VN(jEVVT5H=-r-=Q6BHTXuJ;C2!Z9s^qW58aUXapFJ zBz%Y6eEu;u&*OhX_8*tx{XtuEx~HgSYpIV!=1yA|OZ7&rBVCHDAXj^gCpgHS8ec=_ z7^-BX#A@_w5$5LWATf8V(QS~b9 zrvMYPV@)7cRAks;|~z#iaGQ7pT$BDp58*N_+=OBkke zfi>zFxqrnSZYI$wr|hMTtt#&@SSKOI4C>d9CKnL0-^ zVx_QkTUT04yQpTwGU9JdQa#5@)^zF^p>&5J7@~>IwokrYrstzvCy?_-eoRAMan3t3 zSeOTHJ7D*@J}urXp7s@*Est+Y-fNvAf2}J(YmJ=N3Drm|zP%1}Hul=43C&HB}f$K%RRRrDWu(#{5Xr7Sj1DGArw_UNgbCp}7L^Mwg z2$~opRY37N3B7MVy~GAPPqhGleoiZ@op0Rf5Ay`3=fLqkQB(_PULlBnl_9Su=9BVo zwiXXJ8^*yA$q#^_wF^z&@-?&iWx1lptcqJE?0^_&%KcSyJp7%JQn6L~6_IyPH}ok* zvc^0j&Srl%#Ak9kN2Bc$D)#Xw3YHE7@W;x)L4G$C`h=U8IVgN0rlhWW|2Nk!%Z59G zugQY{>v9b$wQws==3t%vJi|<%i{JjD<#rog(d{dia4~fw|F5 z&ozwPc})2w0NmA}$-f#py>x$hE3WcbOcU29&ncS7G0_RMnTT#g$m>i<<+qVQtO^&a zvPEH;*!nB5NaSi^KKeHM9y4T(%E?R*IqP||IX~CYzK!jtZsu#}qoyA8b(+gZOIaKB zFx-2!+5Kv~esE%lUSmhuxfP~;jh=3q;S5q$n}=lm35&}&b6MWD@3$I$MhU*KdAqjK z4uAj6_e6c_7m1gqDo=4eL;q}o_ScBov7Me!*A}g5Ne|EHU|VWYZ)r_ak2(48OYT8n z!*~fVRKrgl=0W(!s|O7z=Nb8PnL@rH^i1o~3rGo9Er z2XpXRW8u_YS>k!zaAf=)%^XPLU|RA@UkR@RFAO2~VoJLwkoC~9bX^7&*>3C>E6cXT zWJ$*+WGemycDkB%L#q@@jABob{tjJ&0a{0b2i;hz_DEP4>5zbuGUJpx77#;Td^57* z|85Slmit%Fi>gW+<}ETY16O{JRB7wy{h!Z@YQJpL(<&7>mJT>5Yf$G}@HQjEUXzDS=-@&V-R4E@Ugnx)|li!i3m$}tzm{T{k>*TAgf))Ba zHA#I*Q!p&C{Zc_>u1{#E2^FfPoBqby(lqjxDZ^pi=R&}~jsA7{uB0hP=BTL~olf>`0Dt}@g2n!4^mP=zeT_78&* ze?!Qwzr(xtC*$RV2MGfH#i(PDSZ}cO{#0D9dKCZDE#;ww@9HP)wuX@9CMVm}st@xd z)Dx82$~2&vhv zdO2x&CHgh?h1*&pDh_!##-v}LB=ozGi44#)_PNWKe!x-USrMX0|9my%Np z3oGzrIV!oUj>0a3@>N6}G_?eRBHDibY*2qQc${@e_LQq(5hJ5z#A4+i6he+hg!Cyh3IG0@9qkbasDvuJ7)YLFNxHnFGyKp{~bs7urQ8g@{!JMJtT*Dq&6bl z$%{_6BpIgCZfcDsr9)SRc|h3zM|AuNb>WmvQ@^sJvXAPwo1F#}I$tu=+s*Kc%cS{!}Lz zU>3{yw|1D@GtVaL&Mu_2O7V?cVE&CSlUqMdXcJ+og-4aZa5sm}lTszOBHWD;?SkfW zh!_KcQ=v>TYLoyffouoAu)O4KCN}>^pf3Mzcv)~&R>|qDY>)FTjC&n-e<|8`mnSk!+I0$*0vyHe1}KjDy(&l_sRlxaqj$R|A5~)NnQUv2LE*e zrV(1?Y+vE8rP3~l$A)^%=1=fYY$zsgHiU_+@iIoqk zC#56}?{CJIqEA@Iv`E_ ziF^GJ&&}PYrTEqBt3mTwoAqbGdjJ1)x}{HtYOvAdTtW#$Ypn6Th?=>91l z3_)YwaXbZw&ZR)3Hx`z3yszURl9H7M?VsGY071j8W~^cxv+S>%Y;!J;NZy9--Wh9d zQ;yr445t#ZV}($uGpqFtw$~M<*w(9yB9RWawG{wrQG_1SCxW>Ng&=Zt&ue3&lH5e( zt#H{DBMi|<#-_d4)XRTwq~|SNThKwh8IEpsdH>~i-ZbpShw_rd%lBuJ{^LcMb}p9S zmx~no;AvxsQ#j+@m^WcLON}*N@hk@M5_uxnnl8Ee4Lq#_FUFy|1lmEmFDWN(^>rgG zUa%EL(=W*tON7K`9U%0#KL7I{L6yCYzSn=*z)*h4-}+AhN|zp~Tm<1%L=ErpLu=aI z&lKkQ#K4XPV;*THVWy-OLg61ZtlC*>gMy!t^TU;nGvH9UZXygcqMCozXD$odJZCw< z1%3Jy7(_9Kh{CqR#s|Z`w>+z6hDAKwwp}RXOu{d=C>z=QcuMUPUzt8?$<$oIJd~uV z<}4)Omu1&!@b&qcMfki4_BxEbeA-Jf%QZQoH0v)@ z3AW#r`w1?w#;DgPn?hnMPwAAgw5-P_-F`g`1*y)y5KuXS*ErMI)b`ACqQAobr#1Va z5l1=g%4@g2dCoVFhJ`;SuZ>IeZxa*1?1~xf&obyVc2LJxx?ql;v1;M>7L3EHNXdkV zK_X1);9O1xRu&V;w^xq+Z-t=1AKa0UC~j=qBZahQ{f!Fi{98X9Az z^zy(Umi-^V(u2t1QCZLCylYi&TC~vA9v!XAcqN!))JU)r+B&?eSRk3RMO&?aKd*wj z5Y7v`Vllm-EG1j3JdO=4OU&)dKBE&4aNc{AbZN>%I2ebBnC$%SCh=v(7W8s`TH~r) zi6eE5A_Y`r{NMJGZ`YA?8a1uKbJUvt9aYYfh$Z2?hrrDq2o{qxI*TOo+7&&Tx#@&V z&&GFk_@~3uOIulu(xHb3#HD3avA{zGABGJE+(Q}^0zWc5d#<}OGr`WpF?AZ~! zB`^3>a_HRzKGUYuqSiQlJ8L?UZF{BaJ?XwCd-K#6xdsvMz}T&x5?Koa8Mr_U1o`@- zQo@0dTGZV+B9&LnaAVy0&pHh;F8Gq2~T*(Ec&by zDz`i&(&l_U zFOZE3Ax_W)hn^ri9gFPiDZvhPUUJkHaG4;4LCA7o(1z(6f$I5~qr}arjAy_IywQ!P zkqkbozg2lzzInjgGYMQjJgn1L>#uxD@n1LeAlz)_heL#@!Am7Qfhg|@GV3`>J_urV zQF$OJ4KWfYF^+_NQl3k?i(c!Zi$bOmx2f_z0ODU(IJG&lV!^Q##iq)GQ*4Qf z4o3ceX*R=B!Ey=Y$0?~EHPGIfQ~;9m#WsuIwHzSLNn5a7u&zClnizAAagVbDn4xd< zmlFdYOo=n1ANp`;By?+zeZ6)qzohDom+HST0`&2sseIuzc9avrliv81Y;M~#Hh_HH z28w@q@g`(93B9}6u&`I$#kywEZWIGts%eiG8Hvfc^?$IT|GR>wfE1~s+(%O9%xJY& zuVx`ja)Uz)eiB?b!J#XN$r;r~JV%K=yy~8sf%q*J11{)B5~S3GN|(;C6Yl#%@|#NM zX{vwIq$A$AMvNyg^H~>5l7689r`vwsq8j&RTHL-^Y||UUJtKw@oBicnzPK9N(nwN# z0FHU6ue4VCO{M|klgAAbBQ5J(+$A&uoL|t366V2K@c!rg$o4|b3~;nK?KMWb`o`x; z@=L5u)>2vw6gj^C@oju7S#g53AQi5(Jw&z+N$i8g&Niw$Og zLr2rN_4dnM@8bk8Imi6*G%9LmQZEm39sFNH@&r=(0=!qXMC?-g$oBpk55v>k{sv(X z2B|+(rO1=(vq(s3O2$*NLVlClA1hk1(rBWPG?1Gf1Mpo0kXV=?nBB(j+Yp>c>}gJ# z$np70xT<(>qY%B$i$p$!e$SMsF6aA_O)=aXZik^2xi05z=ixA{hRNpIjwmjaTXf2A zZwPq0Hc1_n?ASQI+9*LCk@H1L9Me>hXxgluNe=x9p5eovlu(kRk-dt|spe!D6BOXx zIc2(sT_U^Ru9arNG-q!yEl$(k6?!AVxp1oT0Vo9{&N~BPF00lR;{aEe0-IJT^_%JF z1UC6YQdtcCSarfh#&`d<^$Yi9jwb@b3YVltqi4lXo%BY?q@3JjU;7~_f5n+PQy zlSOH~kAn)v!;Zp#`dA5SeMs0}vx@PwZPoN6{z9H`Pn=rATDPS&xh#V&AJKE*IjQzD zn+R{H$e>UuabY{@CS)5T2-XD>Cd+1H`nr@=YHlt7j^a%N#Ypgc$F|W2at#ltdxFd4c^|QWN?xVQL?TQ5!_0Eo z0n~lG^6=t#C2#vq>OCvQtY2z6I`j!bH<1bjB47T&Jq3?H-nTwl6Gro{p%^u-Rya2Q) zNHCFik=;%sIK&a9D3^z7&cw+mf;a}^+seNASoCw)HLXqcgnr~u5@xnVOW8bA-Q)F6*Mq_kv?fH} z@{;d0|8PFJp1VVeQ#vfKCDMul1v$<7Z(?A07}h|_!9u<^ew@LK)d5u z3H5eSnzaSM;XWUp-`-9OHel~aq375&Mdi9q^S8YT+O2PlB+N|x`d@&-3GR<4)>=Eg zz{8SGAN(#*1AbXB8+@Ue9d6&3?+Gj^cU_FbS=-e&j&qjt+HElC%!&Rp#;h26_-1W5?-4x@gWYc~)-7^WdXJyn352eG#mGQ(Zga(9c!kW5!@mnO zVz7Iebq;@7cE8pR?G4#!ZTUTZdF5gLt*!N0zNbhcVuHRRcaDq%hG;#L-So@@{=cG&e^a<2 z@aX9PX=)=MsXF4<`(C!ONak}m7wQk`aDNW>6OH4ozCIK}6P>=!j*@tR>iLxRKVMsd z^2jog|IH$TFrb2*@9n!=EzL8YF^XTk59-U#82z9L(BXn$F!)aOT5odTwNmf6E{I|d zR*eUZIAgE^JLFTt-A;QT5E#q&NZ}o1Q;3}>NVr&x{*R`!42z>{x-~Ar z-I>ANgS)#0m*6~v;O_2jg9Q!l5Fog_lK{cpCAe!&^M2R)&97?-uf*=D*2AObZGG{fw5VlKt58!zj+|@ zWyv&xZ28=wt{1`ABE6dR97rT$TI7RnkK$zIR`M~~3pH)yp7=SRal#ryz?SyeV@>Ol zqTYE=;X8cx6O_&GphlssByKZ^0v-{d4%v}H#l`Hpee_HCz-8O|$5gST@=rPc>9ux> zlu97nRmh#1>n1;PI33_XPqYR7fckGAa{LsfQB_{NU}f=@;cL|IgsaCI!g7~Ls7M0T z7xp^E;K2O)PZiX#bxhO_1H*QkXlBTkI|r^;^4;3~1e}RFQE=QUucWZ{yK!mKBcPfe zvkVs!LhACOMPUpT8DB>S|J>em)`%nZ(Wr0a%vcf)C9zhiiBs>ceMc{dPt5*<{H^F} zxb~qcJrVY{KG9=QUV8x8nLnTFlE9xcHQ7x4_py4d?wM}2-f~=E3%II6^zVUNnKaKW zz^?pq5lKmKpQ$h(Usu*$*i~(D@nBa)WhIVq>~{4mLw}=tZR&luZI%bjwz3-lUrUc+ z>(cGC%-irf$f=**&+=$>u>Zf(9*mSv7Ex2sv@w^d8088Z<@vzsR-Y@~(yOj&9zX=g zv@;CGB!GD@^=SW970D9>xh&nwww z*>$M!spq|POetYzlecLu2XT)~&I2Yqt7<8WY~a=>;=-sgvX2b*V15W&39L)JQOt3a ze9MR61(R`HMTdmkON{lgFz?EKMgoQwp)^oQyqE|`F&&%PaI(5Hs;Mah#%hmx2UxN* z17VDGtv!CkDy zqD`$3Q|a0I<*Q3S8ZWNW?SMm;UDFY6wuU+g5Jy0~@8L}>!QzqYR5pM8dx}YOUpRDH z9U&RNa}n8F7=Zv#DcV;+&}99_j)74J^Cf)@;0b?MKxELzNQXF^`6Pu71vTHFL_H*` z0V_tK@`tkfYtOekI%Vg-HJyMR^w42ZmQoeG@vD}|3R4ax2y{Mg@ZSV-x2d82m9+c; z_jtk02**-ZxtUxueX(^PAsh@iFdjz%egua%j8g1lu90RzuT9Spk^B&7$dn96mQ>v| zm@+EJR&6`xgAU}X=n7#53VlJ2WC5%njBVv@ge8j^@$g3gM6LAQzpN+Z3o4`4ua7wh z(Bl37{W0c<> zq~(wQmDHqt@cVG)fZHNNNuyc}B}x?1Cg*7u8vcO36lj+X@_B#^9%as&%^CK#EAgRl zH}xFq7|9}LJUE701~>Bx6G0bRkp51-Nu3eDYPO6@eO7Ztdmy4Mo*~VYv^0}4o1|Pp zRBn1wHREH>3(UV}#9Y>uzjKVWT>^S{D-NPQJHbFq)kLmH^qOS%!!}CRLmyWg5Ll&; z&!SK5vF4WEN!0)A_CA>)my~jv`BnGrG9h4b{q4QPGN{-JC*Kc*MaQ(A3XH?QVJ}SM zX{z38x!-pNScglq1^}nP@IANiFEH~Bw=Sh#1$Z_K_Ln?$sw*C=qJ~}}s36Wj%4U$N z$fJeNvduHv{{$sO2)pEF-h=Qz*|*1OJ2>i<_jJd9m3cw2k^(Rj< zp_cTlyUr>*1Akt+q7W8P5(Tp8%>|3K)PFar{l3x3OFgQcu^PsDJlfa@*j&Qu%YL6e zdPzYEKreqeCizlX9wIe5t%^~VN_72=h3SB{a`K#rCb}T(JIl?i91>r)f06lVCu+=o3u(_182k-zOjf*4N2n4Y zl^{ctpQ(zwO%2W1s~#?2Gk}JRJ~0W2o!K-K>h|*La_Y@{>PzA0dW$GBdw`$dp>)!5 zJ(beg<&#GD{fIUXaBKn|1`zb!^p}krp7vj>Yi$<7k!+oi+_X&An0t8!YN&R23p`B8P$wI8vpVEGIIcVp!ho@;p#Tg<5 zp;Gn)QOH4cro?I(a+9Hp?8J&PIdSCq>te&wd#k9>eb0Wub)Fu7QcU2DgvZ~GQJ{w6 zqT5Cxlz61MM3^vfgPXzpK-%}n&zr5MqH^>!NVLa41G@yXB(AH*%FSBpb9@ax0Q&~% z@$=1LKtPUeJ_!ZeJx|}ehdb`Rp`+?ukeapuxhTm2oZpCX170> zXElBO321X~Z2Jmk@Whavs9Xsf`Jr5JxxZIDJ1hcfVjRyhy(3}x=|XLuNg<+W0Xpni z%L%q6yX<>++y|+yQ$`e~w0X%%{-xp72EHA;D>o!;1C;ec$$g_yW~yO+f^qJ9Z9hg! zpSp*+vF?`_+77^uO|i#A zcatDk7w@F`f4g5pC|2P#F+ok1^3aqiK%cmM_|Pe{c0n8~VLfDV`ddex~g{Y-QMgPckWpD6l zgzk8AGS2WeI{os2EXiuly7ncQ{@&Z_b;i*<{$|G8DtkutiF|adXqMyhy-7YO3w27g z?C6iG7;S5=^1ExZ&{R?~MyZ*3z5Y;4_kXS=67|zICkf5gq=1{xhBZM?SvsQl+$=aX zFPMZH#xx6LYsO+Gd!s+~AoHV{^G^wS?!bh^`G|0dGXY9Kz|}k4F{ZYxOo$JQ$-bOV zFI$=@L-M=)jF;Y&qktXchG<^dKiR1*jARs_(ca&B_Bi5J1nnx28kHrtZw{sV#Z#D0 z{b;Wgk{ecy;_roVMV{grVw}c>=ulRvVo64AB)arKT10%@MPeFrKYEg5DI}iY>yUkg z_Yr*!wBgk(boe&g_MbtLwl^)=`+u1XZc)2``NJ#cvU<~kZ9;O|?s@55N*qgJt!(vC zmY#FQH^jc}W2)zIFGTA0F6JjJK*E*ZC`zU|W$BDY&C9?g7^Hpka!lxwkD0O9Xy&T} z@BpOr-}uI`p;i1OO4Ex9dV}<528^^na4_rbf3)NJ+aojA5QyZT@;e zJksD#nRijD-=gjmay7w#qT;OPUJ~(im|CJiYI;t=lFWX5(^q#%_^%i9*NIG>+EiC? z*D#oOD}8UGH_N5U>{MAi_~nnX^4T?fluonH&o`wJ4HMI^Tq_s94$&4x64vRUC<03pY7Q z4b^F?w?UvK2S{=CeL5<2uj4QulCvz9oLyK2Ym_Mcc#S3H|Kxr5m*IMU68O?SN-5X8 zzVwIL6s@GAT`gG&Dga&Ky*S?WF9G}R!O|nc=qDRp?Hd3el4d-OB_&n)c0RD9)_{HC zd4vfmB!9QI&78U}I5?coWUB-lrp$wIpz?Ai8R0FmwbBG$NQ~e4t3IJ~!WCX(Bk~g( zjIW0p#-``%r1=JHUu)+uv+OuY#lW?=AU)a?J6j5T6L0jEwfi3y(77;Up zDd?oi;YbV=#&v1^j#7IHiB*i4h5VyQUwu1>D7E`<$WOy#@e1 z#`;m(tPvoVo#x_vzoHt^V=bVIv~5~Nd(maB8r68ca55)5iF$B=twevAx zhJ4g5!d%lEaney9k>SnI5WLchDiV229XS#=lGApDkCpXX{1(5irA3W~+0V;$gzTr; zTg>@eALXC@XY8bxA32VQ;Krb#yWIuG310@5mvFm9g_jqbl6vuf&UAYeqw3MEm*;|4 z{_~%q7Or62wL+X9wWksoo)(dK9nnKw1ta?Z6=Zj;vMR9ZF zTE>h@pIbps*HiH$9E{lI4TUOk^tJ+Hf}PRMJpD@0B?na z7(8N#YHiRX!1G-Ta}7z=%#&7)S=kK*szT+aRp)WmLEo!WMT-dam66Tf*FB&qZXbY- z(mKx8Z3u{LI?;z-jOB9-;*WCSda%B_kE_o24R@~<-*RV8Q=TnWdbi}7%RKq@@}OK$ zSA(`14VLj`{^NIK$50Yi2n-aI-~P88))Ew>GSnE7zKy&KC9iiDe;cfARE1;I!iS|~ zJ1aKenaZ{!ORAy`BanGUBfDrtU7WLyF)(-l;rQ}0B6vl{WBBVqE5N?K(tk!swp|}p zG2!F&7a#}$0t4ekyW;x7v4`7TNyj^;*r2mK`wPep($=m`m9v0Gct*i*9s$~pmUrp@ z=PpbRF}*w&36=4|`268CfY`1(KFB-n=F(hrLZofcxt#Oc^<%XUpmGBR<*fA+ji`caDi1-{Kx>ZF=1 zGp+?f!~UHGgihJ4pU5!y#rS@mDbZ>RL010HMCBfU&Q1YtNV<`4LKR&XdH1E54LR>W zPjm?)!e9&Nc<|zvA25}?x$Qvonn;b0;PiuJPbUKfsmPgVON;O&uPt}i`LG8y!aku)ITPM!4oe1Jm3_0U`4c?MH2`Hyt3X{;&5L-(v+uEmfG1o zuv*|NDA~5x{t|n`0M5rYl}EQvL?4ZJ{tNdV$|RBOkGRvov`wJTFLA_CGLKc$+U^n+ zj-2bMYxnwh5XEZ1ztMD@xx41Ogy_(LBCjlYdSnLty8$CMQcZ#(F@Bs+Hk}TA-5PRAgO|q%{Qypu* zu+*!huhIEW;-*9w^yJlJ-qF{5DePklQa3@l+=3=)@$L9+L|EnB4Ze4gV}O+J7eX#p zul(AQ#3H|wf?%W3`}qr&)rjb7qu%6UwtbCwF3fmJ}n~M1%Mf-EP*3 znh?h?|86nl+_$A)BHr*s?`HotFP-D7e@t;z!Q`8z>}BUYXrm+98`P_`8*g6YIknVF z!I$X?`r_l~o^n%Fl}L_%nS$(upEUA^MqT>8XJuc%>5^7AI7`D`zcJoDw$u}26Njw*Aj_a9sjM*w9DGqo`Yw{`rczAfjD5v|FFPBq45mz5kbWuQ;5Zr zUZh~0ICqH)0FSB3Dai;v)PGrGCVHx-VkX?@m$=N@cp17BvA_F!FIC1p^(`w4o`hTT z4;sWnJ3i5`iVt1n!2~ezhhzAYaOSJvf70nd=u_i!yCOI$zn80UObM$yN0^QL3csh1 zxi7vAVC-hPn(}@cp&`>i7)EqkB#ujRp$8J0u-s^Dg=cp@c%NFGhQGiQiAmE8g^Xpo z1(5zKu)h#G;UsxPg((h)S{F^c{F3l1zK=Nj)V+L7)0BZg)v6RNay{iDSnb5|#^O{<)qM$+O5J)xic2$|R$QDDchpO3M;i!XrwII2O3J3CgF+ldu8vlgV`g^ zcMJ#mz|i2O;Qf3C#s@0cQ!hC>{`xj#@@d*Ut;SjyPm4AbQN0hkO-E=^9T#0gX^R|) z#9p#Ycr7;2!gyXj0+kf|-?wj^UJ2eso(p*0cii{DVk}OJX52;Ic$yZxJgrjg0ey+a z^PpHNu^0TT!aClJxav^T@;6%#8)x*Kl1O)8cqxP_3-F2`c=EB<2Ox9az!+0ukSPagoK zUNCyl94^Cw#Twyd0)8QU}YH0w8}sv9|7F z3w{HF>sL4g<_PG;!qE3`d-=EB>K$FMVF)F$LNrd;Qn}VO`U`~e8+(I!^)q^>neqyynWAMbEk! z9!Q7_k0m8d!x2nOHf*6Z$4u+gOQS+sm`NSamC489&(ZEAX+B5&v>+8Xhfx|_{=(7s zeIc-zF83L4?rQArSZ&SvXxmx(GT!|X0~i5}0Ae7X7XTdbp$T`RFU0--SpdCE$dN`E zu&Yq5@&$>vn3qr0=bEI-FmU&nh-bgOaVRPLvAv}$P6!*zRwAJg-Kf9w<@XOG&(Um# zL4#ff_tZQ#b=ky^i{(3hb*(NFW7`A2op$tu9>kLEJgD_=CwiD6&xi>oTI{|= zRHc%~cTwUwWk5FZYu_qA3Am<11LNvgXIp`8%2O>*t+s5Ze9s{J@T=jU(7>7_ZRO%> zuiLoyQ>J5fXv@LZ5B2Hu%^D^DFZeWn_k+-G;GFG%fsFV1(%8Fm<8Ky^*LnZ`@}D-G z&rDWlblDB-9M_I7r@ZZFIW%=v5!EOBy=C~(-zy0D0VG^Y;IkUi^RBt3WCL>qk^;#b zj_OAqAtWaWOVTlcZB&Vt%u#WBpSJR!U3fcz&Io$nAzS?0vcgv1{(I;EdW;JAuIcDw z*q(K{jy)!6WaH%bVq=3^>-#>FH);uqRB9iZ*qWB2+ z9KS|`e}t%5x7A3Rh%gFmTC)5$tgyh82F}V48%_iox?8>Ktv}ez9;hhr)2IU{R(q4&h|Ru}+QwudwwIz(y?ulz z%!hoOiH3eNl!a#IFOw7&*PCAQ|H783cV^4BhbOi z@_biBbujW-7Tu=%#?yGv()mxAj!okglC(OAzj8xd7014x2ioJx8fQXci?^jgu^>07 zku(2!)@jbQUgF8u z>VM+wpSq*Ph>`eKEE2`PxNLhb%#KK6&GrmuQ_J(31b1OuU+h?7IZ2RT6vlt}+#=Uz zgvFtg858$@JN{m298rOx!iFCEO{SaXqA+U>)La!v<(y59_f^l~C806|$RIQMA8=B2 z=OXf1=}nQAvS$e>xFBr2!`?f0%!k7B{rQ}NvrgM#9tchXJ7I2^5cb`m=u9rw&MAE8 zIj@5@F?!y#A6c%)?=@8a_g3{th)wRKgq&;xs2 zz8!@f0eR+`MB`aCxC%1pS{@=h)RpY7!}Lcl*M(-uN58y*IYnlXq4~{J+|5@ybTIGt9y@4yEu$%n@IvyUc5*El&RZ-kce?B#Meli)(xoy;t zF`;n`7ehSxd#-G6Bpk`Mm|;se_NZ$H{y5?Sm^9|1Sftu}M_a`j2*(JLljxLO zg3qiOsJ~7A!|d{~^)o$S-D+(MqP2c6z`0&j4X&i3-DT#z=F<#*MS}T_U*sh+J{dHQs1tTiE zllG#Yg^G8CYha)A-GJl6de!B*hdEVMxWLL;aVH9jUEj0;?uCCB4Tr1=J9? zTsvXgVW8Oomun;Jb6B})zAMQYXil99^HwOfxzGM~_gTiFyyGiOq#24%CpD=b2zH59aIasf`SPv97p2JsgGXwl^rGI4HCb znWXU*f5Or1WssH2gx$p+mGuv0gNThoy}KcmCK&i(xHB1~v$5S2o2hN(n#jrl`VY zX|w3nOUc9%QV9O73yCG>u8?gcBO|*4{7toM7o#*MMVue|n77Qk5S? zRhgSg9M@NvS?ur`n*97Q>X}*PO5$sp3yHhkI+=Bszos}0>+P-_k?$H{;|n|O(KuYf z{rm+!+WF(;5}2(m@~XntFGfb4nzggJ#$V=feR5AOkIf5MB4lD`RWm76_aPc1ah&}a zm%FEA@NFv2uVMz(? zW5T}&jAvf}(wo9m)6z#ICD6XSmo6%zyu9#pOdOGn8t~=RC^z}NYwEoPum0AkwCmOt zH)2ry>WuOZ`Lp@4-yD1*PhK%aM9Fs~i@3mKd%g6)5)d*pJx6y}sq}o+3FLE=Vz{jf z4yLxN4U2i+AjoZbcZGoq;WoqlLnVrf+CF~7`bm@+CQ6+1Ze&W&ac1&!DhPX&g?c8K ziMI}J6i)WvUD!AX;r8K*?B`n|>2-93GbCjN_csyUaVrRMF!}>QxBI81U>KRcu=|&R za{mr2IWx!MCz6s_!tgPk+RPAoCoc3ktHfxqbBaC)(YgOC&Q#-wfMY4XzF^MdbW;>V6f0jmi=TsJkQpD>pPEt|H}r)w}U6a@A;0K4L0X` zNBPsM4%ig?Dpmwn^f*~*s2t~_i@ZV7WH1`9-lP{sug$gGwskL!6Y%M-9M3|Kw2SLl z*8n$9v1;DBkBi8^m+N}>Q~i}Em&@(Jt976A(VF%%M!>7bQ<(I4eW2*#((t!sC%*o1 zKkMG}4yXWD&K=Cn3r`W}E9=bMTxz?XDtvE#%QoFIR_R{vLtMuVqRNE2usnBvy7TX; zGFdDyA}k$n!TLqSj8m~}d=r#9^YY61*c_GZ~hQ|}3aopIJzgzwEb50&rY!()GP8rLcJ@jsR< zzwpJ^5sGD-q#8%QMRY^EjoSUH$*-H&Hx%MLXaZA2n5{RZzEh$!!gLk)G5Z$cUqC94 z-qv~U>rpt6=ccRl$m;w$O)RQxj0J}I&mi`WGU_hUTI(81Ls-70*9I$HW!N7iw7Rq0v1pN^45LcH-S3k_w-(@4 zoHgio^Y4M-F%ABycoxpuZHNd6ldtWV8KTNrzQ z1r;lC9l)LB%+24uh&{YLpN}te-EkYlli0U>mnHRTJycfQm*z~B#G()CVLP*JLT>Ia zMNJwl^zJ^S2_AYw+FhwyLl{rS%W-}I=`3AlX=DDN(+$EhV?XnVrma_QOf)IAf7HFe(=sLJW==G^_O>e^= zoG?PLQJ=h~iE8HD61i_@B1<)iokS(QU?n%h1tK}2yL#rBE9s9Y{n=th!Iu)`5UzFj z0b~N5RS4{3c-7vz>=TCb$5HXI>5Bn@>bvlxZ?cVr$GFhaU=p~Cv;L=*C49l>N!y~z z2~Cb_+%!I*@%RO!Z*tq9sEQy0*7Tjxe@K(Xg^l8(Fs7D#Fe*QRY8AJZ7q#j}o#wEh(E4 zg(0ky_ zyOX>duCLWboox{t>;#9yTfYu8V42FBrErl3NPb&SgakPEf@`Ciz_N9^hHR~~& zO4OE7aH*YrYxG7YMrnJA%@h%dgQ{iFM2ZeAOAK?FXI>P<9_-N#pXwl zW54FF+mnUsrgN%!UtnA5)z-}JPsN#@DN?M5!`1F+pT}?Ny@x54OwK_SM2#ViHJ~}E zNr70B+XsW8T?yX1`s=FPER-HUHV+#FAQKrRNuH2-I7S-!U1zcSnYT~J_O2ov>=-pX zel1L>dWnxhB|*^?0{!o7OQPAG%|+F0B%D;&ONC(!r(S3w2s)+;82mVx@^~pg`PoEP zk(4dK{ywN(-aXj_30ntKZ_NUn37wtjF%sILfgk!E)O^uG5cZLKCzgqvYpU#k-q=Jb z`NKoe55i_Wy2AZlqV-0xFzIg_ZD+B=C&cF>Nb<=kd&dbnLOtuJua-VxPkndMr^<^z zDLO6Wc0{g_hdYXrN&r=YiwwX^J)3{a{$PKcRaNJ_GR4TDhtVj$dM-_j#-o>70i@4jS7(7Y0K{#`{J zQSzTwoEz#ZxBndU5@N*ZFf4%>9)joT&xOB+{a+hPN`~-)`q5qToL_;i;|MU$@($w| zh{Gw4ne_OCN3gNw5V%$>v}zMr80AgYIa-<&MLA3!OIoNq~ow&V_yTU=0{t8 zSgz6=C)xvnuw`6wJg3QlDxa+;=G^b6DnmXM*x^R? zj@rhr{U5b$W1-A^&sJM!=I3dvtE=lRMzQ&i%L=`vp8?8uUa)mJczN^fbmOgh_<4g# zOvV0YG>ViloN_a&hwa=pX_&x3WAcMU3kOx5C&}ufYJ5}4K*e!@oSJ* zg6?2a8WG~2mH&j5b*>~jrW!Lw2afIuT$+jX7(#ZZ+*Fxo9je~+m%VV`;Zt1?u~2xo zM4WSkJ=bvArF=UMvat~dAM^0>C(=_*$lbK^TSte6ef^QJbUrSOZNzUx;K*-exCiJx_d`nJ_0l4Ec`8@76CgrmqRaXc3vkoHeRkr-1${c#qPg-#qm)&bij<_ICo+ z!c^DmVPV3uP2(w`Lho(?!E6cQ2+KNY4N7zoP@)kACS9j1k+ZEk<+A}sHL0%Sit=To zHAsfe0WpTR55)YQGbRfMUfuj&nw?d8D>MYF>cS`mG7Krsu-fR`!6iYxMH}MHBu@Lh z!oI1l0=}6{2M@PXHwQfVym_!FY)k+sr`3htFoxtw6YMxagajSAO?3-?O+Unj|{p^3!vFi+#k5f<}Lcq zil#tOLbGi1Zjz*vlaqJP;XhYRoIc0~qoq~8R~CK=^G+@eJ_t>(yY49pLn z`81}F6rzG@Wm*zWfrd?6GQr0tZDi7O_Mf^1`r%q16-%?@RAXmN5d1dOmJECesfdx& zmdLgDOMD#0n?#pcak{nHT%>6b7aj%n;|j-loCWl>34X)e<4= zY_4vn61=9)cnyR&MJ)P=z$JnLvZ3e7S=sULX?X`3%kxW13?8da5r9X1Joi5Y7-$=5 z)2C(N75c?sb~7`p|4A#u%zF?|XEC8Q|M_g?HXWW7+9b>cSpRAlI_h!*Ub4#?YQn;B zzJVf00>rM1Ezg621-nCnPX;fGIt~9gpSM<#3^2v(6d6d@Gl3GBh|kdkWAukPLy21# zAPG6GrbsU-`@P|uTcLi0-{Ly}e97k{013$R5R6(E+K<2h*qa(=9mjt3xodT!AAX=O& zZa+(bA=eBEso&hoe`(j74ibVAC)Dl@G|c7!G$+w<-BcSSxBz{7USn+M7&e!#TvVO34T^*!&Kul~dbJ}*8N?4$gQ&b}$Cf>@O# za(#%;YZ;2_&u+3}Ha6yCjniuXi0nMA>K`&t>W>%HK^b_Dcgp^R)6@_C_-kSFRZE8y z?&!O4zCVMkdz?m0P9|^F-UIFEXIDV z00o2D>ZzX_->&;|h(tI5SS3d87(D*P^ZeV?T)7b{37X(g^|1Cklg=`8w`;w`3=y!x4$)33QHRqZ!3il^YZc&;^oQUCX78@xW@MyxCF~OqFyM6myJ&QO_clT6yd>T{s_H+Z+-LeBo69gk4!bMR9zhuK zl>2!kG=*8|rU%xK<(V_lLHzl$&w@u>{09?T$yf8Z0jdO{Pa?p+@3IE3sq}|&^_KU| zNCGS}sUpC1ynI4SN!H;3)X>%mn~Phxa3Ipsth)=fO_ZOmOpaSx^@j%=^A^fXx81t_ zSapkk^fylHTQBt-@F=EDEu|1Ym<7Y75UDN#pt#k@l$?4Zx@q}EF@B64%4}5zt@|bCkp|(>UJ4V>(&a-1^(ReJ->TF^e5XKGX ztI%o#qf2a;NI|qS!@WqxRem-FN*&6x$hXVO4$TfvQMH7ebA*0x zvfuV#hmvgj`;NYYEs?tTmCLnQL8CZTtcw_^6_bt?Y3qpBedX6yDkvCq5{ecq`!kAY z7XokM8<~b$hWMLN#ptdqKcP<=DvETl+1c&EeA`W%Rqrbo`U;!na zUet!0lr(hP$VB|f<49SsU=0quheG!gUfHVi^CrIfO8h7dWtUMNvM>JWF3Kx~31gAZ z5=z@~4l5=0 zaRfyExwwb~n!yR~C`{a&Ke{@FVT-6jf_*`@BH zGuNh>;yW_cagoCYF_8%iqD$t_6Z<^kB{4XD`0q2jR*p*i?4B1p8%pEUfiH|-OfQG> z!_(kOP~~$&>KYMsG2EH7_Mg?Nl|7?EEnE?XQwV&%V6Ark;zHsP*d zB?rdQF^IBpG%|2+n&LLC{HDFj_Jur^sdPpT>77G|W}Pa&*$Yk1PL^51>_c9pA^px$ z=$-e64b9oArSDrJ~ew+luZcH~Qz_l(X8C^P0m%g7tHVtdVtEj_myC zH=ZOS!P^aXOe^xG%j@M6Br_;jq}?^rUp|iqeh*>6L3RG4ZS>U8QQ=_DPxE~7BUGbG zCW^kV$=u>6_*cjWjV1KkH6A@^x75fqALCmX(l_dF4Du$P;-C5i{_=Lrg4jPINIIu0u;{!TKQ7s^56=8+wclRn~ zAWw3edTyviKu8x;!qpx!lLmfi?ugYKhiA2{G}!+Al#r;$v0=kh&b!IG$QIE%g9wWz zSgy7AjHWt}kSt+B#SAqFh(L&a2`pdJW6o^S_U~9T>-=63W|-q&3ai@XTfDuzohq51 z>NLn3nKw&L)!t4RkWlz)u%zKDA%^=V)PKQnu!LqBj4ZWQ>V4jWL^mQ3I{JcrSC}~p zOdjftRa|D?!9N2KSRq}>0-@Cx#8hsZe?3TxEn8SxJZ5ABDi99V?aAz~!Pj-?s7?|h zIp-K>@IOCU`dX8z=k2(c=^Wz*wP1pyV&1||*_Ssd_3?+pqJ~n?VKT-thd-D7ZdT)s zU-l>tvFQ2~BoYJ?MK8$yP4H=YB)ySQnFb6@qG=#z@OxX!bXknfu<%w`cA_0k>BXtD z2}TZ5fjMA=6(?UeDPP@yqssJZ2yM(^T$b$${o_zWdEv=v46O~bz7^46@73|{E8-|a z-Z{S;UT!{|7&Le*+=ukn4$)4F8Qo0d10vA5Z*1Z=N6)DGQwiU!ax$N z!1MRp1DQq&htwt!%#&D9rJ~u+ePoNc7?yeW*4U$@FIZE)FCq?8IPA2r*@rbc!B(IIdXkjNI_#Z>F1 zq|a&+3A&}Yi!ybKDcbw<5ECPow;f%RtV0Z=RwH9zp~>B{74kfKer8hl#Sd zQ6MSxIcnSAP3L|NqHche7y|63|7okvHUtBSt0lQAL~Hc-T^%ZQPLW58m*y8|t}O?e zK%fQ^+-7iXjyfJZHoPf&JobF%LQ72$q8tq-R1eZa5-QXsa>r31)mhRn=yfC%AWh5s z?Xde$mNDJwAjEBvI&Mb^b}z6E{c-Z@It!sc-A$>ZXb!Qzb-}ZVJmThAcYP#`x zYUsDbx+cHz>84d3CKs}vk{_m2U3_BE&wVwk)IVhg~L*?D`2a!WbdtPX%5KC7e3_Y#cPoIDGX5CmvwXN+J2FEGDSM zN+zr!sp;%S=+kU8{x=W?jLMuS$}gp4OzdRStIlIdl_@BpmKsd-{8>O(A1J#7lIM`W zCUH8*x0AY!DtOs=mHPJ9+mFYr*tL6G*SYJ64T~K7wx=wb0~1C=$;o2E5@v6HGZxqx z!;ufEyOgGo?k_pwB|X8!)nuHl(x7&G9n#Vapw3MOOJjO`vdG18z;>uJx{-u%Y$Q&f zkoAj+9&f@s6{_%Wz#jbM616rquMj!$&$gz+bI9iWYPduNRS;)E62)^P{O95~mCub< zu!01XANmvb&F7axb@|6}N;ZWq%OG#d(()n$073QLnK!_?J(jR!92LLf7bhmZ6tX;R z_rOXA4cXNxla8FEpJ-;I{o=ZH)Kb!ohPU1?U0oiUq@pDi^Es@TUsuv{=71qGIj zSB%2qEfj4yii-)NS;_!nT}bkW8EDUB-=58Bj3AtlFPT!%Lirg~=T3sj`toz~YL#sJhIXl8-@@Z_-uCEjj4XS57NVya`|*w5*1gHiVE|ePizzZDaSfms1i}GPV@vQ96g5GCSqwAvvpYQ2$+|^ z{Xd${Ij+wC{o~o4tYzDFt+lMRytHc7vW=5%F1wa(+gvu6ZT;?jzK`F3=g)KQ`+ctW zrPuRC#qAo6L|(Zg)S`9t5SqndQj$+$Wzb(DtNc-%#nxc3n>c|!J>C_X02Y2G`wI@E z0pwma_T_F-`q~SX?i9d&Ie+G4Ud+pNwW`P13r`pk-?J<1=dhGTq zVN9d9D|9x^l*UAzrx2;vA>6limjlGLdJnIkOw=wz4j z-eQLW$F$n;^fcM^$BL3Wv+oHi7g}+-L~ixvVWvoG74B-xW(B^C)s%lOxfIW%i+TmE zZ08Q?V)IX%ZcBNo3^(Q`e7mz}I85>)D27oB6VuR0{2}zcAxC-2lSEb!Zn^6F$H4=t z5N~^n_!IL}%wML+ytG7Q>jsy1$E~g9YcaGa+M5@NsBQzShmf8LT*{wi1VKldcp(@w zJPR-%MP3BxzU(K<2SCffZs-3+V!HS!QcU;M-xn=v5RaXDK)2VBM9#Sminxqa-Ktc`W5bDdh)`>H}K+;On0hl^zE$)gXc+-S>f1602d2P^&< zStkw16L$f_JZ28*Ls4ynUy#dF5ru>sdME!Ww6PZUU`qgBu{@Y5rvNjGsyy8UgLtLRp&zu zI1&Y??8V5Be6W~CSDq<1qb|HsM}azLI**CJBUWaAlwqXAfB0pLJZmx-EWR;oQ$IYY zpvz(L-P@VIAl*B9@!QsT^s-6MkT)SV9Ve5W^p}#49}I^$M}CYD-mDUhku$+N^6|nu zHFUz;@}?UJSm&q|UE~#D9^v}Pple!l^x2_ZL3dImoaYa<@m-DcDGwCK8xoC>LRVCs zr(P512L8k}+2ZvnySC(f4PrcCEpZ(!D4m>@^xcba@jIpN?$I9WHK8-1f$ni*C)`FnhsH-VrV%W~F{ba_;*i9mO#UUv1xoDl&mBG4@8Xg=fK zS0Y_yBw-p%|4Y(EKa=OvnQqnROt)HzyTuL{2UMasKuZ1*6Na2&3`{f<>Cc}|%b$H+ z`yh0TV+^Le3^H0D=G8tHpJ>vJGuFe_N;TCix*T=Tl;a)(I|o@j^B?<>@`HspU^{BP zdth(-J=L$;Iyo*I#=NQQ{GPmP573pd{jF#2x znV<IwUi;98W| zK19*7N#zd&MH^Mp*DeQ+m6g3!;v2M`=8u7`Y9cwKC(x%sE{|W4=SvNqy*|{c5;-g_nF$OX##k#daBx5~rxfHtmPf@H_4Qz=1}ccX>Y0DZkn!B<8RR zURU55_RWX8?E270((y&*@dldZ^$QEpR=PjmYB)!X|2LJ44X3JW_Klt8o#?!DPde-)G6iF};A~Qo+QbIaBbBF$O!h-HY#3$GgNnXkXQ+pyy?$2h zmrNfIpe`?wtUFa^)uT$w5>j||tZfB)9*ebWdT-ehZx@S5{O*(BtH;ZFjz2S%jQ#Y7 z>h#oFkdJ(azThjLceA*1T8#@)~0B+ZF3A&YvH;mWbq6hgL% z+E4;X{NqjDVTvm@#g4OR#@*tQNc%fO=-MIc6LW?`T*3SghMF)(WrqdzY8?G_ z(I$U*`#%JfghxRvly*fG%nl~$e-d&JTk33593JUeRPEf|ofEDeN0R)JVeUIX_Mx+brX2A;ui3$yJ(u zlDOtJ>TQZul*3OC{v~$X9l>4CtdT(G`_*$Ui#eB$-o5RcXCi-<%}SOH1iI;@^DC9Z zt8j>A_c{kjmlreax^o8ij%$WaRsAu>$GeqQo!v001okGLMrZ$yfzSd^Z{~69&X%0!&N%Dx;soQMP2DO<67JspwPoBH(WF1Agq7 zKq%?8-nRp)oNbx`d>hPJwch;NROk6vhz4*k3DUWbZ2V8osDk9?M5sI_&%JuJ{!&uW_bzaF1zk2)NBm z(n}F7$hP!@a|bX8q3U1DtQ3FunVaJ2i|6(B81O_^vR=v%3l*x&e=LaZT&MAfE;+@) zzeR*T%Kqd_fHBOiIet;ff}`M2Me<3Dv)p5>?#g!Jg@!)7M1Hyj=@6FM{bgi`wZQxJ z`4T=I-$rk_yefe3I^1*WJLBZf8tWGx491 zan!_II>^E*QW7lxkW{Lo4aa$U ze79?T*+2V1AXJrA|3l{<4pA#;-t2M2DZFsar`okm>)R{UD z@{4nLP@IEJspS<+VGUcn8XhSW-ulXS43&N!!8`wfiunn#WX&XM>wLl<_-beWD+DRO z$lVWThA~0i{7eptaRaFN5bzFP#kLyL^PH6UeG=b@MzFo9!ll1MW|6rj^&r~OUOHjx z_s54ce$|r|rVLUsfjR?XTZc`|Uj>pTVM#H=?e^c zrlDBygY081<Cl;S7HHv^2o8~3^q$hT&#|_&g?9xttcM1~+PTIc+SxAC@gBI1Uk&7L6^^%VM+lx4Sz!Bj#&VqIaQd>< zeP-(<{ft)0qb7BGzXjnx=|hSFZoMcO<8n6jNmT7(*G9xdi!n}oHvQ4UG<>*a6`Fo|$9Fb}m#UPlec|13G z)!KxqbJ$lio@qL*t8&{PP&kt^M=MpD#wI#o7s|xIl~c zK4W^$lgxHNJo0LA@E60(vQBQgc;`fx}cA=#AISI__ki*+S2k z$GGdKBshX|IYLeO2)vv&>Gsf9%m|kQwtzE8;d4=oqo>Ib>lpN3UNiX~<&L zX+rMqXGgTVl7(~v`w{X8|Cw|9FZTI1MksIeE_i{zD2cm^`mm2?Uu7Oyzw0UgcuQB(Hmg-hw*Zi4|LtHCFLwUM=tbtXVYSSV^?#HdH2;lGwya;W<^Ro@TasuBy#2lkR1I z;X{AOtmoUF*;}({XSvE8sRroz>cArAOmca~X@RAD6o}Ncp z82D*5#RvkQ%Ub)Uk6A9^AzMr$b|T)N!h}IJW}Iq6I(t(D?%-u4^q4Q5fHv`xZyS{m zeplwZtU0}#{5I<0vz_MwS!ouVYcQX0@3ay=D?k2xct~h#R3CAcM#t|xkr6aeOe;&B zM~uKvI`x}5k6(cuBu5MbALApuL)q+-K*_E-JOy2LX-_HrhA($@JPKW(VI>{N5Ye(Y zJ}Gt#WSu3Nyd^*mVR|XFQb7%#3QFsF)^e1sWmcE1My)$!r$4#X+cRqYB`2w9EL#;2 zEHyPkI$6DbSpoE{j(sZd*LwZnZm+4PoH=T%=^bhtmGiU_>??@Ck*~kw$nw}W;SF`l z0|<|iLO}AgS8}=JL~PK_@-qQ;&BO|RD2BOw@=CV=G_km81nY9I!244-({UBml2~0% zRL(?p2iS~LG~bxHsIU@&4r&ddYJ6WRO11~qO=1Q5H5c<*L&jt;5l>a0>-H1td)s?y ztG4k&mv@a6BqHxVWFMh)um1Ylm`<}0&=MK_u9D;1b;wC*Y@i$ITg6bLb0^a(WTMqf zTqk#1CYbcY%}IT@qJXB*yEdYm9nMjPuXEQgm5145%tI?fwK|_7Baz5^hC7iyj#2sd zU+J<7fs@$FKEQM`5qe8mL?$Lo+!zYv8LX*45(sbT=dQ>k_jn-qb;2IoJXx-DE{JSM zf(YdHv3*qHHG~oUGZQ0o-%6(3$n3mPVRD?yT6`l>tLD%uAHR7R+pl$)G%6<6KOsg=O96>-v!- zhSK{;;H6u%kR|zQ(#33qu-@5C&)FwjsKYg*?EHxGbbcWq@Vuh7A3rkkdzp*(r4%9F z<+_`3#!anAn&MK0x}JN{ctc$7*gnQB)K%Y>=HPZn>4$AG;UIq;!gUSM;_H0g&o1ff zVgzhdFdt9HutnzdhPY`!6c|nVC@dVp32z@_m(cN(Dl7jv&uEXk- zxowb}k3w=p-H{Y`(;o{#6E%lmPrEA!{UzdN8U4pCg;L{XkWrn`Um5&Bqxp^ zr2@}H3lF!)8&W~qsvq^(xZ6f2adO9z)^tBs9(3sH}&jzprT9%d-^Y z8DXCEM87Wy)+gVa%_FnRdp(}OY6G^SuQTYaM9QQ!-h;oZzx@*-6Ct#{%M>ZdCjMO5 zk)|Exi)kc%JUOmOP@TOChPc5wVnYxY-q(_IdF#znun(vw(JtV#g<)mZq18b-qZCA$ z%+l3*qxzi?x8T_q)OAz+x~KDuk^pR+GXoac*K*p%X@*|AWfHk)uHT_+p(uZ6{#oV0 z)r%3D?LnExwexAtF95;)DqwP_U}?L-hmYKA#!lSZ7UcWQ$&x%loLcA_pq7qs*9@>C~8 zxE942toeVFchD!P4O+d|$$vs>Lokc6cXyEtmS3e=eDbAgeTg&j-b0lA8#@=O1M0jI zcumxXA3fwnTTo75%PzVy9trUHS}2WTmEz|<@j(L$w6{rhImS0DL|YwyP~y^;@o=?_ zOxxiyMED}|<{tdAPOM0gvSl%0d};fyxyvvsY?Fa zPUcMVf{-cwLU5@dGvko+()2HHHPo{VB?05zm=6|3nKP=Z@=Py^E}Xp&!h<(z@_AP} z3;v2S%(U=@DsZXWBM&UKg@#deg^)>U4ASpfq%yK=kL}~KVSX>bP#=7E^I0Cg&CdJY zI-bw|iGBoP*7%Ae66<)-AdIbWGd6`ebr^-z{uf+GvAwFo<@#1T#6&dnQA~4XMQu^E zBFUeahcAdJ*3st0tSlDs?=5x(e`x;UDi$R=+nj81TivX(f*Oi2j_amT z^yL+_F{B|O+jca2x+^>4{iH*w!5u8tUd-%<+}mOZV_x;TM?areMtNY7G|?w-p`V6C zH>~4XPq%CUL&KVa*5ty#xrZJWUXgv;2S zpuI@aGMm53iVxk>+Q0addu$NM|v zPfgFRoYx+~z$fi|0i7+$f+ba$FA~09Wsq@X8L(JxGz(B;w)LxD@nh~=tRObY}w zTkEwsk<1b^lRbm*TlOR!6Z5n&y1uG1VS8P1XK989x(p`}*YJ|+0=Kf&#j@}DjbW6^vlE=tx8=y|aG$G;!4Ji*C+d{m zha@18DVU4wNsuH44RUkoLbO7VCJ}uQxQ33nl+cW$yD$O~p^MIT)v_IueM1lSG;}8+ z!g(g!s=Y&wQ1+1?XfnL3T}j)Ov8dkeEe{Oa$&~%T^^VnGRVDh>>v?3){^bS?)YAnE z_J+FbGAr5UxZ|QnR3an><1`KQu1b!}X4A4?_S9hFB(vjO*qkV&UP1S3Py9tb?GwCE ze-D0lms_1D{5ke3^UV-q0Orck)rBz-P_yMFg_?7Zz^*`C;Hb9A%ls1ioo450Gq29> zj8X8gh><&Jdr6%BGD(b@EqB%FSOD@e^|ossoxWNXJ;HF9A)uFx<4geupB3(??79F# z`eV?SLpNdM@H`DqnN=yRKt8B|A1g`m7iB=eU$V-2*9x)13D3Gka-h7#=XM7bHzxJijAH%i7pnBcNR`#frItUYm@3Wg0V`R4S2zy7Ygb#cr&xeOKbm5UEgcUSScwLPb`a)LFG;{<$Hn zYq2$RrUp4AYarT0b<8Q+HcWs9o$JrNC^JvyD5^HdvX2Z#%%B{iChy z{Ku~ehbO0XrQ=`zr*$*PX`mrAKGBpX8EDnLu{C)N)>#NU7!EFTsHgzNZ=Z6rJZTRH zW!emtudW5tOq7j8fnA-OC(2H@zF8Jksk8yXwE?Kxq zWa%mgTXVmd&3C!IC9^ruecyU`@;U6kir~$O$DC7W7bZ^{-ae$lnh94BUpMALjM?eL)i?+7)>H>*NY^N4TI5H@80;!RKk+Ch=Xkv3njWM}??Ud!U?) zLJ!5@bqG3QJWL+haO;C5Fyw;xe?jnP=k&@bJSrJjU!7~VA#=lZ8@$z9nnL2yN6QZpoRUP zy1Z-cT%KA#htkQb?ibH=pY=Q{CHBX3=|?qOhG>}qqQ4!xf4R6aHhk{sR&v_jI^F_8 zuE6<5(2#kS4fe?@LNIY;l@XaU%*%cvW1p3VpaZR70Q-%`AGs{mKI|g=!~$r z>^fpEa$X~?G-`vYCS)=3i1d14`4;EEj=v3Uu>|A%BR}3kg(lr|=cLVTB8`drgtjT; zq+qfi-R4AYuwq!pGiKthy?(I@Ueh&w71T7GWwpm1&Y;!zMvJy+;?=1rNI6lbkN}W0 zFof%?8JoRqp!GzHClrZKVNRdkAGQUL zO~#VeaM%0eM4IYK7b=n`KxMBa8+^1)*n|>)Z)PGj|7r#P>wuv8ZJ6Bijvh69Xx_I= zNe(;VY*1Mi=+~QtTd+R%0e{Q$u#s%_w8U_+@tmX4$W+190 zpk=0DL&$V7N&97vm4YtiNK!SwjW?)mfjn!*V?Z7t&5lr*luI(O$Jfs}!7U(f!E3ta zGBSRXaqq7;`;$eQPm`+qH)ADe{)?TKKhXJ=XVP@$^JDV&Pb4gZ1{0RGxRP2Cd&l5K z8J>nKz03D7%e$r8?cKfrJ2b|&M*6@8A$|a%oe&_wSh0V$nY@iGpI|?$i#kD$0oI2U zkew8yfM@g@7=3L#*uoK0E3Q>9+m3N`63_EBX|K9loG$ac6E@I-M>J#ln0T#o#E+0ec8)Q_y}-kW)l()@ z929SyH}&2q!)blxn0d7FVF1Hzg4Z#vfV6Ie zoAy%{IkuEYqGLF;WTXVfg_tif7JSYGm@8}0oDgxL79g5{FU5DZ@YY-Ct>SzcMFKsuXe<; z3JS?YqU|0}nW^u^2UQ4=hEP2?E9Lxf%YpX&eHX<195}g1G7(JI#Nt z2rYOoX3NJzYn&}t$l+I9(g$C`5O%*+VgAW55umCPq&hXmK~JzDyni7Qr;;@swAAg_ zuemZ*nb#Pa3(eQ>=argL1^wI(>Yt0s03JVj<{sGC6@6FfY`a%c$}apAz`}2Jm{s zFhas0o==#TM~Z6(2{QTma$5W7lLr7xXUC+2jnm&Lm$4o!yz7CAwS6^?&*9oFRxpy2 z*x;Yy5c>XR#D3zm-hays2>dEP;?F@-^2%j${@_`} zS071QlqkP^34L}xhx<97%Gb%{ck{6wx`T=}V-ddn^W#IcvqYQsD{Nx-xTv%qy0Dx5 zkPp$h5Mm?nqk1;|S>IiGV?}I(j54U32i(IcSD+sxUj3m#wvs74u8))oIEH&apsimG z9dfLK{)_-(_E=7U^1O^{f;MP^0TOZfQX#6V?! zj#E@v_({+%tm15vN4L=nqbw^lg0?rZq7~0dEI$(i&&v{vCYLNF68fNcx63FacopU3 zL~+fE8C94kU-Bg&VwIZgokHH?MSzBmnl+4lOkF&kXy;)q%B6S99`s~}735JxE$YP; zJpa`fy}sQ>7aetLQm5gG6}6y5!t2ERdcqMrDng?21iK0$VK!G8KA>yoWKG0V8 z@a+hFCxbNw71~BZ@)6BiEKb+r}1xm(_V*ubAsb_ zc)}A<#(e6ssDi5TWhn>K%5dk8(i?pf!wtYsk2eVCNC}f|Sc39;3I<k{?1UiHD%EqWEeNU9x$L>ig$0ScoTVG+hsR!U^YQ4zeev z?~x`pAv1`+K)Wc?qCQV}U|1+ZMOjhIP-{tHg6`Ab>{#i8iRJVki&Y0AnP_s(;eiF} zM@>I%=Bfz3as0!oh?%3xmtBQdAYS@X06g(xce%NnYkU#bCpD7lVSo9*dEzZzhF@-D ztg)o#hB_z527hR@c$kx{LnVr1*pm4|GI`Su4P+>>H|<5q@GRYK4v5hl)?Zp*aK@P< z$b5{fW<&ip>pngyV2PrC7Bb;`{7hEPCk+#$PODenX4|&{OovA7=B*1nBF{`;gOIQZ zVt`H~)Y+EQ6>PvK>=~3Mf0Qtb7!)n#3cY;tBUmQ=rb3Nocg#VDU1kdn;~vy=hTZ5L zVUvu3X)3EKLWXTqon9V{y&q5g+($y8d~>`_O-Gf)sXI168KPA`Z&%yH;)1WosKk00 zQDjF(DmncZkMpvquo*w; z#!5Ev-5mY71EB8yW*U3Xc!*%JQb1akXrZ{+gp0KDb9a_%>0-TydQD?7^luhGhM|Mv z7b9bR`UJ}UOAh4(Bl`3++81CSLH)_@M3>e)IVd4vI2?$Z&ZAIRJDTJ@@v2*?= z!k^L89ZtGYa-N1oLS*f)hD<}YP59G4!L_VZ*Cc$u>|htOkGG>pqpdru8%zg}X@Ot&0JbF~Q{b8}T-!4p0B zV7;;G5#xDoa89g|vkBYJ#I#OTyiK7wGE71(+?lU4A4WDx!Bp54GOHzvkz&_*@T0}B z9AhU5@e)#rkM-mDcpSPLz2rJM@I{)?f-_?EJv&tkPXHs+W~YO%yUT+bBZ|GxM+5LM zpQ3@kSvCSb!owfo2r@N?Uw;O>e?#&aeB zgr_GX#P~O;WSSyhT(I{1ZK_2+HP!h!iN$7=;Sms*HU_EsA6?b^W@xt*sK5M*p+Faf zaw9>fY*egaW>x1He78$oyJ0WR)2I@QmKG^_Z8qe4u; z2@Q!h{zM;0H^JJxx9w-CY~ZhLM^5yu#BEjo*Ym4-^HZOKtK9!yA{|r~g%~k!@x&Kqh%YXP zrIqT)islE`f8{hr{$eBw_jB2(%Bc+eJWO&{Sh&HIFzEJ!t#QBo`A?yaLco!)At0B; z6zj6?HrOF*waj(6Q0a0j<=O|$>vm;aQdyb&&---U``PN5QRl(@RE6LlZ$Yvd?OyRMH)gX zXOkXzl9}G^k~CI2j0>4WmSUqCeL2ooo&&S^#vQvy(xJpG6s-zem#6HVsLwJFGK()Gdw zBuaU9|4{ANMm`N)pactiRREFF&H<(TzeC?dschxtCx~?Bk~1j&?|HQh{&vZuu#Ge6 z_U>L&z-g@@{DDr)$t*f6tEKnz@H5qorWp)?Mm8CUAaEv$5`A+`74~qhe0h0V=uEPx zY@hG&nU=&Go-0xHcx>JZBHaDwxO4t~Tj`T{+PI+yfMY3>^}XF#JDb?;ccu9c^W%2` zzfF6u%>8jDxPyroyQ+VODak4U>x#eVuP&fu{&xK-UcPpyaTqb)CSA5=W!}ktpv-Kx zL3y1Fb^D=bqy;*Cb%5BfBB&p z6>@v7SyS-zaaht|?r^xf$3p@+j!av3_BL1eiSRTB+fe+m)lod{;a6PAE?Ouwp$p&B z+MJwjn)!~`QyaPWxAocE&5cOM*4MigVbzy2mre_v1}A6dkuV&_f2^B?(#j6)3H}43 zl^ScnmG}xJZ2(%+cr#esApz`-ua#k}L$oW8&p#5_{bZ~NwNobX0k#wQ%(9w!<41%= z!agXrByUHHju={_j69ed`^e&XU>+m8th$gifq)gNl!(OBdY*XI=(U?a3mg(+u#R7#EwNeBjfnY92OIZaWPcS~Iz zz)M3D-VH^0Sp(b_XQmC=8H0M~W&@G&KDfANeqUxNEI4bwU$+O~S|ctU*Tl^iJ;+u{ zqJWv%X-T=Tgt0>)2o>5(J`KvvPmzT_xM@1J#~o$%PEW`MISpcale@&Rw+~s%uzCB> zR+h=>2c*YAD;3H--qLEsrj<+`X0tBw^hc+Q@D0&SU8}+BhqZc+YtFSasq`u(f1&FV zoX8DeMTl}Kh$Eyo)&Tkt%5*-bY3Ada*eeY9VE=+hmPv+#SJdz1xvx{D|bGyztSm`Dk&mF>sJ;DV)#y!z; zQ+%@T7xGuk6N(^Xgl*^?`0o(J^fO2jEct=(#-B~mghrari5BThNtZK3mIHrI|NI+X*hf_LOS^nsbdU7 zI43x0h7IP)6L`N7nO9dN#PK6i^OUpB4B;IShK|@fO?WCo;TXo#bSk4M__0Q`6`mw| zgSMU13=?nFnr24jum9CFVPbIzV({u3B#?hOiQ@Z8pp%ufyj;m`Pu8LL9;wUqqLE!l zKV#~rF4NJH#wc0HX6R`*F%&=vVr(W%Y1RG!EKDrFW7#+yOyI=W<$aE{cW=zncNpj1 zPXCT{+((#vXwcVeWLCtyuYMZoGD}yx-*1pRp9R_~HFG*JX`fpIO z8`|ZTlpo3-+DE|BKs){O5iWcdq=jf7))C*r7Ke#TW>Ix06e6!SvVh4&%l>oVf!#c6 z<&9WF4pT3nN3m0X@|vqn!{yQUozxm3 z-8|B&!nqt&3-ABaHToL8)P1t)qz zf@30Yujf843edB1?2>c9Q}MH&&Xt7PW+~oLEFoLF`fFC-$10C+*@_{hSJTVd6Eg>y z8WV&Ql`JHF?hgb0*f$|!=33;ldH4eRID^PfrWC_rJF?jpBt(}?rEpKq>#caq8)v7O zI-)D_Bc`!fM{&?pd2HL>Te`W}Jl3|iHAv{esTesuH-l>{sLrfDL;!2SV~e*^@_s?7 zzAzUrXXM`kN|=}>LRDq7YEigC6Vc~S8NCYkqd84DtTV&UXmQEw3?20=K(p>@-0P~* z%})#b)r)I->bi&gq7O@HQB|@!w0ovN&dQ>;ykU7{0$#dtUj07E7`U38n@ls^2JSrG zU+-520f00u8(gVIWkW9)k9A!T5|IoNq;yKxGCcH)y)hzo2t~Y=?;MqQToB(-vZ8it zKRp(56Hz?+!5*Lv0zC@wH_Dj#8JuP~a$nmi z(d>BGKLpTJIeK0cwj&3G##!u6cX9k8{<{+^z`nb&n`*Gfe6Zrg=w*Q8Yk+s`FWvW?{LLL;w>EH?+6nAS(qQ{tqfe8cl3mEpOQ*AU73 zd$TP1XQ-O;$S=wNI#9l8Bv{-NvLG~F7C5Ok!MQtW-^LifHDBr$TX(dow#NCU&EP51JKiEVN1~ z2gQ_CLAy^x(&3*dW(K2i?ey%?;py}gPo#&M|MZ(Oy(_iNvnc7@I={Ndf^WTe<7!~8Beb>VN;q#+Gzf5% zHUnE`KtF^EYRYJFAt)mE$WNRU?2Yg$a~ppW{?1w(Jfy**M^9E=7zMKSjgtf!L`FNU zvb_Je4}NDdMu;nnvlgHF(%JkGB7k5Ouk%520Tso%?eeo$lP$32cQv~GIm9sR5CC{k zh`t^w73AcI7b<3ap!3Pd$guy%qj-6|Ht7jKtU0b|g+t1MpG>iCTu5``;fHdQZgRt* za*J7tMxo-GiY?j``|8&OlX^HPz6G%!!)@J0p#PzdP=<5g-+U*;!zxe}dY+xLH2cmZ zTC}RnFQzA7S0r#btvV0Li2W5&CGpW$Wf*>W!uyTv^KSe(vRNoUX819^WpARnQX~gg zoTLe&@v8V2O?=mi7*V>>vpfD4zQcygcnyNPw1QC*Y+enUiPhFadH>!4$qqH`nV@uG zq@wj<3ZJbB(QiczL}6ScNX?Wr&+GAqv8?CSgKs9H+aZ*eGpB`V)^W9yBCW}!XIx>Z z*c~?otU&knko8GJ->bge5PGN~TJ%j*&+At05xA4Bdd>hg=OKwt1bOu9ua8@1B9o+C@)N1Z=a%uGblTowOy?vk_nbG6 zETh}ZO?v5{-(;G`*KJ}v54t=@{s#G1%x?vSt&a*rv9{mDwcGUojGchiV1Yo9O<(8} zokeBH9`|3B7a=PzjNE6uX}6{-I3)B=b*+ z2cax6a(xbI`;waEyaTW!@Dc~IA4r3AiW&J7_=h-hE* zRRAo>h%kMyqc8tagvOgnqh{wO9_Tj4q6<96)+<`wB+=o%#PB%v>s1J-qwO~<{C6*g z{dLQi{PvMyRiJ|*A5L>Nv9#Zu_;*s=yyw3@0ya$cXbEyKgoxPj0Mb@fxFGf*s)f$NC^G-* zAID7YR~%gHWN#zQ90cA3)kqWeIUE!_pacvlx#(h4e=fxGtVOXFIb&oBPm)|Jg%%_JQ+pW0--Jzv)Aj9y!HFf5TE|FNAuNr+o@&F5Z8k< zcq(JhN#o9So8u+KjMV?dqb^aXm#V{iiS+lB(q2>T7F(xm0wtEo&T^Sdz{*#|b!O9* zA_9NZ516RgI|YC9uz%xKupRxmL8>!x3I-_H*x+qS-|hz!G@j8wG_GMhTJ9lWCQA{l z@PSMR_15$^yW3YE{yhiiy=LmQR?fR*kvsmggYlf+H()u?GQ6~G_j&N8{wg96hwbiI z8F#XC34+{(*CG;{Rp+db~Aq3OvoyX)rKNo0=ddS6|WZ?YCTM~u^)xzfVwe!iy&R#=ars!Ogk+kBZW+0aFRLg*}T#G`BPoCE6 zsvdXA0vc=0}IVLP{C)Y!yLDYcE-)>nR8h$)3%7i^${O^{w%)j%bh2Ml9lwiXGPkOMsIltCw7`|M zicIIJoz~vrC!Are;82-iW})IHkt8#M83Vh{%#O)_gj||%SN`l)qwZYn2uq%(X*Khe zD?|e`ASRVmp5WHMpFO!Of!zOT*m~Y^Mu=a&y4QI(nWVL3?*6zYR7Es}IN%ED zNfTEA*8o*2H}d$__UY{3&1lp}q8zI#pH*A7I)Hjk>CY^or1(7lq+a)-?CRg2av8zk z5K>e?Y1tl!Svcc&+9YP{LkF(b`V2kqm|T)4<&wHhtW}XFC*R#h$)Yi#oT>~jMUIqY zb~Zu^^kx1q5A7$KW?xgS7#pgVD-ODVnl5lNR;B%d^5V>h)Q6^OZ&&)9NzK`x)xwW+ z?2&f^aC;ZS+x(%8kgv}pp|h>L{ugon=Mx0SU{rw*vgG(~;G|fFVmP;IN z*W{f$r%rZ3tN*Q-kJ?3+O> zCCiHDdG#R4)ywsyoRpMQ^n)9?sB5!eY7o&7_pGqZA(4&ODht-?8BX(B94=?y%+1VV z{t>EsuL*71R3=2mduMX{&^z4;Hh#1^-jJ3m?Sd{mFTzyqoRDaklDJ9+A(jX|^3eq7+ z4&6Bn-7PI4sidNG_t4z}5>i7q4BgGy{J-y}x8WyyYO!8c@+45jI zIU}oe|BuYQtA3-mY=j7I!L*YR`tGyKwom|N*0cX&wQT;_bt|nYrAYMIzZ8Hczxj;!(!X!bN{GVn){<5Md`>wVvbMZ}) zJPP1PvUh}iK~$YZG)wRJv5HFGw+oRM1#=YBWmPFOJpi@!Dc|2%Uj~_9?EP~Aa$9Gw zlqU{={;_(6>aUD)L%lb(U`Gc9*FY7eA1@f?D9bo`x;rUpNmQILA~ zh^-Ake~K-htciHTlem2&G$z%S#uQqd_o#^-2B`bpH2Tue;Qw0E!f0=1!PQ*v$ZB&S ztUS;{l(Uc1KA+7$XanI=PX_bsq7L(Nqe6w9eSJr?%Z}G-xd+D_5r9(pe63eP`MYhR z$+?HFH>AO4`z!F|%(+$LwB)AH0HruozjWbrGE++kX;j+lW7}nriKsM%Ly1^oSZ!ov zjGwt*0NM!Mq=~7=QR~$u!=hAfVh{SpRN3zFRXwvE;csSBNNIya$80@Wfq}!XU{hLV)or& zRH(e!EAlJPau8QiLlFnnYPesAa=_ls2jSa^6qjk~*m@Ui0v0=A;tO%>xvf?7m#Yh< zvy~;zneKCcj>yrllh?})xC=%X{b#ErFYENKx}g_p&cFxq~{w&kai6sDJmj34;~MKfmAYz|DH~ z!UAFtioMNb2BGPp=T4xO?!qN|EoBnsv7P0qsHv$L&z28F9ydI-sT(uiRS6W@k@SQqni ztpRrXMA&vkDvvVzRz7CsN)LBy;I;Nq{U1c%L8ayc`D=3}1;q28|H(Auj8gV{UwR7* zH%`W1-rA6eILjgyeIFzOGF14&j0ts6d>GW(EI?xh?#5rm7=9w>22a~bPvQ!Z8h|zcztB1uKs=+&EI&P7ZBB!n4(LVXo1WWdxtn$vd=+;C?haTgKf#>)sV(mg z8X5w{k#tGF72iJh1#GNpKY|UpwgVe|8zd84XMcBA{7S?}p=@`)JLx}-p4>Y~Y_vzA zWFcBqnfocNU8cv=tQXT3?#%Qh*?}XTrZU&H#;m)hbWl;b-vO}6-jI-s4i;0&y6To3 zfA&Wk{ABO{S19w$Txqsm0!QyH&VSqT#0Lcb6n)Fy2$5T&^E0}omBO69w2;2v=uGiI zVN$ACUwR0GIte14LhWqiWOboK7rC!g+p4^T359OsXmYB{=KXiQ?sRa8c3HJT9Z)U? zBXMfK?&Wddd2TyKg|{pM59$KMi_WHkw?1Ib2Ceo>K2~uWKq2pwzZHwvPjhzqIE21% zPqH(ZbPQ$b2Qr8a7-n0icBR&0Dfkt^(A5{)zpy9ksgcfi*TD*qKh;(v6dA9Z0VMALuUqYoc=Me`4$tfvu{yR2I4y~F;{K)*Q1^On zo~Rz?PU5Pch2jthfUXy|C9L~TVw%%8I5gpwz`TehysY66zaj@~gVtV;ZdsM{{&W0r z{C5ws2|}0qlPdl&@m(4~0Or_v17ON2<*k@E) zL)SxbjN~1~mJ9J_nqBz&^jHADcX$6sWTvweVFXUy{guSB5JU`YSXqwZIgO^pSHPYr zh0jWX1lZnl2eYlc=X460O|z90EYIFaDG2gdoVPI~;3272tF+I$A;*p;Bl9gdt17I8 zzckHHNtcac%com>o#%G7=-D9ner5D$etUU2cZN-OE5H;g0#(gQ!uyro`^NV6CC_?S zeUxA+{?&+6fa`np1hDbl{LDT)0;WAg0N;-=#!}0-5+6w>|5e=$r`v!%$9lK+GubP= zZ=4W2toCnhc^uVmUNT$96KPp5t!Rm0low)MFNFbraBV_xx-iPoEs_-SrL8t7ahMph zgb{e7J0@QO~;1A&6>d`vlN_hg6qIV+d-Siws# z17l+zmMphKm8Mo8Dpx%FJ1NtjTvlWCc@y%KG#+10+N~sHt8JiF`J}j?V|Xam8`yy) zmmN}ANE?Q0#}{S3pNU_kzrzfKFcm>mbE7Y)uXg0MPtxU*O4r3J7zf2Fw(~iU-+S*Y zGmUwTiHTUg<(e)w1rm!eK2t($^kHmcJhmxOzfSqHC?<1_{c2?M1NS?;7SGRV?P*?FozX2{}ulghgO|nI9X~0J}=EU~PAY9Ph)=jTYLS zmfJ4he$?%KcosVW#;iJGC0_jUo4>g8S`W?D2-X0q@GkaOJ1HuxnG+9jFXIuqO zU-F4&DeR21kDQwiftM=kU9Bm{>ikBV%LeEFxuw*V*dARnV||f=nofRRFJ07DYY+$w z3N6(maO&vVc1EIm6E!Ytkzf0^LSaP1I6&{moVe)*AcfTBXPP`%kZ>0yd)d zAvlp)8!%0!dCMtnWJT#uJJyvR$X}gzkr`Ow&>2e$y)#`*POW35pGkk-)SpFCJGRb^ zKJEMsKFt8aFaQLa3iJ=WG2A`~W9B;D$tAhzZV*f<`sGs`;7z|2^i!oxk5+%S?~E}< zza5d<9asS$w8$poi{Rg)u4D?fLLH=Rm)dGigY(_|Z_ihY z{Ha7eO7C~o0u#^1B$tiu4#G%{DvucVfs5Bhgyj9tmy`mfa^KR^(`jZB2t%ED>;-!^ z`#*LbNB65yDcsUeD?jI2Si&uqPZmiy{IqTR9R&|~`VVKmaq!hnydE_VFroiYBF(b; z!CNioA077epLN`fW+ZaKj;sKEnc-A%8mKIeSvllR`mxW9ehfv z&x?T03H`@INcXp(ZSSNif{mX`-*sA{1h1#XdLpD^>t>yF{KjpSqov##R+wNd)6T`J zZe82yJ=mh!lDywhsO~2xUhhd^t84;YQ7pP}$DT<1HKv`R!SI$I=`NSzGTV=u+y|xE zImi7e6HRRu%Cy_@x_=Z$3wO=tmq14qDUw-a0o`8;`E0Jw@l1T2bE!AvOOVgG9S|`-%8`-myQeeUE6Vf#Q)nv z5z8E?GF3Rv^or!u-$F8TP8*}xb2CJIT|AVJJ~g>PoDP6jJ}|pE+tSLz%5x~|yX%qv z=yr{$E39$bZ!8OxeaCSUbCus)-=+w(Q!8JGR1R*FF1t2MRLHqF$}iw|iGM}F@XA6M z&4awz6lQ;v3mKd#yS~cygL=xqZda8gy*@hBIDI<~LcJP?&{$>6mz2wa ze%q8Z>dHd%FUcLggXKyeI(Z|6NK_#WJ~lp4rB4!VYwuo9M`ah7TiTND$QYoh6;hiSCHR_iu0djuq}1WsfbhpDy-yxe{)4W9IevY-X>! zB23!_DmBC1GdT86Au57K0N30 zmktBx77M!5PP0S-{G>xnKQ#ym3nM{_4`b)9R(G^}(4l?uvdp{R$IwH+eSLgMt3-Ry zv0?F*@8$kU3C$|x@v@;^4~dLK>YM1zMpBtOjrRsV2QLusO-xKY-7@}5ZWyTAvf-i- z1ZVE3i?_ko?tqq+4WLatX+2J~+;rUd@s!m2;-AiDijL7&@M07HAJ4V4Q0chLS)cmv zCgFZpFx7ec1VWFgflvAO8O+4e4TDL+8L;mP@p ziQGO0MB1>@>&-6|a53*y8fL2Lgm`)ceEp8@6dz z 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 XvkAWYr>|453-Ju7^w=lA~rQ~o&l literal 0 HcmV?d00001 From 657f662e6202a304618a89573232000aef08d82f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 07:25:51 -0700 Subject: [PATCH 04/53] Bump types-setuptools from 71.0.0.20240722 to 71.1.0.20240726 (#720) Bumps [types-setuptools](https://github.com/python/typeshed) from 71.0.0.20240722 to 71.1.0.20240726. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index b258dbe8..e5f2b0fa 100644 --- a/poetry.lock +++ b/poetry.lock @@ -805,13 +805,13 @@ files = [ [[package]] name = "types-setuptools" -version = "71.0.0.20240722" +version = "71.1.0.20240726" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-71.0.0.20240722.tar.gz", hash = "sha256:8f1fd5281945ed8f5a896f05dd50bc31917d6e2487ff9508f4bac522d13ad395"}, - {file = "types_setuptools-71.0.0.20240722-py3-none-any.whl", hash = "sha256:04a383bd1a2dcdb6a85397516ce2d7b46617d89f1d758f686d0d9069943d9811"}, + {file = "types-setuptools-71.1.0.20240726.tar.gz", hash = "sha256:85ba28e9461bb1be86ebba4db0f1c2408f2b11115b1966334ea9dc464e29303e"}, + {file = "types_setuptools-71.1.0.20240726-py3-none-any.whl", hash = "sha256:a7775376f36e0ff09bcad236bf265777590a66b11623e48c20bfc30f1444ea36"}, ] [[package]] @@ -963,4 +963,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "0d5a56908d1fdb653867db55416e55c841b5f5ac94f8607b51dddc177115d6d1" +content-hash = "dd52ab51430e0d0f4fcd405037304b756c019837bec333e0c0b53a2c2e0a9bef" diff --git a/pyproject.toml b/pyproject.toml index 931d9805..ddd0697e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^2.0.0" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^71.0.0" +types-setuptools = "^71.1.0" pook = "^2.0.0" orjson = "^3.10.6" From 53c5a1181b89cf751633aad6bf0725119aaff453 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:48:54 -0700 Subject: [PATCH 05/53] Bump mypy from 1.11.0 to 1.11.1 (#723) Bumps [mypy](https://github.com/python/mypy) from 1.11.0 to 1.11.1. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.11...v1.11.1) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 56 ++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/poetry.lock b/poetry.lock index e5f2b0fa..f1d1dbe0 100644 --- a/poetry.lock +++ b/poetry.lock @@ -312,38 +312,38 @@ files = [ [[package]] name = "mypy" -version = "1.11.0" +version = "1.11.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3824187c99b893f90c845bab405a585d1ced4ff55421fdf5c84cb7710995229"}, - {file = "mypy-1.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:96f8dbc2c85046c81bcddc246232d500ad729cb720da4e20fce3b542cab91287"}, - {file = "mypy-1.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a5d8d8dd8613a3e2be3eae829ee891b6b2de6302f24766ff06cb2875f5be9c6"}, - {file = "mypy-1.11.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72596a79bbfb195fd41405cffa18210af3811beb91ff946dbcb7368240eed6be"}, - {file = "mypy-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:35ce88b8ed3a759634cb4eb646d002c4cef0a38f20565ee82b5023558eb90c00"}, - {file = "mypy-1.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:98790025861cb2c3db8c2f5ad10fc8c336ed2a55f4daf1b8b3f877826b6ff2eb"}, - {file = "mypy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25bcfa75b9b5a5f8d67147a54ea97ed63a653995a82798221cca2a315c0238c1"}, - {file = "mypy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bea2a0e71c2a375c9fa0ede3d98324214d67b3cbbfcbd55ac8f750f85a414e3"}, - {file = "mypy-1.11.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d2b3d36baac48e40e3064d2901f2fbd2a2d6880ec6ce6358825c85031d7c0d4d"}, - {file = "mypy-1.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8e2e43977f0e09f149ea69fd0556623919f816764e26d74da0c8a7b48f3e18a"}, - {file = "mypy-1.11.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d44c1e44a8be986b54b09f15f2c1a66368eb43861b4e82573026e04c48a9e20"}, - {file = "mypy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cea3d0fb69637944dd321f41bc896e11d0fb0b0aa531d887a6da70f6e7473aba"}, - {file = "mypy-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a83ec98ae12d51c252be61521aa5731f5512231d0b738b4cb2498344f0b840cd"}, - {file = "mypy-1.11.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7b73a856522417beb78e0fb6d33ef89474e7a622db2653bc1285af36e2e3e3d"}, - {file = "mypy-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:f2268d9fcd9686b61ab64f077be7ffbc6fbcdfb4103e5dd0cc5eaab53a8886c2"}, - {file = "mypy-1.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:940bfff7283c267ae6522ef926a7887305945f716a7704d3344d6d07f02df850"}, - {file = "mypy-1.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:14f9294528b5f5cf96c721f231c9f5b2733164e02c1c018ed1a0eff8a18005ac"}, - {file = "mypy-1.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7b54c27783991399046837df5c7c9d325d921394757d09dbcbf96aee4649fe9"}, - {file = "mypy-1.11.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:65f190a6349dec29c8d1a1cd4aa71284177aee5949e0502e6379b42873eddbe7"}, - {file = "mypy-1.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbe286303241fea8c2ea5466f6e0e6a046a135a7e7609167b07fd4e7baf151bf"}, - {file = "mypy-1.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:104e9c1620c2675420abd1f6c44bab7dd33cc85aea751c985006e83dcd001095"}, - {file = "mypy-1.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f006e955718ecd8d159cee9932b64fba8f86ee6f7728ca3ac66c3a54b0062abe"}, - {file = "mypy-1.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:becc9111ca572b04e7e77131bc708480cc88a911adf3d0239f974c034b78085c"}, - {file = "mypy-1.11.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6801319fe76c3f3a3833f2b5af7bd2c17bb93c00026a2a1b924e6762f5b19e13"}, - {file = "mypy-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:c1a184c64521dc549324ec6ef7cbaa6b351912be9cb5edb803c2808a0d7e85ac"}, - {file = "mypy-1.11.0-py3-none-any.whl", hash = "sha256:56913ec8c7638b0091ef4da6fcc9136896914a9d60d54670a75880c3e5b99ace"}, - {file = "mypy-1.11.0.tar.gz", hash = "sha256:93743608c7348772fdc717af4aeee1997293a1ad04bc0ea6efa15bf65385c538"}, + {file = "mypy-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a32fc80b63de4b5b3e65f4be82b4cfa362a46702672aa6a0f443b4689af7008c"}, + {file = "mypy-1.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c1952f5ea8a5a959b05ed5f16452fddadbaae48b5d39235ab4c3fc444d5fd411"}, + {file = "mypy-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1e30dc3bfa4e157e53c1d17a0dad20f89dc433393e7702b813c10e200843b03"}, + {file = "mypy-1.11.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2c63350af88f43a66d3dfeeeb8d77af34a4f07d760b9eb3a8697f0386c7590b4"}, + {file = "mypy-1.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:a831671bad47186603872a3abc19634f3011d7f83b083762c942442d51c58d58"}, + {file = "mypy-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7b6343d338390bb946d449677726edf60102a1c96079b4f002dedff375953fc5"}, + {file = "mypy-1.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4fe9f4e5e521b458d8feb52547f4bade7ef8c93238dfb5bbc790d9ff2d770ca"}, + {file = "mypy-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:886c9dbecc87b9516eff294541bf7f3655722bf22bb898ee06985cd7269898de"}, + {file = "mypy-1.11.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fca4a60e1dd9fd0193ae0067eaeeb962f2d79e0d9f0f66223a0682f26ffcc809"}, + {file = "mypy-1.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:0bd53faf56de9643336aeea1c925012837432b5faf1701ccca7fde70166ccf72"}, + {file = "mypy-1.11.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f39918a50f74dc5969807dcfaecafa804fa7f90c9d60506835036cc1bc891dc8"}, + {file = "mypy-1.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0bc71d1fb27a428139dd78621953effe0d208aed9857cb08d002280b0422003a"}, + {file = "mypy-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b868d3bcff720dd7217c383474008ddabaf048fad8d78ed948bb4b624870a417"}, + {file = "mypy-1.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a707ec1527ffcdd1c784d0924bf5cb15cd7f22683b919668a04d2b9c34549d2e"}, + {file = "mypy-1.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:64f4a90e3ea07f590c5bcf9029035cf0efeae5ba8be511a8caada1a4893f5525"}, + {file = "mypy-1.11.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:749fd3213916f1751fff995fccf20c6195cae941dc968f3aaadf9bb4e430e5a2"}, + {file = "mypy-1.11.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b639dce63a0b19085213ec5fdd8cffd1d81988f47a2dec7100e93564f3e8fb3b"}, + {file = "mypy-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c956b49c5d865394d62941b109728c5c596a415e9c5b2be663dd26a1ff07bc0"}, + {file = "mypy-1.11.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45df906e8b6804ef4b666af29a87ad9f5921aad091c79cc38e12198e220beabd"}, + {file = "mypy-1.11.1-cp38-cp38-win_amd64.whl", hash = "sha256:d44be7551689d9d47b7abc27c71257adfdb53f03880841a5db15ddb22dc63edb"}, + {file = "mypy-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2684d3f693073ab89d76da8e3921883019ea8a3ec20fa5d8ecca6a2db4c54bbe"}, + {file = "mypy-1.11.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:79c07eb282cb457473add5052b63925e5cc97dfab9812ee65a7c7ab5e3cb551c"}, + {file = "mypy-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11965c2f571ded6239977b14deebd3f4c3abd9a92398712d6da3a772974fad69"}, + {file = "mypy-1.11.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a2b43895a0f8154df6519706d9bca8280cda52d3d9d1514b2d9c3e26792a0b74"}, + {file = "mypy-1.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:1a81cf05975fd61aec5ae16501a091cfb9f605dc3e3c878c0da32f250b74760b"}, + {file = "mypy-1.11.1-py3-none-any.whl", hash = "sha256:0624bdb940255d2dd24e829d99a13cfeb72e4e9031f9492148f410ed30bcab54"}, + {file = "mypy-1.11.1.tar.gz", hash = "sha256:f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08"}, ] [package.dependencies] From efa133b23c931e5718cf465f28e34df24d163094 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 01:08:31 -0700 Subject: [PATCH 06/53] Bump black from 24.4.2 to 24.8.0 (#724) Bumps [black](https://github.com/psf/black) from 24.4.2 to 24.8.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/24.4.2...24.8.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 48 ++++++++++++++++++++++++------------------------ pyproject.toml | 2 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/poetry.lock b/poetry.lock index f1d1dbe0..bcd6bc43 100644 --- a/poetry.lock +++ b/poetry.lock @@ -44,33 +44,33 @@ pytz = ">=2015.7" [[package]] name = "black" -version = "24.4.2" +version = "24.8.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"}, - {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"}, - {file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"}, - {file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"}, - {file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"}, - {file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"}, - {file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"}, - {file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"}, - {file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"}, - {file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"}, - {file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"}, - {file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"}, - {file = "black-24.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf10f7310db693bb62692609b397e8d67257c55f949abde4c67f9cc574492cc7"}, - {file = "black-24.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98e123f1d5cfd42f886624d84464f7756f60ff6eab89ae845210631714f6db94"}, - {file = "black-24.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48a85f2cb5e6799a9ef05347b476cce6c182d6c71ee36925a6c194d074336ef8"}, - {file = "black-24.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b1530ae42e9d6d5b670a34db49a94115a64596bc77710b1d05e9801e62ca0a7c"}, - {file = "black-24.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1"}, - {file = "black-24.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da33a1a5e49c4122ccdfd56cd021ff1ebc4a1ec4e2d01594fef9b6f267a9e741"}, - {file = "black-24.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e"}, - {file = "black-24.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9176b9832e84308818a99a561e90aa479e73c523b3f77afd07913380ae2eab7"}, - {file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"}, - {file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"}, + {file = "black-24.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:09cdeb74d494ec023ded657f7092ba518e8cf78fa8386155e4a03fdcc44679e6"}, + {file = "black-24.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81c6742da39f33b08e791da38410f32e27d632260e599df7245cccee2064afeb"}, + {file = "black-24.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:707a1ca89221bc8a1a64fb5e15ef39cd755633daa672a9db7498d1c19de66a42"}, + {file = "black-24.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d6417535d99c37cee4091a2f24eb2b6d5ec42b144d50f1f2e436d9fe1916fe1a"}, + {file = "black-24.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fb6e2c0b86bbd43dee042e48059c9ad7830abd5c94b0bc518c0eeec57c3eddc1"}, + {file = "black-24.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:837fd281f1908d0076844bc2b801ad2d369c78c45cf800cad7b61686051041af"}, + {file = "black-24.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62e8730977f0b77998029da7971fa896ceefa2c4c4933fcd593fa599ecbf97a4"}, + {file = "black-24.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:72901b4913cbac8972ad911dc4098d5753704d1f3c56e44ae8dce99eecb0e3af"}, + {file = "black-24.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c046c1d1eeb7aea9335da62472481d3bbf3fd986e093cffd35f4385c94ae368"}, + {file = "black-24.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:649f6d84ccbae73ab767e206772cc2d7a393a001070a4c814a546afd0d423aed"}, + {file = "black-24.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b59b250fdba5f9a9cd9d0ece6e6d993d91ce877d121d161e4698af3eb9c1018"}, + {file = "black-24.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e55d30d44bed36593c3163b9bc63bf58b3b30e4611e4d88a0c3c239930ed5b2"}, + {file = "black-24.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:505289f17ceda596658ae81b61ebbe2d9b25aa78067035184ed0a9d855d18afd"}, + {file = "black-24.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b19c9ad992c7883ad84c9b22aaa73562a16b819c1d8db7a1a1a49fb7ec13c7d2"}, + {file = "black-24.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f13f7f386f86f8121d76599114bb8c17b69d962137fc70efe56137727c7047e"}, + {file = "black-24.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:f490dbd59680d809ca31efdae20e634f3fae27fba3ce0ba3208333b713bc3920"}, + {file = "black-24.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eab4dd44ce80dea27dc69db40dab62d4ca96112f87996bca68cd75639aeb2e4c"}, + {file = "black-24.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3c4285573d4897a7610054af5a890bde7c65cb466040c5f0c8b732812d7f0e5e"}, + {file = "black-24.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e84e33b37be070ba135176c123ae52a51f82306def9f7d063ee302ecab2cf47"}, + {file = "black-24.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:73bbf84ed136e45d451a260c6b73ed674652f90a2b3211d6a35e78054563a9bb"}, + {file = "black-24.8.0-py3-none-any.whl", hash = "sha256:972085c618ee94f402da1af548a4f218c754ea7e5dc70acb168bfaca4c2542ed"}, + {file = "black-24.8.0.tar.gz", hash = "sha256:2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f"}, ] [package.dependencies] @@ -963,4 +963,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "dd52ab51430e0d0f4fcd405037304b756c019837bec333e0c0b53a2c2e0a9bef" +content-hash = "727e999503d474aca451156967f9dde6653456d4b13553d2838606cb3f4c6a85" diff --git a/pyproject.toml b/pyproject.toml index ddd0697e..dba65afe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,7 +30,7 @@ websockets = ">=10.3,<13.0" certifi = ">=2022.5.18,<2025.0.0" [tool.poetry.dev-dependencies] -black = "^24.4.2" +black = "^24.8.0" mypy = "^1.11" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" From b88c1f2308ad888ced3597b5ba5a14ae4c114bd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 16:40:39 +0000 Subject: [PATCH 07/53] Bump orjson from 3.10.6 to 3.10.7 (#727) --- poetry.lock | 112 ++++++++++++++++++++++++++----------------------- pyproject.toml | 2 +- 2 files changed, 60 insertions(+), 54 deletions(-) diff --git a/poetry.lock b/poetry.lock index bcd6bc43..fa02ba6b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -384,62 +384,68 @@ six = ">=1.8.0" [[package]] name = "orjson" -version = "3.10.6" +version = "3.10.7" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.6-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:fb0ee33124db6eaa517d00890fc1a55c3bfe1cf78ba4a8899d71a06f2d6ff5c7"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c1c4b53b24a4c06547ce43e5fee6ec4e0d8fe2d597f4647fc033fd205707365"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eadc8fd310edb4bdbd333374f2c8fec6794bbbae99b592f448d8214a5e4050c0"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61272a5aec2b2661f4fa2b37c907ce9701e821b2c1285d5c3ab0207ebd358d38"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57985ee7e91d6214c837936dc1608f40f330a6b88bb13f5a57ce5257807da143"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:633a3b31d9d7c9f02d49c4ab4d0a86065c4a6f6adc297d63d272e043472acab5"}, - {file = "orjson-3.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1c680b269d33ec444afe2bdc647c9eb73166fa47a16d9a75ee56a374f4a45f43"}, - {file = "orjson-3.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f759503a97a6ace19e55461395ab0d618b5a117e8d0fbb20e70cfd68a47327f2"}, - {file = "orjson-3.10.6-cp310-none-win32.whl", hash = "sha256:95a0cce17f969fb5391762e5719575217bd10ac5a189d1979442ee54456393f3"}, - {file = "orjson-3.10.6-cp310-none-win_amd64.whl", hash = "sha256:df25d9271270ba2133cc88ee83c318372bdc0f2cd6f32e7a450809a111efc45c"}, - {file = "orjson-3.10.6-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b1ec490e10d2a77c345def52599311849fc063ae0e67cf4f84528073152bb2ba"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55d43d3feb8f19d07e9f01e5b9be4f28801cf7c60d0fa0d279951b18fae1932b"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac3045267e98fe749408eee1593a142e02357c5c99be0802185ef2170086a863"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c27bc6a28ae95923350ab382c57113abd38f3928af3c80be6f2ba7eb8d8db0b0"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d27456491ca79532d11e507cadca37fb8c9324a3976294f68fb1eff2dc6ced5a"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05ac3d3916023745aa3b3b388e91b9166be1ca02b7c7e41045da6d12985685f0"}, - {file = "orjson-3.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1335d4ef59ab85cab66fe73fd7a4e881c298ee7f63ede918b7faa1b27cbe5212"}, - {file = "orjson-3.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4bbc6d0af24c1575edc79994c20e1b29e6fb3c6a570371306db0993ecf144dc5"}, - {file = "orjson-3.10.6-cp311-none-win32.whl", hash = "sha256:450e39ab1f7694465060a0550b3f6d328d20297bf2e06aa947b97c21e5241fbd"}, - {file = "orjson-3.10.6-cp311-none-win_amd64.whl", hash = "sha256:227df19441372610b20e05bdb906e1742ec2ad7a66ac8350dcfd29a63014a83b"}, - {file = "orjson-3.10.6-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ea2977b21f8d5d9b758bb3f344a75e55ca78e3ff85595d248eee813ae23ecdfb"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6f3d167d13a16ed263b52dbfedff52c962bfd3d270b46b7518365bcc2121eed"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f710f346e4c44a4e8bdf23daa974faede58f83334289df80bc9cd12fe82573c7"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7275664f84e027dcb1ad5200b8b18373e9c669b2a9ec33d410c40f5ccf4b257e"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0943e4c701196b23c240b3d10ed8ecd674f03089198cf503105b474a4f77f21f"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:446dee5a491b5bc7d8f825d80d9637e7af43f86a331207b9c9610e2f93fee22a"}, - {file = "orjson-3.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:64c81456d2a050d380786413786b057983892db105516639cb5d3ee3c7fd5148"}, - {file = "orjson-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:960db0e31c4e52fa0fc3ecbaea5b2d3b58f379e32a95ae6b0ebeaa25b93dfd34"}, - {file = "orjson-3.10.6-cp312-none-win32.whl", hash = "sha256:a6ea7afb5b30b2317e0bee03c8d34c8181bc5a36f2afd4d0952f378972c4efd5"}, - {file = "orjson-3.10.6-cp312-none-win_amd64.whl", hash = "sha256:874ce88264b7e655dde4aeaacdc8fd772a7962faadfb41abe63e2a4861abc3dc"}, - {file = "orjson-3.10.6-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:66680eae4c4e7fc193d91cfc1353ad6d01b4801ae9b5314f17e11ba55e934183"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:caff75b425db5ef8e8f23af93c80f072f97b4fb3afd4af44482905c9f588da28"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3722fddb821b6036fd2a3c814f6bd9b57a89dc6337b9924ecd614ebce3271394"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2c116072a8533f2fec435fde4d134610f806bdac20188c7bd2081f3e9e0133f"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6eeb13218c8cf34c61912e9df2de2853f1d009de0e46ea09ccdf3d757896af0a"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:965a916373382674e323c957d560b953d81d7a8603fbeee26f7b8248638bd48b"}, - {file = "orjson-3.10.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:03c95484d53ed8e479cade8628c9cea00fd9d67f5554764a1110e0d5aa2de96e"}, - {file = "orjson-3.10.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:e060748a04cccf1e0a6f2358dffea9c080b849a4a68c28b1b907f272b5127e9b"}, - {file = "orjson-3.10.6-cp38-none-win32.whl", hash = "sha256:738dbe3ef909c4b019d69afc19caf6b5ed0e2f1c786b5d6215fbb7539246e4c6"}, - {file = "orjson-3.10.6-cp38-none-win_amd64.whl", hash = "sha256:d40f839dddf6a7d77114fe6b8a70218556408c71d4d6e29413bb5f150a692ff7"}, - {file = "orjson-3.10.6-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:697a35a083c4f834807a6232b3e62c8b280f7a44ad0b759fd4dce748951e70db"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd502f96bf5ea9a61cbc0b2b5900d0dd68aa0da197179042bdd2be67e51a1e4b"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f215789fb1667cdc874c1b8af6a84dc939fd802bf293a8334fce185c79cd359b"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2debd8ddce948a8c0938c8c93ade191d2f4ba4649a54302a7da905a81f00b56"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5410111d7b6681d4b0d65e0f58a13be588d01b473822483f77f513c7f93bd3b2"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb1f28a137337fdc18384079fa5726810681055b32b92253fa15ae5656e1dddb"}, - {file = "orjson-3.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bf2fbbce5fe7cd1aa177ea3eab2b8e6a6bc6e8592e4279ed3db2d62e57c0e1b2"}, - {file = "orjson-3.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:79b9b9e33bd4c517445a62b90ca0cc279b0f1f3970655c3df9e608bc3f91741a"}, - {file = "orjson-3.10.6-cp39-none-win32.whl", hash = "sha256:30b0a09a2014e621b1adf66a4f705f0809358350a757508ee80209b2d8dae219"}, - {file = "orjson-3.10.6-cp39-none-win_amd64.whl", hash = "sha256:49e3bc615652617d463069f91b867a4458114c5b104e13b7ae6872e5f79d0844"}, - {file = "orjson-3.10.6.tar.gz", hash = "sha256:e54b63d0a7c6c54a5f5f726bc93a2078111ef060fec4ecbf34c5db800ca3b3a7"}, + {file = "orjson-3.10.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:74f4544f5a6405b90da8ea724d15ac9c36da4d72a738c64685003337401f5c12"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34a566f22c28222b08875b18b0dfbf8a947e69df21a9ed5c51a6bf91cfb944ac"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf6ba8ebc8ef5792e2337fb0419f8009729335bb400ece005606336b7fd7bab7"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac7cf6222b29fbda9e3a472b41e6a5538b48f2c8f99261eecd60aafbdb60690c"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de817e2f5fc75a9e7dd350c4b0f54617b280e26d1631811a43e7e968fa71e3e9"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:348bdd16b32556cf8d7257b17cf2bdb7ab7976af4af41ebe79f9796c218f7e91"}, + {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:479fd0844ddc3ca77e0fd99644c7fe2de8e8be1efcd57705b5c92e5186e8a250"}, + {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fdf5197a21dd660cf19dfd2a3ce79574588f8f5e2dbf21bda9ee2d2b46924d84"}, + {file = "orjson-3.10.7-cp310-none-win32.whl", hash = "sha256:d374d36726746c81a49f3ff8daa2898dccab6596864ebe43d50733275c629175"}, + {file = "orjson-3.10.7-cp310-none-win_amd64.whl", hash = "sha256:cb61938aec8b0ffb6eef484d480188a1777e67b05d58e41b435c74b9d84e0b9c"}, + {file = "orjson-3.10.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7db8539039698ddfb9a524b4dd19508256107568cdad24f3682d5773e60504a2"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:480f455222cb7a1dea35c57a67578848537d2602b46c464472c995297117fa09"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8a9c9b168b3a19e37fe2778c0003359f07822c90fdff8f98d9d2a91b3144d8e0"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8de062de550f63185e4c1c54151bdddfc5625e37daf0aa1e75d2a1293e3b7d9a"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6b0dd04483499d1de9c8f6203f8975caf17a6000b9c0c54630cef02e44ee624e"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b58d3795dafa334fc8fd46f7c5dc013e6ad06fd5b9a4cc98cb1456e7d3558bd6"}, + {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:33cfb96c24034a878d83d1a9415799a73dc77480e6c40417e5dda0710d559ee6"}, + {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e724cebe1fadc2b23c6f7415bad5ee6239e00a69f30ee423f319c6af70e2a5c0"}, + {file = "orjson-3.10.7-cp311-none-win32.whl", hash = "sha256:82763b46053727a7168d29c772ed5c870fdae2f61aa8a25994c7984a19b1021f"}, + {file = "orjson-3.10.7-cp311-none-win_amd64.whl", hash = "sha256:eb8d384a24778abf29afb8e41d68fdd9a156cf6e5390c04cc07bbc24b89e98b5"}, + {file = "orjson-3.10.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:44a96f2d4c3af51bfac6bc4ef7b182aa33f2f054fd7f34cc0ee9a320d051d41f"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76ac14cd57df0572453543f8f2575e2d01ae9e790c21f57627803f5e79b0d3c3"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bdbb61dcc365dd9be94e8f7df91975edc9364d6a78c8f7adb69c1cdff318ec93"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b48b3db6bb6e0a08fa8c83b47bc169623f801e5cc4f24442ab2b6617da3b5313"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23820a1563a1d386414fef15c249040042b8e5d07b40ab3fe3efbfbbcbcb8864"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0c6a008e91d10a2564edbb6ee5069a9e66df3fbe11c9a005cb411f441fd2c09"}, + {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d352ee8ac1926d6193f602cbe36b1643bbd1bbcb25e3c1a657a4390f3000c9a5"}, + {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d2d9f990623f15c0ae7ac608103c33dfe1486d2ed974ac3f40b693bad1a22a7b"}, + {file = "orjson-3.10.7-cp312-none-win32.whl", hash = "sha256:7c4c17f8157bd520cdb7195f75ddbd31671997cbe10aee559c2d613592e7d7eb"}, + {file = "orjson-3.10.7-cp312-none-win_amd64.whl", hash = "sha256:1d9c0e733e02ada3ed6098a10a8ee0052dd55774de3d9110d29868d24b17faa1"}, + {file = "orjson-3.10.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:77d325ed866876c0fa6492598ec01fe30e803272a6e8b10e992288b009cbe149"}, + {file = "orjson-3.10.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ea2c232deedcb605e853ae1db2cc94f7390ac776743b699b50b071b02bea6fe"}, + {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3dcfbede6737fdbef3ce9c37af3fb6142e8e1ebc10336daa05872bfb1d87839c"}, + {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:11748c135f281203f4ee695b7f80bb1358a82a63905f9f0b794769483ea854ad"}, + {file = "orjson-3.10.7-cp313-none-win32.whl", hash = "sha256:a7e19150d215c7a13f39eb787d84db274298d3f83d85463e61d277bbd7f401d2"}, + {file = "orjson-3.10.7-cp313-none-win_amd64.whl", hash = "sha256:eef44224729e9525d5261cc8d28d6b11cafc90e6bd0be2157bde69a52ec83024"}, + {file = "orjson-3.10.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6ea2b2258eff652c82652d5e0f02bd5e0463a6a52abb78e49ac288827aaa1469"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:430ee4d85841e1483d487e7b81401785a5dfd69db5de01314538f31f8fbf7ee1"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4b6146e439af4c2472c56f8540d799a67a81226e11992008cb47e1267a9b3225"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:084e537806b458911137f76097e53ce7bf5806dda33ddf6aaa66a028f8d43a23"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4829cf2195838e3f93b70fd3b4292156fc5e097aac3739859ac0dcc722b27ac0"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1193b2416cbad1a769f868b1749535d5da47626ac29445803dae7cc64b3f5c98"}, + {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4e6c3da13e5a57e4b3dca2de059f243ebec705857522f188f0180ae88badd354"}, + {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c31008598424dfbe52ce8c5b47e0752dca918a4fdc4a2a32004efd9fab41d866"}, + {file = "orjson-3.10.7-cp38-none-win32.whl", hash = "sha256:7122a99831f9e7fe977dc45784d3b2edc821c172d545e6420c375e5a935f5a1c"}, + {file = "orjson-3.10.7-cp38-none-win_amd64.whl", hash = "sha256:a763bc0e58504cc803739e7df040685816145a6f3c8a589787084b54ebc9f16e"}, + {file = "orjson-3.10.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e76be12658a6fa376fcd331b1ea4e58f5a06fd0220653450f0d415b8fd0fbe20"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed350d6978d28b92939bfeb1a0570c523f6170efc3f0a0ef1f1df287cd4f4960"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:144888c76f8520e39bfa121b31fd637e18d4cc2f115727865fdf9fa325b10412"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09b2d92fd95ad2402188cf51573acde57eb269eddabaa60f69ea0d733e789fe9"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b24a579123fa884f3a3caadaed7b75eb5715ee2b17ab5c66ac97d29b18fe57f"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591bcfe7512353bd609875ab38050efe3d55e18934e2f18950c108334b4ff"}, + {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f4db56635b58cd1a200b0a23744ff44206ee6aa428185e2b6c4a65b3197abdcd"}, + {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0fa5886854673222618638c6df7718ea7fe2f3f2384c452c9ccedc70b4a510a5"}, + {file = "orjson-3.10.7-cp39-none-win32.whl", hash = "sha256:8272527d08450ab16eb405f47e0f4ef0e5ff5981c3d82afe0efd25dcbef2bcd2"}, + {file = "orjson-3.10.7-cp39-none-win_amd64.whl", hash = "sha256:974683d4618c0c7dbf4f69c95a979734bf183d0658611760017f6e70a145af58"}, + {file = "orjson-3.10.7.tar.gz", hash = "sha256:75ef0640403f945f3a1f9f6400686560dbfb0fb5b16589ad62cd477043c4eee3"}, ] [[package]] @@ -963,4 +969,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "727e999503d474aca451156967f9dde6653456d4b13553d2838606cb3f4c6a85" +content-hash = "c6ddcb49a381dd1d80b6d99fbf334924b3cc748b3a00ab8234440f955b45963c" diff --git a/pyproject.toml b/pyproject.toml index dba65afe..fdf6139c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^71.1.0" pook = "^2.0.0" -orjson = "^3.10.6" +orjson = "^3.10.7" [build-system] requires = ["poetry-core>=1.0.0"] From 2ef5fdaaebb1491ad4f4f99c84bc95cabd2cef83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 09:48:06 -0700 Subject: [PATCH 08/53] Bump types-setuptools from 71.1.0.20240726 to 71.1.0.20240806 (#726) Bumps [types-setuptools](https://github.com/python/typeshed) from 71.1.0.20240726 to 71.1.0.20240806. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index fa02ba6b..7710783e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "71.1.0.20240726" +version = "71.1.0.20240806" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-71.1.0.20240726.tar.gz", hash = "sha256:85ba28e9461bb1be86ebba4db0f1c2408f2b11115b1966334ea9dc464e29303e"}, - {file = "types_setuptools-71.1.0.20240726-py3-none-any.whl", hash = "sha256:a7775376f36e0ff09bcad236bf265777590a66b11623e48c20bfc30f1444ea36"}, + {file = "types-setuptools-71.1.0.20240806.tar.gz", hash = "sha256:ae5e7b4d643ab9e99fc00ac00041804118cabe72a56183c30d524fb064897ad6"}, + {file = "types_setuptools-71.1.0.20240806-py3-none-any.whl", hash = "sha256:3bd8dd02039be0bb79ad880d8893b8eefcb022fabbeeb61245c61b20c9ab1ed0"}, ] [[package]] From b40efbb23ee9b86bca4c50a513cc05af581d3958 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 05:59:37 -0700 Subject: [PATCH 09/53] Bump types-setuptools from 71.1.0.20240806 to 71.1.0.20240818 (#731) Bumps [types-setuptools](https://github.com/python/typeshed) from 71.1.0.20240806 to 71.1.0.20240818. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 7710783e..02e4f5d8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "71.1.0.20240806" +version = "71.1.0.20240818" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-71.1.0.20240806.tar.gz", hash = "sha256:ae5e7b4d643ab9e99fc00ac00041804118cabe72a56183c30d524fb064897ad6"}, - {file = "types_setuptools-71.1.0.20240806-py3-none-any.whl", hash = "sha256:3bd8dd02039be0bb79ad880d8893b8eefcb022fabbeeb61245c61b20c9ab1ed0"}, + {file = "types-setuptools-71.1.0.20240818.tar.gz", hash = "sha256:f62eaffaa39774462c65fbb49368c4dc1d91a90a28371cb14e1af090ff0e41e3"}, + {file = "types_setuptools-71.1.0.20240818-py3-none-any.whl", hash = "sha256:c4f95302f88369ac0ac46c67ddbfc70c6c4dbbb184d9fed356244217a2934025"}, ] [[package]] From 72d43180dff56b2a93948f8047704245aad8986a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:02:53 -0700 Subject: [PATCH 10/53] Bump mypy from 1.11.1 to 1.11.2 (#735) Bumps [mypy](https://github.com/python/mypy) from 1.11.1 to 1.11.2. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.11.1...v1.11.2) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 56 ++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/poetry.lock b/poetry.lock index 02e4f5d8..2b4ec39c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -312,38 +312,38 @@ files = [ [[package]] name = "mypy" -version = "1.11.1" +version = "1.11.2" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a32fc80b63de4b5b3e65f4be82b4cfa362a46702672aa6a0f443b4689af7008c"}, - {file = "mypy-1.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c1952f5ea8a5a959b05ed5f16452fddadbaae48b5d39235ab4c3fc444d5fd411"}, - {file = "mypy-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1e30dc3bfa4e157e53c1d17a0dad20f89dc433393e7702b813c10e200843b03"}, - {file = "mypy-1.11.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2c63350af88f43a66d3dfeeeb8d77af34a4f07d760b9eb3a8697f0386c7590b4"}, - {file = "mypy-1.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:a831671bad47186603872a3abc19634f3011d7f83b083762c942442d51c58d58"}, - {file = "mypy-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7b6343d338390bb946d449677726edf60102a1c96079b4f002dedff375953fc5"}, - {file = "mypy-1.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4fe9f4e5e521b458d8feb52547f4bade7ef8c93238dfb5bbc790d9ff2d770ca"}, - {file = "mypy-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:886c9dbecc87b9516eff294541bf7f3655722bf22bb898ee06985cd7269898de"}, - {file = "mypy-1.11.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fca4a60e1dd9fd0193ae0067eaeeb962f2d79e0d9f0f66223a0682f26ffcc809"}, - {file = "mypy-1.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:0bd53faf56de9643336aeea1c925012837432b5faf1701ccca7fde70166ccf72"}, - {file = "mypy-1.11.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f39918a50f74dc5969807dcfaecafa804fa7f90c9d60506835036cc1bc891dc8"}, - {file = "mypy-1.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0bc71d1fb27a428139dd78621953effe0d208aed9857cb08d002280b0422003a"}, - {file = "mypy-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b868d3bcff720dd7217c383474008ddabaf048fad8d78ed948bb4b624870a417"}, - {file = "mypy-1.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a707ec1527ffcdd1c784d0924bf5cb15cd7f22683b919668a04d2b9c34549d2e"}, - {file = "mypy-1.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:64f4a90e3ea07f590c5bcf9029035cf0efeae5ba8be511a8caada1a4893f5525"}, - {file = "mypy-1.11.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:749fd3213916f1751fff995fccf20c6195cae941dc968f3aaadf9bb4e430e5a2"}, - {file = "mypy-1.11.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b639dce63a0b19085213ec5fdd8cffd1d81988f47a2dec7100e93564f3e8fb3b"}, - {file = "mypy-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c956b49c5d865394d62941b109728c5c596a415e9c5b2be663dd26a1ff07bc0"}, - {file = "mypy-1.11.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45df906e8b6804ef4b666af29a87ad9f5921aad091c79cc38e12198e220beabd"}, - {file = "mypy-1.11.1-cp38-cp38-win_amd64.whl", hash = "sha256:d44be7551689d9d47b7abc27c71257adfdb53f03880841a5db15ddb22dc63edb"}, - {file = "mypy-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2684d3f693073ab89d76da8e3921883019ea8a3ec20fa5d8ecca6a2db4c54bbe"}, - {file = "mypy-1.11.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:79c07eb282cb457473add5052b63925e5cc97dfab9812ee65a7c7ab5e3cb551c"}, - {file = "mypy-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11965c2f571ded6239977b14deebd3f4c3abd9a92398712d6da3a772974fad69"}, - {file = "mypy-1.11.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a2b43895a0f8154df6519706d9bca8280cda52d3d9d1514b2d9c3e26792a0b74"}, - {file = "mypy-1.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:1a81cf05975fd61aec5ae16501a091cfb9f605dc3e3c878c0da32f250b74760b"}, - {file = "mypy-1.11.1-py3-none-any.whl", hash = "sha256:0624bdb940255d2dd24e829d99a13cfeb72e4e9031f9492148f410ed30bcab54"}, - {file = "mypy-1.11.1.tar.gz", hash = "sha256:f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08"}, + {file = "mypy-1.11.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d42a6dd818ffce7be66cce644f1dff482f1d97c53ca70908dff0b9ddc120b77a"}, + {file = "mypy-1.11.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:801780c56d1cdb896eacd5619a83e427ce436d86a3bdf9112527f24a66618fef"}, + {file = "mypy-1.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41ea707d036a5307ac674ea172875f40c9d55c5394f888b168033177fce47383"}, + {file = "mypy-1.11.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6e658bd2d20565ea86da7d91331b0eed6d2eee22dc031579e6297f3e12c758c8"}, + {file = "mypy-1.11.2-cp310-cp310-win_amd64.whl", hash = "sha256:478db5f5036817fe45adb7332d927daa62417159d49783041338921dcf646fc7"}, + {file = "mypy-1.11.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75746e06d5fa1e91bfd5432448d00d34593b52e7e91a187d981d08d1f33d4385"}, + {file = "mypy-1.11.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a976775ab2256aadc6add633d44f100a2517d2388906ec4f13231fafbb0eccca"}, + {file = "mypy-1.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd953f221ac1379050a8a646585a29574488974f79d8082cedef62744f0a0104"}, + {file = "mypy-1.11.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:57555a7715c0a34421013144a33d280e73c08df70f3a18a552938587ce9274f4"}, + {file = "mypy-1.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:36383a4fcbad95f2657642a07ba22ff797de26277158f1cc7bd234821468b1b6"}, + {file = "mypy-1.11.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e8960dbbbf36906c5c0b7f4fbf2f0c7ffb20f4898e6a879fcf56a41a08b0d318"}, + {file = "mypy-1.11.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:06d26c277962f3fb50e13044674aa10553981ae514288cb7d0a738f495550b36"}, + {file = "mypy-1.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e7184632d89d677973a14d00ae4d03214c8bc301ceefcdaf5c474866814c987"}, + {file = "mypy-1.11.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3a66169b92452f72117e2da3a576087025449018afc2d8e9bfe5ffab865709ca"}, + {file = "mypy-1.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:969ea3ef09617aff826885a22ece0ddef69d95852cdad2f60c8bb06bf1f71f70"}, + {file = "mypy-1.11.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:37c7fa6121c1cdfcaac97ce3d3b5588e847aa79b580c1e922bb5d5d2902df19b"}, + {file = "mypy-1.11.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a8a53bc3ffbd161b5b2a4fff2f0f1e23a33b0168f1c0778ec70e1a3d66deb86"}, + {file = "mypy-1.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ff93107f01968ed834f4256bc1fc4475e2fecf6c661260066a985b52741ddce"}, + {file = "mypy-1.11.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:edb91dded4df17eae4537668b23f0ff6baf3707683734b6a818d5b9d0c0c31a1"}, + {file = "mypy-1.11.2-cp38-cp38-win_amd64.whl", hash = "sha256:ee23de8530d99b6db0573c4ef4bd8f39a2a6f9b60655bf7a1357e585a3486f2b"}, + {file = "mypy-1.11.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:801ca29f43d5acce85f8e999b1e431fb479cb02d0e11deb7d2abb56bdaf24fd6"}, + {file = "mypy-1.11.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af8d155170fcf87a2afb55b35dc1a0ac21df4431e7d96717621962e4b9192e70"}, + {file = "mypy-1.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7821776e5c4286b6a13138cc935e2e9b6fde05e081bdebf5cdb2bb97c9df81d"}, + {file = "mypy-1.11.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:539c570477a96a4e6fb718b8d5c3e0c0eba1f485df13f86d2970c91f0673148d"}, + {file = "mypy-1.11.2-cp39-cp39-win_amd64.whl", hash = "sha256:3f14cd3d386ac4d05c5a39a51b84387403dadbd936e17cb35882134d4f8f0d24"}, + {file = "mypy-1.11.2-py3-none-any.whl", hash = "sha256:b499bc07dbdcd3de92b0a8b29fdf592c111276f6a12fe29c30f6c417dd546d12"}, + {file = "mypy-1.11.2.tar.gz", hash = "sha256:7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79"}, ] [package.dependencies] From 7fe4e37107f5017552de5f3562396706b46a217c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 12:22:05 -0700 Subject: [PATCH 11/53] Bump types-setuptools from 71.1.0.20240818 to 73.0.0.20240822 (#733) Bumps [types-setuptools](https://github.com/python/typeshed) from 71.1.0.20240818 to 73.0.0.20240822. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2b4ec39c..80a4da1d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "71.1.0.20240818" +version = "73.0.0.20240822" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-71.1.0.20240818.tar.gz", hash = "sha256:f62eaffaa39774462c65fbb49368c4dc1d91a90a28371cb14e1af090ff0e41e3"}, - {file = "types_setuptools-71.1.0.20240818-py3-none-any.whl", hash = "sha256:c4f95302f88369ac0ac46c67ddbfc70c6c4dbbb184d9fed356244217a2934025"}, + {file = "types-setuptools-73.0.0.20240822.tar.gz", hash = "sha256:3a060681098eb3fbc2fea0a86f7f6af6aa1ca71906039d88d891ea2cecdd4dbf"}, + {file = "types_setuptools-73.0.0.20240822-py3-none-any.whl", hash = "sha256:b9eba9b68546031317a0fa506d4973641d987d74f79e7dd8369ad4f7a93dea17"}, ] [[package]] @@ -969,4 +969,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "c6ddcb49a381dd1d80b6d99fbf334924b3cc748b3a00ab8234440f955b45963c" +content-hash = "178096d92862139d0e26ac6cba4bb8e92dcf546c0fc46784f2d4dffc0e76da8a" diff --git a/pyproject.toml b/pyproject.toml index fdf6139c..e715e604 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^2.0.0" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^71.1.0" +types-setuptools = "^73.0.0" pook = "^2.0.0" orjson = "^3.10.7" From 2931b2d045bce86f0d3c99cb7c4ad1e15a42a096 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:04:00 -0700 Subject: [PATCH 12/53] Add dividend and split ids (#736) * Add dividend and split ids * Added spec updates --- .polygon/rest.json | 22 +++++++++++++++++++--- polygon/rest/models/dividends.py | 1 + polygon/rest/models/splits.py | 1 + 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.polygon/rest.json b/.polygon/rest.json index 94dd8286..4eb0f967 100644 --- a/.polygon/rest.json +++ b/.polygon/rest.json @@ -24328,7 +24328,7 @@ "operationId": "ListDividends", "parameters": [ { - "description": "Return the dividends that contain this ticker.", + "description": "Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc.", "in": "query", "name": "ticker", "schema": { @@ -24708,6 +24708,7 @@ "dividend_type": "CD", "ex_dividend_date": "2021-11-05", "frequency": 4, + "id": "E8e3c4f794613e9205e2f178a36c53fcc57cdabb55e1988c87b33f9e52e221444", "pay_date": "2021-11-11", "record_date": "2021-11-08", "ticker": "AAPL" @@ -24718,6 +24719,7 @@ "dividend_type": "CD", "ex_dividend_date": "2021-08-06", "frequency": 4, + "id": "E6436c5475706773f03490acf0b63fdb90b2c72bfeed329a6eb4afc080acd80ae", "pay_date": "2021-08-12", "record_date": "2021-08-09", "ticker": "AAPL" @@ -24806,6 +24808,10 @@ ] } }, + "id": { + "description": "The unique identifier of the dividend.", + "type": "string" + }, "pay_date": { "description": "The date that the dividend is paid out.", "type": "string" @@ -24832,7 +24838,8 @@ "ex_dividend_date", "frequency", "cash_amount", - "dividend_type" + "dividend_type", + "id" ], "type": "object", "x-polygon-go-struct-tags": { @@ -25841,12 +25848,14 @@ "results": [ { "execution_date": "2020-08-31", + "id": "E36416cce743c3964c5da63e1ef1626c0aece30fb47302eea5a49c0055c04e8d0", "split_from": 1, "split_to": 4, "ticker": "AAPL" }, { "execution_date": "2005-02-28", + "id": "E90a77bdf742661741ed7c8fc086415f0457c2816c45899d73aaa88bdc8ff6025", "split_from": 1, "split_to": 2, "ticker": "AAPL" @@ -25870,6 +25879,10 @@ "description": "The execution date of the stock split. On this date the stock split was applied.", "type": "string" }, + "id": { + "description": "The unique identifier for this stock split.", + "type": "string" + }, "split_from": { "description": "The second number in the split ratio.\n\nFor example: In a 2-for-1 split, split_from would be 1.", "format": "float", @@ -25887,7 +25900,10 @@ }, "required": [ "split_from", - "split_to" + "split_to", + "id", + "ticker", + "execution_date" ], "type": "object" }, diff --git a/polygon/rest/models/dividends.py b/polygon/rest/models/dividends.py index ef9adff0..68db98a9 100644 --- a/polygon/rest/models/dividends.py +++ b/polygon/rest/models/dividends.py @@ -5,6 +5,7 @@ @modelclass class Dividend: "Dividend contains data for a historical cash dividend, including the ticker symbol, declaration date, ex-dividend date, record date, pay date, frequency, and amount." + id: Optional[int] = None cash_amount: Optional[float] = None currency: Optional[str] = None declaration_date: Optional[str] = None diff --git a/polygon/rest/models/splits.py b/polygon/rest/models/splits.py index 93244c50..5fb27129 100644 --- a/polygon/rest/models/splits.py +++ b/polygon/rest/models/splits.py @@ -5,6 +5,7 @@ @modelclass class Split: "Split contains data for a historical stock split, including the ticker symbol, the execution date, and the factors of the split ratio." + id: Optional[int] = None execution_date: Optional[str] = None split_from: Optional[int] = None split_to: Optional[int] = None From 362af904352f4118fcb1676cc44ac83058330fba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:11:19 -0700 Subject: [PATCH 13/53] Bump certifi from 2024.7.4 to 2024.8.30 (#739) Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.7.4 to 2024.8.30. - [Commits](https://github.com/certifi/python-certifi/compare/2024.07.04...2024.08.30) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: justinpolygon <123573436+justinpolygon@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 80a4da1d..9302736c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -90,13 +90,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2024.7.4" +version = "2024.8.30" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, - {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, ] [[package]] From df58cad69b0e83ac9558e9ccd3232c6d00a18b83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:14:04 -0700 Subject: [PATCH 14/53] Bump types-setuptools from 73.0.0.20240822 to 74.0.0.20240831 (#740) Bumps [types-setuptools](https://github.com/python/typeshed) from 73.0.0.20240822 to 74.0.0.20240831. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: justinpolygon <123573436+justinpolygon@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9302736c..22d7e54e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "73.0.0.20240822" +version = "74.0.0.20240831" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-73.0.0.20240822.tar.gz", hash = "sha256:3a060681098eb3fbc2fea0a86f7f6af6aa1ca71906039d88d891ea2cecdd4dbf"}, - {file = "types_setuptools-73.0.0.20240822-py3-none-any.whl", hash = "sha256:b9eba9b68546031317a0fa506d4973641d987d74f79e7dd8369ad4f7a93dea17"}, + {file = "types-setuptools-74.0.0.20240831.tar.gz", hash = "sha256:8b4a544cc91d42a019dc1e41fd397608b4bc7e20c7d7d5bc326589ffd9e8f8a1"}, + {file = "types_setuptools-74.0.0.20240831-py3-none-any.whl", hash = "sha256:4d9d18ea9214828d695a384633130009f5dee2681a157ee873d3680b62931590"}, ] [[package]] @@ -969,4 +969,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "178096d92862139d0e26ac6cba4bb8e92dcf546c0fc46784f2d4dffc0e76da8a" +content-hash = "a34da38dfba3acda825e45480cb029afcb8147842b1f2a3e270f61155b36b84f" diff --git a/pyproject.toml b/pyproject.toml index e715e604..93cf0e65 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^2.0.0" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^73.0.0" +types-setuptools = "^74.0.0" pook = "^2.0.0" orjson = "^3.10.7" From 95ef6e8654373f307aa3104abf604ae1716fd50e Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Thu, 5 Sep 2024 08:31:29 -0700 Subject: [PATCH 15/53] Updated ws spec to latest (#741) --- .polygon/websocket.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.polygon/websocket.json b/.polygon/websocket.json index 8d7d539b..f565e7d1 100644 --- a/.polygon/websocket.json +++ b/.polygon/websocket.json @@ -269,7 +269,7 @@ }, "c": { "type": "array", - "description": "The trade conditions. See Conditions and Indicators\" for Polygon.io's trade conditions glossary.\n", + "description": "The trade conditions. See Conditions and Indicators for Polygon.io's trade conditions glossary.\n", "items": { "type": "integer", "description": "The ID of the condition." @@ -3964,7 +3964,7 @@ }, "c": { "type": "array", - "description": "The trade conditions. See Conditions and Indicators\" for Polygon.io's trade conditions glossary.\n", + "description": "The trade conditions. See Conditions and Indicators for Polygon.io's trade conditions glossary.\n", "items": { "type": "integer", "description": "The ID of the condition." From 293e2a43485c40f3761ce63f546c13d83a738f8c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 10:17:13 -0700 Subject: [PATCH 16/53] Bump types-setuptools from 74.0.0.20240831 to 74.1.0.20240907 (#744) Bumps [types-setuptools](https://github.com/python/typeshed) from 74.0.0.20240831 to 74.1.0.20240907. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 22d7e54e..3f759304 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "74.0.0.20240831" +version = "74.1.0.20240907" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-74.0.0.20240831.tar.gz", hash = "sha256:8b4a544cc91d42a019dc1e41fd397608b4bc7e20c7d7d5bc326589ffd9e8f8a1"}, - {file = "types_setuptools-74.0.0.20240831-py3-none-any.whl", hash = "sha256:4d9d18ea9214828d695a384633130009f5dee2681a157ee873d3680b62931590"}, + {file = "types-setuptools-74.1.0.20240907.tar.gz", hash = "sha256:0abdb082552ca966c1e5fc244e4853adc62971f6cd724fb1d8a3713b580e5a65"}, + {file = "types_setuptools-74.1.0.20240907-py3-none-any.whl", hash = "sha256:15b38c8e63ca34f42f6063ff4b1dd662ea20086166d5ad6a102e670a52574120"}, ] [[package]] @@ -969,4 +969,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "a34da38dfba3acda825e45480cb029afcb8147842b1f2a3e270f61155b36b84f" +content-hash = "9558ba75da8bc1c8f294ecb05556f1de044b126c01f638b2a0bc0e2ab47cfc1d" diff --git a/pyproject.toml b/pyproject.toml index 93cf0e65..30c395b6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^2.0.0" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^74.0.0" +types-setuptools = "^74.1.0" pook = "^2.0.0" orjson = "^3.10.7" From d9a3e393fa085cdb491143a4271d1869a90fe08f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 09:48:14 -0700 Subject: [PATCH 17/53] Bump urllib3 from 2.2.2 to 2.2.3 (#747) Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.2.2 to 2.2.3. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.2.2...2.2.3) --- updated-dependencies: - dependency-name: urllib3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3f759304..a38a516a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -844,13 +844,13 @@ files = [ [[package]] name = "urllib3" -version = "2.2.2" +version = "2.2.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, - {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, ] [package.extras] From 39b3d5475832a932aa6f0ba9a369a22f38fbf138 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 12:14:48 -0700 Subject: [PATCH 18/53] Bump websockets from 12.0 to 13.1 (#751) Bumps [websockets](https://github.com/python-websockets/websockets) from 12.0 to 13.1. - [Release notes](https://github.com/python-websockets/websockets/releases) - [Commits](https://github.com/python-websockets/websockets/compare/12.0...13.1) --- updated-dependencies: - dependency-name: websockets dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 162 +++++++++++++++++++++++++++---------------------- pyproject.toml | 2 +- 2 files changed, 89 insertions(+), 75 deletions(-) diff --git a/poetry.lock b/poetry.lock index a38a516a..8414eda6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -861,83 +861,97 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "websockets" -version = "12.0" +version = "13.1" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" optional = false python-versions = ">=3.8" files = [ - {file = "websockets-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d554236b2a2006e0ce16315c16eaa0d628dab009c33b63ea03f41c6107958374"}, - {file = "websockets-12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2d225bb6886591b1746b17c0573e29804619c8f755b5598d875bb4235ea639be"}, - {file = "websockets-12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eb809e816916a3b210bed3c82fb88eaf16e8afcf9c115ebb2bacede1797d2547"}, - {file = "websockets-12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c588f6abc13f78a67044c6b1273a99e1cf31038ad51815b3b016ce699f0d75c2"}, - {file = "websockets-12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5aa9348186d79a5f232115ed3fa9020eab66d6c3437d72f9d2c8ac0c6858c558"}, - {file = "websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6350b14a40c95ddd53e775dbdbbbc59b124a5c8ecd6fbb09c2e52029f7a9f480"}, - {file = "websockets-12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:70ec754cc2a769bcd218ed8d7209055667b30860ffecb8633a834dde27d6307c"}, - {file = "websockets-12.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6e96f5ed1b83a8ddb07909b45bd94833b0710f738115751cdaa9da1fb0cb66e8"}, - {file = "websockets-12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4d87be612cbef86f994178d5186add3d94e9f31cc3cb499a0482b866ec477603"}, - {file = "websockets-12.0-cp310-cp310-win32.whl", hash = "sha256:befe90632d66caaf72e8b2ed4d7f02b348913813c8b0a32fae1cc5fe3730902f"}, - {file = "websockets-12.0-cp310-cp310-win_amd64.whl", hash = "sha256:363f57ca8bc8576195d0540c648aa58ac18cf85b76ad5202b9f976918f4219cf"}, - {file = "websockets-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5d873c7de42dea355d73f170be0f23788cf3fa9f7bed718fd2830eefedce01b4"}, - {file = "websockets-12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3f61726cae9f65b872502ff3c1496abc93ffbe31b278455c418492016e2afc8f"}, - {file = "websockets-12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed2fcf7a07334c77fc8a230755c2209223a7cc44fc27597729b8ef5425aa61a3"}, - {file = "websockets-12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e332c210b14b57904869ca9f9bf4ca32f5427a03eeb625da9b616c85a3a506c"}, - {file = "websockets-12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5693ef74233122f8ebab026817b1b37fe25c411ecfca084b29bc7d6efc548f45"}, - {file = "websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e9e7db18b4539a29cc5ad8c8b252738a30e2b13f033c2d6e9d0549b45841c04"}, - {file = "websockets-12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6e2df67b8014767d0f785baa98393725739287684b9f8d8a1001eb2839031447"}, - {file = "websockets-12.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bea88d71630c5900690fcb03161ab18f8f244805c59e2e0dc4ffadae0a7ee0ca"}, - {file = "websockets-12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dff6cdf35e31d1315790149fee351f9e52978130cef6c87c4b6c9b3baf78bc53"}, - {file = "websockets-12.0-cp311-cp311-win32.whl", hash = "sha256:3e3aa8c468af01d70332a382350ee95f6986db479ce7af14d5e81ec52aa2b402"}, - {file = "websockets-12.0-cp311-cp311-win_amd64.whl", hash = "sha256:25eb766c8ad27da0f79420b2af4b85d29914ba0edf69f547cc4f06ca6f1d403b"}, - {file = "websockets-12.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0e6e2711d5a8e6e482cacb927a49a3d432345dfe7dea8ace7b5790df5932e4df"}, - {file = "websockets-12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:dbcf72a37f0b3316e993e13ecf32f10c0e1259c28ffd0a85cee26e8549595fbc"}, - {file = "websockets-12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12743ab88ab2af1d17dd4acb4645677cb7063ef4db93abffbf164218a5d54c6b"}, - {file = "websockets-12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b645f491f3c48d3f8a00d1fce07445fab7347fec54a3e65f0725d730d5b99cb"}, - {file = "websockets-12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9893d1aa45a7f8b3bc4510f6ccf8db8c3b62120917af15e3de247f0780294b92"}, - {file = "websockets-12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f38a7b376117ef7aff996e737583172bdf535932c9ca021746573bce40165ed"}, - {file = "websockets-12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f764ba54e33daf20e167915edc443b6f88956f37fb606449b4a5b10ba42235a5"}, - {file = "websockets-12.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1e4b3f8ea6a9cfa8be8484c9221ec0257508e3a1ec43c36acdefb2a9c3b00aa2"}, - {file = "websockets-12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9fdf06fd06c32205a07e47328ab49c40fc1407cdec801d698a7c41167ea45113"}, - {file = "websockets-12.0-cp312-cp312-win32.whl", hash = "sha256:baa386875b70cbd81798fa9f71be689c1bf484f65fd6fb08d051a0ee4e79924d"}, - {file = "websockets-12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ae0a5da8f35a5be197f328d4727dbcfafa53d1824fac3d96cdd3a642fe09394f"}, - {file = "websockets-12.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5f6ffe2c6598f7f7207eef9a1228b6f5c818f9f4d53ee920aacd35cec8110438"}, - {file = "websockets-12.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9edf3fc590cc2ec20dc9d7a45108b5bbaf21c0d89f9fd3fd1685e223771dc0b2"}, - {file = "websockets-12.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8572132c7be52632201a35f5e08348137f658e5ffd21f51f94572ca6c05ea81d"}, - {file = "websockets-12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:604428d1b87edbf02b233e2c207d7d528460fa978f9e391bd8aaf9c8311de137"}, - {file = "websockets-12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a9d160fd080c6285e202327aba140fc9a0d910b09e423afff4ae5cbbf1c7205"}, - {file = "websockets-12.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87b4aafed34653e465eb77b7c93ef058516cb5acf3eb21e42f33928616172def"}, - {file = "websockets-12.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b2ee7288b85959797970114deae81ab41b731f19ebcd3bd499ae9ca0e3f1d2c8"}, - {file = "websockets-12.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7fa3d25e81bfe6a89718e9791128398a50dec6d57faf23770787ff441d851967"}, - {file = "websockets-12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a571f035a47212288e3b3519944f6bf4ac7bc7553243e41eac50dd48552b6df7"}, - {file = "websockets-12.0-cp38-cp38-win32.whl", hash = "sha256:3c6cc1360c10c17463aadd29dd3af332d4a1adaa8796f6b0e9f9df1fdb0bad62"}, - {file = "websockets-12.0-cp38-cp38-win_amd64.whl", hash = "sha256:1bf386089178ea69d720f8db6199a0504a406209a0fc23e603b27b300fdd6892"}, - {file = "websockets-12.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ab3d732ad50a4fbd04a4490ef08acd0517b6ae6b77eb967251f4c263011a990d"}, - {file = "websockets-12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1d9697f3337a89691e3bd8dc56dea45a6f6d975f92e7d5f773bc715c15dde28"}, - {file = "websockets-12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1df2fbd2c8a98d38a66f5238484405b8d1d16f929bb7a33ed73e4801222a6f53"}, - {file = "websockets-12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23509452b3bc38e3a057382c2e941d5ac2e01e251acce7adc74011d7d8de434c"}, - {file = "websockets-12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e5fc14ec6ea568200ea4ef46545073da81900a2b67b3e666f04adf53ad452ec"}, - {file = "websockets-12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46e71dbbd12850224243f5d2aeec90f0aaa0f2dde5aeeb8fc8df21e04d99eff9"}, - {file = "websockets-12.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b81f90dcc6c85a9b7f29873beb56c94c85d6f0dac2ea8b60d995bd18bf3e2aae"}, - {file = "websockets-12.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a02413bc474feda2849c59ed2dfb2cddb4cd3d2f03a2fedec51d6e959d9b608b"}, - {file = "websockets-12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bbe6013f9f791944ed31ca08b077e26249309639313fff132bfbf3ba105673b9"}, - {file = "websockets-12.0-cp39-cp39-win32.whl", hash = "sha256:cbe83a6bbdf207ff0541de01e11904827540aa069293696dd528a6640bd6a5f6"}, - {file = "websockets-12.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc4e7fa5414512b481a2483775a8e8be7803a35b30ca805afa4998a84f9fd9e8"}, - {file = "websockets-12.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:248d8e2446e13c1d4326e0a6a4e9629cb13a11195051a73acf414812700badbd"}, - {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44069528d45a933997a6fef143030d8ca8042f0dfaad753e2906398290e2870"}, - {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4e37d36f0d19f0a4413d3e18c0d03d0c268ada2061868c1e6f5ab1a6d575077"}, - {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d829f975fc2e527a3ef2f9c8f25e553eb7bc779c6665e8e1d52aa22800bb38b"}, - {file = "websockets-12.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2c71bd45a777433dd9113847af751aae36e448bc6b8c361a566cb043eda6ec30"}, - {file = "websockets-12.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0bee75f400895aef54157b36ed6d3b308fcab62e5260703add87f44cee9c82a6"}, - {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:423fc1ed29f7512fceb727e2d2aecb952c46aa34895e9ed96071821309951123"}, - {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27a5e9964ef509016759f2ef3f2c1e13f403725a5e6a1775555994966a66e931"}, - {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3181df4583c4d3994d31fb235dc681d2aaad744fbdbf94c4802485ececdecf2"}, - {file = "websockets-12.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b067cb952ce8bf40115f6c19f478dc71c5e719b7fbaa511359795dfd9d1a6468"}, - {file = "websockets-12.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:00700340c6c7ab788f176d118775202aadea7602c5cc6be6ae127761c16d6b0b"}, - {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e469d01137942849cff40517c97a30a93ae79917752b34029f0ec72df6b46399"}, - {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffefa1374cd508d633646d51a8e9277763a9b78ae71324183693959cf94635a7"}, - {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0cab91b3956dfa9f512147860783a1829a8d905ee218a9837c18f683239611"}, - {file = "websockets-12.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2cb388a5bfb56df4d9a406783b7f9dbefb888c09b71629351cc6b036e9259370"}, - {file = "websockets-12.0-py3-none-any.whl", hash = "sha256:dc284bbc8d7c78a6c69e0c7325ab46ee5e40bb4d50e494d8131a07ef47500e9e"}, - {file = "websockets-12.0.tar.gz", hash = "sha256:81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b"}, + {file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"}, + {file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"}, + {file = "websockets-13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f779498eeec470295a2b1a5d97aa1bc9814ecd25e1eb637bd9d1c73a327387f6"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676df3fe46956fbb0437d8800cd5f2b6d41143b6e7e842e60554398432cf29b"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7affedeb43a70351bb811dadf49493c9cfd1ed94c9c70095fd177e9cc1541fa"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1971e62d2caa443e57588e1d82d15f663b29ff9dfe7446d9964a4b6f12c1e700"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5f2e75431f8dc4a47f31565a6e1355fb4f2ecaa99d6b89737527ea917066e26c"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58cf7e75dbf7e566088b07e36ea2e3e2bd5676e22216e4cad108d4df4a7402a0"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c90d6dec6be2c7d03378a574de87af9b1efea77d0c52a8301dd831ece938452f"}, + {file = "websockets-13.1-cp310-cp310-win32.whl", hash = "sha256:730f42125ccb14602f455155084f978bd9e8e57e89b569b4d7f0f0c17a448ffe"}, + {file = "websockets-13.1-cp310-cp310-win_amd64.whl", hash = "sha256:5993260f483d05a9737073be197371940c01b257cc45ae3f1d5d7adb371b266a"}, + {file = "websockets-13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61fc0dfcda609cda0fc9fe7977694c0c59cf9d749fbb17f4e9483929e3c48a19"}, + {file = "websockets-13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ceec59f59d092c5007e815def4ebb80c2de330e9588e101cf8bd94c143ec78a5"}, + {file = "websockets-13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1dca61c6db1166c48b95198c0b7d9c990b30c756fc2923cc66f68d17dc558fd"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308e20f22c2c77f3f39caca508e765f8725020b84aa963474e18c59accbf4c02"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d516c325e6540e8a57b94abefc3459d7dab8ce52ac75c96cad5549e187e3a7"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c6e35319b46b99e168eb98472d6c7d8634ee37750d7693656dc766395df096"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5f9fee94ebafbc3117c30be1844ed01a3b177bb6e39088bc6b2fa1dc15572084"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7c1e90228c2f5cdde263253fa5db63e6653f1c00e7ec64108065a0b9713fa1b3"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6548f29b0e401eea2b967b2fdc1c7c7b5ebb3eeb470ed23a54cd45ef078a0db9"}, + {file = "websockets-13.1-cp311-cp311-win32.whl", hash = "sha256:c11d4d16e133f6df8916cc5b7e3e96ee4c44c936717d684a94f48f82edb7c92f"}, + {file = "websockets-13.1-cp311-cp311-win_amd64.whl", hash = "sha256:d04f13a1d75cb2b8382bdc16ae6fa58c97337253826dfe136195b7f89f661557"}, + {file = "websockets-13.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9d75baf00138f80b48f1eac72ad1535aac0b6461265a0bcad391fc5aba875cfc"}, + {file = "websockets-13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9b6f347deb3dcfbfde1c20baa21c2ac0751afaa73e64e5b693bb2b848efeaa49"}, + {file = "websockets-13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de58647e3f9c42f13f90ac7e5f58900c80a39019848c5547bc691693098ae1bd"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1b54689e38d1279a51d11e3467dd2f3a50f5f2e879012ce8f2d6943f00e83f0"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf1781ef73c073e6b0f90af841aaf98501f975d306bbf6221683dd594ccc52b6"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d23b88b9388ed85c6faf0e74d8dec4f4d3baf3ecf20a65a47b836d56260d4b9"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3c78383585f47ccb0fcf186dcb8a43f5438bd7d8f47d69e0b56f71bf431a0a68"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d6d300f8ec35c24025ceb9b9019ae9040c1ab2f01cddc2bcc0b518af31c75c14"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a9dcaf8b0cc72a392760bb8755922c03e17a5a54e08cca58e8b74f6902b433cf"}, + {file = "websockets-13.1-cp312-cp312-win32.whl", hash = "sha256:2f85cf4f2a1ba8f602298a853cec8526c2ca42a9a4b947ec236eaedb8f2dc80c"}, + {file = "websockets-13.1-cp312-cp312-win_amd64.whl", hash = "sha256:38377f8b0cdeee97c552d20cf1865695fcd56aba155ad1b4ca8779a5b6ef4ac3"}, + {file = "websockets-13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a9ab1e71d3d2e54a0aa646ab6d4eebfaa5f416fe78dfe4da2839525dc5d765c6"}, + {file = "websockets-13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b9d7439d7fab4dce00570bb906875734df13d9faa4b48e261c440a5fec6d9708"}, + {file = "websockets-13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:327b74e915cf13c5931334c61e1a41040e365d380f812513a255aa804b183418"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:325b1ccdbf5e5725fdcb1b0e9ad4d2545056479d0eee392c291c1bf76206435a"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:346bee67a65f189e0e33f520f253d5147ab76ae42493804319b5716e46dddf0f"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a0fa841646320ec0d3accdff5b757b06e2e5c86ba32af2e0815c96c7a603c5"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:18503d2c5f3943e93819238bf20df71982d193f73dcecd26c94514f417f6b135"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9cd1af7e18e5221d2878378fbc287a14cd527fdd5939ed56a18df8a31136bb2"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:70c5be9f416aa72aab7a2a76c90ae0a4fe2755c1816c153c1a2bcc3333ce4ce6"}, + {file = "websockets-13.1-cp313-cp313-win32.whl", hash = "sha256:624459daabeb310d3815b276c1adef475b3e6804abaf2d9d2c061c319f7f187d"}, + {file = "websockets-13.1-cp313-cp313-win_amd64.whl", hash = "sha256:c518e84bb59c2baae725accd355c8dc517b4a3ed8db88b4bc93c78dae2974bf2"}, + {file = "websockets-13.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c7934fd0e920e70468e676fe7f1b7261c1efa0d6c037c6722278ca0228ad9d0d"}, + {file = "websockets-13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:149e622dc48c10ccc3d2760e5f36753db9cacf3ad7bc7bbbfd7d9c819e286f23"}, + {file = "websockets-13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a569eb1b05d72f9bce2ebd28a1ce2054311b66677fcd46cf36204ad23acead8c"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95df24ca1e1bd93bbca51d94dd049a984609687cb2fb08a7f2c56ac84e9816ea"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8dbb1bf0c0a4ae8b40bdc9be7f644e2f3fb4e8a9aca7145bfa510d4a374eeb7"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:035233b7531fb92a76beefcbf479504db8c72eb3bff41da55aecce3a0f729e54"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e4450fc83a3df53dec45922b576e91e94f5578d06436871dce3a6be38e40f5db"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:463e1c6ec853202dd3657f156123d6b4dad0c546ea2e2e38be2b3f7c5b8e7295"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6d6855bbe70119872c05107e38fbc7f96b1d8cb047d95c2c50869a46c65a8e96"}, + {file = "websockets-13.1-cp38-cp38-win32.whl", hash = "sha256:204e5107f43095012b00f1451374693267adbb832d29966a01ecc4ce1db26faf"}, + {file = "websockets-13.1-cp38-cp38-win_amd64.whl", hash = "sha256:485307243237328c022bc908b90e4457d0daa8b5cf4b3723fd3c4a8012fce4c6"}, + {file = "websockets-13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9b37c184f8b976f0c0a231a5f3d6efe10807d41ccbe4488df8c74174805eea7d"}, + {file = "websockets-13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:163e7277e1a0bd9fb3c8842a71661ad19c6aa7bb3d6678dc7f89b17fbcc4aeb7"}, + {file = "websockets-13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4b889dbd1342820cc210ba44307cf75ae5f2f96226c0038094455a96e64fb07a"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:586a356928692c1fed0eca68b4d1c2cbbd1ca2acf2ac7e7ebd3b9052582deefa"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bd6abf1e070a6b72bfeb71049d6ad286852e285f146682bf30d0296f5fbadfa"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2aad13a200e5934f5a6767492fb07151e1de1d6079c003ab31e1823733ae79"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:df01aea34b6e9e33572c35cd16bae5a47785e7d5c8cb2b54b2acdb9678315a17"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e54affdeb21026329fb0744ad187cf812f7d3c2aa702a5edb562b325191fcab6"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9ef8aa8bdbac47f4968a5d66462a2a0935d044bf35c0e5a8af152d58516dbeb5"}, + {file = "websockets-13.1-cp39-cp39-win32.whl", hash = "sha256:deeb929efe52bed518f6eb2ddc00cc496366a14c726005726ad62c2dd9017a3c"}, + {file = "websockets-13.1-cp39-cp39-win_amd64.whl", hash = "sha256:7c65ffa900e7cc958cd088b9a9157a8141c991f8c53d11087e6fb7277a03f81d"}, + {file = "websockets-13.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5dd6da9bec02735931fccec99d97c29f47cc61f644264eb995ad6c0c27667238"}, + {file = "websockets-13.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2510c09d8e8df777177ee3d40cd35450dc169a81e747455cc4197e63f7e7bfe5"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1c3cf67185543730888b20682fb186fc8d0fa6f07ccc3ef4390831ab4b388d9"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcc03c8b72267e97b49149e4863d57c2d77f13fae12066622dc78fe322490fe6"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:004280a140f220c812e65f36944a9ca92d766b6cc4560be652a0a3883a79ed8a"}, + {file = "websockets-13.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e2620453c075abeb0daa949a292e19f56de518988e079c36478bacf9546ced23"}, + {file = "websockets-13.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9156c45750b37337f7b0b00e6248991a047be4aa44554c9886fe6bdd605aab3b"}, + {file = "websockets-13.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:80c421e07973a89fbdd93e6f2003c17d20b69010458d3a8e37fb47874bd67d51"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82d0ba76371769d6a4e56f7e83bb8e81846d17a6190971e38b5de108bde9b0d7"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9875a0143f07d74dc5e1ded1c4581f0d9f7ab86c78994e2ed9e95050073c94d"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a11e38ad8922c7961447f35c7b17bffa15de4d17c70abd07bfbe12d6faa3e027"}, + {file = "websockets-13.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4059f790b6ae8768471cddb65d3c4fe4792b0ab48e154c9f0a04cefaabcd5978"}, + {file = "websockets-13.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:25c35bf84bf7c7369d247f0b8cfa157f989862c49104c5cf85cb5436a641d93e"}, + {file = "websockets-13.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:83f91d8a9bb404b8c2c41a707ac7f7f75b9442a0a876df295de27251a856ad09"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a43cfdcddd07f4ca2b1afb459824dd3c6d53a51410636a2c7fc97b9a8cf4842"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a2ef1381632a2f0cb4efeff34efa97901c9fbc118e01951ad7cfc10601a9bb"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bf774c754c35dbb487360b12c5727adab887f1622b8aed5755880a21c4a20"}, + {file = "websockets-13.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:95858ca14a9f6fa8413d29e0a585b31b278388aa775b8a81fa24830123874678"}, + {file = "websockets-13.1-py3-none-any.whl", hash = "sha256:a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f"}, + {file = "websockets-13.1.tar.gz", hash = "sha256:a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878"}, ] [[package]] @@ -969,4 +983,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "9558ba75da8bc1c8f294ecb05556f1de044b126c01f638b2a0bc0e2ab47cfc1d" +content-hash = "16ce959b3125225677cc5534a9dd13ef463ff413838e4712f6c8657708911961" diff --git a/pyproject.toml b/pyproject.toml index 30c395b6..183611be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ packages = [ [tool.poetry.dependencies] python = "^3.8" urllib3 = ">=1.26.9,<3.0.0" -websockets = ">=10.3,<13.0" +websockets = ">=10.3,<14.0" certifi = ">=2022.5.18,<2025.0.0" [tool.poetry.dev-dependencies] From 4ec616fba2dd61cfb5a8b5fde5b907d3edf77882 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 12:19:24 -0700 Subject: [PATCH 19/53] Bump sphinx-rtd-theme from 2.0.0 to 3.0.1 (#759) Bumps [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) from 2.0.0 to 3.0.1. - [Changelog](https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst) - [Commits](https://github.com/readthedocs/sphinx_rtd_theme/compare/2.0.0...3.0.1) --- updated-dependencies: - dependency-name: sphinx-rtd-theme dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 16 ++++++++-------- pyproject.toml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8414eda6..1b7841cc 100644 --- a/poetry.lock +++ b/poetry.lock @@ -667,22 +667,22 @@ testing = ["covdefaults (>=2.3)", "coverage (>=7.4.2)", "diff-cover (>=8.0.3)", [[package]] name = "sphinx-rtd-theme" -version = "2.0.0" +version = "3.0.1" description = "Read the Docs theme for Sphinx" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "sphinx_rtd_theme-2.0.0-py2.py3-none-any.whl", hash = "sha256:ec93d0856dc280cf3aee9a4c9807c60e027c7f7b461b77aeffed682e68f0e586"}, - {file = "sphinx_rtd_theme-2.0.0.tar.gz", hash = "sha256:bd5d7b80622406762073a04ef8fadc5f9151261563d47027de09910ce03afe6b"}, + {file = "sphinx_rtd_theme-3.0.1-py2.py3-none-any.whl", hash = "sha256:921c0ece75e90633ee876bd7b148cfaad136b481907ad154ac3669b6fc957916"}, + {file = "sphinx_rtd_theme-3.0.1.tar.gz", hash = "sha256:a4c5745d1b06dfcb80b7704fe532eb765b44065a8fad9851e4258c8804140703"}, ] [package.dependencies] -docutils = "<0.21" -sphinx = ">=5,<8" +docutils = ">0.18,<0.22" +sphinx = ">=6,<9" sphinxcontrib-jquery = ">=4,<5" [package.extras] -dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] +dev = ["bump2version", "transifex-client", "twine", "wheel"] [[package]] name = "sphinxcontrib-applehelp" @@ -983,4 +983,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "16ce959b3125225677cc5534a9dd13ef463ff413838e4712f6c8657708911961" +content-hash = "dade83f0be3416b5ec775808a02e09b23f46dddf7dadf735c8ce2ac423f397f7" diff --git a/pyproject.toml b/pyproject.toml index 183611be..4b388065 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ black = "^24.8.0" mypy = "^1.11" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" -sphinx-rtd-theme = "^2.0.0" +sphinx-rtd-theme = "^3.0.1" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" From 435f785b52f4d20592d613fab230c1e90fd6e308 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:33:31 -0700 Subject: [PATCH 20/53] Bump types-setuptools from 74.1.0.20240907 to 75.1.0.20240917 (#752) Bumps [types-setuptools](https://github.com/python/typeshed) from 74.1.0.20240907 to 75.1.0.20240917. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1b7841cc..6bb7182c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "74.1.0.20240907" +version = "75.1.0.20240917" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-74.1.0.20240907.tar.gz", hash = "sha256:0abdb082552ca966c1e5fc244e4853adc62971f6cd724fb1d8a3713b580e5a65"}, - {file = "types_setuptools-74.1.0.20240907-py3-none-any.whl", hash = "sha256:15b38c8e63ca34f42f6063ff4b1dd662ea20086166d5ad6a102e670a52574120"}, + {file = "types-setuptools-75.1.0.20240917.tar.gz", hash = "sha256:12f12a165e7ed383f31def705e5c0fa1c26215dd466b0af34bd042f7d5331f55"}, + {file = "types_setuptools-75.1.0.20240917-py3-none-any.whl", hash = "sha256:06f78307e68d1bbde6938072c57b81cf8a99bc84bd6dc7e4c5014730b097dc0c"}, ] [[package]] @@ -983,4 +983,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "dade83f0be3416b5ec775808a02e09b23f46dddf7dadf735c8ce2ac423f397f7" +content-hash = "8ba6db5af50543ec90432b2ad8f573275a95135148d7b520694496ed51eb3535" diff --git a/pyproject.toml b/pyproject.toml index 4b388065..b0b64686 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^3.0.1" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^74.1.0" +types-setuptools = "^75.1.0" pook = "^2.0.0" orjson = "^3.10.7" From 850c3043b2abea04ba81c575fcca105035abc916 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 20:32:33 -0700 Subject: [PATCH 21/53] Bump mypy from 1.11.2 to 1.12.1 (#770) Bumps [mypy](https://github.com/python/mypy) from 1.11.2 to 1.12.1. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.11.2...v1.12.1) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 63 +++++++++++++++++++++++++++----------------------- pyproject.toml | 2 +- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/poetry.lock b/poetry.lock index 6bb7182c..a7c4353d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -312,38 +312,43 @@ files = [ [[package]] name = "mypy" -version = "1.11.2" +version = "1.12.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.11.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d42a6dd818ffce7be66cce644f1dff482f1d97c53ca70908dff0b9ddc120b77a"}, - {file = "mypy-1.11.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:801780c56d1cdb896eacd5619a83e427ce436d86a3bdf9112527f24a66618fef"}, - {file = "mypy-1.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41ea707d036a5307ac674ea172875f40c9d55c5394f888b168033177fce47383"}, - {file = "mypy-1.11.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6e658bd2d20565ea86da7d91331b0eed6d2eee22dc031579e6297f3e12c758c8"}, - {file = "mypy-1.11.2-cp310-cp310-win_amd64.whl", hash = "sha256:478db5f5036817fe45adb7332d927daa62417159d49783041338921dcf646fc7"}, - {file = "mypy-1.11.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75746e06d5fa1e91bfd5432448d00d34593b52e7e91a187d981d08d1f33d4385"}, - {file = "mypy-1.11.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a976775ab2256aadc6add633d44f100a2517d2388906ec4f13231fafbb0eccca"}, - {file = "mypy-1.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd953f221ac1379050a8a646585a29574488974f79d8082cedef62744f0a0104"}, - {file = "mypy-1.11.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:57555a7715c0a34421013144a33d280e73c08df70f3a18a552938587ce9274f4"}, - {file = "mypy-1.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:36383a4fcbad95f2657642a07ba22ff797de26277158f1cc7bd234821468b1b6"}, - {file = "mypy-1.11.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e8960dbbbf36906c5c0b7f4fbf2f0c7ffb20f4898e6a879fcf56a41a08b0d318"}, - {file = "mypy-1.11.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:06d26c277962f3fb50e13044674aa10553981ae514288cb7d0a738f495550b36"}, - {file = "mypy-1.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e7184632d89d677973a14d00ae4d03214c8bc301ceefcdaf5c474866814c987"}, - {file = "mypy-1.11.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3a66169b92452f72117e2da3a576087025449018afc2d8e9bfe5ffab865709ca"}, - {file = "mypy-1.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:969ea3ef09617aff826885a22ece0ddef69d95852cdad2f60c8bb06bf1f71f70"}, - {file = "mypy-1.11.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:37c7fa6121c1cdfcaac97ce3d3b5588e847aa79b580c1e922bb5d5d2902df19b"}, - {file = "mypy-1.11.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a8a53bc3ffbd161b5b2a4fff2f0f1e23a33b0168f1c0778ec70e1a3d66deb86"}, - {file = "mypy-1.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ff93107f01968ed834f4256bc1fc4475e2fecf6c661260066a985b52741ddce"}, - {file = "mypy-1.11.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:edb91dded4df17eae4537668b23f0ff6baf3707683734b6a818d5b9d0c0c31a1"}, - {file = "mypy-1.11.2-cp38-cp38-win_amd64.whl", hash = "sha256:ee23de8530d99b6db0573c4ef4bd8f39a2a6f9b60655bf7a1357e585a3486f2b"}, - {file = "mypy-1.11.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:801ca29f43d5acce85f8e999b1e431fb479cb02d0e11deb7d2abb56bdaf24fd6"}, - {file = "mypy-1.11.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af8d155170fcf87a2afb55b35dc1a0ac21df4431e7d96717621962e4b9192e70"}, - {file = "mypy-1.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7821776e5c4286b6a13138cc935e2e9b6fde05e081bdebf5cdb2bb97c9df81d"}, - {file = "mypy-1.11.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:539c570477a96a4e6fb718b8d5c3e0c0eba1f485df13f86d2970c91f0673148d"}, - {file = "mypy-1.11.2-cp39-cp39-win_amd64.whl", hash = "sha256:3f14cd3d386ac4d05c5a39a51b84387403dadbd936e17cb35882134d4f8f0d24"}, - {file = "mypy-1.11.2-py3-none-any.whl", hash = "sha256:b499bc07dbdcd3de92b0a8b29fdf592c111276f6a12fe29c30f6c417dd546d12"}, - {file = "mypy-1.11.2.tar.gz", hash = "sha256:7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79"}, + {file = "mypy-1.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3d7d4371829184e22fda4015278fbfdef0327a4b955a483012bd2d423a788801"}, + {file = "mypy-1.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f59f1dfbf497d473201356966e353ef09d4daec48caeacc0254db8ef633a28a5"}, + {file = "mypy-1.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b947097fae68004b8328c55161ac9db7d3566abfef72d9d41b47a021c2fba6b1"}, + {file = "mypy-1.12.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:96af62050971c5241afb4701c15189ea9507db89ad07794a4ee7b4e092dc0627"}, + {file = "mypy-1.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:d90da248f4c2dba6c44ddcfea94bb361e491962f05f41990ff24dbd09969ce20"}, + {file = "mypy-1.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1230048fec1380faf240be6385e709c8570604d2d27ec6ca7e573e3bc09c3735"}, + {file = "mypy-1.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:02dcfe270c6ea13338210908f8cadc8d31af0f04cee8ca996438fe6a97b4ec66"}, + {file = "mypy-1.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a5a437c9102a6a252d9e3a63edc191a3aed5f2fcb786d614722ee3f4472e33f6"}, + {file = "mypy-1.12.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:186e0c8346efc027ee1f9acf5ca734425fc4f7dc2b60144f0fbe27cc19dc7931"}, + {file = "mypy-1.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:673ba1140a478b50e6d265c03391702fa11a5c5aff3f54d69a62a48da32cb811"}, + {file = "mypy-1.12.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9fb83a7be97c498176fb7486cafbb81decccaef1ac339d837c377b0ce3743a7f"}, + {file = "mypy-1.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:389e307e333879c571029d5b93932cf838b811d3f5395ed1ad05086b52148fb0"}, + {file = "mypy-1.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:94b2048a95a21f7a9ebc9fbd075a4fcd310410d078aa0228dbbad7f71335e042"}, + {file = "mypy-1.12.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ee5932370ccf7ebf83f79d1c157a5929d7ea36313027b0d70a488493dc1b179"}, + {file = "mypy-1.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:19bf51f87a295e7ab2894f1d8167622b063492d754e69c3c2fed6563268cb42a"}, + {file = "mypy-1.12.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d34167d43613ffb1d6c6cdc0cc043bb106cac0aa5d6a4171f77ab92a3c758bcc"}, + {file = "mypy-1.12.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:427878aa54f2e2c5d8db31fa9010c599ed9f994b3b49e64ae9cd9990c40bd635"}, + {file = "mypy-1.12.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5fcde63ea2c9f69d6be859a1e6dd35955e87fa81de95bc240143cf00de1f7f81"}, + {file = "mypy-1.12.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d54d840f6c052929f4a3d2aab2066af0f45a020b085fe0e40d4583db52aab4e4"}, + {file = "mypy-1.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:20db6eb1ca3d1de8ece00033b12f793f1ea9da767334b7e8c626a4872090cf02"}, + {file = "mypy-1.12.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b16fe09f9c741d85a2e3b14a5257a27a4f4886c171d562bc5a5e90d8591906b8"}, + {file = "mypy-1.12.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0dcc1e843d58f444fce19da4cce5bd35c282d4bde232acdeca8279523087088a"}, + {file = "mypy-1.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e10ba7de5c616e44ad21005fa13450cd0de7caaa303a626147d45307492e4f2d"}, + {file = "mypy-1.12.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0e6fe449223fa59fbee351db32283838a8fee8059e0028e9e6494a03802b4004"}, + {file = "mypy-1.12.1-cp38-cp38-win_amd64.whl", hash = "sha256:dc6e2a2195a290a7fd5bac3e60b586d77fc88e986eba7feced8b778c373f9afe"}, + {file = "mypy-1.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:de5b2a8988b4e1269a98beaf0e7cc71b510d050dce80c343b53b4955fff45f19"}, + {file = "mypy-1.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:843826966f1d65925e8b50d2b483065c51fc16dc5d72647e0236aae51dc8d77e"}, + {file = "mypy-1.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9fe20f89da41a95e14c34b1ddb09c80262edcc295ad891f22cc4b60013e8f78d"}, + {file = "mypy-1.12.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8135ffec02121a75f75dc97c81af7c14aa4ae0dda277132cfcd6abcd21551bfd"}, + {file = "mypy-1.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:a7b76fa83260824300cc4834a3ab93180db19876bce59af921467fd03e692810"}, + {file = "mypy-1.12.1-py3-none-any.whl", hash = "sha256:ce561a09e3bb9863ab77edf29ae3a50e65685ad74bba1431278185b7e5d5486e"}, + {file = "mypy-1.12.1.tar.gz", hash = "sha256:f5b3936f7a6d0e8280c9bdef94c7ce4847f5cdfc258fbb2c29a8c1711e8bb96d"}, ] [package.dependencies] @@ -983,4 +988,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "8ba6db5af50543ec90432b2ad8f573275a95135148d7b520694496ed51eb3535" +content-hash = "21290a9d5e817ae5903571bd5e7cb6bf580ce43e73de9080e93be06af9887999" diff --git a/pyproject.toml b/pyproject.toml index b0b64686..187d93e2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ certifi = ">=2022.5.18,<2025.0.0" [tool.poetry.dev-dependencies] black = "^24.8.0" -mypy = "^1.11" +mypy = "^1.12" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" sphinx-rtd-theme = "^3.0.1" From 49221494705cf8ffd682ce43f3afc0914c87dbbc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 21:03:28 -0700 Subject: [PATCH 22/53] Bump types-setuptools from 75.1.0.20240917 to 75.2.0.20241019 (#769) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.1.0.20240917 to 75.2.0.20241019. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index a7c4353d..e15b2b06 100644 --- a/poetry.lock +++ b/poetry.lock @@ -816,13 +816,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.1.0.20240917" +version = "75.2.0.20241019" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-75.1.0.20240917.tar.gz", hash = "sha256:12f12a165e7ed383f31def705e5c0fa1c26215dd466b0af34bd042f7d5331f55"}, - {file = "types_setuptools-75.1.0.20240917-py3-none-any.whl", hash = "sha256:06f78307e68d1bbde6938072c57b81cf8a99bc84bd6dc7e4c5014730b097dc0c"}, + {file = "types-setuptools-75.2.0.20241019.tar.gz", hash = "sha256:86ea31b5f6df2c6b8f2dc8ae3f72b213607f62549b6fa2ed5866e5299f968694"}, + {file = "types_setuptools-75.2.0.20241019-py3-none-any.whl", hash = "sha256:2e48ff3acd4919471e80d5e3f049cce5c177e108d5d36d2d4cee3fa4d4104258"}, ] [[package]] @@ -988,4 +988,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "21290a9d5e817ae5903571bd5e7cb6bf580ce43e73de9080e93be06af9887999" +content-hash = "1280173331a0e498864db3e9f55fda22bd8254c44bf06487e34096d554341396" diff --git a/pyproject.toml b/pyproject.toml index 187d93e2..1ffcf71d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^3.0.1" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^75.1.0" +types-setuptools = "^75.2.0" pook = "^2.0.0" orjson = "^3.10.7" From f0b59296e2cfa723b07a3e987ebc25f1cbfcac5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 21:09:55 -0700 Subject: [PATCH 23/53] Bump orjson from 3.10.7 to 3.10.9 (#768) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.7 to 3.10.9. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](https://github.com/ijl/orjson/compare/3.10.7...3.10.9) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 118 ++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 60 insertions(+), 60 deletions(-) diff --git a/poetry.lock b/poetry.lock index e15b2b06..14d1093b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -389,68 +389,68 @@ six = ">=1.8.0" [[package]] name = "orjson" -version = "3.10.7" +version = "3.10.9" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:74f4544f5a6405b90da8ea724d15ac9c36da4d72a738c64685003337401f5c12"}, - {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34a566f22c28222b08875b18b0dfbf8a947e69df21a9ed5c51a6bf91cfb944ac"}, - {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf6ba8ebc8ef5792e2337fb0419f8009729335bb400ece005606336b7fd7bab7"}, - {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac7cf6222b29fbda9e3a472b41e6a5538b48f2c8f99261eecd60aafbdb60690c"}, - {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de817e2f5fc75a9e7dd350c4b0f54617b280e26d1631811a43e7e968fa71e3e9"}, - {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:348bdd16b32556cf8d7257b17cf2bdb7ab7976af4af41ebe79f9796c218f7e91"}, - {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:479fd0844ddc3ca77e0fd99644c7fe2de8e8be1efcd57705b5c92e5186e8a250"}, - {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fdf5197a21dd660cf19dfd2a3ce79574588f8f5e2dbf21bda9ee2d2b46924d84"}, - {file = "orjson-3.10.7-cp310-none-win32.whl", hash = "sha256:d374d36726746c81a49f3ff8daa2898dccab6596864ebe43d50733275c629175"}, - {file = "orjson-3.10.7-cp310-none-win_amd64.whl", hash = "sha256:cb61938aec8b0ffb6eef484d480188a1777e67b05d58e41b435c74b9d84e0b9c"}, - {file = "orjson-3.10.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7db8539039698ddfb9a524b4dd19508256107568cdad24f3682d5773e60504a2"}, - {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:480f455222cb7a1dea35c57a67578848537d2602b46c464472c995297117fa09"}, - {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8a9c9b168b3a19e37fe2778c0003359f07822c90fdff8f98d9d2a91b3144d8e0"}, - {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8de062de550f63185e4c1c54151bdddfc5625e37daf0aa1e75d2a1293e3b7d9a"}, - {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6b0dd04483499d1de9c8f6203f8975caf17a6000b9c0c54630cef02e44ee624e"}, - {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b58d3795dafa334fc8fd46f7c5dc013e6ad06fd5b9a4cc98cb1456e7d3558bd6"}, - {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:33cfb96c24034a878d83d1a9415799a73dc77480e6c40417e5dda0710d559ee6"}, - {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e724cebe1fadc2b23c6f7415bad5ee6239e00a69f30ee423f319c6af70e2a5c0"}, - {file = "orjson-3.10.7-cp311-none-win32.whl", hash = "sha256:82763b46053727a7168d29c772ed5c870fdae2f61aa8a25994c7984a19b1021f"}, - {file = "orjson-3.10.7-cp311-none-win_amd64.whl", hash = "sha256:eb8d384a24778abf29afb8e41d68fdd9a156cf6e5390c04cc07bbc24b89e98b5"}, - {file = "orjson-3.10.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:44a96f2d4c3af51bfac6bc4ef7b182aa33f2f054fd7f34cc0ee9a320d051d41f"}, - {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76ac14cd57df0572453543f8f2575e2d01ae9e790c21f57627803f5e79b0d3c3"}, - {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bdbb61dcc365dd9be94e8f7df91975edc9364d6a78c8f7adb69c1cdff318ec93"}, - {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b48b3db6bb6e0a08fa8c83b47bc169623f801e5cc4f24442ab2b6617da3b5313"}, - {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23820a1563a1d386414fef15c249040042b8e5d07b40ab3fe3efbfbbcbcb8864"}, - {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0c6a008e91d10a2564edbb6ee5069a9e66df3fbe11c9a005cb411f441fd2c09"}, - {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d352ee8ac1926d6193f602cbe36b1643bbd1bbcb25e3c1a657a4390f3000c9a5"}, - {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d2d9f990623f15c0ae7ac608103c33dfe1486d2ed974ac3f40b693bad1a22a7b"}, - {file = "orjson-3.10.7-cp312-none-win32.whl", hash = "sha256:7c4c17f8157bd520cdb7195f75ddbd31671997cbe10aee559c2d613592e7d7eb"}, - {file = "orjson-3.10.7-cp312-none-win_amd64.whl", hash = "sha256:1d9c0e733e02ada3ed6098a10a8ee0052dd55774de3d9110d29868d24b17faa1"}, - {file = "orjson-3.10.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:77d325ed866876c0fa6492598ec01fe30e803272a6e8b10e992288b009cbe149"}, - {file = "orjson-3.10.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ea2c232deedcb605e853ae1db2cc94f7390ac776743b699b50b071b02bea6fe"}, - {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3dcfbede6737fdbef3ce9c37af3fb6142e8e1ebc10336daa05872bfb1d87839c"}, - {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:11748c135f281203f4ee695b7f80bb1358a82a63905f9f0b794769483ea854ad"}, - {file = "orjson-3.10.7-cp313-none-win32.whl", hash = "sha256:a7e19150d215c7a13f39eb787d84db274298d3f83d85463e61d277bbd7f401d2"}, - {file = "orjson-3.10.7-cp313-none-win_amd64.whl", hash = "sha256:eef44224729e9525d5261cc8d28d6b11cafc90e6bd0be2157bde69a52ec83024"}, - {file = "orjson-3.10.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6ea2b2258eff652c82652d5e0f02bd5e0463a6a52abb78e49ac288827aaa1469"}, - {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:430ee4d85841e1483d487e7b81401785a5dfd69db5de01314538f31f8fbf7ee1"}, - {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4b6146e439af4c2472c56f8540d799a67a81226e11992008cb47e1267a9b3225"}, - {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:084e537806b458911137f76097e53ce7bf5806dda33ddf6aaa66a028f8d43a23"}, - {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4829cf2195838e3f93b70fd3b4292156fc5e097aac3739859ac0dcc722b27ac0"}, - {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1193b2416cbad1a769f868b1749535d5da47626ac29445803dae7cc64b3f5c98"}, - {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4e6c3da13e5a57e4b3dca2de059f243ebec705857522f188f0180ae88badd354"}, - {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c31008598424dfbe52ce8c5b47e0752dca918a4fdc4a2a32004efd9fab41d866"}, - {file = "orjson-3.10.7-cp38-none-win32.whl", hash = "sha256:7122a99831f9e7fe977dc45784d3b2edc821c172d545e6420c375e5a935f5a1c"}, - {file = "orjson-3.10.7-cp38-none-win_amd64.whl", hash = "sha256:a763bc0e58504cc803739e7df040685816145a6f3c8a589787084b54ebc9f16e"}, - {file = "orjson-3.10.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e76be12658a6fa376fcd331b1ea4e58f5a06fd0220653450f0d415b8fd0fbe20"}, - {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed350d6978d28b92939bfeb1a0570c523f6170efc3f0a0ef1f1df287cd4f4960"}, - {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:144888c76f8520e39bfa121b31fd637e18d4cc2f115727865fdf9fa325b10412"}, - {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09b2d92fd95ad2402188cf51573acde57eb269eddabaa60f69ea0d733e789fe9"}, - {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b24a579123fa884f3a3caadaed7b75eb5715ee2b17ab5c66ac97d29b18fe57f"}, - {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591bcfe7512353bd609875ab38050efe3d55e18934e2f18950c108334b4ff"}, - {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f4db56635b58cd1a200b0a23744ff44206ee6aa428185e2b6c4a65b3197abdcd"}, - {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0fa5886854673222618638c6df7718ea7fe2f3f2384c452c9ccedc70b4a510a5"}, - {file = "orjson-3.10.7-cp39-none-win32.whl", hash = "sha256:8272527d08450ab16eb405f47e0f4ef0e5ff5981c3d82afe0efd25dcbef2bcd2"}, - {file = "orjson-3.10.7-cp39-none-win_amd64.whl", hash = "sha256:974683d4618c0c7dbf4f69c95a979734bf183d0658611760017f6e70a145af58"}, - {file = "orjson-3.10.7.tar.gz", hash = "sha256:75ef0640403f945f3a1f9f6400686560dbfb0fb5b16589ad62cd477043c4eee3"}, + {file = "orjson-3.10.9-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a377186a11b48c55969e34f0aa414c2826a234f212d6f2b312ba512e3cdb2c6f"}, + {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bf37bf0ca538065c34efe1803378b2dadd7e05b06610a086c2857f15ee59e12"}, + {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7d9d83a91168aa48309acba804e393b7d9216b66f15e38f339b9fbb00db8986d"}, + {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0014038a17a1fe273da0a5489787677ef5a64566ab383ad6d929e44ed5683f4"}, + {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6ae1b1733e4528e45675ed09a732b6ac37d716bce2facaf467f84ce774adecd"}, + {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe91c2259c4a859356b6db1c6e649b40577492f66d483da8b8af6da0f87c00e3"}, + {file = "orjson-3.10.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a04f912c32463386ba117591c99a3d9e40b3b69bed9c5123d89dff06f0f5a4b0"}, + {file = "orjson-3.10.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae82ca347829ca47431767b079f96bb977f592189250ccdede676339a80c8982"}, + {file = "orjson-3.10.9-cp310-none-win32.whl", hash = "sha256:fd5083906825d7f5d23089425ce5424d783d6294020bcabb8518a3e1f97833e5"}, + {file = "orjson-3.10.9-cp310-none-win_amd64.whl", hash = "sha256:e9ff9521b5be0340c8e686bcfe2619777fd7583f71e7b494601cc91ad3919d2e"}, + {file = "orjson-3.10.9-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f3bd9df47385b8fabb3b2ee1e83f9960b8accc1905be971a1c257f16c32b491e"}, + {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4948961b6bce1e2086b2cf0b56cc454cdab589d40c7f85be71fb5a5556c51d3"}, + {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a9fc7a6cf2b229ddc323e136df13b3fb4466c50d84ed600cd0898223dd2fea3"}, + {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2314846e1029a2d2b899140f350eaaf3a73281df43ba84ac44d94ca861b5b269"}, + {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f52d993504827503411df2d60e60acf52885561458d6273f99ecd172f31c4352"}, + {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e29bbf08d907756c145a3a3a1f7ce2f11f15e3edbd3342842589d6030981b76f"}, + {file = "orjson-3.10.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ae82992c00b480c3cc7dac6739324554be8c5d8e858a90044928506a3333ef4"}, + {file = "orjson-3.10.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6fdf8d32b6d94019dc15163542d345e9ce4c4661f56b318608aa3088a1a3a23b"}, + {file = "orjson-3.10.9-cp311-none-win32.whl", hash = "sha256:01f5fef452b4d7615f2e94153479370a4b59e0c964efb32dd902978f807a45cd"}, + {file = "orjson-3.10.9-cp311-none-win_amd64.whl", hash = "sha256:95361c4197c7ce9afdf56255de6f4e2474c39d16a277cce31d1b99a2520486d8"}, + {file = "orjson-3.10.9-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:43ad5560db54331c007dc38be5ba7706cb72974a29ae8227019d89305d750a6f"}, + {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1471c3274b1a4a9b8f4b9ed6effaea9ad885796373797515c44b365b375c256d"}, + {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:41d8cac575acd15918903d74cfaabb5dbe57b357b93341332f647d1013928dcc"}, + {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2920c8754f1aedc98bd357ec172af18ce48f5f1017a92244c85fe41d16d3c6e0"}, + {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7fa3ff6a0d9d15a0d0d2254cca16cd919156a18423654ce5574591392fe9914"}, + {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1e91b90c0c26bd79593967c1adef421bcff88c9e723d49c93bb7ad8af80bc6b"}, + {file = "orjson-3.10.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f11949024f785ace1a516db32fa6255f6227226b2c988abf66f5aee61d43d8f7"}, + {file = "orjson-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:060e020d85d0ec145bc1b536b1fd9c10a0519c91991ead9724d6f759ebe26b9a"}, + {file = "orjson-3.10.9-cp312-none-win32.whl", hash = "sha256:71f73439999fe662843da3607cdf6e75b1551c330f487e5801d463d969091c63"}, + {file = "orjson-3.10.9-cp312-none-win_amd64.whl", hash = "sha256:12e2efe81356b8448f1cd130f8d75d3718de583112d71f2e2f8baa81bd835bb9"}, + {file = "orjson-3.10.9-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:0ab6e3ad10e964392f0e838751bcce2ef9c8fa8be7deddffff83088e5791566d"}, + {file = "orjson-3.10.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68ef65223baab00f469c8698f771ab3e6ccf6af2a987e77de5b566b4ec651150"}, + {file = "orjson-3.10.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6f130848205fea90a2cb9fa2b11cafff9a9f31f4efad225800bc8b9e4a702f24"}, + {file = "orjson-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2ea7a98f3295ed8adb6730a5788cc78dafea28300d19932a1d2143457f7db802"}, + {file = "orjson-3.10.9-cp313-none-win32.whl", hash = "sha256:bdce39f96149a74fddeb2674c54f1da5e57724d32952eb6df2ac719b66d453cc"}, + {file = "orjson-3.10.9-cp313-none-win_amd64.whl", hash = "sha256:d11383701d4b58e795039b662ada46987744293d57bfa2719e7379b8d67bc796"}, + {file = "orjson-3.10.9-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1c3a1e845916a3739ab4162bb48dee66e0e727a19faf397176a7db0d9826cc3c"}, + {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:063ca59d93d93d1387f0c4bb766c6d4f5b0e423fe7c366d0bd4401a56d1669d1"}, + {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:938b7fcd79cf06fe348fb24b6163fbaa2fdc9fbed8b1f06318f24467f1487e63"}, + {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cc32a9e43c7693011ccde6f8eff8cba75ca0d2a55de11092faa4a716101e67f5"}, + {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1b3069b7e2f57f3eef2282029b9c2ba21f08a55f1018e483663a3356f046af4c"}, + {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4289b5d1f88fd05dcafdd7a1f3b17bb722e77712b7618f98e86bdda560e0a1a"}, + {file = "orjson-3.10.9-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:74f5a7a7f282d326be71b722b0c350da7af6f5f15b9378da177e0e4a09bd91a3"}, + {file = "orjson-3.10.9-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:80e0c013e50cf7198319d8137931684eb9f32daa067e8276d9dbdd4010bb4add"}, + {file = "orjson-3.10.9-cp38-none-win32.whl", hash = "sha256:9d989152df8f60a76867354e0e08d896292ab9fb96a7ef89a5b3838de174522c"}, + {file = "orjson-3.10.9-cp38-none-win_amd64.whl", hash = "sha256:485358fe9892d6bfd88e5885b66bf88496e1842c8f35f61682ff9928b12a6cf0"}, + {file = "orjson-3.10.9-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ca54e6f320e33c8a6e471c424ee16576361d905c15d69e134c2906d3fcb31795"}, + {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9a9eb03a29c9b30b6c8bb35e5fa20d96589a76e0042005be59b7c3af10a7e43"}, + {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:731e8859fc99b398c286320726906404091141e9223dd5e9e6917f7e32e1cc68"}, + {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:75b061c11f5aab979a95927a76394b4a85e3e4d63d0a2a16b56a4f7c6503afab"}, + {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b61b08f6397f004570fd6a840f4a58946b63b4c7029408cdedb45fe85c7d17f7"}, + {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c4f5e0360b7f0aba91dafe12469108109a0e8973956d4a9865ca262a6881406"}, + {file = "orjson-3.10.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e403429e2947a059545e305d97e4b0eb90d3bb44b396d6f327d7ae2018391e13"}, + {file = "orjson-3.10.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0e492b93e122264c2dc78700859122631a4715bda88fabf57d9226954cfe7ec5"}, + {file = "orjson-3.10.9-cp39-none-win32.whl", hash = "sha256:bfba9605e85bfd19b83a21c2c25c2bed2000d5f097f3fa3ad5b5f8a7263a3148"}, + {file = "orjson-3.10.9-cp39-none-win_amd64.whl", hash = "sha256:77d277fa138d4bf145e8b24042004891c188c52ac8492724a183f42b0031cf0c"}, + {file = "orjson-3.10.9.tar.gz", hash = "sha256:c378074e0c46035dc66e57006993233ec66bf8487d501bab41649b4b7289ed4d"}, ] [[package]] @@ -988,4 +988,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "1280173331a0e498864db3e9f55fda22bd8254c44bf06487e34096d554341396" +content-hash = "c16a9ab276c6bf2483af108f69d559f48eeb2dd9480c2991813c774f3717f696" diff --git a/pyproject.toml b/pyproject.toml index 1ffcf71d..ebdc10c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^75.2.0" pook = "^2.0.0" -orjson = "^3.10.7" +orjson = "^3.10.9" [build-system] requires = ["poetry-core>=1.0.0"] From 36250182f930a44db0cb7d5bd62f4e2adda88619 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 21:13:27 -0700 Subject: [PATCH 24/53] Bump pook from 2.0.0 to 2.0.1 (#765) Bumps [pook](https://github.com/h2non/pook) from 2.0.0 to 2.0.1. - [Release notes](https://github.com/h2non/pook/releases) - [Changelog](https://github.com/h2non/pook/blob/master/History.rst) - [Commits](https://github.com/h2non/pook/compare/v2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: pook dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 14d1093b..6c9cf217 100644 --- a/poetry.lock +++ b/poetry.lock @@ -503,13 +503,13 @@ test = ["appdirs (==1.4.4)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-mock [[package]] name = "pook" -version = "2.0.0" +version = "2.0.1" description = "HTTP traffic mocking and expectations made easy" optional = false python-versions = ">=3.8" files = [ - {file = "pook-2.0.0-py3-none-any.whl", hash = "sha256:b3993cf00b8335f19b407fca39febd048c97749eb7c06eaddd9fbaff3b0a1ac3"}, - {file = "pook-2.0.0.tar.gz", hash = "sha256:b106ebc088417fa7b68d1f6ee21a9720fd171ea96d4b86ef308eaffac1e5c4f8"}, + {file = "pook-2.0.1-py3-none-any.whl", hash = "sha256:30d73c95e0520f45c1e3889f3bf486e990b6f04b4915aa9daf86cf0d8136b2e1"}, + {file = "pook-2.0.1.tar.gz", hash = "sha256:e04c0e698f256438b4dfbf3ab1b27559f0ec25e42176823167f321f4e8b9c9e4"}, ] [package.dependencies] @@ -988,4 +988,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "c16a9ab276c6bf2483af108f69d559f48eeb2dd9480c2991813c774f3717f696" +content-hash = "bc73d9f5843ac26c73d8a9f755037f1deac6b9d5d84e9d111492bea26841e747" diff --git a/pyproject.toml b/pyproject.toml index ebdc10c0..168dc906 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,7 @@ sphinx-rtd-theme = "^3.0.1" sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^75.2.0" -pook = "^2.0.0" +pook = "^2.0.1" orjson = "^3.10.9" [build-system] From 53808f8a5b81841447867b28856ea0a75573b30b Mon Sep 17 00:00:00 2001 From: Hunter <6395201+HunterL@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:26:17 -0400 Subject: [PATCH 25/53] add regular_trading_change and regular_trading_change_percent to the universal snapshot session response (#771) --- polygon/rest/models/snapshot.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/polygon/rest/models/snapshot.py b/polygon/rest/models/snapshot.py index ceb5f7f8..3d38abe2 100644 --- a/polygon/rest/models/snapshot.py +++ b/polygon/rest/models/snapshot.py @@ -308,6 +308,8 @@ class UniversalSnapshotSession: change_percent: Optional[float] = None early_trading_change: Optional[float] = None early_trading_change_percent: Optional[float] = None + regular_trading_change: Optional[float] = None + regular_trading_change_percent: Optional[float] = None late_trading_change: Optional[float] = None late_trading_change_percent: Optional[float] = None open: Optional[float] = None From 8034ba4d920df82bd838147e41404f6c45b5b47c Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Tue, 5 Nov 2024 09:47:36 -0800 Subject: [PATCH 26/53] Add Hunting Anomalies in the Stock Market scripts (#780) * Add Hunting Anomalies in the Stock Market scripts * Fix lint * Ignore type and fix typo * Fix type def from linter * Removed json dump --- examples/tools/hunting-anomalies/README.md | 49 +++ .../aggregates_day/README.md | 1 + .../hunting-anomalies/build-lookup-table.py | 91 ++++++ .../hunting-anomalies/gui-lookup-table.py | 302 ++++++++++++++++++ .../hunting-anomalies/query-lookup-table.py | 63 ++++ 5 files changed, 506 insertions(+) create mode 100644 examples/tools/hunting-anomalies/README.md create mode 100644 examples/tools/hunting-anomalies/aggregates_day/README.md create mode 100644 examples/tools/hunting-anomalies/build-lookup-table.py create mode 100644 examples/tools/hunting-anomalies/gui-lookup-table.py create mode 100644 examples/tools/hunting-anomalies/query-lookup-table.py diff --git a/examples/tools/hunting-anomalies/README.md b/examples/tools/hunting-anomalies/README.md new file mode 100644 index 00000000..4b36f1b5 --- /dev/null +++ b/examples/tools/hunting-anomalies/README.md @@ -0,0 +1,49 @@ +# Hunting Anomalies in the Stock Market + +This repository contains all the necessary scripts and data directories used in the [Hunting Anomalies in the Stock Market](https://polygon.io/blog/hunting-anomalies-in-stock-market/) tutorial, hosted on Polygon.io's blog. The tutorial demonstrates how to detect statistical anomalies in historical US stock market data through a comprehensive workflow that involves downloading data, building a lookup table, querying for anomalies, and visualizing them through a web interface. + +### Prerequisites + +- Python 3.8+ +- Access to Polygon.io's historical data via Flat Files +- An active Polygon.io API key, obtainable by signing up for a Stocks paid plan + +### Repository Contents + +- `README.md`: This file, outlining setup and execution instructions. +- `aggregates_day`: Directory where downloaded CSV data files are stored. +- `build-lookup-table.py`: Python script to build a lookup table from the historical data. +- `query-lookup-table.py`: Python script to query the lookup table for anomalies. +- `gui-lookup-table.py`: Python script for a browser-based interface to explore anomalies visually. + +### Running the Tutorial + +1. **Ensure Python 3.8+ is installed:** Check your Python version and ensure all required libraries (polygon-api-client, pandas, pickle, and argparse) are installed. + +2. **Set up your API key:** Make sure you have an active paid Polygon.io Stock subscription for accessing Flat Files. Set up your API key in your environment or directly in the scripts where required. + +3. **Download Historical Data:** Use the MinIO client to download historical stock market data. Adjust the commands and paths based on the data you are interested in. + ```bash + mc alias set s3polygon https://files.polygon.io YOUR_ACCESS_KEY YOUR_SECRET_KEY + mc cp --recursive s3polygon/flatfiles/us_stocks_sip/day_aggs_v1/2024/08/ ./aggregates_day/ + mc cp --recursive s3polygon/flatfiles/us_stocks_sip/day_aggs_v1/2024/09/ ./aggregates_day/ + mc cp --recursive s3polygon/flatfiles/us_stocks_sip/day_aggs_v1/2024/10/ ./aggregates_day/ + gunzip ./aggregates_day/*.gz + ``` + +4. **Build the Lookup Table:** This script processes the downloaded data and builds a lookup table, saving it as `lookup_table.pkl`. + ```bash + python build-lookup-table.py + ``` + +5. **Query Anomalies:** Replace `2024-10-18` with the date you want to analyze for anomalies. + ```bash + python query-lookup-table.py 2024-10-18 + ``` + +6. **Run the GUI:** Access the web interface at `http://localhost:8888` to explore the anomalies visually. + ```bash + python gui-lookup-table.py + ``` + +For a complete step-by-step guide on each phase of the anomaly detection process, including additional configurations and troubleshooting, refer to the detailed [tutorial on our blog](https://polygon.io/blog/hunting-anomalies-in-stock-market/). diff --git a/examples/tools/hunting-anomalies/aggregates_day/README.md b/examples/tools/hunting-anomalies/aggregates_day/README.md new file mode 100644 index 00000000..a0ade480 --- /dev/null +++ b/examples/tools/hunting-anomalies/aggregates_day/README.md @@ -0,0 +1 @@ +Download flat files into here. diff --git a/examples/tools/hunting-anomalies/build-lookup-table.py b/examples/tools/hunting-anomalies/build-lookup-table.py new file mode 100644 index 00000000..16abca2d --- /dev/null +++ b/examples/tools/hunting-anomalies/build-lookup-table.py @@ -0,0 +1,91 @@ +import os +import pandas as pd # type: ignore +from collections import defaultdict +import pickle +import json +from typing import DefaultDict, Dict, Any, BinaryIO + +# Directory containing the daily CSV files +data_dir = "./aggregates_day/" + +# Initialize a dictionary to hold trades data +trades_data = defaultdict(list) + +# List all CSV files in the directory +files = sorted([f for f in os.listdir(data_dir) if f.endswith(".csv")]) + +print("Starting to process files...") + +# Process each file (assuming files are named in order) +for file in files: + print(f"Processing {file}") + file_path = os.path.join(data_dir, file) + df = pd.read_csv(file_path) + # For each stock, store the date and relevant data + for _, row in df.iterrows(): + ticker = row["ticker"] + date = pd.to_datetime(row["window_start"], unit="ns").date() + trades = row["transactions"] + close_price = row["close"] # Ensure 'close' column exists in your CSV + trades_data[ticker].append( + {"date": date, "trades": trades, "close_price": close_price} + ) + +print("Finished processing files.") +print("Building lookup table...") + +# Now, build the lookup table with rolling averages and percentage price change +lookup_table: DefaultDict[str, Dict[str, Any]] = defaultdict( + dict +) # Nested dict: ticker -> date -> stats + +for ticker, records in trades_data.items(): + # Convert records to DataFrame + df_ticker = pd.DataFrame(records) + # Sort records by date + df_ticker.sort_values("date", inplace=True) + df_ticker.set_index("date", inplace=True) + + # Calculate the percentage change in close_price + df_ticker["price_diff"] = ( + df_ticker["close_price"].pct_change() * 100 + ) # Multiply by 100 for percentage + + # Shift trades to exclude the current day from rolling calculations + df_ticker["trades_shifted"] = df_ticker["trades"].shift(1) + # Calculate rolling average and standard deviation over the previous 5 days + df_ticker["avg_trades"] = df_ticker["trades_shifted"].rolling(window=5).mean() + df_ticker["std_trades"] = df_ticker["trades_shifted"].rolling(window=5).std() + # Store the data in the lookup table + for date, row in df_ticker.iterrows(): + # Convert date to string for JSON serialization + date_str = date.strftime("%Y-%m-%d") + # Ensure rolling stats are available + if pd.notnull(row["avg_trades"]) and pd.notnull(row["std_trades"]): + lookup_table[ticker][date_str] = { + "trades": row["trades"], + "close_price": row["close_price"], + "price_diff": row["price_diff"], + "avg_trades": row["avg_trades"], + "std_trades": row["std_trades"], + } + else: + # Store data without rolling stats if not enough data points + lookup_table[ticker][date_str] = { + "trades": row["trades"], + "close_price": row["close_price"], + "price_diff": row["price_diff"], + "avg_trades": None, + "std_trades": None, + } + +print("Lookup table built successfully.") + +# Convert defaultdict to regular dict for JSON serialization +lookup_table_dict = {k: v for k, v in lookup_table.items()} + +# Save the lookup table to a file for later use +with open("lookup_table.pkl", "wb") as f: # type: BinaryIO + pickle.dump(lookup_table_dict, f) + +print("Lookup table saved to 'lookup_table.pkl'.") diff --git a/examples/tools/hunting-anomalies/gui-lookup-table.py b/examples/tools/hunting-anomalies/gui-lookup-table.py new file mode 100644 index 00000000..df58746c --- /dev/null +++ b/examples/tools/hunting-anomalies/gui-lookup-table.py @@ -0,0 +1,302 @@ +import os +import pickle +import json +from datetime import datetime +from polygon import RESTClient +from polygon.rest.models import Agg +import http.server +import socketserver +import traceback +from urllib.parse import urlparse, parse_qs + +PORT = 8888 + +# Load the lookup_table +with open("lookup_table.pkl", "rb") as f: + lookup_table = pickle.load(f) + + +class handler(http.server.SimpleHTTPRequestHandler): + def do_GET(self): + # Parse the path and query parameters + parsed_path = urlparse(self.path) + path = parsed_path.path + query_params = parse_qs(parsed_path.query) + + if path == "/": + # Handle the root path + # Get the date parameter if provided + date_param = query_params.get("date", [None])[0] + + # Get all dates from the lookup table + all_dates = set() + for ticker_data in lookup_table.values(): + all_dates.update(ticker_data.keys()) + all_dates = sorted(all_dates) + + # If date is None, get the latest date from the lookup table + if date_param is None: + if all_dates: + latest_date = max(all_dates) + else: + self.send_response(200) + self.send_header("Content-type", "text/html") + self.end_headers() + html_content = ( + "

No data available.

" + ) + self.wfile.write(html_content.encode()) + return + else: + latest_date = date_param + + # Ensure latest_date is in all_dates + if latest_date not in all_dates: + # Handle the case where the provided date is invalid + self.send_response(400) + self.send_header("Content-type", "text/html") + self.end_headers() + error_html = f"

Error: No data available for date {latest_date}

" + self.wfile.write(error_html.encode()) + return + + # Now, get the anomalies for the latest_date + anomalies = [] + for ticker, date_data in lookup_table.items(): + if latest_date in date_data: + data = date_data[latest_date] + trades = data["trades"] + avg_trades = data["avg_trades"] + std_trades = data["std_trades"] + if ( + avg_trades is not None + and std_trades is not None + and std_trades > 0 + ): + z_score = (trades - avg_trades) / std_trades + threshold_multiplier = 3 # Adjust as needed + if z_score > threshold_multiplier: + anomalies.append( + { + "ticker": ticker, + "date": latest_date, + "trades": trades, + "avg_trades": avg_trades, + "std_trades": std_trades, + "z_score": z_score, + "close_price": data["close_price"], + "price_diff": data["price_diff"], + } + ) + # Sort anomalies by trades in descending order + anomalies.sort(key=lambda x: x["trades"], reverse=True) + # Generate the HTML to display the anomalies + self.send_response(200) + self.send_header("Content-type", "text/html") + self.end_headers() + # Build the HTML content + html_content = 'Codestin Search App'.format( + latest_date + ) + html_content += '

Anomalies for {}

'.format( + latest_date + ) + # Add navigation links (prev and next dates) + current_index = all_dates.index(latest_date) + prev_date = all_dates[current_index - 1] if current_index > 0 else None + next_date = ( + all_dates[current_index + 1] + if current_index < len(all_dates) - 1 + else None + ) + html_content += "

" + if prev_date: + html_content += 'Previous Date '.format( + prev_date + ) + if next_date: + html_content += 'Next Date '.format(next_date) + html_content += "

" + # Display the anomalies in a table + html_content += ( + '' + ) + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + for anomaly in anomalies: + html_content += "" + html_content += "".format(anomaly["ticker"]) + html_content += "".format(anomaly["trades"]) + html_content += "".format(anomaly["avg_trades"]) + html_content += "".format(anomaly["std_trades"]) + html_content += "".format(anomaly["z_score"]) + html_content += "".format(anomaly["close_price"]) + html_content += "".format(anomaly["price_diff"]) + # Add a link to the chart + html_content += ( + ''.format( + anomaly["ticker"], latest_date + ) + ) + html_content += "" + html_content += '
TickerTradesAvg TradesStd DevZ-scoreClose PricePrice DiffChart
{}{}{:.2f}{:.2f}{:.2f}{:.2f}{:.2f}View Chart
' + html_content += "
" + self.wfile.write(html_content.encode()) + elif path == "/chart": + # Handle the chart page + # Get 'ticker' and 'date' from query parameters + ticker = query_params.get("ticker", [None])[0] + date = query_params.get("date", [None])[0] + if ticker is None or date is None: + # Return an error page + self.send_response(400) + self.send_header("Content-type", "text/html") + self.end_headers() + error_html = "

Error: Missing ticker or date parameter

" + self.wfile.write(error_html.encode()) + else: + # Fetch minute aggregates for the ticker and date + client = RESTClient( + trace=True + ) # POLYGON_API_KEY environment variable is used + try: + aggs = [] + date_from = date + date_to = date + for a in client.list_aggs( + ticker, + 1, + "minute", + date_from, + date_to, + limit=50000, + ): + aggs.append(a) + # Prepare data for the chart + data = [] + for agg in aggs: + if isinstance(agg, Agg) and isinstance(agg.timestamp, int): + new_record = [ + agg.timestamp, + agg.open, + agg.high, + agg.low, + agg.close, + ] + data.append(new_record) + # Generate the HTML for the chart page + chart_html = """ + + + + + + + + + + + + +
+ +
+ + + """ % ( + json.dumps(data), + ticker, + date, + ticker, + ) + self.send_response(200) + self.send_header("Content-type", "text/html") + self.send_header("Access-Control-Allow-Origin", "*") + self.end_headers() + self.wfile.write(chart_html.encode()) + except Exception as e: + # Handle exceptions + self.send_response(500) + self.send_header("Content-type", "text/html") + self.end_headers() + error_html = "

Error fetching data: {}

".format( + str(e) + ) + self.wfile.write(error_html.encode()) + else: + # Serve files from the current directory + super().do_GET() + + +def run_server(): + with socketserver.TCPServer(("", PORT), handler) as httpd: + print("serving at port", PORT) + try: + httpd.serve_forever() + except KeyboardInterrupt: + print("\nExiting gracefully...") + httpd.shutdown() + httpd.server_close() + + +if __name__ == "__main__": + run_server() diff --git a/examples/tools/hunting-anomalies/query-lookup-table.py b/examples/tools/hunting-anomalies/query-lookup-table.py new file mode 100644 index 00000000..38bb86cf --- /dev/null +++ b/examples/tools/hunting-anomalies/query-lookup-table.py @@ -0,0 +1,63 @@ +import pickle +import argparse + +# Parse command-line arguments +parser = argparse.ArgumentParser(description="Anomaly Detection Script") +parser.add_argument("date", type=str, help="Target date in YYYY-MM-DD format") +args = parser.parse_args() + +# Load the lookup_table +with open("lookup_table.pkl", "rb") as f: + lookup_table = pickle.load(f) + +# Threshold for considering an anomaly (e.g., 3 standard deviations) +threshold_multiplier = 3 + +# Date for which we want to find anomalies +target_date_str = args.date + +# List to store anomalies +anomalies = [] + +# Iterate over all tickers in the lookup table +for ticker, date_data in lookup_table.items(): + if target_date_str in date_data: + data = date_data[target_date_str] + trades = data["trades"] + avg_trades = data["avg_trades"] + std_trades = data["std_trades"] + if avg_trades is not None and std_trades is not None and std_trades > 0: + z_score = (trades - avg_trades) / std_trades + if z_score > threshold_multiplier: + anomalies.append( + { + "ticker": ticker, + "date": target_date_str, + "trades": trades, + "avg_trades": avg_trades, + "std_trades": std_trades, + "z_score": z_score, + "close_price": data["close_price"], + "price_diff": data["price_diff"], + } + ) + +# Sort anomalies by trades in descending order +anomalies.sort(key=lambda x: x["trades"], reverse=True) + +# Print the anomalies with aligned columns +print(f"\nAnomalies Found for {target_date_str}:\n") +print( + f"{'Ticker':<10}{'Trades':>10}{'Avg Trades':>15}{'Std Dev':>10}{'Z-score':>10}{'Close Price':>12}{'Price Diff':>12}" +) +print("-" * 91) +for anomaly in anomalies: + print( + f"{anomaly['ticker']:<10}" + f"{anomaly['trades']:>10.0f}" + f"{anomaly['avg_trades']:>15.2f}" + f"{anomaly['std_trades']:>10.2f}" + f"{anomaly['z_score']:>10.2f}" + f"{anomaly['close_price']:>12.2f}" + f"{anomaly['price_diff']:>12.2f}" + ) From 3ac9548b42fb00da708563a678763e68715680c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 15:54:53 +0000 Subject: [PATCH 27/53] Bump orjson from 3.10.9 to 3.10.11 (#779) --- poetry.lock | 119 +++++++++++++++++++++++++------------------------ pyproject.toml | 2 +- 2 files changed, 61 insertions(+), 60 deletions(-) diff --git a/poetry.lock b/poetry.lock index 6c9cf217..1ab68672 100644 --- a/poetry.lock +++ b/poetry.lock @@ -389,68 +389,69 @@ six = ">=1.8.0" [[package]] name = "orjson" -version = "3.10.9" +version = "3.10.11" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.9-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a377186a11b48c55969e34f0aa414c2826a234f212d6f2b312ba512e3cdb2c6f"}, - {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bf37bf0ca538065c34efe1803378b2dadd7e05b06610a086c2857f15ee59e12"}, - {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7d9d83a91168aa48309acba804e393b7d9216b66f15e38f339b9fbb00db8986d"}, - {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0014038a17a1fe273da0a5489787677ef5a64566ab383ad6d929e44ed5683f4"}, - {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6ae1b1733e4528e45675ed09a732b6ac37d716bce2facaf467f84ce774adecd"}, - {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe91c2259c4a859356b6db1c6e649b40577492f66d483da8b8af6da0f87c00e3"}, - {file = "orjson-3.10.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a04f912c32463386ba117591c99a3d9e40b3b69bed9c5123d89dff06f0f5a4b0"}, - {file = "orjson-3.10.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae82ca347829ca47431767b079f96bb977f592189250ccdede676339a80c8982"}, - {file = "orjson-3.10.9-cp310-none-win32.whl", hash = "sha256:fd5083906825d7f5d23089425ce5424d783d6294020bcabb8518a3e1f97833e5"}, - {file = "orjson-3.10.9-cp310-none-win_amd64.whl", hash = "sha256:e9ff9521b5be0340c8e686bcfe2619777fd7583f71e7b494601cc91ad3919d2e"}, - {file = "orjson-3.10.9-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f3bd9df47385b8fabb3b2ee1e83f9960b8accc1905be971a1c257f16c32b491e"}, - {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4948961b6bce1e2086b2cf0b56cc454cdab589d40c7f85be71fb5a5556c51d3"}, - {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a9fc7a6cf2b229ddc323e136df13b3fb4466c50d84ed600cd0898223dd2fea3"}, - {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2314846e1029a2d2b899140f350eaaf3a73281df43ba84ac44d94ca861b5b269"}, - {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f52d993504827503411df2d60e60acf52885561458d6273f99ecd172f31c4352"}, - {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e29bbf08d907756c145a3a3a1f7ce2f11f15e3edbd3342842589d6030981b76f"}, - {file = "orjson-3.10.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ae82992c00b480c3cc7dac6739324554be8c5d8e858a90044928506a3333ef4"}, - {file = "orjson-3.10.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6fdf8d32b6d94019dc15163542d345e9ce4c4661f56b318608aa3088a1a3a23b"}, - {file = "orjson-3.10.9-cp311-none-win32.whl", hash = "sha256:01f5fef452b4d7615f2e94153479370a4b59e0c964efb32dd902978f807a45cd"}, - {file = "orjson-3.10.9-cp311-none-win_amd64.whl", hash = "sha256:95361c4197c7ce9afdf56255de6f4e2474c39d16a277cce31d1b99a2520486d8"}, - {file = "orjson-3.10.9-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:43ad5560db54331c007dc38be5ba7706cb72974a29ae8227019d89305d750a6f"}, - {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1471c3274b1a4a9b8f4b9ed6effaea9ad885796373797515c44b365b375c256d"}, - {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:41d8cac575acd15918903d74cfaabb5dbe57b357b93341332f647d1013928dcc"}, - {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2920c8754f1aedc98bd357ec172af18ce48f5f1017a92244c85fe41d16d3c6e0"}, - {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7fa3ff6a0d9d15a0d0d2254cca16cd919156a18423654ce5574591392fe9914"}, - {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1e91b90c0c26bd79593967c1adef421bcff88c9e723d49c93bb7ad8af80bc6b"}, - {file = "orjson-3.10.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f11949024f785ace1a516db32fa6255f6227226b2c988abf66f5aee61d43d8f7"}, - {file = "orjson-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:060e020d85d0ec145bc1b536b1fd9c10a0519c91991ead9724d6f759ebe26b9a"}, - {file = "orjson-3.10.9-cp312-none-win32.whl", hash = "sha256:71f73439999fe662843da3607cdf6e75b1551c330f487e5801d463d969091c63"}, - {file = "orjson-3.10.9-cp312-none-win_amd64.whl", hash = "sha256:12e2efe81356b8448f1cd130f8d75d3718de583112d71f2e2f8baa81bd835bb9"}, - {file = "orjson-3.10.9-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:0ab6e3ad10e964392f0e838751bcce2ef9c8fa8be7deddffff83088e5791566d"}, - {file = "orjson-3.10.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68ef65223baab00f469c8698f771ab3e6ccf6af2a987e77de5b566b4ec651150"}, - {file = "orjson-3.10.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6f130848205fea90a2cb9fa2b11cafff9a9f31f4efad225800bc8b9e4a702f24"}, - {file = "orjson-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2ea7a98f3295ed8adb6730a5788cc78dafea28300d19932a1d2143457f7db802"}, - {file = "orjson-3.10.9-cp313-none-win32.whl", hash = "sha256:bdce39f96149a74fddeb2674c54f1da5e57724d32952eb6df2ac719b66d453cc"}, - {file = "orjson-3.10.9-cp313-none-win_amd64.whl", hash = "sha256:d11383701d4b58e795039b662ada46987744293d57bfa2719e7379b8d67bc796"}, - {file = "orjson-3.10.9-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1c3a1e845916a3739ab4162bb48dee66e0e727a19faf397176a7db0d9826cc3c"}, - {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:063ca59d93d93d1387f0c4bb766c6d4f5b0e423fe7c366d0bd4401a56d1669d1"}, - {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:938b7fcd79cf06fe348fb24b6163fbaa2fdc9fbed8b1f06318f24467f1487e63"}, - {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cc32a9e43c7693011ccde6f8eff8cba75ca0d2a55de11092faa4a716101e67f5"}, - {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1b3069b7e2f57f3eef2282029b9c2ba21f08a55f1018e483663a3356f046af4c"}, - {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4289b5d1f88fd05dcafdd7a1f3b17bb722e77712b7618f98e86bdda560e0a1a"}, - {file = "orjson-3.10.9-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:74f5a7a7f282d326be71b722b0c350da7af6f5f15b9378da177e0e4a09bd91a3"}, - {file = "orjson-3.10.9-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:80e0c013e50cf7198319d8137931684eb9f32daa067e8276d9dbdd4010bb4add"}, - {file = "orjson-3.10.9-cp38-none-win32.whl", hash = "sha256:9d989152df8f60a76867354e0e08d896292ab9fb96a7ef89a5b3838de174522c"}, - {file = "orjson-3.10.9-cp38-none-win_amd64.whl", hash = "sha256:485358fe9892d6bfd88e5885b66bf88496e1842c8f35f61682ff9928b12a6cf0"}, - {file = "orjson-3.10.9-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ca54e6f320e33c8a6e471c424ee16576361d905c15d69e134c2906d3fcb31795"}, - {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9a9eb03a29c9b30b6c8bb35e5fa20d96589a76e0042005be59b7c3af10a7e43"}, - {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:731e8859fc99b398c286320726906404091141e9223dd5e9e6917f7e32e1cc68"}, - {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:75b061c11f5aab979a95927a76394b4a85e3e4d63d0a2a16b56a4f7c6503afab"}, - {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b61b08f6397f004570fd6a840f4a58946b63b4c7029408cdedb45fe85c7d17f7"}, - {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c4f5e0360b7f0aba91dafe12469108109a0e8973956d4a9865ca262a6881406"}, - {file = "orjson-3.10.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e403429e2947a059545e305d97e4b0eb90d3bb44b396d6f327d7ae2018391e13"}, - {file = "orjson-3.10.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0e492b93e122264c2dc78700859122631a4715bda88fabf57d9226954cfe7ec5"}, - {file = "orjson-3.10.9-cp39-none-win32.whl", hash = "sha256:bfba9605e85bfd19b83a21c2c25c2bed2000d5f097f3fa3ad5b5f8a7263a3148"}, - {file = "orjson-3.10.9-cp39-none-win_amd64.whl", hash = "sha256:77d277fa138d4bf145e8b24042004891c188c52ac8492724a183f42b0031cf0c"}, - {file = "orjson-3.10.9.tar.gz", hash = "sha256:c378074e0c46035dc66e57006993233ec66bf8487d501bab41649b4b7289ed4d"}, + {file = "orjson-3.10.11-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6dade64687f2bd7c090281652fe18f1151292d567a9302b34c2dbb92a3872f1f"}, + {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82f07c550a6ccd2b9290849b22316a609023ed851a87ea888c0456485a7d196a"}, + {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd9a187742d3ead9df2e49240234d728c67c356516cf4db018833a86f20ec18c"}, + {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77b0fed6f209d76c1c39f032a70df2d7acf24b1812ca3e6078fd04e8972685a3"}, + {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63fc9d5fe1d4e8868f6aae547a7b8ba0a2e592929245fff61d633f4caccdcdd6"}, + {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65cd3e3bb4fbb4eddc3c1e8dce10dc0b73e808fcb875f9fab40c81903dd9323e"}, + {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6f67c570602300c4befbda12d153113b8974a3340fdcf3d6de095ede86c06d92"}, + {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1f39728c7f7d766f1f5a769ce4d54b5aaa4c3f92d5b84817053cc9995b977acc"}, + {file = "orjson-3.10.11-cp310-none-win32.whl", hash = "sha256:1789d9db7968d805f3d94aae2c25d04014aae3a2fa65b1443117cd462c6da647"}, + {file = "orjson-3.10.11-cp310-none-win_amd64.whl", hash = "sha256:5576b1e5a53a5ba8f8df81872bb0878a112b3ebb1d392155f00f54dd86c83ff6"}, + {file = "orjson-3.10.11-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1444f9cb7c14055d595de1036f74ecd6ce15f04a715e73f33bb6326c9cef01b6"}, + {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdec57fe3b4bdebcc08a946db3365630332dbe575125ff3d80a3272ebd0ddafe"}, + {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4eed32f33a0ea6ef36ccc1d37f8d17f28a1d6e8eefae5928f76aff8f1df85e67"}, + {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80df27dd8697242b904f4ea54820e2d98d3f51f91e97e358fc13359721233e4b"}, + {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:705f03cee0cb797256d54de6695ef219e5bc8c8120b6654dd460848d57a9af3d"}, + {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03246774131701de8e7059b2e382597da43144a9a7400f178b2a32feafc54bd5"}, + {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8b5759063a6c940a69c728ea70d7c33583991c6982915a839c8da5f957e0103a"}, + {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:677f23e32491520eebb19c99bb34675daf5410c449c13416f7f0d93e2cf5f981"}, + {file = "orjson-3.10.11-cp311-none-win32.whl", hash = "sha256:a11225d7b30468dcb099498296ffac36b4673a8398ca30fdaec1e6c20df6aa55"}, + {file = "orjson-3.10.11-cp311-none-win_amd64.whl", hash = "sha256:df8c677df2f9f385fcc85ab859704045fa88d4668bc9991a527c86e710392bec"}, + {file = "orjson-3.10.11-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:360a4e2c0943da7c21505e47cf6bd725588962ff1d739b99b14e2f7f3545ba51"}, + {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:496e2cb45de21c369079ef2d662670a4892c81573bcc143c4205cae98282ba97"}, + {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7dfa8db55c9792d53c5952900c6a919cfa377b4f4534c7a786484a6a4a350c19"}, + {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:51f3382415747e0dbda9dade6f1e1a01a9d37f630d8c9049a8ed0e385b7a90c0"}, + {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f35a1b9f50a219f470e0e497ca30b285c9f34948d3c8160d5ad3a755d9299433"}, + {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f3b7c5803138e67028dde33450e054c87e0703afbe730c105f1fcd873496d5"}, + {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f91d9eb554310472bd09f5347950b24442600594c2edc1421403d7610a0998fd"}, + {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dfbb2d460a855c9744bbc8e36f9c3a997c4b27d842f3d5559ed54326e6911f9b"}, + {file = "orjson-3.10.11-cp312-none-win32.whl", hash = "sha256:d4a62c49c506d4d73f59514986cadebb7e8d186ad510c518f439176cf8d5359d"}, + {file = "orjson-3.10.11-cp312-none-win_amd64.whl", hash = "sha256:f1eec3421a558ff7a9b010a6c7effcfa0ade65327a71bb9b02a1c3b77a247284"}, + {file = "orjson-3.10.11-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c46294faa4e4d0eb73ab68f1a794d2cbf7bab33b1dda2ac2959ffb7c61591899"}, + {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52e5834d7d6e58a36846e059d00559cb9ed20410664f3ad156cd2cc239a11230"}, + {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2fc947e5350fdce548bfc94f434e8760d5cafa97fb9c495d2fef6757aa02ec0"}, + {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0efabbf839388a1dab5b72b5d3baedbd6039ac83f3b55736eb9934ea5494d258"}, + {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a3f29634260708c200c4fe148e42b4aae97d7b9fee417fbdd74f8cfc265f15b0"}, + {file = "orjson-3.10.11-cp313-none-win32.whl", hash = "sha256:1a1222ffcee8a09476bbdd5d4f6f33d06d0d6642df2a3d78b7a195ca880d669b"}, + {file = "orjson-3.10.11-cp313-none-win_amd64.whl", hash = "sha256:bc274ac261cc69260913b2d1610760e55d3c0801bb3457ba7b9004420b6b4270"}, + {file = "orjson-3.10.11-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:19b3763e8bbf8ad797df6b6b5e0fc7c843ec2e2fc0621398534e0c6400098f87"}, + {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1be83a13312e5e58d633580c5eb8d0495ae61f180da2722f20562974188af205"}, + {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:afacfd1ab81f46dedd7f6001b6d4e8de23396e4884cd3c3436bd05defb1a6446"}, + {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cb4d0bea56bba596723d73f074c420aec3b2e5d7d30698bc56e6048066bd560c"}, + {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96ed1de70fcb15d5fed529a656df29f768187628727ee2788344e8a51e1c1350"}, + {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bfb30c891b530f3f80e801e3ad82ef150b964e5c38e1fb8482441c69c35c61c"}, + {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d496c74fc2b61341e3cefda7eec21b7854c5f672ee350bc55d9a4997a8a95204"}, + {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:655a493bac606655db9a47fe94d3d84fc7f3ad766d894197c94ccf0c5408e7d3"}, + {file = "orjson-3.10.11-cp38-none-win32.whl", hash = "sha256:b9546b278c9fb5d45380f4809e11b4dd9844ca7aaf1134024503e134ed226161"}, + {file = "orjson-3.10.11-cp38-none-win_amd64.whl", hash = "sha256:b592597fe551d518f42c5a2eb07422eb475aa8cfdc8c51e6da7054b836b26782"}, + {file = "orjson-3.10.11-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c95f2ecafe709b4e5c733b5e2768ac569bed308623c85806c395d9cca00e08af"}, + {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80c00d4acded0c51c98754fe8218cb49cb854f0f7eb39ea4641b7f71732d2cb7"}, + {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:461311b693d3d0a060439aa669c74f3603264d4e7a08faa68c47ae5a863f352d"}, + {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52ca832f17d86a78cbab86cdc25f8c13756ebe182b6fc1a97d534051c18a08de"}, + {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c57ea78a753812f528178aa2f1c57da633754c91d2124cb28991dab4c79a54"}, + {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7fcfc6f7ca046383fb954ba528587e0f9336828b568282b27579c49f8e16aad"}, + {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:86b9dd983857970c29e4c71bb3e95ff085c07d3e83e7c46ebe959bac07ebd80b"}, + {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4d83f87582d223e54efb2242a79547611ba4ebae3af8bae1e80fa9a0af83bb7f"}, + {file = "orjson-3.10.11-cp39-none-win32.whl", hash = "sha256:9fd0ad1c129bc9beb1154c2655f177620b5beaf9a11e0d10bac63ef3fce96950"}, + {file = "orjson-3.10.11-cp39-none-win_amd64.whl", hash = "sha256:10f416b2a017c8bd17f325fb9dee1fb5cdd7a54e814284896b7c3f2763faa017"}, + {file = "orjson-3.10.11.tar.gz", hash = "sha256:e35b6d730de6384d5b2dab5fd23f0d76fae8bbc8c353c2f78210aa5fa4beb3ef"}, ] [[package]] @@ -988,4 +989,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "bc73d9f5843ac26c73d8a9f755037f1deac6b9d5d84e9d111492bea26841e747" +content-hash = "da77bece324a6ae9696517f2df926377a0d1faac253aca6754bf3d35cbc4a7c2" diff --git a/pyproject.toml b/pyproject.toml index 168dc906..01a2dc4f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^75.2.0" pook = "^2.0.1" -orjson = "^3.10.9" +orjson = "^3.10.11" [build-system] requires = ["poetry-core>=1.0.0"] From b389b9eba65fb56a924f1ff3ef7b80de21a694fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Nov 2024 04:46:58 -0800 Subject: [PATCH 28/53] Bump types-setuptools from 75.2.0.20241019 to 75.3.0.20241107 (#783) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.2.0.20241019 to 75.3.0.20241107. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1ab68672..d409ab5c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -817,13 +817,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.2.0.20241019" +version = "75.3.0.20241107" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-75.2.0.20241019.tar.gz", hash = "sha256:86ea31b5f6df2c6b8f2dc8ae3f72b213607f62549b6fa2ed5866e5299f968694"}, - {file = "types_setuptools-75.2.0.20241019-py3-none-any.whl", hash = "sha256:2e48ff3acd4919471e80d5e3f049cce5c177e108d5d36d2d4cee3fa4d4104258"}, + {file = "types-setuptools-75.3.0.20241107.tar.gz", hash = "sha256:f66710e1cd4a936e5fcc12d4e49be1a67c34372cf753e87ebe704426451b4012"}, + {file = "types_setuptools-75.3.0.20241107-py3-none-any.whl", hash = "sha256:bc6de6e2bcb6d610556304d0a69fe4ca208ac4896162647314ecfd9fd73d8550"}, ] [[package]] @@ -989,4 +989,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "da77bece324a6ae9696517f2df926377a0d1faac253aca6754bf3d35cbc4a7c2" +content-hash = "6cbbf3e12525e3d5faa1bb19be793935af7dc75935ec97a6ba2941417e93b207" diff --git a/pyproject.toml b/pyproject.toml index 01a2dc4f..633c26a4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^3.0.1" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^75.2.0" +types-setuptools = "^75.3.0" pook = "^2.0.1" orjson = "^3.10.11" From dc7e9e27b43b702de2965230f7530af5cda1c036 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Nov 2024 04:50:20 -0800 Subject: [PATCH 29/53] Bump mypy from 1.12.1 to 1.13.0 (#776) Bumps [mypy](https://github.com/python/mypy) from 1.12.1 to 1.13.0. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.12.1...v1.13.0) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 69 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/poetry.lock b/poetry.lock index d409ab5c..b25eefae 100644 --- a/poetry.lock +++ b/poetry.lock @@ -312,43 +312,43 @@ files = [ [[package]] name = "mypy" -version = "1.12.1" +version = "1.13.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3d7d4371829184e22fda4015278fbfdef0327a4b955a483012bd2d423a788801"}, - {file = "mypy-1.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f59f1dfbf497d473201356966e353ef09d4daec48caeacc0254db8ef633a28a5"}, - {file = "mypy-1.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b947097fae68004b8328c55161ac9db7d3566abfef72d9d41b47a021c2fba6b1"}, - {file = "mypy-1.12.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:96af62050971c5241afb4701c15189ea9507db89ad07794a4ee7b4e092dc0627"}, - {file = "mypy-1.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:d90da248f4c2dba6c44ddcfea94bb361e491962f05f41990ff24dbd09969ce20"}, - {file = "mypy-1.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1230048fec1380faf240be6385e709c8570604d2d27ec6ca7e573e3bc09c3735"}, - {file = "mypy-1.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:02dcfe270c6ea13338210908f8cadc8d31af0f04cee8ca996438fe6a97b4ec66"}, - {file = "mypy-1.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a5a437c9102a6a252d9e3a63edc191a3aed5f2fcb786d614722ee3f4472e33f6"}, - {file = "mypy-1.12.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:186e0c8346efc027ee1f9acf5ca734425fc4f7dc2b60144f0fbe27cc19dc7931"}, - {file = "mypy-1.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:673ba1140a478b50e6d265c03391702fa11a5c5aff3f54d69a62a48da32cb811"}, - {file = "mypy-1.12.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9fb83a7be97c498176fb7486cafbb81decccaef1ac339d837c377b0ce3743a7f"}, - {file = "mypy-1.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:389e307e333879c571029d5b93932cf838b811d3f5395ed1ad05086b52148fb0"}, - {file = "mypy-1.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:94b2048a95a21f7a9ebc9fbd075a4fcd310410d078aa0228dbbad7f71335e042"}, - {file = "mypy-1.12.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ee5932370ccf7ebf83f79d1c157a5929d7ea36313027b0d70a488493dc1b179"}, - {file = "mypy-1.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:19bf51f87a295e7ab2894f1d8167622b063492d754e69c3c2fed6563268cb42a"}, - {file = "mypy-1.12.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d34167d43613ffb1d6c6cdc0cc043bb106cac0aa5d6a4171f77ab92a3c758bcc"}, - {file = "mypy-1.12.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:427878aa54f2e2c5d8db31fa9010c599ed9f994b3b49e64ae9cd9990c40bd635"}, - {file = "mypy-1.12.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5fcde63ea2c9f69d6be859a1e6dd35955e87fa81de95bc240143cf00de1f7f81"}, - {file = "mypy-1.12.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d54d840f6c052929f4a3d2aab2066af0f45a020b085fe0e40d4583db52aab4e4"}, - {file = "mypy-1.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:20db6eb1ca3d1de8ece00033b12f793f1ea9da767334b7e8c626a4872090cf02"}, - {file = "mypy-1.12.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b16fe09f9c741d85a2e3b14a5257a27a4f4886c171d562bc5a5e90d8591906b8"}, - {file = "mypy-1.12.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0dcc1e843d58f444fce19da4cce5bd35c282d4bde232acdeca8279523087088a"}, - {file = "mypy-1.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e10ba7de5c616e44ad21005fa13450cd0de7caaa303a626147d45307492e4f2d"}, - {file = "mypy-1.12.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0e6fe449223fa59fbee351db32283838a8fee8059e0028e9e6494a03802b4004"}, - {file = "mypy-1.12.1-cp38-cp38-win_amd64.whl", hash = "sha256:dc6e2a2195a290a7fd5bac3e60b586d77fc88e986eba7feced8b778c373f9afe"}, - {file = "mypy-1.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:de5b2a8988b4e1269a98beaf0e7cc71b510d050dce80c343b53b4955fff45f19"}, - {file = "mypy-1.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:843826966f1d65925e8b50d2b483065c51fc16dc5d72647e0236aae51dc8d77e"}, - {file = "mypy-1.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9fe20f89da41a95e14c34b1ddb09c80262edcc295ad891f22cc4b60013e8f78d"}, - {file = "mypy-1.12.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8135ffec02121a75f75dc97c81af7c14aa4ae0dda277132cfcd6abcd21551bfd"}, - {file = "mypy-1.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:a7b76fa83260824300cc4834a3ab93180db19876bce59af921467fd03e692810"}, - {file = "mypy-1.12.1-py3-none-any.whl", hash = "sha256:ce561a09e3bb9863ab77edf29ae3a50e65685ad74bba1431278185b7e5d5486e"}, - {file = "mypy-1.12.1.tar.gz", hash = "sha256:f5b3936f7a6d0e8280c9bdef94c7ce4847f5cdfc258fbb2c29a8c1711e8bb96d"}, + {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, + {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, + {file = "mypy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b2353a44d2179846a096e25691d54d59904559f4232519d420d64da6828a3a7"}, + {file = "mypy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0730d1c6a2739d4511dc4253f8274cdd140c55c32dfb0a4cf8b7a43f40abfa6f"}, + {file = "mypy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c5fc54dbb712ff5e5a0fca797e6e0aa25726c7e72c6a5850cfd2adbc1eb0a372"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d"}, + {file = "mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b"}, + {file = "mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73"}, + {file = "mypy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51f869f4b6b538229c1d1bcc1dd7d119817206e2bc54e8e374b3dfa202defcca"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e"}, + {file = "mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2"}, + {file = "mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0"}, + {file = "mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62"}, + {file = "mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8"}, + {file = "mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7"}, + {file = "mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:100fac22ce82925f676a734af0db922ecfea991e1d7ec0ceb1e115ebe501301a"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7bcb0bb7f42a978bb323a7c88f1081d1b5dee77ca86f4100735a6f541299d8fb"}, + {file = "mypy-1.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bde31fc887c213e223bbfc34328070996061b0833b0a4cfec53745ed61f3519b"}, + {file = "mypy-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:07de989f89786f62b937851295ed62e51774722e5444a27cecca993fc3f9cd74"}, + {file = "mypy-1.13.0-cp38-cp38-win_amd64.whl", hash = "sha256:4bde84334fbe19bad704b3f5b78c4abd35ff1026f8ba72b29de70dda0916beb6"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0246bcb1b5de7f08f2826451abd947bf656945209b140d16ed317f65a17dc7dc"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f5b7deae912cf8b77e990b9280f170381fdfbddf61b4ef80927edd813163732"}, + {file = "mypy-1.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7029881ec6ffb8bc233a4fa364736789582c738217b133f1b55967115288a2bc"}, + {file = "mypy-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3e38b980e5681f28f033f3be86b099a247b13c491f14bb8b1e1e134d23bb599d"}, + {file = "mypy-1.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:a6789be98a2017c912ae6ccb77ea553bbaf13d27605d2ca20a76dfbced631b24"}, + {file = "mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a"}, + {file = "mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e"}, ] [package.dependencies] @@ -358,6 +358,7 @@ typing-extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] +faster-cache = ["orjson"] install-types = ["pip"] mypyc = ["setuptools (>=50)"] reports = ["lxml"] @@ -989,4 +990,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "6cbbf3e12525e3d5faa1bb19be793935af7dc75935ec97a6ba2941417e93b207" +content-hash = "30f3e19d533a319f875b07103455ee6657c5ee92260666909cd47aa503ad29bf" diff --git a/pyproject.toml b/pyproject.toml index 633c26a4..20db1464 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ certifi = ">=2022.5.18,<2025.0.0" [tool.poetry.dev-dependencies] black = "^24.8.0" -mypy = "^1.12" +mypy = "^1.13" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" sphinx-rtd-theme = "^3.0.1" From b090f5ed3869057f6e73a725b1795bd738cc618f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 10:36:50 -0800 Subject: [PATCH 30/53] Bump types-setuptools from 75.3.0.20241107 to 75.5.0.20241116 (#786) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.3.0.20241107 to 75.5.0.20241116. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index b25eefae..3749fc71 100644 --- a/poetry.lock +++ b/poetry.lock @@ -818,13 +818,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.3.0.20241107" +version = "75.5.0.20241116" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-75.3.0.20241107.tar.gz", hash = "sha256:f66710e1cd4a936e5fcc12d4e49be1a67c34372cf753e87ebe704426451b4012"}, - {file = "types_setuptools-75.3.0.20241107-py3-none-any.whl", hash = "sha256:bc6de6e2bcb6d610556304d0a69fe4ca208ac4896162647314ecfd9fd73d8550"}, + {file = "types-setuptools-75.5.0.20241116.tar.gz", hash = "sha256:b6939ffdbc50ffdc0bcfbf14f7a6de1ddc5510906c1ca2bd62c23646e5798b1a"}, + {file = "types_setuptools-75.5.0.20241116-py3-none-any.whl", hash = "sha256:1144b2ab8fa986061f963391fdbde16df20582e3cc39c94340e71aa61cc7203f"}, ] [[package]] @@ -990,4 +990,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "30f3e19d533a319f875b07103455ee6657c5ee92260666909cd47aa503ad29bf" +content-hash = "92cf31e5fe27f276b9c319d1742d5865ee52b5a8589230a994907ad74e426fde" diff --git a/pyproject.toml b/pyproject.toml index 20db1464..0b1d4f7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^3.0.1" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^75.3.0" +types-setuptools = "^75.5.0" pook = "^2.0.1" orjson = "^3.10.11" From 83dfc92f11039a2956fe353b32d2385d3b83fecc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 11:36:00 -0800 Subject: [PATCH 31/53] Bump sphinx-rtd-theme from 3.0.1 to 3.0.2 (#787) Bumps [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) from 3.0.1 to 3.0.2. - [Changelog](https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst) - [Commits](https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.1...3.0.2) --- updated-dependencies: - dependency-name: sphinx-rtd-theme dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3749fc71..150e23c4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -674,13 +674,13 @@ testing = ["covdefaults (>=2.3)", "coverage (>=7.4.2)", "diff-cover (>=8.0.3)", [[package]] name = "sphinx-rtd-theme" -version = "3.0.1" +version = "3.0.2" description = "Read the Docs theme for Sphinx" optional = false python-versions = ">=3.8" files = [ - {file = "sphinx_rtd_theme-3.0.1-py2.py3-none-any.whl", hash = "sha256:921c0ece75e90633ee876bd7b148cfaad136b481907ad154ac3669b6fc957916"}, - {file = "sphinx_rtd_theme-3.0.1.tar.gz", hash = "sha256:a4c5745d1b06dfcb80b7704fe532eb765b44065a8fad9851e4258c8804140703"}, + {file = "sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13"}, + {file = "sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85"}, ] [package.dependencies] @@ -990,4 +990,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "92cf31e5fe27f276b9c319d1742d5865ee52b5a8589230a994907ad74e426fde" +content-hash = "7e985cdc0c18c1888f9b6ef92fbad423b529ce066e96f360f0bf01dfe6ed312c" diff --git a/pyproject.toml b/pyproject.toml index 0b1d4f7f..dc25d905 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ black = "^24.8.0" mypy = "^1.13" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" -sphinx-rtd-theme = "^3.0.1" +sphinx-rtd-theme = "^3.0.2" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" From 3756b5380d04043deb8a2eaea8b8f8d104650995 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 09:29:20 -0800 Subject: [PATCH 32/53] Bump orjson from 3.10.11 to 3.10.12 (#794) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.11 to 3.10.12. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](https://github.com/ijl/orjson/compare/3.10.11...3.10.12) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 137 +++++++++++++++++++++++++++---------------------- pyproject.toml | 2 +- 2 files changed, 78 insertions(+), 61 deletions(-) diff --git a/poetry.lock b/poetry.lock index 150e23c4..c86acd29 100644 --- a/poetry.lock +++ b/poetry.lock @@ -390,69 +390,86 @@ six = ">=1.8.0" [[package]] name = "orjson" -version = "3.10.11" +version = "3.10.12" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.11-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6dade64687f2bd7c090281652fe18f1151292d567a9302b34c2dbb92a3872f1f"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82f07c550a6ccd2b9290849b22316a609023ed851a87ea888c0456485a7d196a"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd9a187742d3ead9df2e49240234d728c67c356516cf4db018833a86f20ec18c"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77b0fed6f209d76c1c39f032a70df2d7acf24b1812ca3e6078fd04e8972685a3"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63fc9d5fe1d4e8868f6aae547a7b8ba0a2e592929245fff61d633f4caccdcdd6"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65cd3e3bb4fbb4eddc3c1e8dce10dc0b73e808fcb875f9fab40c81903dd9323e"}, - {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6f67c570602300c4befbda12d153113b8974a3340fdcf3d6de095ede86c06d92"}, - {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1f39728c7f7d766f1f5a769ce4d54b5aaa4c3f92d5b84817053cc9995b977acc"}, - {file = "orjson-3.10.11-cp310-none-win32.whl", hash = "sha256:1789d9db7968d805f3d94aae2c25d04014aae3a2fa65b1443117cd462c6da647"}, - {file = "orjson-3.10.11-cp310-none-win_amd64.whl", hash = "sha256:5576b1e5a53a5ba8f8df81872bb0878a112b3ebb1d392155f00f54dd86c83ff6"}, - {file = "orjson-3.10.11-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1444f9cb7c14055d595de1036f74ecd6ce15f04a715e73f33bb6326c9cef01b6"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdec57fe3b4bdebcc08a946db3365630332dbe575125ff3d80a3272ebd0ddafe"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4eed32f33a0ea6ef36ccc1d37f8d17f28a1d6e8eefae5928f76aff8f1df85e67"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80df27dd8697242b904f4ea54820e2d98d3f51f91e97e358fc13359721233e4b"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:705f03cee0cb797256d54de6695ef219e5bc8c8120b6654dd460848d57a9af3d"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03246774131701de8e7059b2e382597da43144a9a7400f178b2a32feafc54bd5"}, - {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8b5759063a6c940a69c728ea70d7c33583991c6982915a839c8da5f957e0103a"}, - {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:677f23e32491520eebb19c99bb34675daf5410c449c13416f7f0d93e2cf5f981"}, - {file = "orjson-3.10.11-cp311-none-win32.whl", hash = "sha256:a11225d7b30468dcb099498296ffac36b4673a8398ca30fdaec1e6c20df6aa55"}, - {file = "orjson-3.10.11-cp311-none-win_amd64.whl", hash = "sha256:df8c677df2f9f385fcc85ab859704045fa88d4668bc9991a527c86e710392bec"}, - {file = "orjson-3.10.11-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:360a4e2c0943da7c21505e47cf6bd725588962ff1d739b99b14e2f7f3545ba51"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:496e2cb45de21c369079ef2d662670a4892c81573bcc143c4205cae98282ba97"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7dfa8db55c9792d53c5952900c6a919cfa377b4f4534c7a786484a6a4a350c19"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:51f3382415747e0dbda9dade6f1e1a01a9d37f630d8c9049a8ed0e385b7a90c0"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f35a1b9f50a219f470e0e497ca30b285c9f34948d3c8160d5ad3a755d9299433"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f3b7c5803138e67028dde33450e054c87e0703afbe730c105f1fcd873496d5"}, - {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f91d9eb554310472bd09f5347950b24442600594c2edc1421403d7610a0998fd"}, - {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dfbb2d460a855c9744bbc8e36f9c3a997c4b27d842f3d5559ed54326e6911f9b"}, - {file = "orjson-3.10.11-cp312-none-win32.whl", hash = "sha256:d4a62c49c506d4d73f59514986cadebb7e8d186ad510c518f439176cf8d5359d"}, - {file = "orjson-3.10.11-cp312-none-win_amd64.whl", hash = "sha256:f1eec3421a558ff7a9b010a6c7effcfa0ade65327a71bb9b02a1c3b77a247284"}, - {file = "orjson-3.10.11-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c46294faa4e4d0eb73ab68f1a794d2cbf7bab33b1dda2ac2959ffb7c61591899"}, - {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52e5834d7d6e58a36846e059d00559cb9ed20410664f3ad156cd2cc239a11230"}, - {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2fc947e5350fdce548bfc94f434e8760d5cafa97fb9c495d2fef6757aa02ec0"}, - {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0efabbf839388a1dab5b72b5d3baedbd6039ac83f3b55736eb9934ea5494d258"}, - {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a3f29634260708c200c4fe148e42b4aae97d7b9fee417fbdd74f8cfc265f15b0"}, - {file = "orjson-3.10.11-cp313-none-win32.whl", hash = "sha256:1a1222ffcee8a09476bbdd5d4f6f33d06d0d6642df2a3d78b7a195ca880d669b"}, - {file = "orjson-3.10.11-cp313-none-win_amd64.whl", hash = "sha256:bc274ac261cc69260913b2d1610760e55d3c0801bb3457ba7b9004420b6b4270"}, - {file = "orjson-3.10.11-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:19b3763e8bbf8ad797df6b6b5e0fc7c843ec2e2fc0621398534e0c6400098f87"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1be83a13312e5e58d633580c5eb8d0495ae61f180da2722f20562974188af205"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:afacfd1ab81f46dedd7f6001b6d4e8de23396e4884cd3c3436bd05defb1a6446"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cb4d0bea56bba596723d73f074c420aec3b2e5d7d30698bc56e6048066bd560c"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96ed1de70fcb15d5fed529a656df29f768187628727ee2788344e8a51e1c1350"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bfb30c891b530f3f80e801e3ad82ef150b964e5c38e1fb8482441c69c35c61c"}, - {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d496c74fc2b61341e3cefda7eec21b7854c5f672ee350bc55d9a4997a8a95204"}, - {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:655a493bac606655db9a47fe94d3d84fc7f3ad766d894197c94ccf0c5408e7d3"}, - {file = "orjson-3.10.11-cp38-none-win32.whl", hash = "sha256:b9546b278c9fb5d45380f4809e11b4dd9844ca7aaf1134024503e134ed226161"}, - {file = "orjson-3.10.11-cp38-none-win_amd64.whl", hash = "sha256:b592597fe551d518f42c5a2eb07422eb475aa8cfdc8c51e6da7054b836b26782"}, - {file = "orjson-3.10.11-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c95f2ecafe709b4e5c733b5e2768ac569bed308623c85806c395d9cca00e08af"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80c00d4acded0c51c98754fe8218cb49cb854f0f7eb39ea4641b7f71732d2cb7"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:461311b693d3d0a060439aa669c74f3603264d4e7a08faa68c47ae5a863f352d"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52ca832f17d86a78cbab86cdc25f8c13756ebe182b6fc1a97d534051c18a08de"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c57ea78a753812f528178aa2f1c57da633754c91d2124cb28991dab4c79a54"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7fcfc6f7ca046383fb954ba528587e0f9336828b568282b27579c49f8e16aad"}, - {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:86b9dd983857970c29e4c71bb3e95ff085c07d3e83e7c46ebe959bac07ebd80b"}, - {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4d83f87582d223e54efb2242a79547611ba4ebae3af8bae1e80fa9a0af83bb7f"}, - {file = "orjson-3.10.11-cp39-none-win32.whl", hash = "sha256:9fd0ad1c129bc9beb1154c2655f177620b5beaf9a11e0d10bac63ef3fce96950"}, - {file = "orjson-3.10.11-cp39-none-win_amd64.whl", hash = "sha256:10f416b2a017c8bd17f325fb9dee1fb5cdd7a54e814284896b7c3f2763faa017"}, - {file = "orjson-3.10.11.tar.gz", hash = "sha256:e35b6d730de6384d5b2dab5fd23f0d76fae8bbc8c353c2f78210aa5fa4beb3ef"}, + {file = "orjson-3.10.12-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ece01a7ec71d9940cc654c482907a6b65df27251255097629d0dea781f255c6d"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c34ec9aebc04f11f4b978dd6caf697a2df2dd9b47d35aa4cc606cabcb9df69d7"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd6ec8658da3480939c79b9e9e27e0db31dffcd4ba69c334e98c9976ac29140e"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f17e6baf4cf01534c9de8a16c0c611f3d94925d1701bf5f4aff17003677d8ced"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6402ebb74a14ef96f94a868569f5dccf70d791de49feb73180eb3c6fda2ade56"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0000758ae7c7853e0a4a6063f534c61656ebff644391e1f81698c1b2d2fc8cd2"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:888442dcee99fd1e5bd37a4abb94930915ca6af4db50e23e746cdf4d1e63db13"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c1f7a3ce79246aa0e92f5458d86c54f257fb5dfdc14a192651ba7ec2c00f8a05"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:802a3935f45605c66fb4a586488a38af63cb37aaad1c1d94c982c40dcc452e85"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1da1ef0113a2be19bb6c557fb0ec2d79c92ebd2fed4cfb1b26bab93f021fb885"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a3273e99f367f137d5b3fecb5e9f45bcdbfac2a8b2f32fbc72129bbd48789c2"}, + {file = "orjson-3.10.12-cp310-none-win32.whl", hash = "sha256:475661bf249fd7907d9b0a2a2421b4e684355a77ceef85b8352439a9163418c3"}, + {file = "orjson-3.10.12-cp310-none-win_amd64.whl", hash = "sha256:87251dc1fb2b9e5ab91ce65d8f4caf21910d99ba8fb24b49fd0c118b2362d509"}, + {file = "orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:440d9a337ac8c199ff8251e100c62e9488924c92852362cd27af0e67308c16ef"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9e15c06491c69997dfa067369baab3bf094ecb74be9912bdc4339972323f252"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:362d204ad4b0b8724cf370d0cd917bb2dc913c394030da748a3bb632445ce7c4"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b57cbb4031153db37b41622eac67329c7810e5f480fda4cfd30542186f006ae"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:165c89b53ef03ce0d7c59ca5c82fa65fe13ddf52eeb22e859e58c237d4e33b9b"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd"}, + {file = "orjson-3.10.12-cp311-none-win32.whl", hash = "sha256:03b553c02ab39bed249bedd4abe37b2118324d1674e639b33fab3d1dafdf4d79"}, + {file = "orjson-3.10.12-cp311-none-win_amd64.whl", hash = "sha256:8b8713b9e46a45b2af6b96f559bfb13b1e02006f4242c156cbadef27800a55a8"}, + {file = "orjson-3.10.12-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53206d72eb656ca5ac7d3a7141e83c5bbd3ac30d5eccfe019409177a57634b0d"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8010afc2150d417ebda810e8df08dd3f544e0dd2acab5370cfa6bcc0662f8f"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed459b46012ae950dd2e17150e838ab08215421487371fa79d0eced8d1461d70"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dcb9673f108a93c1b52bfc51b0af422c2d08d4fc710ce9c839faad25020bb69"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22a51ae77680c5c4652ebc63a83d5255ac7d65582891d9424b566fb3b5375ee9"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910fdf2ac0637b9a77d1aad65f803bac414f0b06f720073438a7bd8906298192"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24ce85f7100160936bc2116c09d1a8492639418633119a2224114f67f63a4559"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a76ba5fc8dd9c913640292df27bff80a685bed3a3c990d59aa6ce24c352f8fc"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ff70ef093895fd53f4055ca75f93f047e088d1430888ca1229393a7c0521100f"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4244b7018b5753ecd10a6d324ec1f347da130c953a9c88432c7fbc8875d13be"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:16135ccca03445f37921fa4b585cff9a58aa8d81ebcb27622e69bfadd220b32c"}, + {file = "orjson-3.10.12-cp312-none-win32.whl", hash = "sha256:2d879c81172d583e34153d524fcba5d4adafbab8349a7b9f16ae511c2cee8708"}, + {file = "orjson-3.10.12-cp312-none-win_amd64.whl", hash = "sha256:fc23f691fa0f5c140576b8c365bc942d577d861a9ee1142e4db468e4e17094fb"}, + {file = "orjson-3.10.12-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47962841b2a8aa9a258b377f5188db31ba49af47d4003a32f55d6f8b19006543"}, + {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6334730e2532e77b6054e87ca84f3072bee308a45a452ea0bffbbbc40a67e296"}, + {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accfe93f42713c899fdac2747e8d0d5c659592df2792888c6c5f829472e4f85e"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7974c490c014c48810d1dede6c754c3cc46598da758c25ca3b4001ac45b703f"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3f250ce7727b0b2682f834a3facff88e310f52f07a5dcfd852d99637d386e79e"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f31422ff9486ae484f10ffc51b5ab2a60359e92d0716fcce1b3593d7bb8a9af6"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5f29c5d282bb2d577c2a6bbde88d8fdcc4919c593f806aac50133f01b733846e"}, + {file = "orjson-3.10.12-cp313-none-win32.whl", hash = "sha256:f45653775f38f63dc0e6cd4f14323984c3149c05d6007b58cb154dd080ddc0dc"}, + {file = "orjson-3.10.12-cp313-none-win_amd64.whl", hash = "sha256:229994d0c376d5bdc91d92b3c9e6be2f1fbabd4cc1b59daae1443a46ee5e9825"}, + {file = "orjson-3.10.12-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7d69af5b54617a5fac5c8e5ed0859eb798e2ce8913262eb522590239db6c6763"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ed119ea7d2953365724a7059231a44830eb6bbb0cfead33fcbc562f5fd8f935"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c5fc1238ef197e7cad5c91415f524aaa51e004be5a9b35a1b8a84ade196f73f"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:43509843990439b05f848539d6f6198d4ac86ff01dd024b2f9a795c0daeeab60"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f72e27a62041cfb37a3de512247ece9f240a561e6c8662276beaf4d53d406db4"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a904f9572092bb6742ab7c16c623f0cdccbad9eeb2d14d4aa06284867bddd31"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:855c0833999ed5dc62f64552db26f9be767434917d8348d77bacaab84f787d7b"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:897830244e2320f6184699f598df7fb9db9f5087d6f3f03666ae89d607e4f8ed"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:0b32652eaa4a7539f6f04abc6243619c56f8530c53bf9b023e1269df5f7816dd"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:36b4aa31e0f6a1aeeb6f8377769ca5d125db000f05c20e54163aef1d3fe8e833"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5535163054d6cbf2796f93e4f0dbc800f61914c0e3c4ed8499cf6ece22b4a3da"}, + {file = "orjson-3.10.12-cp38-none-win32.whl", hash = "sha256:90a5551f6f5a5fa07010bf3d0b4ca2de21adafbbc0af6cb700b63cd767266cb9"}, + {file = "orjson-3.10.12-cp38-none-win_amd64.whl", hash = "sha256:703a2fb35a06cdd45adf5d733cf613cbc0cb3ae57643472b16bc22d325b5fb6c"}, + {file = "orjson-3.10.12-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f29de3ef71a42a5822765def1febfb36e0859d33abf5c2ad240acad5c6a1b78d"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de365a42acc65d74953f05e4772c974dad6c51cfc13c3240899f534d611be967"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:91a5a0158648a67ff0004cb0df5df7dcc55bfc9ca154d9c01597a23ad54c8d0c"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c47ce6b8d90fe9646a25b6fb52284a14ff215c9595914af63a5933a49972ce36"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0eee4c2c5bfb5c1b47a5db80d2ac7aaa7e938956ae88089f098aff2c0f35d5d8"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35d3081bbe8b86587eb5c98a73b97f13d8f9fea685cf91a579beddacc0d10566"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73c23a6e90383884068bc2dba83d5222c9fcc3b99a0ed2411d38150734236755"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5472be7dc3269b4b52acba1433dac239215366f89dc1d8d0e64029abac4e714e"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7319cda750fca96ae5973efb31b17d97a5c5225ae0bc79bf5bf84df9e1ec2ab6"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:74d5ca5a255bf20b8def6a2b96b1e18ad37b4a122d59b154c458ee9494377f80"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ff31d22ecc5fb85ef62c7d4afe8301d10c558d00dd24274d4bbe464380d3cd69"}, + {file = "orjson-3.10.12-cp39-none-win32.whl", hash = "sha256:c22c3ea6fba91d84fcb4cda30e64aff548fcf0c44c876e681f47d61d24b12e6b"}, + {file = "orjson-3.10.12-cp39-none-win_amd64.whl", hash = "sha256:be604f60d45ace6b0b33dd990a66b4526f1a7a186ac411c942674625456ca548"}, + {file = "orjson-3.10.12.tar.gz", hash = "sha256:0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff"}, ] [[package]] @@ -990,4 +1007,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "7e985cdc0c18c1888f9b6ef92fbad423b529ce066e96f360f0bf01dfe6ed312c" +content-hash = "58888751f16e4ddaa6fc85cbb70f4155c933f3bb6ff2427715981a1ac346c6df" diff --git a/pyproject.toml b/pyproject.toml index dc25d905..0ee1a26d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^75.5.0" pook = "^2.0.1" -orjson = "^3.10.11" +orjson = "^3.10.12" [build-system] requires = ["poetry-core>=1.0.0"] From 04f594ebc2fd74d1b29184781cfdcbd92272c4b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 09:51:18 -0800 Subject: [PATCH 33/53] Bump types-setuptools from 75.5.0.20241116 to 75.5.0.20241122 (#793) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.5.0.20241116 to 75.5.0.20241122. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index c86acd29..d7ce31a2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -835,13 +835,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.5.0.20241116" +version = "75.5.0.20241122" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-75.5.0.20241116.tar.gz", hash = "sha256:b6939ffdbc50ffdc0bcfbf14f7a6de1ddc5510906c1ca2bd62c23646e5798b1a"}, - {file = "types_setuptools-75.5.0.20241116-py3-none-any.whl", hash = "sha256:1144b2ab8fa986061f963391fdbde16df20582e3cc39c94340e71aa61cc7203f"}, + {file = "types_setuptools-75.5.0.20241122-py3-none-any.whl", hash = "sha256:d69c445f7bdd5e49d1b2441aadcee1388febcc9ad9d9d5fd33648b555e0b1c31"}, + {file = "types_setuptools-75.5.0.20241122.tar.gz", hash = "sha256:196aaf1811cbc1c77ac1d4c4879d5308b6fdf426e56b73baadbca2a1827dadef"}, ] [[package]] From 609dd5cb5de1850bed3f9594006d14cfbeb4e319 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 10:26:45 -0800 Subject: [PATCH 34/53] Bump types-setuptools from 75.5.0.20241122 to 75.6.0.20241126 (#797) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.5.0.20241122 to 75.6.0.20241126. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index d7ce31a2..3949798f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -835,13 +835,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.5.0.20241122" +version = "75.6.0.20241126" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types_setuptools-75.5.0.20241122-py3-none-any.whl", hash = "sha256:d69c445f7bdd5e49d1b2441aadcee1388febcc9ad9d9d5fd33648b555e0b1c31"}, - {file = "types_setuptools-75.5.0.20241122.tar.gz", hash = "sha256:196aaf1811cbc1c77ac1d4c4879d5308b6fdf426e56b73baadbca2a1827dadef"}, + {file = "types_setuptools-75.6.0.20241126-py3-none-any.whl", hash = "sha256:aaae310a0e27033c1da8457d4d26ac673b0c8a0de7272d6d4708e263f2ea3b9b"}, + {file = "types_setuptools-75.6.0.20241126.tar.gz", hash = "sha256:7bf25ad4be39740e469f9268b6beddda6e088891fa5a27e985c6ce68bf62ace0"}, ] [[package]] @@ -1007,4 +1007,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "58888751f16e4ddaa6fc85cbb70f4155c933f3bb6ff2427715981a1ac346c6df" +content-hash = "a99c5c1c9f15bc1f023ae438382b1abd4007705c25b4ace778082b019cce5a2a" diff --git a/pyproject.toml b/pyproject.toml index 0ee1a26d..98ffccb9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^3.0.2" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^75.5.0" +types-setuptools = "^75.6.0" pook = "^2.0.1" orjson = "^3.10.12" From 92dabcae60e4039b04bd304f6f1df0517e3ce190 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 21 Dec 2024 13:27:25 -0800 Subject: [PATCH 35/53] Bump certifi from 2024.8.30 to 2024.12.14 (#807) Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.8.30 to 2024.12.14. - [Commits](https://github.com/certifi/python-certifi/compare/2024.08.30...2024.12.14) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3949798f..ca2c7ce4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. [[package]] name = "alabaster" @@ -90,13 +90,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2024.8.30" +version = "2024.12.14" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, - {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, ] [[package]] From a25ece56c824056e478fb53d1d7d90efe21aae9d Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Mon, 23 Dec 2024 08:52:57 -0800 Subject: [PATCH 36/53] Update CODEOWNERS (#808) --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 02c7785c..d7105d15 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @jbonzo @mmoghaddam385 @justinpolygon +* @justinpolygon @penelopus @davidwf-polygonio From 6acf3b4665282ac542c7988a71539372ebe01263 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Mon, 23 Dec 2024 14:37:31 -0800 Subject: [PATCH 37/53] Update websockets & certifi dependencies (#813) * Update pyproject.toml * Bump poetry.lock --- poetry.lock | 2 +- pyproject.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index ca2c7ce4..70633895 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1007,4 +1007,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "a99c5c1c9f15bc1f023ae438382b1abd4007705c25b4ace778082b019cce5a2a" +content-hash = "e73a36a9983ec3dfaa1c08df0fdcc97daeaf9513ae47d89dcf86fc404e0354de" diff --git a/pyproject.toml b/pyproject.toml index 98ffccb9..bc6e6a0b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,8 +26,8 @@ packages = [ [tool.poetry.dependencies] python = "^3.8" urllib3 = ">=1.26.9,<3.0.0" -websockets = ">=10.3,<14.0" -certifi = ">=2022.5.18,<2025.0.0" +websockets = ">=10.3,<15.0" +certifi = ">=2022.5.18,<2026.0.0" [tool.poetry.dev-dependencies] black = "^24.8.0" From 816a8d668d33cb7f65f8480eb4829ec40728f6c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 14:40:48 -0800 Subject: [PATCH 38/53] Bump jinja2 from 3.1.4 to 3.1.5 (#814) Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.4 to 3.1.5. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.4...3.1.5) --- updated-dependencies: - dependency-name: jinja2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 70633895..5c20b91a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -225,13 +225,13 @@ testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-chec [[package]] name = "jinja2" -version = "3.1.4" +version = "3.1.5" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, ] [package.dependencies] From d4e62055547759df0464a4ec013b7b6093baae74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 14:44:15 -0800 Subject: [PATCH 39/53] Bump types-setuptools from 75.6.0.20241126 to 75.6.0.20241223 (#811) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.6.0.20241126 to 75.6.0.20241223. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: justinpolygon <123573436+justinpolygon@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 5c20b91a..845fca15 100644 --- a/poetry.lock +++ b/poetry.lock @@ -835,13 +835,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.6.0.20241126" +version = "75.6.0.20241223" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types_setuptools-75.6.0.20241126-py3-none-any.whl", hash = "sha256:aaae310a0e27033c1da8457d4d26ac673b0c8a0de7272d6d4708e263f2ea3b9b"}, - {file = "types_setuptools-75.6.0.20241126.tar.gz", hash = "sha256:7bf25ad4be39740e469f9268b6beddda6e088891fa5a27e985c6ce68bf62ace0"}, + {file = "types_setuptools-75.6.0.20241223-py3-none-any.whl", hash = "sha256:7cbfd3bf2944f88bbcdd321b86ddd878232a277be95d44c78a53585d78ebc2f6"}, + {file = "types_setuptools-75.6.0.20241223.tar.gz", hash = "sha256:d9478a985057ed48a994c707f548e55aababa85fe1c9b212f43ab5a1fffd3211"}, ] [[package]] From 3c95d68ca2444a3baf90668870bc3a32e4d7c05f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Dec 2024 08:58:51 -0800 Subject: [PATCH 40/53] Bump orjson from 3.10.12 to 3.10.13 (#824) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.12 to 3.10.13. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](https://github.com/ijl/orjson/compare/3.10.12...3.10.13) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 154 ++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 78 insertions(+), 78 deletions(-) diff --git a/poetry.lock b/poetry.lock index 845fca15..59cdd317 100644 --- a/poetry.lock +++ b/poetry.lock @@ -390,86 +390,86 @@ six = ">=1.8.0" [[package]] name = "orjson" -version = "3.10.12" +version = "3.10.13" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.12-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ece01a7ec71d9940cc654c482907a6b65df27251255097629d0dea781f255c6d"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c34ec9aebc04f11f4b978dd6caf697a2df2dd9b47d35aa4cc606cabcb9df69d7"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd6ec8658da3480939c79b9e9e27e0db31dffcd4ba69c334e98c9976ac29140e"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f17e6baf4cf01534c9de8a16c0c611f3d94925d1701bf5f4aff17003677d8ced"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6402ebb74a14ef96f94a868569f5dccf70d791de49feb73180eb3c6fda2ade56"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0000758ae7c7853e0a4a6063f534c61656ebff644391e1f81698c1b2d2fc8cd2"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:888442dcee99fd1e5bd37a4abb94930915ca6af4db50e23e746cdf4d1e63db13"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c1f7a3ce79246aa0e92f5458d86c54f257fb5dfdc14a192651ba7ec2c00f8a05"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:802a3935f45605c66fb4a586488a38af63cb37aaad1c1d94c982c40dcc452e85"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1da1ef0113a2be19bb6c557fb0ec2d79c92ebd2fed4cfb1b26bab93f021fb885"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a3273e99f367f137d5b3fecb5e9f45bcdbfac2a8b2f32fbc72129bbd48789c2"}, - {file = "orjson-3.10.12-cp310-none-win32.whl", hash = "sha256:475661bf249fd7907d9b0a2a2421b4e684355a77ceef85b8352439a9163418c3"}, - {file = "orjson-3.10.12-cp310-none-win_amd64.whl", hash = "sha256:87251dc1fb2b9e5ab91ce65d8f4caf21910d99ba8fb24b49fd0c118b2362d509"}, - {file = "orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:440d9a337ac8c199ff8251e100c62e9488924c92852362cd27af0e67308c16ef"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9e15c06491c69997dfa067369baab3bf094ecb74be9912bdc4339972323f252"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:362d204ad4b0b8724cf370d0cd917bb2dc913c394030da748a3bb632445ce7c4"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b57cbb4031153db37b41622eac67329c7810e5f480fda4cfd30542186f006ae"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:165c89b53ef03ce0d7c59ca5c82fa65fe13ddf52eeb22e859e58c237d4e33b9b"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd"}, - {file = "orjson-3.10.12-cp311-none-win32.whl", hash = "sha256:03b553c02ab39bed249bedd4abe37b2118324d1674e639b33fab3d1dafdf4d79"}, - {file = "orjson-3.10.12-cp311-none-win_amd64.whl", hash = "sha256:8b8713b9e46a45b2af6b96f559bfb13b1e02006f4242c156cbadef27800a55a8"}, - {file = "orjson-3.10.12-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53206d72eb656ca5ac7d3a7141e83c5bbd3ac30d5eccfe019409177a57634b0d"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8010afc2150d417ebda810e8df08dd3f544e0dd2acab5370cfa6bcc0662f8f"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed459b46012ae950dd2e17150e838ab08215421487371fa79d0eced8d1461d70"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dcb9673f108a93c1b52bfc51b0af422c2d08d4fc710ce9c839faad25020bb69"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22a51ae77680c5c4652ebc63a83d5255ac7d65582891d9424b566fb3b5375ee9"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910fdf2ac0637b9a77d1aad65f803bac414f0b06f720073438a7bd8906298192"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24ce85f7100160936bc2116c09d1a8492639418633119a2224114f67f63a4559"}, - {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a76ba5fc8dd9c913640292df27bff80a685bed3a3c990d59aa6ce24c352f8fc"}, - {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ff70ef093895fd53f4055ca75f93f047e088d1430888ca1229393a7c0521100f"}, - {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4244b7018b5753ecd10a6d324ec1f347da130c953a9c88432c7fbc8875d13be"}, - {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:16135ccca03445f37921fa4b585cff9a58aa8d81ebcb27622e69bfadd220b32c"}, - {file = "orjson-3.10.12-cp312-none-win32.whl", hash = "sha256:2d879c81172d583e34153d524fcba5d4adafbab8349a7b9f16ae511c2cee8708"}, - {file = "orjson-3.10.12-cp312-none-win_amd64.whl", hash = "sha256:fc23f691fa0f5c140576b8c365bc942d577d861a9ee1142e4db468e4e17094fb"}, - {file = "orjson-3.10.12-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47962841b2a8aa9a258b377f5188db31ba49af47d4003a32f55d6f8b19006543"}, - {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6334730e2532e77b6054e87ca84f3072bee308a45a452ea0bffbbbc40a67e296"}, - {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accfe93f42713c899fdac2747e8d0d5c659592df2792888c6c5f829472e4f85e"}, - {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7974c490c014c48810d1dede6c754c3cc46598da758c25ca3b4001ac45b703f"}, - {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3f250ce7727b0b2682f834a3facff88e310f52f07a5dcfd852d99637d386e79e"}, - {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f31422ff9486ae484f10ffc51b5ab2a60359e92d0716fcce1b3593d7bb8a9af6"}, - {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5f29c5d282bb2d577c2a6bbde88d8fdcc4919c593f806aac50133f01b733846e"}, - {file = "orjson-3.10.12-cp313-none-win32.whl", hash = "sha256:f45653775f38f63dc0e6cd4f14323984c3149c05d6007b58cb154dd080ddc0dc"}, - {file = "orjson-3.10.12-cp313-none-win_amd64.whl", hash = "sha256:229994d0c376d5bdc91d92b3c9e6be2f1fbabd4cc1b59daae1443a46ee5e9825"}, - {file = "orjson-3.10.12-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7d69af5b54617a5fac5c8e5ed0859eb798e2ce8913262eb522590239db6c6763"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ed119ea7d2953365724a7059231a44830eb6bbb0cfead33fcbc562f5fd8f935"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c5fc1238ef197e7cad5c91415f524aaa51e004be5a9b35a1b8a84ade196f73f"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:43509843990439b05f848539d6f6198d4ac86ff01dd024b2f9a795c0daeeab60"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f72e27a62041cfb37a3de512247ece9f240a561e6c8662276beaf4d53d406db4"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a904f9572092bb6742ab7c16c623f0cdccbad9eeb2d14d4aa06284867bddd31"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:855c0833999ed5dc62f64552db26f9be767434917d8348d77bacaab84f787d7b"}, - {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:897830244e2320f6184699f598df7fb9db9f5087d6f3f03666ae89d607e4f8ed"}, - {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:0b32652eaa4a7539f6f04abc6243619c56f8530c53bf9b023e1269df5f7816dd"}, - {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:36b4aa31e0f6a1aeeb6f8377769ca5d125db000f05c20e54163aef1d3fe8e833"}, - {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5535163054d6cbf2796f93e4f0dbc800f61914c0e3c4ed8499cf6ece22b4a3da"}, - {file = "orjson-3.10.12-cp38-none-win32.whl", hash = "sha256:90a5551f6f5a5fa07010bf3d0b4ca2de21adafbbc0af6cb700b63cd767266cb9"}, - {file = "orjson-3.10.12-cp38-none-win_amd64.whl", hash = "sha256:703a2fb35a06cdd45adf5d733cf613cbc0cb3ae57643472b16bc22d325b5fb6c"}, - {file = "orjson-3.10.12-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f29de3ef71a42a5822765def1febfb36e0859d33abf5c2ad240acad5c6a1b78d"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de365a42acc65d74953f05e4772c974dad6c51cfc13c3240899f534d611be967"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:91a5a0158648a67ff0004cb0df5df7dcc55bfc9ca154d9c01597a23ad54c8d0c"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c47ce6b8d90fe9646a25b6fb52284a14ff215c9595914af63a5933a49972ce36"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0eee4c2c5bfb5c1b47a5db80d2ac7aaa7e938956ae88089f098aff2c0f35d5d8"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35d3081bbe8b86587eb5c98a73b97f13d8f9fea685cf91a579beddacc0d10566"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73c23a6e90383884068bc2dba83d5222c9fcc3b99a0ed2411d38150734236755"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5472be7dc3269b4b52acba1433dac239215366f89dc1d8d0e64029abac4e714e"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7319cda750fca96ae5973efb31b17d97a5c5225ae0bc79bf5bf84df9e1ec2ab6"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:74d5ca5a255bf20b8def6a2b96b1e18ad37b4a122d59b154c458ee9494377f80"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ff31d22ecc5fb85ef62c7d4afe8301d10c558d00dd24274d4bbe464380d3cd69"}, - {file = "orjson-3.10.12-cp39-none-win32.whl", hash = "sha256:c22c3ea6fba91d84fcb4cda30e64aff548fcf0c44c876e681f47d61d24b12e6b"}, - {file = "orjson-3.10.12-cp39-none-win_amd64.whl", hash = "sha256:be604f60d45ace6b0b33dd990a66b4526f1a7a186ac411c942674625456ca548"}, - {file = "orjson-3.10.12.tar.gz", hash = "sha256:0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff"}, + {file = "orjson-3.10.13-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1232c5e873a4d1638ef957c5564b4b0d6f2a6ab9e207a9b3de9de05a09d1d920"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d26a0eca3035619fa366cbaf49af704c7cb1d4a0e6c79eced9f6a3f2437964b6"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d4b6acd7c9c829895e50d385a357d4b8c3fafc19c5989da2bae11783b0fd4977"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1884e53c6818686891cc6fc5a3a2540f2f35e8c76eac8dc3b40480fb59660b00"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a428afb5720f12892f64920acd2eeb4d996595bf168a26dd9190115dbf1130d"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba5b13b8739ce5b630c65cb1c85aedbd257bcc2b9c256b06ab2605209af75a2e"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cab83e67f6aabda1b45882254b2598b48b80ecc112968fc6483fa6dae609e9f0"}, + {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:62c3cc00c7e776c71c6b7b9c48c5d2701d4c04e7d1d7cdee3572998ee6dc57cc"}, + {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:dc03db4922e75bbc870b03fc49734cefbd50fe975e0878327d200022210b82d8"}, + {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:22f1c9a30b43d14a041a6ea190d9eca8a6b80c4beb0e8b67602c82d30d6eec3e"}, + {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b42f56821c29e697c68d7d421410d7c1d8f064ae288b525af6a50cf99a4b1200"}, + {file = "orjson-3.10.13-cp310-cp310-win32.whl", hash = "sha256:0dbf3b97e52e093d7c3e93eb5eb5b31dc7535b33c2ad56872c83f0160f943487"}, + {file = "orjson-3.10.13-cp310-cp310-win_amd64.whl", hash = "sha256:46c249b4e934453be4ff2e518cd1adcd90467da7391c7a79eaf2fbb79c51e8c7"}, + {file = "orjson-3.10.13-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a36c0d48d2f084c800763473020a12976996f1109e2fcb66cfea442fdf88047f"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0065896f85d9497990731dfd4a9991a45b0a524baec42ef0a63c34630ee26fd6"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:92b4ec30d6025a9dcdfe0df77063cbce238c08d0404471ed7a79f309364a3d19"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a94542d12271c30044dadad1125ee060e7a2048b6c7034e432e116077e1d13d2"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3723e137772639af8adb68230f2aa4bcb27c48b3335b1b1e2d49328fed5e244c"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f00c7fb18843bad2ac42dc1ce6dd214a083c53f1e324a0fd1c8137c6436269b"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0e2759d3172300b2f892dee85500b22fca5ac49e0c42cfff101aaf9c12ac9617"}, + {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ee948c6c01f6b337589c88f8e0bb11e78d32a15848b8b53d3f3b6fea48842c12"}, + {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:aa6fe68f0981fba0d4bf9cdc666d297a7cdba0f1b380dcd075a9a3dd5649a69e"}, + {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:dbcd7aad6bcff258f6896abfbc177d54d9b18149c4c561114f47ebfe74ae6bfd"}, + {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2149e2fcd084c3fd584881c7f9d7f9e5ad1e2e006609d8b80649655e0d52cd02"}, + {file = "orjson-3.10.13-cp311-cp311-win32.whl", hash = "sha256:89367767ed27b33c25c026696507c76e3d01958406f51d3a2239fe9e91959df2"}, + {file = "orjson-3.10.13-cp311-cp311-win_amd64.whl", hash = "sha256:dca1d20f1af0daff511f6e26a27354a424f0b5cf00e04280279316df0f604a6f"}, + {file = "orjson-3.10.13-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a3614b00621c77f3f6487792238f9ed1dd8a42f2ec0e6540ee34c2d4e6db813a"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c976bad3996aa027cd3aef78aa57873f3c959b6c38719de9724b71bdc7bd14b"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f74d878d1efb97a930b8a9f9898890067707d683eb5c7e20730030ecb3fb930"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33ef84f7e9513fb13b3999c2a64b9ca9c8143f3da9722fbf9c9ce51ce0d8076e"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd2bcde107221bb9c2fa0c4aaba735a537225104173d7e19cf73f70b3126c993"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:064b9dbb0217fd64a8d016a8929f2fae6f3312d55ab3036b00b1d17399ab2f3e"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0044b0b8c85a565e7c3ce0a72acc5d35cda60793edf871ed94711e712cb637d"}, + {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7184f608ad563032e398f311910bc536e62b9fbdca2041be889afcbc39500de8"}, + {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d36f689e7e1b9b6fb39dbdebc16a6f07cbe994d3644fb1c22953020fc575935f"}, + {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:54433e421618cd5873e51c0e9d0b9fb35f7bf76eb31c8eab20b3595bb713cd3d"}, + {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e1ba0c5857dd743438acecc1cd0e1adf83f0a81fee558e32b2b36f89e40cee8b"}, + {file = "orjson-3.10.13-cp312-cp312-win32.whl", hash = "sha256:a42b9fe4b0114b51eb5cdf9887d8c94447bc59df6dbb9c5884434eab947888d8"}, + {file = "orjson-3.10.13-cp312-cp312-win_amd64.whl", hash = "sha256:3a7df63076435f39ec024bdfeb4c9767ebe7b49abc4949068d61cf4857fa6d6c"}, + {file = "orjson-3.10.13-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:2cdaf8b028a976ebab837a2c27b82810f7fc76ed9fb243755ba650cc83d07730"}, + {file = "orjson-3.10.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48a946796e390cbb803e069472de37f192b7a80f4ac82e16d6eb9909d9e39d56"}, + {file = "orjson-3.10.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7d64f1db5ecbc21eb83097e5236d6ab7e86092c1cd4c216c02533332951afc"}, + {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:711878da48f89df194edd2ba603ad42e7afed74abcd2bac164685e7ec15f96de"}, + {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:cf16f06cb77ce8baf844bc222dbcb03838f61d0abda2c3341400c2b7604e436e"}, + {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8257c3fb8dd7b0b446b5e87bf85a28e4071ac50f8c04b6ce2d38cb4abd7dff57"}, + {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d9c3a87abe6f849a4a7ac8a8a1dede6320a4303d5304006b90da7a3cd2b70d2c"}, + {file = "orjson-3.10.13-cp313-cp313-win32.whl", hash = "sha256:527afb6ddb0fa3fe02f5d9fba4920d9d95da58917826a9be93e0242da8abe94a"}, + {file = "orjson-3.10.13-cp313-cp313-win_amd64.whl", hash = "sha256:b5f7c298d4b935b222f52d6c7f2ba5eafb59d690d9a3840b7b5c5cda97f6ec5c"}, + {file = "orjson-3.10.13-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e49333d1038bc03a25fdfe11c86360df9b890354bfe04215f1f54d030f33c342"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:003721c72930dbb973f25c5d8e68d0f023d6ed138b14830cc94e57c6805a2eab"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:63664bf12addb318dc8f032160e0f5dc17eb8471c93601e8f5e0d07f95003784"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6066729cf9552d70de297b56556d14b4f49c8f638803ee3c90fd212fa43cc6af"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8a1152e2761025c5d13b5e1908d4b1c57f3797ba662e485ae6f26e4e0c466388"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69b21d91c5c5ef8a201036d207b1adf3aa596b930b6ca3c71484dd11386cf6c3"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b12a63f48bb53dba8453d36ca2661f2330126d54e26c1661e550b32864b28ce3"}, + {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a5a7624ab4d121c7e035708c8dd1f99c15ff155b69a1c0affc4d9d8b551281ba"}, + {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:0fee076134398d4e6cb827002468679ad402b22269510cf228301b787fdff5ae"}, + {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ae537fcf330b3947e82c6ae4271e092e6cf16b9bc2cef68b14ffd0df1fa8832a"}, + {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f81b26c03f5fb5f0d0ee48d83cea4d7bc5e67e420d209cc1a990f5d1c62f9be0"}, + {file = "orjson-3.10.13-cp38-cp38-win32.whl", hash = "sha256:0bc858086088b39dc622bc8219e73d3f246fb2bce70a6104abd04b3a080a66a8"}, + {file = "orjson-3.10.13-cp38-cp38-win_amd64.whl", hash = "sha256:3ca6f17467ebbd763f8862f1d89384a5051b461bb0e41074f583a0ebd7120e8e"}, + {file = "orjson-3.10.13-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:4a11532cbfc2f5752c37e84863ef8435b68b0e6d459b329933294f65fa4bda1a"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c96d2fb80467d1d0dfc4d037b4e1c0f84f1fe6229aa7fea3f070083acef7f3d7"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dda4ba4d3e6f6c53b6b9c35266788053b61656a716a7fef5c884629c2a52e7aa"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4f998bbf300690be881772ee9c5281eb9c0044e295bcd4722504f5b5c6092ff"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1cc42ed75b585c0c4dc5eb53a90a34ccb493c09a10750d1a1f9b9eff2bd12"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03b0f29d485411e3c13d79604b740b14e4e5fb58811743f6f4f9693ee6480a8f"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:233aae4474078d82f425134bb6a10fb2b3fc5a1a1b3420c6463ddd1b6a97eda8"}, + {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e384e330a67cf52b3597ee2646de63407da6f8fc9e9beec3eaaaef5514c7a1c9"}, + {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4222881d0aab76224d7b003a8e5fdae4082e32c86768e0e8652de8afd6c4e2c1"}, + {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e400436950ba42110a20c50c80dff4946c8e3ec09abc1c9cf5473467e83fd1c5"}, + {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f47c9e7d224b86ffb086059cdcf634f4b3f32480f9838864aa09022fe2617ce2"}, + {file = "orjson-3.10.13-cp39-cp39-win32.whl", hash = "sha256:a9ecea472f3eb653e1c0a3d68085f031f18fc501ea392b98dcca3e87c24f9ebe"}, + {file = "orjson-3.10.13-cp39-cp39-win_amd64.whl", hash = "sha256:5385935a73adce85cc7faac9d396683fd813566d3857fa95a0b521ef84a5b588"}, + {file = "orjson-3.10.13.tar.gz", hash = "sha256:eb9bfb14ab8f68d9d9492d4817ae497788a15fd7da72e14dfabc289c3bb088ec"}, ] [[package]] @@ -1007,4 +1007,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "e73a36a9983ec3dfaa1c08df0fdcc97daeaf9513ae47d89dcf86fc404e0354de" +content-hash = "183ba57707ae02b4b27fc68f294181edf9f15d33bd3c24dcfb58c9fdc4e3e93a" diff --git a/pyproject.toml b/pyproject.toml index bc6e6a0b..83794997 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^75.6.0" pook = "^2.0.1" -orjson = "^3.10.12" +orjson = "^3.10.13" [build-system] requires = ["poetry-core>=1.0.0"] From 0ebde261f6ba9005815e2c8de32efd7a97ae9bf1 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Wed, 8 Jan 2025 05:16:07 -0800 Subject: [PATCH 41/53] Spec update 2024-12-24 (#815) * Spec update 2024-12-24 * Added latest updates --- .polygon/rest.json | 457 +++++++++++++++++++++++++++++++++++++--- .polygon/websocket.json | 8 +- 2 files changed, 426 insertions(+), 39 deletions(-) diff --git a/.polygon/rest.json b/.polygon/rest.json index 4eb0f967..425d2c2d 100644 --- a/.polygon/rest.json +++ b/.polygon/rest.json @@ -14644,7 +14644,7 @@ "volume": 37 }, "ticker": "NCLH", - "type": "stock" + "type": "stocks" }, { "last_updated": 1679597116344223500, @@ -14895,6 +14895,16 @@ "format": "double", "type": "number" }, + "regular_trading_change": { + "description": "Today's change in regular trading hours, difference between current price and previous trading day's close, otherwise difference between today's close and previous day's close.", + "format": "double", + "type": "number" + }, + "regular_trading_change_percent": { + "description": "Today's regular trading change as a percentage.", + "format": "double", + "type": "number" + }, "volume": { "description": "The trading volume for the asset for the day.", "format": "double", @@ -14931,15 +14941,7 @@ } }, "required": [ - "ticker", - "name", - "price", - "branding", - "market_status", - "type", - "session", - "options", - "last_updated" + "ticker" ], "type": "object", "x-polygon-go-type": { @@ -18576,6 +18578,11 @@ "properties": { "sentiment": { "description": "The sentiment of the insight.", + "enum": [ + "positive", + "neutral", + "negative" + ], "type": "string" }, "sentiment_reasoning": { @@ -27213,8 +27220,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ask", "bid", "last_updated", @@ -27288,9 +27293,6 @@ } }, "required": [ - "last_updated", - "timeframe", - "participant_timestamp", "price", "size" ], @@ -27378,6 +27380,16 @@ "format": "double", "type": "number" }, + "regular_trading_change": { + "description": "Today's change in regular trading hours, difference between current price and previous trading day's close, otherwise difference between today's close and previous day's close.", + "format": "double", + "type": "number" + }, + "regular_trading_change_percent": { + "description": "Today's regular trading change as a percentage.", + "format": "double", + "type": "number" + }, "volume": { "description": "The trading volume for the asset for the day.", "format": "double", @@ -27454,8 +27466,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ticker", "change_to_break_even" ], @@ -27769,9 +27779,7 @@ } }, "required": [ - "ticker", - "timeframe", - "last_updated" + "ticker" ], "type": "object", "x-polygon-go-type": { @@ -28030,7 +28038,8 @@ "bid": 120.28, "bid_size": 8, "last_updated": 1605195918507251700, - "midpoint": 120.29 + "midpoint": 120.29, + "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ @@ -28131,7 +28140,6 @@ } }, "required": [ - "last_updated", "open", "high", "low", @@ -28305,8 +28313,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ask", "ask_size", "bid_size", @@ -28359,7 +28365,6 @@ } }, "required": [ - "timeframe", "exchange", "price", "sip_timestamp", @@ -28416,8 +28421,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ticker", "change_to_break_even" ], @@ -28432,7 +28435,6 @@ "last_quote", "underlying_asset", "details", - "cha", "break_even_price", "open_interest" ], @@ -28667,7 +28669,6 @@ } }, "required": [ - "last_updated", "open", "high", "low", @@ -28841,8 +28842,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ask", "ask_size", "bid_size", @@ -28895,7 +28894,6 @@ } }, "required": [ - "timeframe", "exchange", "price", "sip_timestamp", @@ -28952,8 +28950,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ticker", "change_to_break_even" ], @@ -28968,7 +28964,6 @@ "last_quote", "underlying_asset", "details", - "cha", "break_even_price", "open_interest" ], @@ -30502,6 +30497,388 @@ } } }, + "/vX/reference/ipos": { + "get": { + "description": "The IPOs API provides access to detailed information about Initial Public Offerings (IPOs), including both upcoming and historical events. With this API, you can query for a comprehensive list of IPOs, along with key details such as the issuer name, ticker symbol, ISIN, IPO date, number of shares offered, expected price range, and final offering price. You can filter the results by status to focus on new, rumors, pending, historical, and more.", + "operationId": "ListIPOs", + "parameters": [ + { + "description": "Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc.", + "in": "query", + "name": "ticker", + "schema": { + "type": "string" + } + }, + { + "description": "Specify a us_code. This is a unique nine-character alphanumeric code that identifies a North American financial security for the purposes of facilitating clearing and settlement of trades.", + "in": "query", + "name": "us_code", + "schema": { + "type": "string" + } + }, + { + "description": "Specify an International Securities Identification Number (ISIN). This is a unique twelve-digit code that is assigned to every security issuance in the world.", + "in": "query", + "name": "isin", + "schema": { + "type": "string" + } + }, + { + "description": "Specify a listing date. This is the first trading date for the newly listed entity.", + "in": "query", + "name": "listing_date", + "schema": { + "format": "date", + "type": "string" + }, + "x-polygon-filter-field": { + "range": true, + "type": "string" + } + }, + { + "description": "Specify an IPO status.", + "in": "query", + "name": "ipo_status", + "schema": { + "enum": [ + "direct_listing_process", + "history", + "new", + "pending", + "postponed", + "rumor", + "withdrawn" + ], + "type": "string" + } + }, + { + "description": "Range by listing_date.", + "in": "query", + "name": "listing_date.gte", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "Range by listing_date.", + "in": "query", + "name": "listing_date.gt", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "Range by listing_date.", + "in": "query", + "name": "listing_date.lte", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "Range by listing_date.", + "in": "query", + "name": "listing_date.lt", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "Order results based on the `sort` field.", + "in": "query", + "name": "order", + "schema": { + "default": "desc", + "enum": [ + "asc", + "desc" + ], + "example": "asc", + "type": "string" + } + }, + { + "description": "Limit the number of results returned, default is 10 and max is 1000.", + "in": "query", + "name": "limit", + "schema": { + "default": 10, + "example": 10, + "maximum": 1000, + "minimum": 1, + "type": "integer" + } + }, + { + "description": "Sort field used for ordering.", + "in": "query", + "name": "sort", + "schema": { + "default": "listing_date", + "enum": [ + "listing_date", + "ticker", + "last_updated", + "security_type", + "issuer_name", + "currency_code", + "isin", + "us_code", + "final_issue_price", + "min_shares_offered", + "max_shares_offered", + "lowest_offer_price", + "highest_offer_price", + "total_offer_size", + "shares_outstanding", + "primary_exchange", + "lot_size", + "security_description", + "ipo_status" + ], + "example": "listing_date", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "example": { + "next_url": "https://api.polygon.io/vX/reference/ipos?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", + "request_id": "6a7e466379af0a71039d60cc78e72282", + "results": [ + { + "currency_code": "USD", + "final_issue_price": 17, + "highest_offer_price": 17, + "ipo_status": "history", + "isin": "US75383L1026", + "issue_end_date": "2024-06-06", + "issue_start_date": "2024-06-01", + "issuer_name": "Rapport Therapeutics Inc.", + "last_updated": "2024-06-27", + "listing_date": "2024-06-07", + "lot_size": 100, + "lowest_offer_price": 17, + "max_shares_offered": 8000000, + "min_shares_offered": 1000000, + "primary_exchange": "XNAS", + "security_description": "Ordinary Shares", + "security_type": "CS", + "shares_outstanding": 35376457, + "ticker": "RAPP", + "total_offer_size": 136000000, + "us_code": "75383L102" + } + ], + "status": "OK" + }, + "schema": { + "properties": { + "next_url": { + "description": "If present, this value can be used to fetch the next page of data.", + "type": "string" + }, + "request_id": { + "description": "A request id assigned by the server.", + "type": "string" + }, + "results": { + "description": "An array of results containing the requested data.", + "items": { + "properties": { + "currency_code": { + "description": "Underlying currency of the security.", + "example": "USD", + "type": "string" + }, + "final_issue_price": { + "description": "The price set by the company and its underwriters before the IPO goes live.", + "example": 14.5, + "format": "float", + "type": "number" + }, + "highest_offer_price": { + "description": "The highest price within the IPO price range that the company might use to price the shares.", + "example": 20, + "format": "float", + "type": "number" + }, + "ipo_status": { + "description": "The status of the IPO event. IPO events start out as status \"rumor\" or \"pending\". On listing day, the status changes to \"new\". After the listing day, the status changes to \"history\".\n\nThe status \"direct_listing_process\" corresponds to a type of offering where, instead of going through all the IPO processes, the company decides to list its shares directly on an exchange, without using an investment bank or other intermediaries. This is called a direct listing, direct placement, or direct public offering (DPO).", + "enum": [ + "direct_listing_process", + "history", + "new", + "pending", + "postponed", + "rumor", + "withdrawn" + ], + "example": "history", + "type": "string" + }, + "isin": { + "description": "International Securities Identification Number. This is a unique twelve-digit code that is assigned to every security issuance in the world.", + "example": "US0378331005", + "type": "string" + }, + "issuer_name": { + "description": "Name of issuer.", + "example": "Apple Inc.", + "type": "string" + }, + "last_updated": { + "description": "The date when the IPO event was last modified.", + "example": "2023-01-02", + "format": "date", + "type": "string" + }, + "listing_date": { + "description": "First trading date for the newly listed entity.", + "example": "2023-02-01", + "format": "date", + "type": "string" + }, + "lot_size": { + "description": "The minimum number of shares that can be bought or sold in a single transaction.", + "example": 100, + "type": "number" + }, + "lowest_offer_price": { + "description": "The lowest price within the IPO price range that the company is willing to offer its shares to investors.", + "example": 10, + "format": "float", + "type": "number" + }, + "max_shares_offered": { + "description": "The upper limit of the shares that the company is offering to investors.", + "example": 1000, + "type": "number" + }, + "min_shares_offered": { + "description": "The lower limit of shares that the company is willing to sell in the IPO.", + "example": 1000, + "type": "number" + }, + "primary_exchange": { + "description": "Market Identifier Code (MIC) of the primary exchange where the security is listed. The Market Identifier Code (MIC) (ISO 10383) is a unique identification code used to identify securities trading exchanges, regulated and non-regulated trading markets.", + "example": "XNAS", + "type": "string" + }, + "security_description": { + "description": "Description of the security.", + "example": "Ordinary Shares - Class A", + "type": "string" + }, + "security_type": { + "description": "The classification of the stock. For example, \"CS\" stands for Common Stock.", + "example": "CS", + "type": "string" + }, + "shares_outstanding": { + "description": "The total number of shares that the company has issued and are held by investors.", + "example": 1000000, + "type": "number" + }, + "ticker": { + "description": "The ticker symbol of the IPO event.", + "example": "AAPL", + "type": "string" + }, + "total_offer_size": { + "description": "The total amount raised by the company for IPO.", + "example": 1000000, + "format": "float", + "type": "number" + }, + "us_code": { + "description": "This is a unique nine-character alphanumeric code that identifies a North American financial security for the purposes of facilitating clearing and settlement of trades.", + "example": 37833100, + "type": "string" + } + }, + "required": [ + "name", + "last_updated", + "primary_exchange", + "security_type", + "security_description", + "ipo_status" + ], + "type": "object", + "x-polygon-go-type": { + "name": "IPOsResult" + } + }, + "type": "array" + }, + "status": { + "description": "The status of this request's response.", + "type": "string" + } + }, + "type": "object" + } + } + }, + "description": "A list of IPO events." + } + }, + "summary": "IPOs", + "tags": [ + "reference:stocks:ipos" + ], + "x-polygon-entitlement-data-type": { + "description": "Reference data", + "name": "reference" + }, + "x-polygon-paginate": { + "limit": { + "default": 10, + "max": 1000 + }, + "order": { + "default": "desc" + }, + "sort": { + "default": "listing_date", + "enum": [ + "listing_date", + "ticker", + "last_updated", + "security_type", + "issuer_name", + "currency_code", + "isin", + "us_code", + "final_issue_price", + "min_shares_offered", + "max_shares_offered", + "lowest_offer_price", + "highest_offer_price", + "total_offer_size", + "shares_outstanding", + "primary_exchange", + "lot_size", + "security_description", + "ipo_status" + ] + } + } + } + }, "/vX/reference/tickers/taxonomies": { "get": { "description": "Many investors place a high value on sector data. It is used to measure economic activity, identify peers and competitors, build ETF products, quantify market share, and compare company performance. However, there are some limitations to industry standard sectors:\n* They have difficulty identifying the primary area of activity for large, complex businesses.\n* Studies confirm significant disagreement between classification schemes when attempting to categorize the same companies.\n* The systems' hierarchical nature is inflexible and struggles to convey business nuances.\n
\n
\nAs a result, we've developed a new taxonomy to supplement existing sector classifications. The taxonomy is created by reviewing related 10K filings to create a set of structured categories and tags.\n
\n
\nThe categories are based on company operating models and are industry agnostic. Our current version only supports one category, Revenue Streams, with future plans to support more.\n
\n
\nThe tags define a specific type within the category. Within the Revenue Streams category, for example, tags for \"product sales\" and \"advertising\" may be found. A company may have many tags in a given category. The complete Revenue Streams taxonomy is shown below.\n
\n
\nOur taxonomy is powered by AI and is currently in early beta testing. You should expect some inaccuracies in the responses.\n
\n
\n## **Revenue Streams**\n *Latest Revision (7/7/2023)*\n
\n
\n- **Physical Product Sales:**\n Revenue generated from the sale of tangible goods or physical products to customers, either in-store or online.\n - Consumer Goods\n - Industrial Goods\n - Electronics\n - Vehicles\n - Healthcare Products\n
\n
\n- **Digital Product Sales:**\n Revenue earned from the sale of digital goods or products, such as software licenses, e-books, music downloads, or digital media content. It also includes revenue obtained by selling aggregated, anonymized, or processed data to third parties for market research, analytics, or other purposes.\n - Software\n - E-books and Digital Media\n - Mobile Applications\n - Games\n - Online Courses\n - Market Research Data\n - Customer Behavior Data\n
\n
\n- **Professional Services:**\n Revenue obtained by providing specialized services, expertise, or consulting to clients in exchange for fees. This includes services offered by professionals such as lawyers, accountants, or consultants.\n - Consulting\n - Legal Services\n - Financial Services\n - Marketing Services\n - Construction Services\n - Education & Tutoring\n
\n
\n- **Consumer Services:**\n Revenue earned from providing services directly to consumers, including services like healthcare, personal grooming, fitness, or hospitality.\n - Dining & Hospitality\n - Personal Care\n - Entertainment & Recreation\n - Fitness & Wellness\n - Travel & Tourism\n - Transportation\n - Home Services\n - Child & Family Care\n - Automotive\n
\n
\n- **Subscription-based Revenue:**\n Revenue obtained from recurring fees charged to customers for accessing a product or service over a defined period. This includes revenue from subscription-based models, membership programs, or software-as-a-service (SaaS) offerings.\n - Software as a Service (SaaS)\n - Streaming Services\n - Physical Media\n - Memberships\n
\n
\n- **Licensing and Royalties:**\n Revenue generated from the licensing of intellectual property rights to third parties, including franchise rights, patent licensing, brand licensing, and the receipt of royalties for authorized use of intellectual property like music royalties, book royalties, or patent royalties.\n - Franchise Fees\n - Patent Licensing\n - Brand Licensing\n - Media Royalties\n
\n
\n- **Advertising:**\n Revenue generated by displaying ads or promotional content to customers, whether through traditional or digital advertising channels, including revenue from display ads, sponsored content, or affiliate marketing.\n - Print Advertising\n - Online Display Advertising\n - Social Media Advertising\n - Influencer Marketing\n
\n
\n- **Commission-Based Revenue:**\n Revenue earned by acting as an intermediary and receiving a percentage or commission on sales made on behalf of another party. This includes revenue from affiliate programs, referral fees, or any other commission-based revenue models.\n - Real Estate Commissions\n - Affiliate Marketing Commissions\n - Online Marketplace Commissions\n
\n
\n- **Rentals or Leasing:**\n Revenue earned by leasing or renting out assets, properties, or equipment to customers, including rental income from real estate properties, equipment leasing, or vehicle rentals.\n - Property Rentals\n - Equipment Leasing\n - Vehicle Rentals", @@ -31437,6 +31814,16 @@ "paths": [ "/v1/related-companies/{ticker}" ] + }, + { + "paths": [ + "/vX/reference/ipos" + ] + }, + { + "paths": [ + "/vX/reference/short-interest/{identifier_type}/{identifier}" + ] } ] } diff --git a/.polygon/websocket.json b/.polygon/websocket.json index f565e7d1..ff09762a 100644 --- a/.polygon/websocket.json +++ b/.polygon/websocket.json @@ -277,7 +277,7 @@ }, "t": { "type": "integer", - "description": "The Timestamp in Unix MS." + "description": "The SIP timestamp in Unix MS." }, "q": { "type": "integer", @@ -407,7 +407,7 @@ }, "t": { "type": "integer", - "description": "The Timestamp in Unix MS." + "description": "The SIP timestamp in Unix MS." }, "q": { "type": "integer", @@ -3972,7 +3972,7 @@ }, "t": { "type": "integer", - "description": "The Timestamp in Unix MS." + "description": "The SIP timestamp in Unix MS." }, "q": { "type": "integer", @@ -4041,7 +4041,7 @@ }, "t": { "type": "integer", - "description": "The Timestamp in Unix MS." + "description": "The SIP timestamp in Unix MS." }, "q": { "type": "integer", From d89bcecfa9c6f7beb7e518d6b47a108305e21e70 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Wed, 8 Jan 2025 05:23:31 -0800 Subject: [PATCH 42/53] Add IPOs support (#816) --- examples/rest/stocks-ipos.py | 13 ++++++++ polygon/rest/models/tickers.py | 57 ++++++++++++++++++++++++++++++++++ polygon/rest/vX.py | 45 +++++++++++++++++++++++++-- 3 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 examples/rest/stocks-ipos.py diff --git a/examples/rest/stocks-ipos.py b/examples/rest/stocks-ipos.py new file mode 100644 index 00000000..54852335 --- /dev/null +++ b/examples/rest/stocks-ipos.py @@ -0,0 +1,13 @@ +from polygon import RESTClient + +# docs +# https://polygon.io/docs/stocks/get_vx_reference_ipos + +# client = RESTClient("XXXXXX") # hardcoded api_key is used +client = RESTClient() # POLYGON_API_KEY environment variable is used + +ipos = [] +for ipo in client.vx.list_ipos(ticker="RDDT"): + ipos.append(ipo) + +print(ipos) diff --git a/polygon/rest/models/tickers.py b/polygon/rest/models/tickers.py index 2554927e..317275ed 100644 --- a/polygon/rest/models/tickers.py +++ b/polygon/rest/models/tickers.py @@ -253,3 +253,60 @@ class TickerChangeResults: @staticmethod def from_dict(d): return TickerChangeResults(**d) + + +from typing import Optional +from ...modelclass import modelclass + + +@modelclass +class IPOListing: + """ + IPO Listing data as returned by the /vX/reference/ipos endpoint. + """ + + announced_date: Optional[str] = None + currency_code: Optional[str] = None + final_issue_price: Optional[float] = None + highest_offer_price: Optional[float] = None + ipo_status: Optional[str] = None + isin: Optional[str] = None + issuer_name: Optional[str] = None + last_updated: Optional[str] = None + listing_date: Optional[str] = None + lot_size: Optional[int] = None + lowest_offer_price: Optional[float] = None + max_shares_offered: Optional[int] = None + min_shares_offered: Optional[int] = None + primary_exchange: Optional[str] = None + security_description: Optional[str] = None + security_type: Optional[str] = None + shares_outstanding: Optional[int] = None + ticker: Optional[str] = None + total_offer_size: Optional[float] = None + us_code: Optional[str] = None + + @staticmethod + def from_dict(d): + return IPOListing( + announced_date=d.get("announced_date"), + currency_code=d.get("currency_code"), + final_issue_price=d.get("final_issue_price"), + highest_offer_price=d.get("highest_offer_price"), + ipo_status=d.get("ipo_status"), + isin=d.get("isin"), + issuer_name=d.get("issuer_name"), + last_updated=d.get("last_updated"), + listing_date=d.get("listing_date"), + lot_size=d.get("lot_size"), + lowest_offer_price=d.get("lowest_offer_price"), + max_shares_offered=d.get("max_shares_offered"), + min_shares_offered=d.get("min_shares_offered"), + primary_exchange=d.get("primary_exchange"), + security_description=d.get("security_description"), + security_type=d.get("security_type"), + shares_outstanding=d.get("shares_outstanding"), + ticker=d.get("ticker"), + total_offer_size=d.get("total_offer_size"), + us_code=d.get("us_code"), + ) diff --git a/polygon/rest/vX.py b/polygon/rest/vX.py index a7c13a2f..228134d4 100644 --- a/polygon/rest/vX.py +++ b/polygon/rest/vX.py @@ -1,6 +1,6 @@ from .base import BaseClient -from typing import Optional, Any, Dict, Union, Iterator -from .models import StockFinancial, Timeframe, Sort, Order +from typing import Optional, Any, Dict, List, Union, Iterator +from .models import StockFinancial, IPOListing, Timeframe, Sort, Order from urllib3 import HTTPResponse from datetime import datetime, date @@ -70,3 +70,44 @@ def list_stock_financials( deserializer=StockFinancial.from_dict, options=options, ) + + def list_ipos( + self, + ticker: Optional[str] = None, + us_code: Optional[str] = None, + isin: Optional[str] = None, + listing_date: Optional[str] = None, + ipo_status: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[IPOListing], HTTPResponse]: + """ + Retrieve upcoming or historical IPOs. + + :param ticker: Filter by a case-sensitive ticker symbol. + :param us_code: Filter by a US code (unique identifier for a North American financial security). + :param isin: Filter by an International Securities Identification Number (ISIN). + :param listing_date: Filter by the listing date (YYYY-MM-DD). + :param ipo_status: Filter by IPO status (e.g. "new", "pending", "history", etc.). + :param limit: Limit the number of results per page. Default 10, max 1000. + :param sort: Field to sort by. Default is "listing_date". + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". + :param params: Additional query params. + :param raw: Return raw HTTPResponse object if True, else return List[IPOListing]. + :param options: RequestOptionBuilder for additional headers or params. + :return: A list of IPOListing objects or HTTPResponse if raw=True. + """ + url = "/vX/reference/ipos" + + return self._paginate( + path=url, + params=self._get_params(self.list_ipos, locals()), + deserializer=IPOListing.from_dict, + raw=raw, + result_key="results", + options=options, + ) From bbf0b29b7ab9cc207f89fa94f36ba7facbb6f504 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Thu, 9 Jan 2025 08:03:02 -0800 Subject: [PATCH 43/53] Update StockFinancial model (net income, EPS, and parent net income loss) (#817) * Update StockFinancial model (net income, EPS, and parent net income loss) * Fix test * Patch json to remove other_than_fixed_noncurrent_assets * Removed top level values to match spec * Updated StockFinancial to remove nested values * Update comment * Remove vX experimental test * Refactored to use typed classes and explicit fields rather than raw dictionaries. * Fix lint --- examples/rest/stocks-stock_financials.py | 9 +- polygon/rest/models/financials.py | 721 ++++++++++++------- test_rest/mocks/vX/reference/financials.json | 6 - test_rest/test_financials.py | 234 ------ 4 files changed, 456 insertions(+), 514 deletions(-) delete mode 100644 test_rest/test_financials.py diff --git a/examples/rest/stocks-stock_financials.py b/examples/rest/stocks-stock_financials.py index dc356494..a75087e7 100644 --- a/examples/rest/stocks-stock_financials.py +++ b/examples/rest/stocks-stock_financials.py @@ -8,6 +8,13 @@ client = RESTClient() # POLYGON_API_KEY environment variable is used financials = [] -for f in client.vx.list_stock_financials("AAPL"): +for f in client.vx.list_stock_financials("AAPL", filing_date="2024-11-01"): financials.append(f) + + # get diluted_earnings_per_share + # print(f.financials.income_statement.diluted_earnings_per_share) + + # get net_income_loss + # print(f.financials.income_statement.net_income_loss) + print(financials) diff --git a/polygon/rest/models/financials.py b/polygon/rest/models/financials.py index 1a480c48..5443e4f6 100644 --- a/polygon/rest/models/financials.py +++ b/polygon/rest/models/financials.py @@ -1,328 +1,503 @@ -from typing import Optional, Dict +from dataclasses import dataclass +from typing import Any, Dict, List, Optional from ...modelclass import modelclass @modelclass +@dataclass class DataPoint: - "An individual financial data point." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None + """Represents a single numeric or textual data point in the financials.""" - @staticmethod - def from_dict(d): - return DataPoint(**d) - - -@modelclass -class ExchangeGainsLosses: - "Contains exchange gains losses data for a cash flow statement." - formula: Optional[str] = None label: Optional[str] = None order: Optional[int] = None unit: Optional[str] = None value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return ExchangeGainsLosses(**d) - - -@modelclass -class NetCashFlow: - "Contains net cash flow data for a cash flow statement." + derived_from: Optional[List[str]] = None formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None + source: Optional[Dict[str, str]] = None xpath: Optional[str] = None @staticmethod - def from_dict(d): - return NetCashFlow(**d) + def from_dict(d: Optional[Dict[str, Any]]) -> "DataPoint": + if not d: + return DataPoint() + return DataPoint( + label=d.get("label"), + order=d.get("order"), + unit=d.get("unit"), + value=d.get("value"), + derived_from=d.get("derived_from"), + formula=d.get("formula"), + source=d.get("source"), + xpath=d.get("xpath"), + ) +@dataclass @modelclass -class NetCashFlowFromFinancingActivities: - "Contains net cash flow from financing activities data for a cash flow statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None +class BalanceSheet: + assets: Optional[DataPoint] = None + current_assets: Optional[DataPoint] = None + cash: Optional[DataPoint] = None + accounts_receivable: Optional[DataPoint] = None + inventory: Optional[DataPoint] = None + prepaid_expenses: Optional[DataPoint] = None + other_current_assets: Optional[DataPoint] = None + noncurrent_assets: Optional[DataPoint] = None + long_term_investments: Optional[DataPoint] = None + fixed_assets: Optional[DataPoint] = None + intangible_assets: Optional[DataPoint] = None + noncurrent_prepaid_expense: Optional[DataPoint] = None + other_noncurrent_assets: Optional[DataPoint] = None + liabilities: Optional[DataPoint] = None + current_liabilities: Optional[DataPoint] = None + accounts_payable: Optional[DataPoint] = None + interest_payable: Optional[DataPoint] = None + wages: Optional[DataPoint] = None + other_current_liabilities: Optional[DataPoint] = None + noncurrent_liabilities: Optional[DataPoint] = None + long_term_debt: Optional[DataPoint] = None + other_noncurrent_liabilities: Optional[DataPoint] = None + commitments_and_contingencies: Optional[DataPoint] = None + redeemable_noncontrolling_interest: Optional[DataPoint] = None + redeemable_noncontrolling_interest_common: Optional[DataPoint] = None + redeemable_noncontrolling_interest_other: Optional[DataPoint] = None + redeemable_noncontrolling_interest_preferred: Optional[DataPoint] = None + equity: Optional[DataPoint] = None + equity_attributable_to_noncontrolling_interest: Optional[DataPoint] = None + equity_attributable_to_parent: Optional[DataPoint] = None + temporary_equity: Optional[DataPoint] = None + temporary_equity_attributable_to_parent: Optional[DataPoint] = None + liabilities_and_equity: Optional[DataPoint] = None @staticmethod - def from_dict(d): - return NetCashFlowFromFinancingActivities(**d) + def from_dict(d: Optional[Dict[str, Any]]) -> "BalanceSheet": + if not d: + return BalanceSheet() + return BalanceSheet( + assets=DataPoint.from_dict(d.get("assets")), + current_assets=DataPoint.from_dict(d.get("current_assets")), + cash=DataPoint.from_dict(d.get("cash")), + accounts_receivable=DataPoint.from_dict(d.get("accounts_receivable")), + inventory=DataPoint.from_dict(d.get("inventory")), + prepaid_expenses=DataPoint.from_dict(d.get("prepaid_expenses")), + other_current_assets=DataPoint.from_dict(d.get("other_current_assets")), + noncurrent_assets=DataPoint.from_dict(d.get("noncurrent_assets")), + long_term_investments=DataPoint.from_dict(d.get("long_term_investments")), + fixed_assets=DataPoint.from_dict(d.get("fixed_assets")), + intangible_assets=DataPoint.from_dict(d.get("intangible_assets")), + noncurrent_prepaid_expense=DataPoint.from_dict( + d.get("noncurrent_prepaid_expense") + ), + other_noncurrent_assets=DataPoint.from_dict( + d.get("other_noncurrent_assets") + ), + liabilities=DataPoint.from_dict(d.get("liabilities")), + current_liabilities=DataPoint.from_dict(d.get("current_liabilities")), + accounts_payable=DataPoint.from_dict(d.get("accounts_payable")), + interest_payable=DataPoint.from_dict(d.get("interest_payable")), + wages=DataPoint.from_dict(d.get("wages")), + other_current_liabilities=DataPoint.from_dict( + d.get("other_current_liabilities") + ), + noncurrent_liabilities=DataPoint.from_dict(d.get("noncurrent_liabilities")), + long_term_debt=DataPoint.from_dict(d.get("long_term_debt")), + other_noncurrent_liabilities=DataPoint.from_dict( + d.get("other_noncurrent_liabilities") + ), + commitments_and_contingencies=DataPoint.from_dict( + d.get("commitments_and_contingencies") + ), + redeemable_noncontrolling_interest=DataPoint.from_dict( + d.get("redeemable_noncontrolling_interest") + ), + redeemable_noncontrolling_interest_common=DataPoint.from_dict( + d.get("redeemable_noncontrolling_interest_common") + ), + redeemable_noncontrolling_interest_other=DataPoint.from_dict( + d.get("redeemable_noncontrolling_interest_other") + ), + redeemable_noncontrolling_interest_preferred=DataPoint.from_dict( + d.get("redeemable_noncontrolling_interest_preferred") + ), + equity=DataPoint.from_dict(d.get("equity")), + equity_attributable_to_noncontrolling_interest=DataPoint.from_dict( + d.get("equity_attributable_to_noncontrolling_interest") + ), + equity_attributable_to_parent=DataPoint.from_dict( + d.get("equity_attributable_to_parent") + ), + temporary_equity=DataPoint.from_dict(d.get("temporary_equity")), + temporary_equity_attributable_to_parent=DataPoint.from_dict( + d.get("temporary_equity_attributable_to_parent") + ), + liabilities_and_equity=DataPoint.from_dict(d.get("liabilities_and_equity")), + ) +@dataclass @modelclass class CashFlowStatement: - "Contains cash flow statement data." - exchange_gains_losses: Optional[ExchangeGainsLosses] = None - net_cash_flow: Optional[NetCashFlow] = None - net_cash_flow_from_financing_activities: Optional[ - NetCashFlowFromFinancingActivities - ] = None + net_cash_flow_from_operating_activities: Optional[DataPoint] = None + net_cash_flow_from_operating_activities_continuing: Optional[DataPoint] = None + net_cash_flow_from_operating_activities_discontinued: Optional[DataPoint] = None + net_cash_flow_from_investing_activities: Optional[DataPoint] = None + net_cash_flow_from_investing_activities_continuing: Optional[DataPoint] = None + net_cash_flow_from_investing_activities_discontinued: Optional[DataPoint] = None + net_cash_flow_from_financing_activities: Optional[DataPoint] = None + net_cash_flow_from_financing_activities_continuing: Optional[DataPoint] = None + net_cash_flow_from_financing_activities_discontinued: Optional[DataPoint] = None + exchange_gains_losses: Optional[DataPoint] = None + net_cash_flow: Optional[DataPoint] = None + net_cash_flow_continuing: Optional[DataPoint] = None + net_cash_flow_discontinued: Optional[DataPoint] = None @staticmethod - def from_dict(d): + def from_dict(d: Optional[Dict[str, Any]]) -> "CashFlowStatement": + if not d: + return CashFlowStatement() return CashFlowStatement( - exchange_gains_losses=( - None - if "exchange_gains_losses" not in d - else ExchangeGainsLosses.from_dict(d["exchange_gains_losses"]) - ), - net_cash_flow=( - None - if "net_cash_flow" not in d - else NetCashFlow.from_dict(d["net_cash_flow"]) - ), - net_cash_flow_from_financing_activities=( - None - if "net_cash_flow_from_financing_activities" not in d - else NetCashFlowFromFinancingActivities.from_dict( - d["net_cash_flow_from_financing_activities"] - ) + net_cash_flow_from_operating_activities=DataPoint.from_dict( + d.get("net_cash_flow_from_operating_activities") + ), + net_cash_flow_from_operating_activities_continuing=DataPoint.from_dict( + d.get("net_cash_flow_from_operating_activities_continuing") + ), + net_cash_flow_from_operating_activities_discontinued=DataPoint.from_dict( + d.get("net_cash_flow_from_operating_activities_discontinued") + ), + net_cash_flow_from_investing_activities=DataPoint.from_dict( + d.get("net_cash_flow_from_investing_activities") + ), + net_cash_flow_from_investing_activities_continuing=DataPoint.from_dict( + d.get("net_cash_flow_from_investing_activities_continuing") + ), + net_cash_flow_from_investing_activities_discontinued=DataPoint.from_dict( + d.get("net_cash_flow_from_investing_activities_discontinued") + ), + net_cash_flow_from_financing_activities=DataPoint.from_dict( + d.get("net_cash_flow_from_financing_activities") + ), + net_cash_flow_from_financing_activities_continuing=DataPoint.from_dict( + d.get("net_cash_flow_from_financing_activities_continuing") + ), + net_cash_flow_from_financing_activities_discontinued=DataPoint.from_dict( + d.get("net_cash_flow_from_financing_activities_discontinued") + ), + exchange_gains_losses=DataPoint.from_dict(d.get("exchange_gains_losses")), + net_cash_flow=DataPoint.from_dict(d.get("net_cash_flow")), + net_cash_flow_continuing=DataPoint.from_dict( + d.get("net_cash_flow_continuing") + ), + net_cash_flow_discontinued=DataPoint.from_dict( + d.get("net_cash_flow_discontinued") ), ) -@modelclass -class ComprehensiveIncomeLoss: - "Contains comprehensive income loss data for comprehensive income." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return ComprehensiveIncomeLoss(**d) - - -@modelclass -class ComprehensiveIncomeLossAttributableToParent: - "Contains comprehensive income loss attributable to parent data for comprehensive income." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return ComprehensiveIncomeLossAttributableToParent(**d) - - -@modelclass -class OtherComprehensiveIncomeLoss: - "Contains other comprehensive income loss data for comprehensive income." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return OtherComprehensiveIncomeLoss(**d) - - +@dataclass @modelclass class ComprehensiveIncome: - "Contains comprehensive income data." - comprehensive_income_loss: Optional[ComprehensiveIncomeLoss] = None - comprehensive_income_loss_attributable_to_parent: Optional[ - ComprehensiveIncomeLossAttributableToParent + comprehensive_income_loss: Optional[DataPoint] = None + comprehensive_income_loss_attributable_to_noncontrolling_interest: Optional[ + DataPoint + ] = None + comprehensive_income_loss_attributable_to_parent: Optional[DataPoint] = None + other_comprehensive_income_loss: Optional[DataPoint] = None + other_comprehensive_income_loss_attributable_to_noncontrolling_interest: Optional[ + DataPoint ] = None - other_comprehensive_income_loss: Optional[OtherComprehensiveIncomeLoss] = None + other_comprehensive_income_loss_attributable_to_parent: Optional[DataPoint] = None @staticmethod - def from_dict(d): + def from_dict(d: Optional[Dict[str, Any]]) -> "ComprehensiveIncome": + if not d: + return ComprehensiveIncome() return ComprehensiveIncome( - comprehensive_income_loss=( - None - if "comprehensive_income_loss" not in d - else ComprehensiveIncomeLoss.from_dict(d["comprehensive_income_loss"]) - ), - comprehensive_income_loss_attributable_to_parent=( - None - if "comprehensive_income_loss_attributable_to_parent" not in d - else ComprehensiveIncomeLossAttributableToParent.from_dict( - d["comprehensive_income_loss_attributable_to_parent"] + comprehensive_income_loss=DataPoint.from_dict( + d.get("comprehensive_income_loss") + ), + comprehensive_income_loss_attributable_to_noncontrolling_interest=DataPoint.from_dict( + d.get( + "comprehensive_income_loss_attributable_to_noncontrolling_interest" ) ), - other_comprehensive_income_loss=( - None - if "other_comprehensive_income_loss" not in d - else OtherComprehensiveIncomeLoss.from_dict( - d["other_comprehensive_income_loss"] + comprehensive_income_loss_attributable_to_parent=DataPoint.from_dict( + d.get("comprehensive_income_loss_attributable_to_parent") + ), + other_comprehensive_income_loss=DataPoint.from_dict( + d.get("other_comprehensive_income_loss") + ), + other_comprehensive_income_loss_attributable_to_noncontrolling_interest=DataPoint.from_dict( + d.get( + "other_comprehensive_income_loss_attributable_to_noncontrolling_interest" ) ), + other_comprehensive_income_loss_attributable_to_parent=DataPoint.from_dict( + d.get("other_comprehensive_income_loss_attributable_to_parent") + ), ) -@modelclass -class BasicEarningsPerShare: - "Contains basic earning per share data for an income statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return BasicEarningsPerShare(**d) - - -@modelclass -class CostOfRevenue: - "Contains cost of revenue data for an income statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return CostOfRevenue(**d) - - -@modelclass -class GrossProfit: - "Contains gross profit data for an income statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return GrossProfit(**d) - - -@modelclass -class OperatingExpenses: - "Contains operating expenses data for an income statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return OperatingExpenses(**d) - - -@modelclass -class Revenues: - "Contains revenues data for an income statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return Revenues(**d) - - +@dataclass @modelclass class IncomeStatement: - "Contains income statement data." - basic_earnings_per_share: Optional[BasicEarningsPerShare] = None - cost_of_revenue: Optional[CostOfRevenue] = None - gross_profit: Optional[GrossProfit] = None - operating_expenses: Optional[OperatingExpenses] = None - revenues: Optional[Revenues] = None + revenues: Optional[DataPoint] = None + benefits_costs_expenses: Optional[DataPoint] = None + cost_of_revenue: Optional[DataPoint] = None + cost_of_revenue_goods: Optional[DataPoint] = None + cost_of_revenue_services: Optional[DataPoint] = None + costs_and_expenses: Optional[DataPoint] = None + gross_profit: Optional[DataPoint] = None + gain_loss_on_sale_properties_net_tax: Optional[DataPoint] = None + nonoperating_income_loss: Optional[DataPoint] = None + operating_expenses: Optional[DataPoint] = None + selling_general_and_administrative_expenses: Optional[DataPoint] = None + depreciation_and_amortization: Optional[DataPoint] = None + research_and_development: Optional[DataPoint] = None + other_operating_expenses: Optional[DataPoint] = None + operating_income_loss: Optional[DataPoint] = None + other_operating_income_expenses: Optional[DataPoint] = None + income_loss_before_equity_method_investments: Optional[DataPoint] = None + income_loss_from_continuing_operations_after_tax: Optional[DataPoint] = None + income_loss_from_continuing_operations_before_tax: Optional[DataPoint] = None + income_loss_from_discontinued_operations_net_of_tax: Optional[DataPoint] = None + income_loss_from_discontinued_operations_net_of_tax_adjustment_to_prior_year_gain_loss_on_disposal: Optional[ + DataPoint + ] = None + income_loss_from_discontinued_operations_net_of_tax_during_phase_out: Optional[ + DataPoint + ] = None + income_loss_from_discontinued_operations_net_of_tax_gain_loss_on_disposal: Optional[ + DataPoint + ] = None + income_loss_from_discontinued_operations_net_of_tax_provision_for_gain_loss_on_disposal: Optional[ + DataPoint + ] = None + income_loss_from_equity_method_investments: Optional[DataPoint] = None + income_tax_expense_benefit: Optional[DataPoint] = None + income_tax_expense_benefit_current: Optional[DataPoint] = None + income_tax_expense_benefit_deferred: Optional[DataPoint] = None + interest_and_debt_expense: Optional[DataPoint] = None + interest_and_dividend_income_operating: Optional[DataPoint] = None + interest_expense_operating: Optional[DataPoint] = None + interest_income_expense_after_provision_for_losses: Optional[DataPoint] = None + interest_income_expense_operating_net: Optional[DataPoint] = None + noninterest_expense: Optional[DataPoint] = None + noninterest_income: Optional[DataPoint] = None + provision_for_loan_lease_and_other_losses: Optional[DataPoint] = None + net_income_loss: Optional[DataPoint] = None + net_income_loss_attributable_to_noncontrolling_interest: Optional[DataPoint] = None + net_income_loss_attributable_to_nonredeemable_noncontrolling_interest: Optional[ + DataPoint + ] = None + net_income_loss_attributable_to_parent: Optional[DataPoint] = None + net_income_loss_attributable_to_redeemable_noncontrolling_interest: Optional[ + DataPoint + ] = None + net_income_loss_available_to_common_stockholders_basic: Optional[DataPoint] = None + participating_securities_distributed_and_undistributed_earnings_loss_basic: ( + Optional[DataPoint] + ) = (None) + undistributed_earnings_loss_allocated_to_participating_securities_basic: Optional[ + DataPoint + ] = None + preferred_stock_dividends_and_other_adjustments: Optional[DataPoint] = None + basic_earnings_per_share: Optional[DataPoint] = None + diluted_earnings_per_share: Optional[DataPoint] = None + basic_average_shares: Optional[DataPoint] = None + diluted_average_shares: Optional[DataPoint] = None + common_stock_dividends: Optional[DataPoint] = None @staticmethod - def from_dict(d): + def from_dict(d: Optional[Dict[str, Any]]) -> "IncomeStatement": + if not d: + return IncomeStatement() return IncomeStatement( - basic_earnings_per_share=( - None - if "basic_earnings_per_share" not in d - else BasicEarningsPerShare.from_dict(d["basic_earnings_per_share"]) - ), - cost_of_revenue=( - None - if "cost_of_revenue" not in d - else CostOfRevenue.from_dict(d["cost_of_revenue"]) - ), - gross_profit=( - None - if "gross_profit" not in d - else GrossProfit.from_dict(d["gross_profit"]) - ), - operating_expenses=( - None - if "operating_expenses" not in d - else OperatingExpenses.from_dict(d["operating_expenses"]) - ), - revenues=None if "revenues" not in d else Revenues.from_dict(d["revenues"]), + revenues=DataPoint.from_dict(d.get("revenues")), + benefits_costs_expenses=DataPoint.from_dict( + d.get("benefits_costs_expenses") + ), + cost_of_revenue=DataPoint.from_dict(d.get("cost_of_revenue")), + cost_of_revenue_goods=DataPoint.from_dict(d.get("cost_of_revenue_goods")), + cost_of_revenue_services=DataPoint.from_dict( + d.get("cost_of_revenue_services") + ), + costs_and_expenses=DataPoint.from_dict(d.get("costs_and_expenses")), + gross_profit=DataPoint.from_dict(d.get("gross_profit")), + gain_loss_on_sale_properties_net_tax=DataPoint.from_dict( + d.get("gain_loss_on_sale_properties_net_tax") + ), + nonoperating_income_loss=DataPoint.from_dict( + d.get("nonoperating_income_loss") + ), + operating_expenses=DataPoint.from_dict(d.get("operating_expenses")), + selling_general_and_administrative_expenses=DataPoint.from_dict( + d.get("selling_general_and_administrative_expenses") + ), + depreciation_and_amortization=DataPoint.from_dict( + d.get("depreciation_and_amortization") + ), + research_and_development=DataPoint.from_dict( + d.get("research_and_development") + ), + other_operating_expenses=DataPoint.from_dict( + d.get("other_operating_expenses") + ), + operating_income_loss=DataPoint.from_dict(d.get("operating_income_loss")), + other_operating_income_expenses=DataPoint.from_dict( + d.get("other_operating_income_expenses") + ), + income_loss_before_equity_method_investments=DataPoint.from_dict( + d.get("income_loss_before_equity_method_investments") + ), + income_loss_from_continuing_operations_after_tax=DataPoint.from_dict( + d.get("income_loss_from_continuing_operations_after_tax") + ), + income_loss_from_continuing_operations_before_tax=DataPoint.from_dict( + d.get("income_loss_from_continuing_operations_before_tax") + ), + income_loss_from_discontinued_operations_net_of_tax=DataPoint.from_dict( + d.get("income_loss_from_discontinued_operations_net_of_tax") + ), + income_loss_from_discontinued_operations_net_of_tax_adjustment_to_prior_year_gain_loss_on_disposal=DataPoint.from_dict( + d.get( + "income_loss_from_discontinued_operations_net_of_tax_adjustment_to_prior_year_gain_loss_on_disposal" + ) + ), + income_loss_from_discontinued_operations_net_of_tax_during_phase_out=DataPoint.from_dict( + d.get( + "income_loss_from_discontinued_operations_net_of_tax_during_phase_out" + ) + ), + income_loss_from_discontinued_operations_net_of_tax_gain_loss_on_disposal=DataPoint.from_dict( + d.get( + "income_loss_from_discontinued_operations_net_of_tax_gain_loss_on_disposal" + ) + ), + income_loss_from_discontinued_operations_net_of_tax_provision_for_gain_loss_on_disposal=DataPoint.from_dict( + d.get( + "income_loss_from_discontinued_operations_net_of_tax_provision_for_gain_loss_on_disposal" + ) + ), + income_loss_from_equity_method_investments=DataPoint.from_dict( + d.get("income_loss_from_equity_method_investments") + ), + income_tax_expense_benefit=DataPoint.from_dict( + d.get("income_tax_expense_benefit") + ), + income_tax_expense_benefit_current=DataPoint.from_dict( + d.get("income_tax_expense_benefit_current") + ), + income_tax_expense_benefit_deferred=DataPoint.from_dict( + d.get("income_tax_expense_benefit_deferred") + ), + interest_and_debt_expense=DataPoint.from_dict( + d.get("interest_and_debt_expense") + ), + interest_and_dividend_income_operating=DataPoint.from_dict( + d.get("interest_and_dividend_income_operating") + ), + interest_expense_operating=DataPoint.from_dict( + d.get("interest_expense_operating") + ), + interest_income_expense_after_provision_for_losses=DataPoint.from_dict( + d.get("interest_income_expense_after_provision_for_losses") + ), + interest_income_expense_operating_net=DataPoint.from_dict( + d.get("interest_income_expense_operating_net") + ), + noninterest_expense=DataPoint.from_dict(d.get("noninterest_expense")), + noninterest_income=DataPoint.from_dict(d.get("noninterest_income")), + provision_for_loan_lease_and_other_losses=DataPoint.from_dict( + d.get("provision_for_loan_lease_and_other_losses") + ), + net_income_loss=DataPoint.from_dict(d.get("net_income_loss")), + net_income_loss_attributable_to_noncontrolling_interest=DataPoint.from_dict( + d.get("net_income_loss_attributable_to_noncontrolling_interest") + ), + net_income_loss_attributable_to_nonredeemable_noncontrolling_interest=DataPoint.from_dict( + d.get( + "net_income_loss_attributable_to_nonredeemable_noncontrolling_interest" + ) + ), + net_income_loss_attributable_to_parent=DataPoint.from_dict( + d.get("net_income_loss_attributable_to_parent") + ), + net_income_loss_attributable_to_redeemable_noncontrolling_interest=DataPoint.from_dict( + d.get( + "net_income_loss_attributable_to_redeemable_noncontrolling_interest" + ) + ), + net_income_loss_available_to_common_stockholders_basic=DataPoint.from_dict( + d.get("net_income_loss_available_to_common_stockholders_basic") + ), + participating_securities_distributed_and_undistributed_earnings_loss_basic=DataPoint.from_dict( + d.get( + "participating_securities_distributed_and_undistributed_earnings_loss_basic" + ) + ), + undistributed_earnings_loss_allocated_to_participating_securities_basic=DataPoint.from_dict( + d.get( + "undistributed_earnings_loss_allocated_to_participating_securities_basic" + ) + ), + preferred_stock_dividends_and_other_adjustments=DataPoint.from_dict( + d.get("preferred_stock_dividends_and_other_adjustments") + ), + basic_earnings_per_share=DataPoint.from_dict( + d.get("basic_earnings_per_share") + ), + diluted_earnings_per_share=DataPoint.from_dict( + d.get("diluted_earnings_per_share") + ), + basic_average_shares=DataPoint.from_dict(d.get("basic_average_shares")), + diluted_average_shares=DataPoint.from_dict(d.get("diluted_average_shares")), + common_stock_dividends=DataPoint.from_dict(d.get("common_stock_dividends")), ) +@dataclass @modelclass class Financials: - "Contains financial data." - balance_sheet: Optional[Dict[str, DataPoint]] = None + """ + Contains data for: + - balance_sheet (BalanceSheet) + - cash_flow_statement (CashFlowStatement) + - comprehensive_income (ComprehensiveIncome) + - income_statement (IncomeStatement) + """ + + balance_sheet: Optional[BalanceSheet] = None cash_flow_statement: Optional[CashFlowStatement] = None comprehensive_income: Optional[ComprehensiveIncome] = None income_statement: Optional[IncomeStatement] = None @staticmethod - def from_dict(d): + def from_dict(d: Optional[Dict[str, Any]]) -> "Financials": + if not d: + return Financials() return Financials( - balance_sheet=( - None - if "balance_sheet" not in d - else { - k: DataPoint.from_dict(v) for (k, v) in d["balance_sheet"].items() - } - ), - cash_flow_statement=( - None - if "cash_flow_statement" not in d - else CashFlowStatement.from_dict(d["cash_flow_statement"]) - ), - comprehensive_income=( - None - if "comprehensive_income" not in d - else ComprehensiveIncome.from_dict(d["comprehensive_income"]) - ), - income_statement=( - None - if "income_statement" not in d - else IncomeStatement.from_dict(d["income_statement"]) + balance_sheet=BalanceSheet.from_dict(d.get("balance_sheet")), + cash_flow_statement=CashFlowStatement.from_dict( + d.get("cash_flow_statement") + ), + comprehensive_income=ComprehensiveIncome.from_dict( + d.get("comprehensive_income") ), + income_statement=IncomeStatement.from_dict(d.get("income_statement")), ) +@dataclass @modelclass class StockFinancial: - "StockFinancial contains historical financial data for a stock ticker." + """ + StockFinancial contains historical financial data for a stock ticker. + The 'financials' attribute references an instance of Financials + which has typed sub-statements. + """ + cik: Optional[str] = None company_name: Optional[str] = None end_date: Optional[str] = None @@ -335,18 +510,18 @@ class StockFinancial: start_date: Optional[str] = None @staticmethod - def from_dict(d): + def from_dict(d: Optional[Dict[str, Any]]) -> "StockFinancial": + if not d: + return StockFinancial() return StockFinancial( - cik=d.get("cik", None), - company_name=d.get("company_name", None), - end_date=d.get("end_date", None), - filing_date=d.get("filing_date", None), - financials=( - None if "financials" not in d else Financials.from_dict(d["financials"]) - ), - fiscal_period=d.get("fiscal_period", None), - fiscal_year=d.get("fiscal_year", None), - source_filing_file_url=d.get("source_filing_file_url", None), - source_filing_url=d.get("source_filing_url", None), - start_date=d.get("start_date", None), + cik=d.get("cik"), + company_name=d.get("company_name"), + end_date=d.get("end_date"), + filing_date=d.get("filing_date"), + financials=Financials.from_dict(d.get("financials", {})), + fiscal_period=d.get("fiscal_period"), + fiscal_year=d.get("fiscal_year"), + source_filing_file_url=d.get("source_filing_file_url"), + source_filing_url=d.get("source_filing_url"), + start_date=d.get("start_date"), ) diff --git a/test_rest/mocks/vX/reference/financials.json b/test_rest/mocks/vX/reference/financials.json index c5e18621..ae84513b 100644 --- a/test_rest/mocks/vX/reference/financials.json +++ b/test_rest/mocks/vX/reference/financials.json @@ -45,12 +45,6 @@ "unit": "USD", "order": 400 }, - "other_than_fixed_noncurrent_assets": { - "label": "Other Than Fixed Noncurrent Assets", - "value": 1.6046e+10, - "unit": "USD", - "order": 500 - }, "noncurrent_liabilities": { "label": "Noncurrent Liabilities", "value": 1.1716e+10, diff --git a/test_rest/test_financials.py b/test_rest/test_financials.py deleted file mode 100644 index f5196212..00000000 --- a/test_rest/test_financials.py +++ /dev/null @@ -1,234 +0,0 @@ -from polygon.rest.models import ( - StockFinancial, - Financials, - DataPoint, - CashFlowStatement, - ExchangeGainsLosses, - NetCashFlow, - NetCashFlowFromFinancingActivities, - ComprehensiveIncome, - ComprehensiveIncomeLoss, - ComprehensiveIncomeLossAttributableToParent, - OtherComprehensiveIncomeLoss, - IncomeStatement, - BasicEarningsPerShare, - CostOfRevenue, - GrossProfit, - OperatingExpenses, - Revenues, -) -from base import BaseTest - - -class FinancialsTest(BaseTest): - def test_list_stock_financials(self): - financials = [f for f in self.c.vx.list_stock_financials()] - expected = [ - StockFinancial( - cik="0001413447", - company_name="NXP Semiconductors N.V.", - end_date="2022-04-03", - filing_date="2022-05-03", - financials=Financials( - balance_sheet={ - "equity_attributable_to_noncontrolling_interest": DataPoint( - formula=None, - label="Equity Attributable To Noncontrolling Interest", - order=1500, - unit="USD", - value=251000000.0, - xpath=None, - ), - "liabilities": DataPoint( - formula=None, - label="Liabilities", - order=600, - unit="USD", - value=14561000000.0, - xpath=None, - ), - "equity_attributable_to_parent": DataPoint( - formula=None, - label="Equity Attributable To Parent", - order=1600, - unit="USD", - value=6509000000.0, - xpath=None, - ), - "noncurrent_assets": DataPoint( - formula=None, - label="Noncurrent Assets", - order=300, - unit="USD", - value=16046000000.0, - xpath=None, - ), - "liabilities_and_equity": DataPoint( - formula=None, - label="Liabilities And Equity", - order=1900, - unit="USD", - value=21321000000.0, - xpath=None, - ), - "assets": DataPoint( - formula=None, - label="Assets", - order=100, - unit="USD", - value=21321000000.0, - xpath=None, - ), - "fixed_assets": DataPoint( - formula=None, - label="Fixed Assets", - order=400, - unit="USD", - value=2814000000.0, - xpath=None, - ), - "other_than_fixed_noncurrent_assets": DataPoint( - formula=None, - label="Other Than Fixed Noncurrent Assets", - order=500, - unit="USD", - value=16046000000.0, - xpath=None, - ), - "noncurrent_liabilities": DataPoint( - formula=None, - label="Noncurrent Liabilities", - order=800, - unit="USD", - value=11716000000.0, - xpath=None, - ), - "current_assets": DataPoint( - formula=None, - label="Current Assets", - order=200, - unit="USD", - value=5275000000.0, - xpath=None, - ), - "equity": DataPoint( - formula=None, - label="Equity", - order=1400, - unit="USD", - value=6760000000.0, - xpath=None, - ), - "current_liabilities": DataPoint( - formula=None, - label="Current Liabilities", - order=700, - unit="USD", - value=2845000000.0, - xpath=None, - ), - }, - cash_flow_statement=CashFlowStatement( - exchange_gains_losses=ExchangeGainsLosses( - formula=None, - label="Exchange Gains/Losses", - order=1000, - unit="USD", - value=0, - xpath=None, - ), - net_cash_flow=NetCashFlow( - formula=None, - label="Net Cash Flow", - order=1100, - unit="USD", - value=-147000000.0, - xpath=None, - ), - net_cash_flow_from_financing_activities=NetCashFlowFromFinancingActivities( - formula=None, - label="Net Cash Flow From Financing Activities", - order=700, - unit="USD", - value=-674000000.0, - xpath=None, - ), - ), - comprehensive_income=ComprehensiveIncome( - comprehensive_income_loss=ComprehensiveIncomeLoss( - formula=None, - label="Comprehensive Income/Loss", - order=100, - unit="USD", - value=644000000.0, - xpath=None, - ), - comprehensive_income_loss_attributable_to_parent=ComprehensiveIncomeLossAttributableToParent( - formula=None, - label="Comprehensive Income/Loss Attributable To Parent", - order=300, - unit="USD", - value=635000000.0, - xpath=None, - ), - other_comprehensive_income_loss=OtherComprehensiveIncomeLoss( - formula=None, - label="Other Comprehensive Income/Loss", - order=400, - unit="USD", - value=-22000000.0, - xpath=None, - ), - ), - income_statement=IncomeStatement( - basic_earnings_per_share=BasicEarningsPerShare( - formula=None, - label="Basic Earnings Per Share", - order=4200, - unit="USD / shares", - value=2.5, - xpath=None, - ), - cost_of_revenue=CostOfRevenue( - formula=None, - label="Cost Of Revenue", - order=300, - unit="USD", - value=1359000000.0, - xpath=None, - ), - gross_profit=GrossProfit( - formula=None, - label="Gross Profit", - order=800, - unit="USD", - value=1777000000.0, - xpath=None, - ), - operating_expenses=OperatingExpenses( - formula=None, - label="Operating Expenses", - order=1000, - unit="USD", - value=904000000.0, - xpath=None, - ), - revenues=Revenues( - formula=None, - label="Revenues", - order=100, - unit="USD", - value=3136000000.0, - xpath=None, - ), - ), - ), - fiscal_period="Q1", - fiscal_year="2022", - source_filing_file_url="https://api.polygon.io/v1/reference/sec/filings/0001413447-22-000014/files/nxpi-20220403_htm.xml", - source_filing_url="https://api.polygon.io/v1/reference/sec/filings/0001413447-22-000014", - start_date="2022-01-01", - ) - ] - - self.assertEqual(financials, expected) From bd9d53033800b5faf5a01034428e8c458fcd3e2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 07:57:46 -0800 Subject: [PATCH 44/53] Bump types-setuptools from 75.6.0.20241223 to 75.8.0.20250110 (#832) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.6.0.20241223 to 75.8.0.20250110. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 59cdd317..1d16b476 100644 --- a/poetry.lock +++ b/poetry.lock @@ -835,13 +835,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.6.0.20241223" +version = "75.8.0.20250110" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types_setuptools-75.6.0.20241223-py3-none-any.whl", hash = "sha256:7cbfd3bf2944f88bbcdd321b86ddd878232a277be95d44c78a53585d78ebc2f6"}, - {file = "types_setuptools-75.6.0.20241223.tar.gz", hash = "sha256:d9478a985057ed48a994c707f548e55aababa85fe1c9b212f43ab5a1fffd3211"}, + {file = "types_setuptools-75.8.0.20250110-py3-none-any.whl", hash = "sha256:a9f12980bbf9bcdc23ecd80755789085bad6bfce4060c2275bc2b4ca9f2bc480"}, + {file = "types_setuptools-75.8.0.20250110.tar.gz", hash = "sha256:96f7ec8bbd6e0a54ea180d66ad68ad7a1d7954e7281a710ea2de75e355545271"}, ] [[package]] @@ -1007,4 +1007,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "183ba57707ae02b4b27fc68f294181edf9f15d33bd3c24dcfb58c9fdc4e3e93a" +content-hash = "130d59d914473d618400749c700f19b082b5fe2d42ee47bb79bf97b8fa177445" diff --git a/pyproject.toml b/pyproject.toml index 83794997..922d4804 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^3.0.2" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^75.6.0" +types-setuptools = "^75.8.0" pook = "^2.0.1" orjson = "^3.10.13" From cbabb9ef70ecb43fe56e4958e53dba643ebe250b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 08:14:22 -0800 Subject: [PATCH 45/53] Bump orjson from 3.10.13 to 3.10.15 (#836) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.13 to 3.10.15. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](https://github.com/ijl/orjson/compare/3.10.13...3.10.15) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 158 +++++++++++++++++++++++++------------------------ pyproject.toml | 2 +- 2 files changed, 82 insertions(+), 78 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1d16b476..8627e329 100644 --- a/poetry.lock +++ b/poetry.lock @@ -390,86 +390,90 @@ six = ">=1.8.0" [[package]] name = "orjson" -version = "3.10.13" +version = "3.10.15" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.13-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1232c5e873a4d1638ef957c5564b4b0d6f2a6ab9e207a9b3de9de05a09d1d920"}, - {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d26a0eca3035619fa366cbaf49af704c7cb1d4a0e6c79eced9f6a3f2437964b6"}, - {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d4b6acd7c9c829895e50d385a357d4b8c3fafc19c5989da2bae11783b0fd4977"}, - {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1884e53c6818686891cc6fc5a3a2540f2f35e8c76eac8dc3b40480fb59660b00"}, - {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a428afb5720f12892f64920acd2eeb4d996595bf168a26dd9190115dbf1130d"}, - {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba5b13b8739ce5b630c65cb1c85aedbd257bcc2b9c256b06ab2605209af75a2e"}, - {file = "orjson-3.10.13-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cab83e67f6aabda1b45882254b2598b48b80ecc112968fc6483fa6dae609e9f0"}, - {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:62c3cc00c7e776c71c6b7b9c48c5d2701d4c04e7d1d7cdee3572998ee6dc57cc"}, - {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:dc03db4922e75bbc870b03fc49734cefbd50fe975e0878327d200022210b82d8"}, - {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:22f1c9a30b43d14a041a6ea190d9eca8a6b80c4beb0e8b67602c82d30d6eec3e"}, - {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b42f56821c29e697c68d7d421410d7c1d8f064ae288b525af6a50cf99a4b1200"}, - {file = "orjson-3.10.13-cp310-cp310-win32.whl", hash = "sha256:0dbf3b97e52e093d7c3e93eb5eb5b31dc7535b33c2ad56872c83f0160f943487"}, - {file = "orjson-3.10.13-cp310-cp310-win_amd64.whl", hash = "sha256:46c249b4e934453be4ff2e518cd1adcd90467da7391c7a79eaf2fbb79c51e8c7"}, - {file = "orjson-3.10.13-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a36c0d48d2f084c800763473020a12976996f1109e2fcb66cfea442fdf88047f"}, - {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0065896f85d9497990731dfd4a9991a45b0a524baec42ef0a63c34630ee26fd6"}, - {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:92b4ec30d6025a9dcdfe0df77063cbce238c08d0404471ed7a79f309364a3d19"}, - {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a94542d12271c30044dadad1125ee060e7a2048b6c7034e432e116077e1d13d2"}, - {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3723e137772639af8adb68230f2aa4bcb27c48b3335b1b1e2d49328fed5e244c"}, - {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f00c7fb18843bad2ac42dc1ce6dd214a083c53f1e324a0fd1c8137c6436269b"}, - {file = "orjson-3.10.13-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0e2759d3172300b2f892dee85500b22fca5ac49e0c42cfff101aaf9c12ac9617"}, - {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ee948c6c01f6b337589c88f8e0bb11e78d32a15848b8b53d3f3b6fea48842c12"}, - {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:aa6fe68f0981fba0d4bf9cdc666d297a7cdba0f1b380dcd075a9a3dd5649a69e"}, - {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:dbcd7aad6bcff258f6896abfbc177d54d9b18149c4c561114f47ebfe74ae6bfd"}, - {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2149e2fcd084c3fd584881c7f9d7f9e5ad1e2e006609d8b80649655e0d52cd02"}, - {file = "orjson-3.10.13-cp311-cp311-win32.whl", hash = "sha256:89367767ed27b33c25c026696507c76e3d01958406f51d3a2239fe9e91959df2"}, - {file = "orjson-3.10.13-cp311-cp311-win_amd64.whl", hash = "sha256:dca1d20f1af0daff511f6e26a27354a424f0b5cf00e04280279316df0f604a6f"}, - {file = "orjson-3.10.13-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a3614b00621c77f3f6487792238f9ed1dd8a42f2ec0e6540ee34c2d4e6db813a"}, - {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c976bad3996aa027cd3aef78aa57873f3c959b6c38719de9724b71bdc7bd14b"}, - {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f74d878d1efb97a930b8a9f9898890067707d683eb5c7e20730030ecb3fb930"}, - {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33ef84f7e9513fb13b3999c2a64b9ca9c8143f3da9722fbf9c9ce51ce0d8076e"}, - {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd2bcde107221bb9c2fa0c4aaba735a537225104173d7e19cf73f70b3126c993"}, - {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:064b9dbb0217fd64a8d016a8929f2fae6f3312d55ab3036b00b1d17399ab2f3e"}, - {file = "orjson-3.10.13-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0044b0b8c85a565e7c3ce0a72acc5d35cda60793edf871ed94711e712cb637d"}, - {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7184f608ad563032e398f311910bc536e62b9fbdca2041be889afcbc39500de8"}, - {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d36f689e7e1b9b6fb39dbdebc16a6f07cbe994d3644fb1c22953020fc575935f"}, - {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:54433e421618cd5873e51c0e9d0b9fb35f7bf76eb31c8eab20b3595bb713cd3d"}, - {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e1ba0c5857dd743438acecc1cd0e1adf83f0a81fee558e32b2b36f89e40cee8b"}, - {file = "orjson-3.10.13-cp312-cp312-win32.whl", hash = "sha256:a42b9fe4b0114b51eb5cdf9887d8c94447bc59df6dbb9c5884434eab947888d8"}, - {file = "orjson-3.10.13-cp312-cp312-win_amd64.whl", hash = "sha256:3a7df63076435f39ec024bdfeb4c9767ebe7b49abc4949068d61cf4857fa6d6c"}, - {file = "orjson-3.10.13-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:2cdaf8b028a976ebab837a2c27b82810f7fc76ed9fb243755ba650cc83d07730"}, - {file = "orjson-3.10.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48a946796e390cbb803e069472de37f192b7a80f4ac82e16d6eb9909d9e39d56"}, - {file = "orjson-3.10.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7d64f1db5ecbc21eb83097e5236d6ab7e86092c1cd4c216c02533332951afc"}, - {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:711878da48f89df194edd2ba603ad42e7afed74abcd2bac164685e7ec15f96de"}, - {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:cf16f06cb77ce8baf844bc222dbcb03838f61d0abda2c3341400c2b7604e436e"}, - {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8257c3fb8dd7b0b446b5e87bf85a28e4071ac50f8c04b6ce2d38cb4abd7dff57"}, - {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d9c3a87abe6f849a4a7ac8a8a1dede6320a4303d5304006b90da7a3cd2b70d2c"}, - {file = "orjson-3.10.13-cp313-cp313-win32.whl", hash = "sha256:527afb6ddb0fa3fe02f5d9fba4920d9d95da58917826a9be93e0242da8abe94a"}, - {file = "orjson-3.10.13-cp313-cp313-win_amd64.whl", hash = "sha256:b5f7c298d4b935b222f52d6c7f2ba5eafb59d690d9a3840b7b5c5cda97f6ec5c"}, - {file = "orjson-3.10.13-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e49333d1038bc03a25fdfe11c86360df9b890354bfe04215f1f54d030f33c342"}, - {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:003721c72930dbb973f25c5d8e68d0f023d6ed138b14830cc94e57c6805a2eab"}, - {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:63664bf12addb318dc8f032160e0f5dc17eb8471c93601e8f5e0d07f95003784"}, - {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6066729cf9552d70de297b56556d14b4f49c8f638803ee3c90fd212fa43cc6af"}, - {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8a1152e2761025c5d13b5e1908d4b1c57f3797ba662e485ae6f26e4e0c466388"}, - {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69b21d91c5c5ef8a201036d207b1adf3aa596b930b6ca3c71484dd11386cf6c3"}, - {file = "orjson-3.10.13-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b12a63f48bb53dba8453d36ca2661f2330126d54e26c1661e550b32864b28ce3"}, - {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a5a7624ab4d121c7e035708c8dd1f99c15ff155b69a1c0affc4d9d8b551281ba"}, - {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:0fee076134398d4e6cb827002468679ad402b22269510cf228301b787fdff5ae"}, - {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ae537fcf330b3947e82c6ae4271e092e6cf16b9bc2cef68b14ffd0df1fa8832a"}, - {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f81b26c03f5fb5f0d0ee48d83cea4d7bc5e67e420d209cc1a990f5d1c62f9be0"}, - {file = "orjson-3.10.13-cp38-cp38-win32.whl", hash = "sha256:0bc858086088b39dc622bc8219e73d3f246fb2bce70a6104abd04b3a080a66a8"}, - {file = "orjson-3.10.13-cp38-cp38-win_amd64.whl", hash = "sha256:3ca6f17467ebbd763f8862f1d89384a5051b461bb0e41074f583a0ebd7120e8e"}, - {file = "orjson-3.10.13-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:4a11532cbfc2f5752c37e84863ef8435b68b0e6d459b329933294f65fa4bda1a"}, - {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c96d2fb80467d1d0dfc4d037b4e1c0f84f1fe6229aa7fea3f070083acef7f3d7"}, - {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dda4ba4d3e6f6c53b6b9c35266788053b61656a716a7fef5c884629c2a52e7aa"}, - {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4f998bbf300690be881772ee9c5281eb9c0044e295bcd4722504f5b5c6092ff"}, - {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1cc42ed75b585c0c4dc5eb53a90a34ccb493c09a10750d1a1f9b9eff2bd12"}, - {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03b0f29d485411e3c13d79604b740b14e4e5fb58811743f6f4f9693ee6480a8f"}, - {file = "orjson-3.10.13-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:233aae4474078d82f425134bb6a10fb2b3fc5a1a1b3420c6463ddd1b6a97eda8"}, - {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e384e330a67cf52b3597ee2646de63407da6f8fc9e9beec3eaaaef5514c7a1c9"}, - {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4222881d0aab76224d7b003a8e5fdae4082e32c86768e0e8652de8afd6c4e2c1"}, - {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e400436950ba42110a20c50c80dff4946c8e3ec09abc1c9cf5473467e83fd1c5"}, - {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f47c9e7d224b86ffb086059cdcf634f4b3f32480f9838864aa09022fe2617ce2"}, - {file = "orjson-3.10.13-cp39-cp39-win32.whl", hash = "sha256:a9ecea472f3eb653e1c0a3d68085f031f18fc501ea392b98dcca3e87c24f9ebe"}, - {file = "orjson-3.10.13-cp39-cp39-win_amd64.whl", hash = "sha256:5385935a73adce85cc7faac9d396683fd813566d3857fa95a0b521ef84a5b588"}, - {file = "orjson-3.10.13.tar.gz", hash = "sha256:eb9bfb14ab8f68d9d9492d4817ae497788a15fd7da72e14dfabc289c3bb088ec"}, + {file = "orjson-3.10.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:552c883d03ad185f720d0c09583ebde257e41b9521b74ff40e08b7dec4559c04"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e3e8d438d02e4854f70bfdc03a6bcdb697358dbaa6bcd19cbe24d24ece1f8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c2c79fa308e6edb0ffab0a31fd75a7841bf2a79a20ef08a3c6e3b26814c8ca8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cb85490aa6bf98abd20607ab5c8324c0acb48d6da7863a51be48505646c814"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763dadac05e4e9d2bc14938a45a2d0560549561287d41c465d3c58aec818b164"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a330b9b4734f09a623f74a7490db713695e13b67c959713b78369f26b3dee6bf"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a61a4622b7ff861f019974f73d8165be1bd9a0855e1cad18ee167acacabeb061"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd271247691574416b3228db667b84775c497b245fa275c6ab90dc1ffbbd2b3"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4759b109c37f635aa5c5cc93a1b26927bfde24b254bcc0e1149a9fada253d2d"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9e992fd5cfb8b9f00bfad2fd7a05a4299db2bbe92e6440d9dd2fab27655b3182"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f95fb363d79366af56c3f26b71df40b9a583b07bbaaf5b317407c4d58497852e"}, + {file = "orjson-3.10.15-cp310-cp310-win32.whl", hash = "sha256:f9875f5fea7492da8ec2444839dcc439b0ef298978f311103d0b7dfd775898ab"}, + {file = "orjson-3.10.15-cp310-cp310-win_amd64.whl", hash = "sha256:17085a6aa91e1cd70ca8533989a18b5433e15d29c574582f76f821737c8d5806"}, + {file = "orjson-3.10.15-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c4cc83960ab79a4031f3119cc4b1a1c627a3dc09df125b27c4201dff2af7eaa6"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddbeef2481d895ab8be5185f2432c334d6dec1f5d1933a9c83014d188e102cef"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9e590a0477b23ecd5b0ac865b1b907b01b3c5535f5e8a8f6ab0e503efb896334"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6be38bd103d2fd9bdfa31c2720b23b5d47c6796bcb1d1b598e3924441b4298d"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ff4f6edb1578960ed628a3b998fa54d78d9bb3e2eb2cfc5c2a09732431c678d0"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0482b21d0462eddd67e7fce10b89e0b6ac56570424662b685a0d6fccf581e13"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bb5cc3527036ae3d98b65e37b7986a918955f85332c1ee07f9d3f82f3a6899b5"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d569c1c462912acdd119ccbf719cf7102ea2c67dd03b99edcb1a3048651ac96b"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:1e6d33efab6b71d67f22bf2962895d3dc6f82a6273a965fab762e64fa90dc399"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c33be3795e299f565681d69852ac8c1bc5c84863c0b0030b2b3468843be90388"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:eea80037b9fae5339b214f59308ef0589fc06dc870578b7cce6d71eb2096764c"}, + {file = "orjson-3.10.15-cp311-cp311-win32.whl", hash = "sha256:d5ac11b659fd798228a7adba3e37c010e0152b78b1982897020a8e019a94882e"}, + {file = "orjson-3.10.15-cp311-cp311-win_amd64.whl", hash = "sha256:cf45e0214c593660339ef63e875f32ddd5aa3b4adc15e662cdb80dc49e194f8e"}, + {file = "orjson-3.10.15-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9d11c0714fc85bfcf36ada1179400862da3288fc785c30e8297844c867d7505a"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dba5a1e85d554e3897fa9fe6fbcff2ed32d55008973ec9a2b992bd9a65d2352d"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7723ad949a0ea502df656948ddd8b392780a5beaa4c3b5f97e525191b102fff0"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6fd9bc64421e9fe9bd88039e7ce8e58d4fead67ca88e3a4014b143cec7684fd4"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dadba0e7b6594216c214ef7894c4bd5f08d7c0135f4dd0145600be4fbcc16767"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b48f59114fe318f33bbaee8ebeda696d8ccc94c9e90bc27dbe72153094e26f41"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:035fb83585e0f15e076759b6fedaf0abb460d1765b6a36f48018a52858443514"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d13b7fe322d75bf84464b075eafd8e7dd9eae05649aa2a5354cfa32f43c59f17"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7066b74f9f259849629e0d04db6609db4cf5b973248f455ba5d3bd58a4daaa5b"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88dc3f65a026bd3175eb157fea994fca6ac7c4c8579fc5a86fc2114ad05705b7"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b342567e5465bd99faa559507fe45e33fc76b9fb868a63f1642c6bc0735ad02a"}, + {file = "orjson-3.10.15-cp312-cp312-win32.whl", hash = "sha256:0a4f27ea5617828e6b58922fdbec67b0aa4bb844e2d363b9244c47fa2180e665"}, + {file = "orjson-3.10.15-cp312-cp312-win_amd64.whl", hash = "sha256:ef5b87e7aa9545ddadd2309efe6824bd3dd64ac101c15dae0f2f597911d46eaa"}, + {file = "orjson-3.10.15-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:bae0e6ec2b7ba6895198cd981b7cca95d1487d0147c8ed751e5632ad16f031a6"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f93ce145b2db1252dd86af37d4165b6faa83072b46e3995ecc95d4b2301b725a"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c203f6f969210128af3acae0ef9ea6aab9782939f45f6fe02d05958fe761ef9"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8918719572d662e18b8af66aef699d8c21072e54b6c82a3f8f6404c1f5ccd5e0"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f71eae9651465dff70aa80db92586ad5b92df46a9373ee55252109bb6b703307"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e117eb299a35f2634e25ed120c37c641398826c2f5a3d3cc39f5993b96171b9e"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:13242f12d295e83c2955756a574ddd6741c81e5b99f2bef8ed8d53e47a01e4b7"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7946922ada8f3e0b7b958cc3eb22cfcf6c0df83d1fe5521b4a100103e3fa84c8"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:b7155eb1623347f0f22c38c9abdd738b287e39b9982e1da227503387b81b34ca"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:208beedfa807c922da4e81061dafa9c8489c6328934ca2a562efa707e049e561"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eca81f83b1b8c07449e1d6ff7074e82e3fd6777e588f1a6632127f286a968825"}, + {file = "orjson-3.10.15-cp313-cp313-win32.whl", hash = "sha256:c03cd6eea1bd3b949d0d007c8d57049aa2b39bd49f58b4b2af571a5d3833d890"}, + {file = "orjson-3.10.15-cp313-cp313-win_amd64.whl", hash = "sha256:fd56a26a04f6ba5fb2045b0acc487a63162a958ed837648c5781e1fe3316cfbf"}, + {file = "orjson-3.10.15-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5e8afd6200e12771467a1a44e5ad780614b86abb4b11862ec54861a82d677746"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da9a18c500f19273e9e104cca8c1f0b40a6470bcccfc33afcc088045d0bf5ea6"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb00b7bfbdf5d34a13180e4805d76b4567025da19a197645ca746fc2fb536586"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33aedc3d903378e257047fee506f11e0833146ca3e57a1a1fb0ddb789876c1e1"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd0099ae6aed5eb1fc84c9eb72b95505a3df4267e6962eb93cdd5af03be71c98"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c864a80a2d467d7786274fce0e4f93ef2a7ca4ff31f7fc5634225aaa4e9e98c"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c25774c9e88a3e0013d7d1a6c8056926b607a61edd423b50eb5c88fd7f2823ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e78c211d0074e783d824ce7bb85bf459f93a233eb67a5b5003498232ddfb0e8a"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:43e17289ffdbbac8f39243916c893d2ae41a2ea1a9cbb060a56a4d75286351ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:781d54657063f361e89714293c095f506c533582ee40a426cb6489c48a637b81"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6875210307d36c94873f553786a808af2788e362bd0cf4c8e66d976791e7b528"}, + {file = "orjson-3.10.15-cp38-cp38-win32.whl", hash = "sha256:305b38b2b8f8083cc3d618927d7f424349afce5975b316d33075ef0f73576b60"}, + {file = "orjson-3.10.15-cp38-cp38-win_amd64.whl", hash = "sha256:5dd9ef1639878cc3efffed349543cbf9372bdbd79f478615a1c633fe4e4180d1"}, + {file = "orjson-3.10.15-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ffe19f3e8d68111e8644d4f4e267a069ca427926855582ff01fc012496d19969"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d433bf32a363823863a96561a555227c18a522a8217a6f9400f00ddc70139ae2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da03392674f59a95d03fa5fb9fe3a160b0511ad84b7a3914699ea5a1b3a38da2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a63bb41559b05360ded9132032239e47983a39b151af1201f07ec9370715c82"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3766ac4702f8f795ff3fa067968e806b4344af257011858cc3d6d8721588b53f"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a1c73dcc8fadbd7c55802d9aa093b36878d34a3b3222c41052ce6b0fc65f8e8"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b299383825eafe642cbab34be762ccff9fd3408d72726a6b2a4506d410a71ab3"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:abc7abecdbf67a173ef1316036ebbf54ce400ef2300b4e26a7b843bd446c2480"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:3614ea508d522a621384c1d6639016a5a2e4f027f3e4a1c93a51867615d28829"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:295c70f9dc154307777ba30fe29ff15c1bcc9dfc5c48632f37d20a607e9ba85a"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:63309e3ff924c62404923c80b9e2048c1f74ba4b615e7584584389ada50ed428"}, + {file = "orjson-3.10.15-cp39-cp39-win32.whl", hash = "sha256:a2f708c62d026fb5340788ba94a55c23df4e1869fec74be455e0b2f5363b8507"}, + {file = "orjson-3.10.15-cp39-cp39-win_amd64.whl", hash = "sha256:efcf6c735c3d22ef60c4aa27a5238f1a477df85e9b15f2142f9d669beb2d13fd"}, + {file = "orjson-3.10.15.tar.gz", hash = "sha256:05ca7fe452a2e9d8d9d706a2984c95b9c2ebc5db417ce0b7a49b91d50642a23e"}, ] [[package]] @@ -1007,4 +1011,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "130d59d914473d618400749c700f19b082b5fe2d42ee47bb79bf97b8fa177445" +content-hash = "c80bc058f0871dd694ea1761d3266a1d46d0265b19312868ccc7e5cf3dbe3244" diff --git a/pyproject.toml b/pyproject.toml index 922d4804..6dc126b6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^75.8.0" pook = "^2.0.1" -orjson = "^3.10.13" +orjson = "^3.10.15" [build-system] requires = ["poetry-core>=1.0.0"] From 4f54c2c72885d2630cb55832d414bbe1904d3574 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 11:23:37 -0800 Subject: [PATCH 46/53] Bump certifi from 2024.12.14 to 2025.1.31 (#843) Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.12.14 to 2025.1.31. - [Commits](https://github.com/certifi/python-certifi/compare/2024.12.14...2025.01.31) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8627e329..3709112e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -90,13 +90,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2024.12.14" +version = "2025.1.31" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, - {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, + {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, + {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, ] [[package]] From a7c00b86bcf5b240dabf46e713a7577ba1630e67 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Thu, 20 Feb 2025 14:50:31 -0800 Subject: [PATCH 47/53] Adds IEX business feed (#852) --- polygon/websocket/models/common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/polygon/websocket/models/common.py b/polygon/websocket/models/common.py index b39f9f87..38aea4c4 100644 --- a/polygon/websocket/models/common.py +++ b/polygon/websocket/models/common.py @@ -11,6 +11,7 @@ class Feed(Enum): Launchpad = "launchpad.polygon.io" Business = "business.polygon.io" EdgxBusiness = "edgx-business.polygon.io" + IEXBusiness = "iex-business.polygon.io" DelayedBusiness = "delayed-business.polygon.io" DelayedEdgxBusiness = "delayed-edgx-business.polygon.io" DelayedNasdaqLastSaleBusiness = "delayed-nasdaq-last-sale-business.polygon.io" From 24eabb9e84b4a6cb9fadb5fa623437129b414a6f Mon Sep 17 00:00:00 2001 From: Hamir Mahal Date: Wed, 23 Apr 2025 11:11:25 -0700 Subject: [PATCH 48/53] fix: usage of deprecated `CodeQL Action` version (#873) * chore: changes from formatting on save * fix: usage of deprecated `CodeQL Action` version --- .github/workflows/codeql.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 313c2716..f0767d70 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -7,7 +7,7 @@ on: branches: - master schedule: - - cron: '33 12 * * 3' + - cron: "33 12 * * 3" jobs: analyze: name: analyze @@ -19,15 +19,15 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'python' ] + language: ["python"] steps: - - name: Checkout repository - uses: actions/checkout@v3 - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - - name: Autobuild - uses: github/codeql-action/autobuild@v2 - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + - name: Checkout repository + uses: actions/checkout@v3 + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + - name: Autobuild + uses: github/codeql-action/autobuild@v3 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 From 83b28f3ae0111f023c12887634ec39d5fa7fa713 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Apr 2025 11:19:35 -0700 Subject: [PATCH 49/53] Bump jinja2 from 3.1.5 to 3.1.6 (#874) Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.5 to 3.1.6. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.5...3.1.6) --- updated-dependencies: - dependency-name: jinja2 dependency-version: 3.1.6 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 83 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 70 insertions(+), 13 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3709112e..8a686894 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. [[package]] name = "alabaster" @@ -6,6 +6,7 @@ version = "0.7.12" description = "A configurable sidebar-enabled Sphinx theme" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, @@ -17,16 +18,17 @@ version = "22.1.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, ] [package.extras] -dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] +dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] -tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] -tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] +tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] +tests-no-zope = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] [[package]] name = "Babel" @@ -34,6 +36,7 @@ version = "2.11.0" description = "Internationalization utilities" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "Babel-2.11.0-py3-none-any.whl", hash = "sha256:1ad3eca1c885218f6dce2ab67291178944f810a10a9b5f3cb8382a5a232b64fe"}, {file = "Babel-2.11.0.tar.gz", hash = "sha256:5ef4b3226b0180dedded4229651c8b0e1a3a6a2837d45a073272f313e4cf97f6"}, @@ -48,6 +51,7 @@ version = "24.8.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "black-24.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:09cdeb74d494ec023ded657f7092ba518e8cf78fa8386155e4a03fdcc44679e6"}, {file = "black-24.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81c6742da39f33b08e791da38410f32e27d632260e599df7245cccee2064afeb"}, @@ -84,7 +88,7 @@ typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] +d = ["aiohttp (>=3.7.4) ; sys_platform != \"win32\" or implementation_name != \"pypy\"", "aiohttp (>=3.7.4,!=3.9.0) ; sys_platform == \"win32\" and implementation_name == \"pypy\""] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] @@ -94,6 +98,7 @@ version = "2025.1.31" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["main", "dev"] files = [ {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, @@ -105,6 +110,7 @@ version = "2.1.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.6.0" +groups = ["dev"] files = [ {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, @@ -119,6 +125,7 @@ version = "8.1.3" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, @@ -133,6 +140,8 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] +markers = "sys_platform == \"win32\" or platform_system == \"Windows\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -144,6 +153,7 @@ version = "0.18.1" description = "Docutils -- Python Documentation Utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["dev"] files = [ {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, @@ -155,6 +165,7 @@ version = "2.1.3" description = "URL manipulation made simple." optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "furl-2.1.3-py2.py3-none-any.whl", hash = "sha256:9ab425062c4217f9802508e45feb4a83e54324273ac4b202f1850363309666c0"}, {file = "furl-2.1.3.tar.gz", hash = "sha256:5a6188fe2666c484a12159c18be97a1977a71d632ef5bb867ef15f54af39cc4e"}, @@ -170,6 +181,7 @@ version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, @@ -181,6 +193,7 @@ version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["dev"] files = [ {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, @@ -192,6 +205,8 @@ version = "5.1.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version < \"3.10\"" files = [ {file = "importlib_metadata-5.1.0-py3-none-any.whl", hash = "sha256:d84d17e21670ec07990e1044a99efe8d615d860fd176fc29ef5c306068fda313"}, {file = "importlib_metadata-5.1.0.tar.gz", hash = "sha256:d5059f9f1e8e41f80e9c56c2ee58811450c31984dfa625329ffd7c0dad88a73b"}, @@ -203,7 +218,7 @@ zipp = ">=0.5" [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"] perf = ["ipython"] -testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] +testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8 ; python_version < \"3.12\"", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\"", "pytest-perf (>=0.9.2)"] [[package]] name = "importlib-resources" @@ -211,6 +226,8 @@ version = "5.10.0" description = "Read resources from Python packages" optional = false python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version < \"3.9\"" files = [ {file = "importlib_resources-5.10.0-py3-none-any.whl", hash = "sha256:ee17ec648f85480d523596ce49eae8ead87d5631ae1551f913c0100b5edd3437"}, {file = "importlib_resources-5.10.0.tar.gz", hash = "sha256:c01b1b94210d9849f286b86bb51bcea7cd56dde0600d8db721d7b81330711668"}, @@ -221,17 +238,18 @@ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"] -testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\""] [[package]] name = "jinja2" -version = "3.1.5" +version = "3.1.6" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ - {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, - {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, + {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, + {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, ] [package.dependencies] @@ -246,6 +264,7 @@ version = "4.17.1" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "jsonschema-4.17.1-py3-none-any.whl", hash = "sha256:410ef23dcdbca4eaedc08b850079179883c2ed09378bd1f760d4af4aacfa28d7"}, {file = "jsonschema-4.17.1.tar.gz", hash = "sha256:05b2d22c83640cde0b7e0aa329ca7754fbd98ea66ad8ae24aa61328dfe057fa3"}, @@ -267,6 +286,7 @@ version = "2.1.1" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, @@ -316,6 +336,7 @@ version = "1.13.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, @@ -369,6 +390,7 @@ version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, @@ -380,6 +402,7 @@ version = "1.0.1" description = "Ordered Multivalue Dictionary" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "orderedmultidict-1.0.1-py2.py3-none-any.whl", hash = "sha256:43c839a17ee3cdd62234c47deca1a8508a3f2ca1d0678a3bf791c87cf84adbf3"}, {file = "orderedmultidict-1.0.1.tar.gz", hash = "sha256:04070bbb5e87291cc9bfa51df413677faf2141c73c61d2a5f7b26bea3cd882ad"}, @@ -394,6 +417,7 @@ version = "3.10.15" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "orjson-3.10.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:552c883d03ad185f720d0c09583ebde257e41b9521b74ff40e08b7dec4559c04"}, {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e3e8d438d02e4854f70bfdc03a6bcdb697358dbaa6bcd19cbe24d24ece1f8"}, @@ -482,6 +506,7 @@ version = "23.1" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, @@ -493,6 +518,7 @@ version = "0.10.2" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pathspec-0.10.2-py3-none-any.whl", hash = "sha256:88c2606f2c1e818b978540f73ecc908e13999c6c3a383daf3705652ae79807a5"}, {file = "pathspec-0.10.2.tar.gz", hash = "sha256:8f6bf73e5758fd365ef5d58ce09ac7c27d2833a8d7da51712eac6e27e35141b0"}, @@ -504,6 +530,8 @@ version = "1.3.10" description = "Resolve a name to an object." optional = false python-versions = ">=3.6" +groups = ["dev"] +markers = "python_version < \"3.9\"" files = [ {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, @@ -515,6 +543,7 @@ version = "2.5.4" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "platformdirs-2.5.4-py3-none-any.whl", hash = "sha256:af0276409f9a02373d540bf8480021a048711d572745aef4b7842dad245eba10"}, {file = "platformdirs-2.5.4.tar.gz", hash = "sha256:1006647646d80f16130f052404c6b901e80ee4ed6bef6792e1f238a8969106f7"}, @@ -530,6 +559,7 @@ version = "2.0.1" description = "HTTP traffic mocking and expectations made easy" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pook-2.0.1-py3-none-any.whl", hash = "sha256:30d73c95e0520f45c1e3889f3bf486e990b6f04b4915aa9daf86cf0d8136b2e1"}, {file = "pook-2.0.1.tar.gz", hash = "sha256:e04c0e698f256438b4dfbf3ab1b27559f0ec25e42176823167f321f4e8b9c9e4"}, @@ -546,13 +576,14 @@ version = "2.15.0" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "Pygments-2.15.0-py3-none-any.whl", hash = "sha256:77a3299119af881904cd5ecd1ac6a66214b6e9bed1f2db16993b54adede64094"}, {file = "Pygments-2.15.0.tar.gz", hash = "sha256:f7e36cffc4c517fbc252861b9a6e4644ca0e5abadf9a113c72d1358ad09b9500"}, ] [package.extras] -plugins = ["importlib-metadata"] +plugins = ["importlib-metadata ; python_version < \"3.8\""] [[package]] name = "pyrsistent" @@ -560,6 +591,7 @@ version = "0.19.2" description = "Persistent/Functional/Immutable data structures" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pyrsistent-0.19.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d6982b5a0237e1b7d876b60265564648a69b14017f3b5f908c5be2de3f9abb7a"}, {file = "pyrsistent-0.19.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:187d5730b0507d9285a96fca9716310d572e5464cadd19f22b63a6976254d77a"}, @@ -591,6 +623,7 @@ version = "2022.6" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "pytz-2022.6-py2.py3-none-any.whl", hash = "sha256:222439474e9c98fced559f1709d89e6c9cbf8d79c794ff3eb9f8800064291427"}, {file = "pytz-2022.6.tar.gz", hash = "sha256:e89512406b793ca39f5971bc999cc538ce125c0e51c27941bef4568b460095e2"}, @@ -602,6 +635,7 @@ version = "2.32.0" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "requests-2.32.0-py3-none-any.whl", hash = "sha256:f2c3881dddb70d056c5bd7600a4fae312b2a300e39be6a118d30b90bd27262b5"}, {file = "requests-2.32.0.tar.gz", hash = "sha256:fa5490319474c82ef1d2c9bc459d3652e3ae4ef4c4ebdd18a21145a47ca4b6b8"}, @@ -623,6 +657,7 @@ version = "1.16.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +groups = ["dev"] files = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, @@ -634,6 +669,7 @@ version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, @@ -645,6 +681,7 @@ version = "7.1.2" description = "Python documentation generator" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "sphinx-7.1.2-py3-none-any.whl", hash = "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe"}, {file = "sphinx-7.1.2.tar.gz", hash = "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f"}, @@ -680,6 +717,7 @@ version = "2.0.1" description = "Type hints (PEP 484) support for the Sphinx autodoc extension" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "sphinx_autodoc_typehints-2.0.1-py3-none-any.whl", hash = "sha256:f73ae89b43a799e587e39266672c1075b2ef783aeb382d3ebed77c38a3fc0149"}, {file = "sphinx_autodoc_typehints-2.0.1.tar.gz", hash = "sha256:60ed1e3b2c970acc0aa6e877be42d48029a9faec7378a17838716cacd8c10b12"}, @@ -699,6 +737,7 @@ version = "3.0.2" description = "Read the Docs theme for Sphinx" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13"}, {file = "sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85"}, @@ -718,6 +757,7 @@ version = "1.0.2" description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, @@ -733,6 +773,7 @@ version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, @@ -748,6 +789,7 @@ version = "2.0.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, @@ -763,6 +805,7 @@ version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" optional = false python-versions = ">=2.7" +groups = ["dev"] files = [ {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, @@ -777,6 +820,7 @@ version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, @@ -791,6 +835,7 @@ version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, @@ -806,6 +851,7 @@ version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, @@ -821,6 +867,8 @@ version = "2.0.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version < \"3.11\"" files = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, @@ -832,6 +880,7 @@ version = "2021.10.8.3" description = "Typing stubs for certifi" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "types-certifi-2021.10.8.3.tar.gz", hash = "sha256:72cf7798d165bc0b76e1c10dd1ea3097c7063c42c21d664523b928e88b554a4f"}, {file = "types_certifi-2021.10.8.3-py3-none-any.whl", hash = "sha256:b2d1e325e69f71f7c78e5943d410e650b4707bb0ef32e4ddf3da37f54176e88a"}, @@ -843,6 +892,7 @@ version = "75.8.0.20250110" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "types_setuptools-75.8.0.20250110-py3-none-any.whl", hash = "sha256:a9f12980bbf9bcdc23ecd80755789085bad6bfce4060c2275bc2b4ca9f2bc480"}, {file = "types_setuptools-75.8.0.20250110.tar.gz", hash = "sha256:96f7ec8bbd6e0a54ea180d66ad68ad7a1d7954e7281a710ea2de75e355545271"}, @@ -854,6 +904,7 @@ version = "1.26.25.14" description = "Typing stubs for urllib3" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "types-urllib3-1.26.25.14.tar.gz", hash = "sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f"}, {file = "types_urllib3-1.26.25.14-py3-none-any.whl", hash = "sha256:9683bbb7fb72e32bfe9d2be6e04875fbe1b3eeec3cbb4ea231435aa7fd6b4f0e"}, @@ -865,6 +916,7 @@ version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, @@ -876,13 +928,14 @@ version = "2.2.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -893,6 +946,7 @@ version = "13.1" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"}, {file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"}, @@ -988,6 +1042,7 @@ version = "0.13.0" description = "Makes working with XML feel like you are working with JSON" optional = false python-versions = ">=3.4" +groups = ["dev"] files = [ {file = "xmltodict-0.13.0-py2.py3-none-any.whl", hash = "sha256:aa89e8fd76320154a40d19a0df04a4695fb9dc5ba977cbb68ab3e4eb225e7852"}, {file = "xmltodict-0.13.0.tar.gz", hash = "sha256:341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"}, @@ -999,6 +1054,8 @@ version = "3.19.1" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version < \"3.10\"" files = [ {file = "zipp-3.19.1-py3-none-any.whl", hash = "sha256:2828e64edb5386ea6a52e7ba7cdb17bb30a73a858f5eb6eb93d8d36f5ea26091"}, {file = "zipp-3.19.1.tar.gz", hash = "sha256:35427f6d5594f4acf82d25541438348c26736fa9b3afa2754bcd63cdb99d8e8f"}, @@ -1009,6 +1066,6 @@ doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linke test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [metadata] -lock-version = "2.0" +lock-version = "2.1" python-versions = "^3.8" content-hash = "c80bc058f0871dd694ea1761d3266a1d46d0265b19312868ccc7e5cf3dbe3244" From 1cb16d382812eb402d2b6f6f3335bf0f59f1470c Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Wed, 23 Apr 2025 15:45:25 -0700 Subject: [PATCH 50/53] Adds IPOs, Short Interest/Volume, and Treasury Yields (#875) * Adds IPOs, Short Interest/Volume, and Treasury Yields * Fix docs url --- examples/rest/economy-treasury_yields.py | 13 ++ examples/rest/stocks-ipos.py | 2 +- examples/rest/stocks-short_interest.py | 13 ++ examples/rest/stocks-short_volume.py | 13 ++ polygon/rest/models/tickers.py | 112 +++++++++++++- polygon/rest/vX.py | 183 ++++++++++++++++++++++- 6 files changed, 328 insertions(+), 8 deletions(-) create mode 100644 examples/rest/economy-treasury_yields.py create mode 100644 examples/rest/stocks-short_interest.py create mode 100644 examples/rest/stocks-short_volume.py diff --git a/examples/rest/economy-treasury_yields.py b/examples/rest/economy-treasury_yields.py new file mode 100644 index 00000000..011b1866 --- /dev/null +++ b/examples/rest/economy-treasury_yields.py @@ -0,0 +1,13 @@ +from polygon import RESTClient + +# docs +# https://polygon.io/docs/rest/economy/treasury-yields + +# client = RESTClient("XXXXXX") # hardcoded api_key is used +client = RESTClient() # POLYGON_API_KEY environment variable is used + +yields = [] +for date in client.vx.list_treasury_yields(): + yields.append(date) + +print(yields) diff --git a/examples/rest/stocks-ipos.py b/examples/rest/stocks-ipos.py index 54852335..cc09f61b 100644 --- a/examples/rest/stocks-ipos.py +++ b/examples/rest/stocks-ipos.py @@ -1,7 +1,7 @@ from polygon import RESTClient # docs -# https://polygon.io/docs/stocks/get_vx_reference_ipos +# https://polygon.io/docs/rest/stocks/corporate-actions/ipos # client = RESTClient("XXXXXX") # hardcoded api_key is used client = RESTClient() # POLYGON_API_KEY environment variable is used diff --git a/examples/rest/stocks-short_interest.py b/examples/rest/stocks-short_interest.py new file mode 100644 index 00000000..3b64cd2a --- /dev/null +++ b/examples/rest/stocks-short_interest.py @@ -0,0 +1,13 @@ +from polygon import RESTClient + +# docs +# https://polygon.io/docs/rest/stocks/fundamentals/short-interest + +# client = RESTClient("XXXXXX") # hardcoded api_key is used +client = RESTClient() # POLYGON_API_KEY environment variable is used + +items = [] +for item in client.vx.list_short_interest(ticker="RDDT"): + items.append(item) + +print(items) diff --git a/examples/rest/stocks-short_volume.py b/examples/rest/stocks-short_volume.py new file mode 100644 index 00000000..711bfd47 --- /dev/null +++ b/examples/rest/stocks-short_volume.py @@ -0,0 +1,13 @@ +from polygon import RESTClient + +# docs +# https://polygon.io/docs/rest/stocks/fundamentals/short-volume + +# client = RESTClient("XXXXXX") # hardcoded api_key is used +client = RESTClient() # POLYGON_API_KEY environment variable is used + +items = [] +for item in client.vx.list_short_volume(ticker="RDDT"): + items.append(item) + +print(items) diff --git a/polygon/rest/models/tickers.py b/polygon/rest/models/tickers.py index 317275ed..76cb6f6f 100644 --- a/polygon/rest/models/tickers.py +++ b/polygon/rest/models/tickers.py @@ -1,5 +1,4 @@ from typing import Optional, List - from ...modelclass import modelclass @@ -255,10 +254,6 @@ def from_dict(d): return TickerChangeResults(**d) -from typing import Optional -from ...modelclass import modelclass - - @modelclass class IPOListing: """ @@ -310,3 +305,110 @@ def from_dict(d): total_offer_size=d.get("total_offer_size"), us_code=d.get("us_code"), ) + + +@modelclass +class ShortInterest: + """ + Short Interest data for a specific identifier. + """ + + avg_daily_volume: Optional[int] = None + days_to_cover: Optional[float] = None + settlement_date: Optional[str] = None + short_interest: Optional[int] = None + ticker: Optional[str] = None + + @staticmethod + def from_dict(d): + return ShortInterest( + avg_daily_volume=d.get("avg_daily_volume"), + days_to_cover=d.get("days_to_cover"), + settlement_date=d.get("settlement_date"), + short_interest=d.get("short_interest"), + ticker=d.get("ticker"), + ) + + +@modelclass +class ShortVolume: + """ + Short Volume data for a specific identifier on a given date. + """ + + adf_short_volume: Optional[int] = None + adf_short_volume_exempt: Optional[int] = None + date: Optional[str] = None + exempt_volume: Optional[int] = None + nasdaq_carteret_short_volume: Optional[int] = None + nasdaq_carteret_short_volume_exempt: Optional[int] = None + nasdaq_chicago_short_volume: Optional[int] = None + nasdaq_chicago_short_volume_exempt: Optional[int] = None + non_exempt_volume: Optional[int] = None + nyse_short_volume: Optional[int] = None + nyse_short_volume_exempt: Optional[int] = None + short_volume: Optional[int] = None + short_volume_ratio: Optional[float] = None + ticker: Optional[str] = None + total_volume: Optional[int] = None + + @staticmethod + def from_dict(d): + return ShortVolume( + adf_short_volume=d.get("adf_short_volume"), + adf_short_volume_exempt=d.get("adf_short_volume_exempt"), + date=d.get("date"), + exempt_volume=d.get("exempt_volume"), + nasdaq_carteret_short_volume=d.get("nasdaq_carteret_short_volume"), + nasdaq_carteret_short_volume_exempt=d.get( + "nasdaq_carteret_short_volume_exempt" + ), + nasdaq_chicago_short_volume=d.get("nasdaq_chicago_short_volume"), + nasdaq_chicago_short_volume_exempt=d.get( + "nasdaq_chicago_short_volume_exempt" + ), + non_exempt_volume=d.get("non_exempt_volume"), + nyse_short_volume=d.get("nyse_short_volume"), + nyse_short_volume_exempt=d.get("nyse_short_volume_exempt"), + short_volume=d.get("short_volume"), + short_volume_ratio=d.get("short_volume_ratio"), + ticker=d.get("ticker"), + total_volume=d.get("total_volume"), + ) + + +@modelclass +class TreasuryYield: + """ + Treasury yield data for a specific date. + """ + + date: Optional[str] = None + yield_1_month: Optional[float] = None + yield_3_month: Optional[float] = None + yield_6_month: Optional[float] = None + yield_1_year: Optional[float] = None + yield_2_year: Optional[float] = None + yield_3_year: Optional[float] = None + yield_5_year: Optional[float] = None + yield_7_year: Optional[float] = None + yield_10_year: Optional[float] = None + yield_20_year: Optional[float] = None + yield_30_year: Optional[float] = None + + @staticmethod + def from_dict(d): + return TreasuryYield( + date=d.get("date"), + yield_1_month=d.get("yield_1_month"), + yield_3_month=d.get("yield_3_month"), + yield_6_month=d.get("yield_6_month"), + yield_1_year=d.get("yield_1_year"), + yield_2_year=d.get("yield_2_year"), + yield_3_year=d.get("yield_3_year"), + yield_5_year=d.get("yield_5_year"), + yield_7_year=d.get("yield_7_year"), + yield_10_year=d.get("yield_10_year"), + yield_20_year=d.get("yield_20_year"), + yield_30_year=d.get("yield_30_year"), + ) diff --git a/polygon/rest/vX.py b/polygon/rest/vX.py index 228134d4..23f0e94e 100644 --- a/polygon/rest/vX.py +++ b/polygon/rest/vX.py @@ -1,9 +1,17 @@ from .base import BaseClient from typing import Optional, Any, Dict, List, Union, Iterator -from .models import StockFinancial, IPOListing, Timeframe, Sort, Order +from .models import ( + StockFinancial, + IPOListing, + ShortInterest, + ShortVolume, + TreasuryYield, + Timeframe, + Sort, + Order, +) from urllib3 import HTTPResponse from datetime import datetime, date - from .models.request import RequestOptionBuilder @@ -77,6 +85,10 @@ def list_ipos( us_code: Optional[str] = None, isin: Optional[str] = None, listing_date: Optional[str] = None, + listing_date_lt: Optional[str] = None, + listing_date_lte: Optional[str] = None, + listing_date_gt: Optional[str] = None, + listing_date_gte: Optional[str] = None, ipo_status: Optional[str] = None, limit: Optional[int] = None, sort: Optional[Union[str, Sort]] = None, @@ -111,3 +123,170 @@ def list_ipos( result_key="results", options=options, ) + + def list_short_interest( + self, + ticker: Optional[str] = None, + days_to_cover: Optional[str] = None, + days_to_cover_lt: Optional[str] = None, + days_to_cover_lte: Optional[str] = None, + days_to_cover_gt: Optional[str] = None, + days_to_cover_gte: Optional[str] = None, + settlement_date: Optional[str] = None, + settlement_date_lt: Optional[str] = None, + settlement_date_lte: Optional[str] = None, + settlement_date_gt: Optional[str] = None, + settlement_date_gte: Optional[str] = None, + avg_daily_volume: Optional[str] = None, + avg_daily_volume_lt: Optional[str] = None, + avg_daily_volume_lte: Optional[str] = None, + avg_daily_volume_gt: Optional[str] = None, + avg_daily_volume_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[ShortInterest], HTTPResponse]: + """ + Retrieve short interest data for stocks. + + :param ticker: Filter by the primary ticker symbol. + :param days_to_cover: Filter by the days to cover value. + :param days_to_cover_lt: Filter for days to cover dates less than the provided date. + :param days_to_cover_lte: Filter for days to cover dates less than or equal to the provided date. + :param days_to_cover_gt: Filter for days to cover dates greater than the provided date. + :param days_to_cover_gte: Filter for days to cover dates greater than or equal to the provided date. + :param settlement_date: Filter by settlement date (YYYY-MM-DD). + :param settlement_date_lt: Filter for settlement dates less than the provided date. + :param settlement_date_lte: Filter for settlement dates less than or equal to the provided date. + :param settlement_date_gt: Filter for settlement dates greater than the provided date. + :param settlement_date_gte: Filter for settlement dates greater than or equal to the provided date. + :param avg_daily_volume: Filter by average daily volume. + :param avg_daily_volume_lt: Filter for average daily volume dates less than the provided date. + :param avg_daily_volume_lte: Filter for average daily volume dates less than or equal to the provided date. + :param avg_daily_volume_gt: Filter for average daily volume dates greater than the provided date. + :param avg_daily_volume_gte: Filter for average daily volume dates greater than or equal to the provided date. + :param limit: Limit the number of results returned. Default 10, max 50000. + :param sort: Field to sort by (e.g., "ticker"). + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". + :param params: Additional query parameters. + :param raw: Return raw HTTPResponse object if True, else return List[ShortInterest]. + :param options: RequestOptionBuilder for additional headers or params. + :return: A list of ShortInterest objects or HTTPResponse if raw=True. + """ + url = "/stocks/vX/short-interest" + + return self._paginate( + path=url, + params=self._get_params(self.list_short_interest, locals()), + deserializer=ShortInterest.from_dict, + raw=raw, + result_key="results", + options=options, + ) + + def list_short_volume( + self, + ticker: Optional[str] = None, + date: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + short_volume_ratio: Optional[str] = None, + short_volume_ratio_lt: Optional[str] = None, + short_volume_ratio_lte: Optional[str] = None, + short_volume_ratio_gt: Optional[str] = None, + short_volume_ratio_gte: Optional[str] = None, + total_volume: Optional[str] = None, + total_volume_lt: Optional[str] = None, + total_volume_lte: Optional[str] = None, + total_volume_gt: Optional[str] = None, + total_volume_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[ShortVolume], HTTPResponse]: + """ + Retrieve short volume data for stocks. + + :param ticker: Filter by the primary ticker symbol. + :param date: Filter by the date of trade activity (YYYY-MM-DD). + :param date_lt: Filter for dates less than the provided date. + :param date_lte: Filter for dates less than or equal to the provided date. + :param date_gt: Filter for dates greater than the provided date. + :param date_gte: Filter for dates greater than or equal to the provided date. + :param short_volume_ratio: Filter by short volume ratio. + :param short_volume_ratio_lt: Filter for short volume ratio less than the provided date. + :param short_volume_ratio_lte: Filter for short volume ratio less than or equal to the provided date. + :param short_volume_ratio_gt: Filter for short volume ratio greater than the provided date. + :param short_volume_ratio_gte: Filter for short volume ratio greater than or equal to the provided date. + :param total_volume: Filter by total volume. + :param total_volume_lt: Filter for total volume less than the provided date. + :param total_volume_lte: Filter for total volume less than or equal to the provided date. + :param total_volume_gt: Filter for total volume greater than the provided date. + :param total_volume_gte: Filter for total volume greater than or equal to the provided date. + :param limit: Limit the number of results returned. Default 10, max 50000. + :param sort: Field to sort by (e.g., "ticker"). + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". + :param params: Additional query parameters. + :param raw: Return raw HTTPResponse object if True, else return List[ShortVolume]. + :param options: RequestOptionBuilder for additional headers or params. + :return: A list of ShortVolume objects or HTTPResponse if raw=True. + """ + url = "/stocks/vX/short-volume" + + return self._paginate( + path=url, + params=self._get_params(self.list_short_volume, locals()), + deserializer=ShortVolume.from_dict, + raw=raw, + result_key="results", + options=options, + ) + + def list_treasury_yields( + self, + date: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[TreasuryYield], HTTPResponse]: + """ + Retrieve treasury yield data. + + :param date: Calendar date of the yield observation (YYYY-MM-DD). + :param date_gt: Filter for dates greater than the provided date. + :param date_gte: Filter for dates greater than or equal to the provided date. + :param date_lt: Filter for dates less than the provided date. + :param date_lte: Filter for dates less than or equal to the provided date. + :param limit: Limit the number of results returned. Default 100, max 50000. + :param sort: Field to sort by (e.g., "date"). Default "date". + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". + :param params: Additional query parameters. + :param raw: Return raw HTTPResponse object if True, else return List[TreasuryYield]. + :param options: RequestOptionBuilder for additional headers or params. + :return: A list of TreasuryYield objects or HTTPResponse if raw=True. + """ + url = "/fed/vX/treasury-yields" + + return self._paginate( + path=url, + params=self._get_params(self.list_treasury_yields, locals()), + deserializer=TreasuryYield.from_dict, + raw=raw, + result_key="results", + options=options, + ) From 1bc22c325ac8ae0d49656fcad46cce949803a34f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Apr 2025 10:13:59 -0700 Subject: [PATCH 51/53] Bump certifi from 2025.1.31 to 2025.4.26 (#877) Bumps [certifi](https://github.com/certifi/python-certifi) from 2025.1.31 to 2025.4.26. - [Commits](https://github.com/certifi/python-certifi/compare/2025.01.31...2025.04.26) --- updated-dependencies: - dependency-name: certifi dependency-version: 2025.4.26 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8a686894..e657d9cb 100644 --- a/poetry.lock +++ b/poetry.lock @@ -94,14 +94,14 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2025.1.31" +version = "2025.4.26" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" groups = ["main", "dev"] files = [ - {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, - {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, + {file = "certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"}, + {file = "certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6"}, ] [[package]] From 4ed1624ea6e0ce596304e3c70101f46623fb99c4 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Tue, 3 Jun 2025 11:35:18 -0700 Subject: [PATCH 52/53] Update endpoints from vX to v1 (#881) --- examples/rest/economy-treasury_yields.py | 2 +- examples/rest/stocks-short_interest.py | 2 +- examples/rest/stocks-short_volume.py | 2 +- polygon/rest/reference.py | 170 +++++++++++++++++++++++ polygon/rest/vX.py | 170 ----------------------- 5 files changed, 173 insertions(+), 173 deletions(-) diff --git a/examples/rest/economy-treasury_yields.py b/examples/rest/economy-treasury_yields.py index 011b1866..7be77fcf 100644 --- a/examples/rest/economy-treasury_yields.py +++ b/examples/rest/economy-treasury_yields.py @@ -7,7 +7,7 @@ client = RESTClient() # POLYGON_API_KEY environment variable is used yields = [] -for date in client.vx.list_treasury_yields(): +for date in client.list_treasury_yields(): yields.append(date) print(yields) diff --git a/examples/rest/stocks-short_interest.py b/examples/rest/stocks-short_interest.py index 3b64cd2a..6a9f7ea1 100644 --- a/examples/rest/stocks-short_interest.py +++ b/examples/rest/stocks-short_interest.py @@ -7,7 +7,7 @@ client = RESTClient() # POLYGON_API_KEY environment variable is used items = [] -for item in client.vx.list_short_interest(ticker="RDDT"): +for item in client.list_short_interest(ticker="RDDT"): items.append(item) print(items) diff --git a/examples/rest/stocks-short_volume.py b/examples/rest/stocks-short_volume.py index 711bfd47..c127867a 100644 --- a/examples/rest/stocks-short_volume.py +++ b/examples/rest/stocks-short_volume.py @@ -7,7 +7,7 @@ client = RESTClient() # POLYGON_API_KEY environment variable is used items = [] -for item in client.vx.list_short_volume(ticker="RDDT"): +for item in client.list_short_volume(ticker="RDDT"): items.append(item) print(items) diff --git a/polygon/rest/reference.py b/polygon/rest/reference.py index 7af5b10f..e1695cb2 100644 --- a/polygon/rest/reference.py +++ b/polygon/rest/reference.py @@ -22,6 +22,9 @@ SIP, Exchange, OptionsContract, + ShortInterest, + ShortVolume, + TreasuryYield, ) from urllib3 import HTTPResponse from datetime import date @@ -567,3 +570,170 @@ def list_options_contracts( deserializer=OptionsContract.from_dict, options=options, ) + + def list_short_interest( + self, + ticker: Optional[str] = None, + days_to_cover: Optional[str] = None, + days_to_cover_lt: Optional[str] = None, + days_to_cover_lte: Optional[str] = None, + days_to_cover_gt: Optional[str] = None, + days_to_cover_gte: Optional[str] = None, + settlement_date: Optional[str] = None, + settlement_date_lt: Optional[str] = None, + settlement_date_lte: Optional[str] = None, + settlement_date_gt: Optional[str] = None, + settlement_date_gte: Optional[str] = None, + avg_daily_volume: Optional[str] = None, + avg_daily_volume_lt: Optional[str] = None, + avg_daily_volume_lte: Optional[str] = None, + avg_daily_volume_gt: Optional[str] = None, + avg_daily_volume_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[ShortInterest], HTTPResponse]: + """ + Retrieve short interest data for stocks. + + :param ticker: Filter by the primary ticker symbol. + :param days_to_cover: Filter by the days to cover value. + :param days_to_cover_lt: Filter for days to cover dates less than the provided date. + :param days_to_cover_lte: Filter for days to cover dates less than or equal to the provided date. + :param days_to_cover_gt: Filter for days to cover dates greater than the provided date. + :param days_to_cover_gte: Filter for days to cover dates greater than or equal to the provided date. + :param settlement_date: Filter by settlement date (YYYY-MM-DD). + :param settlement_date_lt: Filter for settlement dates less than the provided date. + :param settlement_date_lte: Filter for settlement dates less than or equal to the provided date. + :param settlement_date_gt: Filter for settlement dates greater than the provided date. + :param settlement_date_gte: Filter for settlement dates greater than or equal to the provided date. + :param avg_daily_volume: Filter by average daily volume. + :param avg_daily_volume_lt: Filter for average daily volume dates less than the provided date. + :param avg_daily_volume_lte: Filter for average daily volume dates less than or equal to the provided date. + :param avg_daily_volume_gt: Filter for average daily volume dates greater than the provided date. + :param avg_daily_volume_gte: Filter for average daily volume dates greater than or equal to the provided date. + :param limit: Limit the number of results returned. Default 10, max 50000. + :param sort: Field to sort by (e.g., "ticker"). + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". + :param params: Additional query parameters. + :param raw: Return raw HTTPResponse object if True, else return List[ShortInterest]. + :param options: RequestOptionBuilder for additional headers or params. + :return: A list of ShortInterest objects or HTTPResponse if raw=True. + """ + url = "/stocks/v1/short-interest" + + return self._paginate( + path=url, + params=self._get_params(self.list_short_interest, locals()), + deserializer=ShortInterest.from_dict, + raw=raw, + result_key="results", + options=options, + ) + + def list_short_volume( + self, + ticker: Optional[str] = None, + date: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + short_volume_ratio: Optional[str] = None, + short_volume_ratio_lt: Optional[str] = None, + short_volume_ratio_lte: Optional[str] = None, + short_volume_ratio_gt: Optional[str] = None, + short_volume_ratio_gte: Optional[str] = None, + total_volume: Optional[str] = None, + total_volume_lt: Optional[str] = None, + total_volume_lte: Optional[str] = None, + total_volume_gt: Optional[str] = None, + total_volume_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[ShortVolume], HTTPResponse]: + """ + Retrieve short volume data for stocks. + + :param ticker: Filter by the primary ticker symbol. + :param date: Filter by the date of trade activity (YYYY-MM-DD). + :param date_lt: Filter for dates less than the provided date. + :param date_lte: Filter for dates less than or equal to the provided date. + :param date_gt: Filter for dates greater than the provided date. + :param date_gte: Filter for dates greater than or equal to the provided date. + :param short_volume_ratio: Filter by short volume ratio. + :param short_volume_ratio_lt: Filter for short volume ratio less than the provided date. + :param short_volume_ratio_lte: Filter for short volume ratio less than or equal to the provided date. + :param short_volume_ratio_gt: Filter for short volume ratio greater than the provided date. + :param short_volume_ratio_gte: Filter for short volume ratio greater than or equal to the provided date. + :param total_volume: Filter by total volume. + :param total_volume_lt: Filter for total volume less than the provided date. + :param total_volume_lte: Filter for total volume less than or equal to the provided date. + :param total_volume_gt: Filter for total volume greater than the provided date. + :param total_volume_gte: Filter for total volume greater than or equal to the provided date. + :param limit: Limit the number of results returned. Default 10, max 50000. + :param sort: Field to sort by (e.g., "ticker"). + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". + :param params: Additional query parameters. + :param raw: Return raw HTTPResponse object if True, else return List[ShortVolume]. + :param options: RequestOptionBuilder for additional headers or params. + :return: A list of ShortVolume objects or HTTPResponse if raw=True. + """ + url = "/stocks/v1/short-volume" + + return self._paginate( + path=url, + params=self._get_params(self.list_short_volume, locals()), + deserializer=ShortVolume.from_dict, + raw=raw, + result_key="results", + options=options, + ) + + def list_treasury_yields( + self, + date: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[TreasuryYield], HTTPResponse]: + """ + Retrieve treasury yield data. + + :param date: Calendar date of the yield observation (YYYY-MM-DD). + :param date_gt: Filter for dates greater than the provided date. + :param date_gte: Filter for dates greater than or equal to the provided date. + :param date_lt: Filter for dates less than the provided date. + :param date_lte: Filter for dates less than or equal to the provided date. + :param limit: Limit the number of results returned. Default 100, max 50000. + :param sort: Field to sort by (e.g., "date"). Default "date". + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". + :param params: Additional query parameters. + :param raw: Return raw HTTPResponse object if True, else return List[TreasuryYield]. + :param options: RequestOptionBuilder for additional headers or params. + :return: A list of TreasuryYield objects or HTTPResponse if raw=True. + """ + url = "/fed/v1/treasury-yields" + + return self._paginate( + path=url, + params=self._get_params(self.list_treasury_yields, locals()), + deserializer=TreasuryYield.from_dict, + raw=raw, + result_key="results", + options=options, + ) diff --git a/polygon/rest/vX.py b/polygon/rest/vX.py index 23f0e94e..ebd95a1a 100644 --- a/polygon/rest/vX.py +++ b/polygon/rest/vX.py @@ -3,9 +3,6 @@ from .models import ( StockFinancial, IPOListing, - ShortInterest, - ShortVolume, - TreasuryYield, Timeframe, Sort, Order, @@ -123,170 +120,3 @@ def list_ipos( result_key="results", options=options, ) - - def list_short_interest( - self, - ticker: Optional[str] = None, - days_to_cover: Optional[str] = None, - days_to_cover_lt: Optional[str] = None, - days_to_cover_lte: Optional[str] = None, - days_to_cover_gt: Optional[str] = None, - days_to_cover_gte: Optional[str] = None, - settlement_date: Optional[str] = None, - settlement_date_lt: Optional[str] = None, - settlement_date_lte: Optional[str] = None, - settlement_date_gt: Optional[str] = None, - settlement_date_gte: Optional[str] = None, - avg_daily_volume: Optional[str] = None, - avg_daily_volume_lt: Optional[str] = None, - avg_daily_volume_lte: Optional[str] = None, - avg_daily_volume_gt: Optional[str] = None, - avg_daily_volume_gte: Optional[str] = None, - limit: Optional[int] = None, - sort: Optional[Union[str, Sort]] = None, - order: Optional[Union[str, Order]] = None, - params: Optional[Dict[str, Any]] = None, - raw: bool = False, - options: Optional[RequestOptionBuilder] = None, - ) -> Union[List[ShortInterest], HTTPResponse]: - """ - Retrieve short interest data for stocks. - - :param ticker: Filter by the primary ticker symbol. - :param days_to_cover: Filter by the days to cover value. - :param days_to_cover_lt: Filter for days to cover dates less than the provided date. - :param days_to_cover_lte: Filter for days to cover dates less than or equal to the provided date. - :param days_to_cover_gt: Filter for days to cover dates greater than the provided date. - :param days_to_cover_gte: Filter for days to cover dates greater than or equal to the provided date. - :param settlement_date: Filter by settlement date (YYYY-MM-DD). - :param settlement_date_lt: Filter for settlement dates less than the provided date. - :param settlement_date_lte: Filter for settlement dates less than or equal to the provided date. - :param settlement_date_gt: Filter for settlement dates greater than the provided date. - :param settlement_date_gte: Filter for settlement dates greater than or equal to the provided date. - :param avg_daily_volume: Filter by average daily volume. - :param avg_daily_volume_lt: Filter for average daily volume dates less than the provided date. - :param avg_daily_volume_lte: Filter for average daily volume dates less than or equal to the provided date. - :param avg_daily_volume_gt: Filter for average daily volume dates greater than the provided date. - :param avg_daily_volume_gte: Filter for average daily volume dates greater than or equal to the provided date. - :param limit: Limit the number of results returned. Default 10, max 50000. - :param sort: Field to sort by (e.g., "ticker"). - :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". - :param params: Additional query parameters. - :param raw: Return raw HTTPResponse object if True, else return List[ShortInterest]. - :param options: RequestOptionBuilder for additional headers or params. - :return: A list of ShortInterest objects or HTTPResponse if raw=True. - """ - url = "/stocks/vX/short-interest" - - return self._paginate( - path=url, - params=self._get_params(self.list_short_interest, locals()), - deserializer=ShortInterest.from_dict, - raw=raw, - result_key="results", - options=options, - ) - - def list_short_volume( - self, - ticker: Optional[str] = None, - date: Optional[str] = None, - date_lt: Optional[str] = None, - date_lte: Optional[str] = None, - date_gt: Optional[str] = None, - date_gte: Optional[str] = None, - short_volume_ratio: Optional[str] = None, - short_volume_ratio_lt: Optional[str] = None, - short_volume_ratio_lte: Optional[str] = None, - short_volume_ratio_gt: Optional[str] = None, - short_volume_ratio_gte: Optional[str] = None, - total_volume: Optional[str] = None, - total_volume_lt: Optional[str] = None, - total_volume_lte: Optional[str] = None, - total_volume_gt: Optional[str] = None, - total_volume_gte: Optional[str] = None, - limit: Optional[int] = None, - sort: Optional[Union[str, Sort]] = None, - order: Optional[Union[str, Order]] = None, - params: Optional[Dict[str, Any]] = None, - raw: bool = False, - options: Optional[RequestOptionBuilder] = None, - ) -> Union[List[ShortVolume], HTTPResponse]: - """ - Retrieve short volume data for stocks. - - :param ticker: Filter by the primary ticker symbol. - :param date: Filter by the date of trade activity (YYYY-MM-DD). - :param date_lt: Filter for dates less than the provided date. - :param date_lte: Filter for dates less than or equal to the provided date. - :param date_gt: Filter for dates greater than the provided date. - :param date_gte: Filter for dates greater than or equal to the provided date. - :param short_volume_ratio: Filter by short volume ratio. - :param short_volume_ratio_lt: Filter for short volume ratio less than the provided date. - :param short_volume_ratio_lte: Filter for short volume ratio less than or equal to the provided date. - :param short_volume_ratio_gt: Filter for short volume ratio greater than the provided date. - :param short_volume_ratio_gte: Filter for short volume ratio greater than or equal to the provided date. - :param total_volume: Filter by total volume. - :param total_volume_lt: Filter for total volume less than the provided date. - :param total_volume_lte: Filter for total volume less than or equal to the provided date. - :param total_volume_gt: Filter for total volume greater than the provided date. - :param total_volume_gte: Filter for total volume greater than or equal to the provided date. - :param limit: Limit the number of results returned. Default 10, max 50000. - :param sort: Field to sort by (e.g., "ticker"). - :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". - :param params: Additional query parameters. - :param raw: Return raw HTTPResponse object if True, else return List[ShortVolume]. - :param options: RequestOptionBuilder for additional headers or params. - :return: A list of ShortVolume objects or HTTPResponse if raw=True. - """ - url = "/stocks/vX/short-volume" - - return self._paginate( - path=url, - params=self._get_params(self.list_short_volume, locals()), - deserializer=ShortVolume.from_dict, - raw=raw, - result_key="results", - options=options, - ) - - def list_treasury_yields( - self, - date: Optional[str] = None, - date_gt: Optional[str] = None, - date_gte: Optional[str] = None, - date_lt: Optional[str] = None, - date_lte: Optional[str] = None, - limit: Optional[int] = None, - sort: Optional[Union[str, Sort]] = None, - order: Optional[Union[str, Order]] = None, - params: Optional[Dict[str, Any]] = None, - raw: bool = False, - options: Optional[RequestOptionBuilder] = None, - ) -> Union[List[TreasuryYield], HTTPResponse]: - """ - Retrieve treasury yield data. - - :param date: Calendar date of the yield observation (YYYY-MM-DD). - :param date_gt: Filter for dates greater than the provided date. - :param date_gte: Filter for dates greater than or equal to the provided date. - :param date_lt: Filter for dates less than the provided date. - :param date_lte: Filter for dates less than or equal to the provided date. - :param limit: Limit the number of results returned. Default 100, max 50000. - :param sort: Field to sort by (e.g., "date"). Default "date". - :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". - :param params: Additional query parameters. - :param raw: Return raw HTTPResponse object if True, else return List[TreasuryYield]. - :param options: RequestOptionBuilder for additional headers or params. - :return: A list of TreasuryYield objects or HTTPResponse if raw=True. - """ - url = "/fed/vX/treasury-yields" - - return self._paginate( - path=url, - params=self._get_params(self.list_treasury_yields, locals()), - deserializer=TreasuryYield.from_dict, - raw=raw, - result_key="results", - options=options, - ) From c01504008adddedaa634033e83659663bba5780f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 10:33:18 -0700 Subject: [PATCH 53/53] Bump requests from 2.32.0 to 2.32.4 (#885) Bumps [requests](https://github.com/psf/requests) from 2.32.0 to 2.32.4. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](https://github.com/psf/requests/compare/v2.32.0...v2.32.4) --- updated-dependencies: - dependency-name: requests dependency-version: 2.32.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index e657d9cb..66e31bcc 100644 --- a/poetry.lock +++ b/poetry.lock @@ -631,19 +631,19 @@ files = [ [[package]] name = "requests" -version = "2.32.0" +version = "2.32.4" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" groups = ["dev"] files = [ - {file = "requests-2.32.0-py3-none-any.whl", hash = "sha256:f2c3881dddb70d056c5bd7600a4fae312b2a300e39be6a118d30b90bd27262b5"}, - {file = "requests-2.32.0.tar.gz", hash = "sha256:fa5490319474c82ef1d2c9bc459d3652e3ae4ef4c4ebdd18a21145a47ca4b6b8"}, + {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, + {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, ] [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" +charset_normalizer = ">=2,<4" idna = ">=2.5,<4" urllib3 = ">=1.21.1,<3"