From c4e591bf33b18cc79b6cd78bbacb8f06fb5f0d4a Mon Sep 17 00:00:00 2001 From: Hamed Daneshvar Date: Fri, 22 May 2026 00:37:50 +0330 Subject: [PATCH 1/2] refactor: refactor NLP part for SMILE method --- examples/NLP_Examples/pyproject.toml | 21 + examples/NLP_Examples/requirements.txt | 16 + examples/NLP_Examples/uv.lock | 1747 + .../NLP_Examples/x_why_for_text_smile.ipynb | 42041 ++++++++++++++++ examples/NLP_Examples/x_why_for_text_smile.py | 1951 + 5 files changed, 45776 insertions(+) create mode 100644 examples/NLP_Examples/pyproject.toml create mode 100644 examples/NLP_Examples/requirements.txt create mode 100644 examples/NLP_Examples/uv.lock create mode 100644 examples/NLP_Examples/x_why_for_text_smile.ipynb create mode 100644 examples/NLP_Examples/x_why_for_text_smile.py diff --git a/examples/NLP_Examples/pyproject.toml b/examples/NLP_Examples/pyproject.toml new file mode 100644 index 0000000..dc073fe --- /dev/null +++ b/examples/NLP_Examples/pyproject.toml @@ -0,0 +1,21 @@ +[project] +name = "3-nlp-examples" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.12.12" +dependencies = [ + "gensim>=4.4.0", + "ipywidgets>=8.1.8", + "lime>=0.2.0.1", + "matplotlib>=3.10.8", + "nbformat>=5.10.4", + "nltk>=3.9.4", + "numpy>=2.4.4", + "pandas>=3.0.2", + "plotly>=6.7.0", + "pot>=0.9.6.post1", + "requests>=2.33.1", + "scikit-learn>=1.8.0", + "shap>=0.51.0", +] diff --git a/examples/NLP_Examples/requirements.txt b/examples/NLP_Examples/requirements.txt new file mode 100644 index 0000000..039ade7 --- /dev/null +++ b/examples/NLP_Examples/requirements.txt @@ -0,0 +1,16 @@ +pandas~=3.0.2 +numpy~=2.4.4 +scikit-learn~=1.8.0 +plotly~=6.7.0 +matplotlib~=3.10.8 +nltk~=3.9.4 +gensim~=4.4.0 +lime~=0.2.0.1 +requests~=2.33.1 +pot~=0.9.6.post1 +shap~=0.51.0 + + +# notebook +nbformat~=5.10.4 +ipywidgets~=8.1.8 diff --git a/examples/NLP_Examples/uv.lock b/examples/NLP_Examples/uv.lock new file mode 100644 index 0000000..c02f84c --- /dev/null +++ b/examples/NLP_Examples/uv.lock @@ -0,0 +1,1747 @@ +version = 1 +revision = 3 +requires-python = ">=3.12.12" +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", + "(python_full_version >= '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", + "python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version < '3.14' and sys_platform == 'emscripten'", + "python_full_version < '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", + "(python_full_version < '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", +] + +[[package]] +name = "3-nlp-examples" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "gensim" }, + { name = "ipywidgets" }, + { name = "lime" }, + { name = "matplotlib" }, + { name = "nbformat" }, + { name = "nltk" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "plotly" }, + { name = "pot" }, + { name = "requests" }, + { name = "scikit-learn" }, + { name = "shap" }, +] + +[package.metadata] +requires-dist = [ + { name = "gensim", specifier = ">=4.4.0" }, + { name = "ipywidgets", specifier = ">=8.1.8" }, + { name = "lime", specifier = ">=0.2.0.1" }, + { name = "matplotlib", specifier = ">=3.10.8" }, + { name = "nbformat", specifier = ">=5.10.4" }, + { name = "nltk", specifier = ">=3.9.4" }, + { name = "numpy", specifier = ">=2.4.4" }, + { name = "pandas", specifier = ">=3.0.2" }, + { name = "plotly", specifier = ">=6.7.0" }, + { name = "pot", specifier = ">=0.9.6.post1" }, + { name = "requests", specifier = ">=2.33.1" }, + { name = "scikit-learn", specifier = ">=1.8.0" }, + { name = "shap", specifier = ">=0.51.0" }, +] + +[[package]] +name = "asttokens" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" }, +] + +[[package]] +name = "attrs" +version = "26.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, +] + +[[package]] +name = "certifi" +version = "2026.4.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/25/ee/6caf7a40c36a1220410afe15a1cc64993a1f864871f698c0f93acb72842a/certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580", size = 137077, upload-time = "2026-04-22T11:26:11.191Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a", size = 135707, upload-time = "2026-04-22T11:26:09.372Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/a1/67fe25fac3c7642725500a3f6cfe5821ad557c3abb11c9d20d12c7008d3e/charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5", size = 144271, upload-time = "2026-04-02T09:28:39.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eca9705049ad3c7345d574e3510665cb2cf844c2f2dcfe675332677f081cbd46", size = 311328, upload-time = "2026-04-02T09:26:24.331Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e3/0fadc706008ac9d7b9b5be6dc767c05f9d3e5df51744ce4cc9605de7b9f4/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6178f72c5508bfc5fd446a5905e698c6212932f25bcdd4b47a757a50605a90e2", size = 208061, upload-time = "2026-04-02T09:26:25.568Z" }, + { url = "https://files.pythonhosted.org/packages/42/f0/3dd1045c47f4a4604df85ec18ad093912ae1344ac706993aff91d38773a2/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e1421b502d83040e6d7fb2fb18dff63957f720da3d77b2fbd3187ceb63755d7b", size = 229031, upload-time = "2026-04-02T09:26:26.865Z" }, + { url = "https://files.pythonhosted.org/packages/dc/67/675a46eb016118a2fbde5a277a5d15f4f69d5f3f5f338e5ee2f8948fcf43/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:edac0f1ab77644605be2cbba52e6b7f630731fc42b34cb0f634be1a6eface56a", size = 225239, upload-time = "2026-04-02T09:26:28.044Z" }, + { url = "https://files.pythonhosted.org/packages/4b/f8/d0118a2f5f23b02cd166fa385c60f9b0d4f9194f574e2b31cef350ad7223/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5649fd1c7bade02f320a462fdefd0b4bd3ce036065836d4f42e0de958038e116", size = 216589, upload-time = "2026-04-02T09:26:29.239Z" }, + { url = "https://files.pythonhosted.org/packages/b1/f1/6d2b0b261b6c4ceef0fcb0d17a01cc5bc53586c2d4796fa04b5c540bc13d/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:203104ed3e428044fd943bc4bf45fa73c0730391f9621e37fe39ecf477b128cb", size = 202733, upload-time = "2026-04-02T09:26:30.5Z" }, + { url = "https://files.pythonhosted.org/packages/6f/c0/7b1f943f7e87cc3db9626ba17807d042c38645f0a1d4415c7a14afb5591f/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:298930cec56029e05497a76988377cbd7457ba864beeea92ad7e844fe74cd1f1", size = 212652, upload-time = "2026-04-02T09:26:31.709Z" }, + { url = "https://files.pythonhosted.org/packages/38/dd/5a9ab159fe45c6e72079398f277b7d2b523e7f716acc489726115a910097/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:708838739abf24b2ceb208d0e22403dd018faeef86ddac04319a62ae884c4f15", size = 211229, upload-time = "2026-04-02T09:26:33.282Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ff/531a1cad5ca855d1c1a8b69cb71abfd6d85c0291580146fda7c82857caa1/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:0f7eb884681e3938906ed0434f20c63046eacd0111c4ba96f27b76084cd679f5", size = 203552, upload-time = "2026-04-02T09:26:34.845Z" }, + { url = "https://files.pythonhosted.org/packages/c1/4c/a5fb52d528a8ca41f7598cb619409ece30a169fbdf9cdce592e53b46c3a6/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4dc1e73c36828f982bfe79fadf5919923f8a6f4df2860804db9a98c48824ce8d", size = 230806, upload-time = "2026-04-02T09:26:36.152Z" }, + { url = "https://files.pythonhosted.org/packages/59/7a/071feed8124111a32b316b33ae4de83d36923039ef8cf48120266844285b/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:aed52fea0513bac0ccde438c188c8a471c4e0f457c2dd20cdbf6ea7a450046c7", size = 212316, upload-time = "2026-04-02T09:26:37.672Z" }, + { url = "https://files.pythonhosted.org/packages/fd/35/f7dba3994312d7ba508e041eaac39a36b120f32d4c8662b8814dab876431/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464", size = 227274, upload-time = "2026-04-02T09:26:38.93Z" }, + { url = "https://files.pythonhosted.org/packages/8a/2d/a572df5c9204ab7688ec1edc895a73ebded3b023bb07364710b05dd1c9be/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb6d88045545b26da47aa879dd4a89a71d1dce0f0e549b1abcb31dfe4a8eac49", size = 218468, upload-time = "2026-04-02T09:26:40.17Z" }, + { url = "https://files.pythonhosted.org/packages/86/eb/890922a8b03a568ca2f336c36585a4713c55d4d67bf0f0c78924be6315ca/charset_normalizer-3.4.7-cp312-cp312-win32.whl", hash = "sha256:2257141f39fe65a3fdf38aeccae4b953e5f3b3324f4ff0daf9f15b8518666a2c", size = 148460, upload-time = "2026-04-02T09:26:41.416Z" }, + { url = "https://files.pythonhosted.org/packages/35/d9/0e7dffa06c5ab081f75b1b786f0aefc88365825dfcd0ac544bdb7b2b6853/charset_normalizer-3.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:5ed6ab538499c8644b8a3e18debabcd7ce684f3fa91cf867521a7a0279cab2d6", size = 159330, upload-time = "2026-04-02T09:26:42.554Z" }, + { url = "https://files.pythonhosted.org/packages/9e/5d/481bcc2a7c88ea6b0878c299547843b2521ccbc40980cb406267088bc701/charset_normalizer-3.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:56be790f86bfb2c98fb742ce566dfb4816e5a83384616ab59c49e0604d49c51d", size = 147828, upload-time = "2026-04-02T09:26:44.075Z" }, + { url = "https://files.pythonhosted.org/packages/c1/3b/66777e39d3ae1ddc77ee606be4ec6d8cbd4c801f65e5a1b6f2b11b8346dd/charset_normalizer-3.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f496c9c3cc02230093d8330875c4c3cdfc3b73612a5fd921c65d39cbcef08063", size = 309627, upload-time = "2026-04-02T09:26:45.198Z" }, + { url = "https://files.pythonhosted.org/packages/2e/4e/b7f84e617b4854ade48a1b7915c8ccfadeba444d2a18c291f696e37f0d3b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ea948db76d31190bf08bd371623927ee1339d5f2a0b4b1b4a4439a65298703c", size = 207008, upload-time = "2026-04-02T09:26:46.824Z" }, + { url = "https://files.pythonhosted.org/packages/c4/bb/ec73c0257c9e11b268f018f068f5d00aa0ef8c8b09f7753ebd5f2880e248/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a277ab8928b9f299723bc1a2dabb1265911b1a76341f90a510368ca44ad9ab66", size = 228303, upload-time = "2026-04-02T09:26:48.397Z" }, + { url = "https://files.pythonhosted.org/packages/85/fb/32d1f5033484494619f701e719429c69b766bfc4dbc61aa9e9c8c166528b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3bec022aec2c514d9cf199522a802bd007cd588ab17ab2525f20f9c34d067c18", size = 224282, upload-time = "2026-04-02T09:26:49.684Z" }, + { url = "https://files.pythonhosted.org/packages/fa/07/330e3a0dda4c404d6da83b327270906e9654a24f6c546dc886a0eb0ffb23/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e044c39e41b92c845bc815e5ae4230804e8e7bc29e399b0437d64222d92809dd", size = 215595, upload-time = "2026-04-02T09:26:50.915Z" }, + { url = "https://files.pythonhosted.org/packages/e3/7c/fc890655786e423f02556e0216d4b8c6bcb6bdfa890160dc66bf52dee468/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:f495a1652cf3fbab2eb0639776dad966c2fb874d79d87ca07f9d5f059b8bd215", size = 201986, upload-time = "2026-04-02T09:26:52.197Z" }, + { url = "https://files.pythonhosted.org/packages/d8/97/bfb18b3db2aed3b90cf54dc292ad79fdd5ad65c4eae454099475cbeadd0d/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e712b419df8ba5e42b226c510472b37bd57b38e897d3eca5e8cfd410a29fa859", size = 211711, upload-time = "2026-04-02T09:26:53.49Z" }, + { url = "https://files.pythonhosted.org/packages/6f/a5/a581c13798546a7fd557c82614a5c65a13df2157e9ad6373166d2a3e645d/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7804338df6fcc08105c7745f1502ba68d900f45fd770d5bdd5288ddccb8a42d8", size = 210036, upload-time = "2026-04-02T09:26:54.975Z" }, + { url = "https://files.pythonhosted.org/packages/8c/bf/b3ab5bcb478e4193d517644b0fb2bf5497fbceeaa7a1bc0f4d5b50953861/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:481551899c856c704d58119b5025793fa6730adda3571971af568f66d2424bb5", size = 202998, upload-time = "2026-04-02T09:26:56.303Z" }, + { url = "https://files.pythonhosted.org/packages/e7/4e/23efd79b65d314fa320ec6017b4b5834d5c12a58ba4610aa353af2e2f577/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f59099f9b66f0d7145115e6f80dd8b1d847176df89b234a5a6b3f00437aa0832", size = 230056, upload-time = "2026-04-02T09:26:57.554Z" }, + { url = "https://files.pythonhosted.org/packages/b9/9f/1e1941bc3f0e01df116e68dc37a55c4d249df5e6fa77f008841aef68264f/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f59ad4c0e8f6bba240a9bb85504faa1ab438237199d4cce5f622761507b8f6a6", size = 211537, upload-time = "2026-04-02T09:26:58.843Z" }, + { url = "https://files.pythonhosted.org/packages/80/0f/088cbb3020d44428964a6c97fe1edfb1b9550396bf6d278330281e8b709c/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3dedcc22d73ec993f42055eff4fcfed9318d1eeb9a6606c55892a26964964e48", size = 226176, upload-time = "2026-04-02T09:27:00.437Z" }, + { url = "https://files.pythonhosted.org/packages/6a/9f/130394f9bbe06f4f63e22641d32fc9b202b7e251c9aef4db044324dac493/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:64f02c6841d7d83f832cd97ccf8eb8a906d06eb95d5276069175c696b024b60a", size = 217723, upload-time = "2026-04-02T09:27:02.021Z" }, + { url = "https://files.pythonhosted.org/packages/73/55/c469897448a06e49f8fa03f6caae97074fde823f432a98f979cc42b90e69/charset_normalizer-3.4.7-cp313-cp313-win32.whl", hash = "sha256:4042d5c8f957e15221d423ba781e85d553722fc4113f523f2feb7b188cc34c5e", size = 148085, upload-time = "2026-04-02T09:27:03.192Z" }, + { url = "https://files.pythonhosted.org/packages/5d/78/1b74c5bbb3f99b77a1715c91b3e0b5bdb6fe302d95ace4f5b1bec37b0167/charset_normalizer-3.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:3946fa46a0cf3e4c8cb1cc52f56bb536310d34f25f01ca9b6c16afa767dab110", size = 158819, upload-time = "2026-04-02T09:27:04.454Z" }, + { url = "https://files.pythonhosted.org/packages/68/86/46bd42279d323deb8687c4a5a811fd548cb7d1de10cf6535d099877a9a9f/charset_normalizer-3.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:80d04837f55fc81da168b98de4f4b797ef007fc8a79ab71c6ec9bc4dd662b15b", size = 147915, upload-time = "2026-04-02T09:27:05.971Z" }, + { url = "https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0", size = 309234, upload-time = "2026-04-02T09:27:07.194Z" }, + { url = "https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a", size = 208042, upload-time = "2026-04-02T09:27:08.749Z" }, + { url = "https://files.pythonhosted.org/packages/87/1c/ab2ce611b984d2fd5d86a5a8a19c1ae26acac6bad967da4967562c75114d/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b", size = 228706, upload-time = "2026-04-02T09:27:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a8/29/2b1d2cb00bf085f59d29eb773ce58ec2d325430f8c216804a0a5cd83cbca/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41", size = 224727, upload-time = "2026-04-02T09:27:11.175Z" }, + { url = "https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e", size = 215882, upload-time = "2026-04-02T09:27:12.446Z" }, + { url = "https://files.pythonhosted.org/packages/2c/c2/356065d5a8b78ed04499cae5f339f091946a6a74f91e03476c33f0ab7100/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae", size = 200860, upload-time = "2026-04-02T09:27:13.721Z" }, + { url = "https://files.pythonhosted.org/packages/0c/cd/a32a84217ced5039f53b29f460962abb2d4420def55afabe45b1c3c7483d/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18", size = 211564, upload-time = "2026-04-02T09:27:15.272Z" }, + { url = "https://files.pythonhosted.org/packages/44/86/58e6f13ce26cc3b8f4a36b94a0f22ae2f00a72534520f4ae6857c4b81f89/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b", size = 211276, upload-time = "2026-04-02T09:27:16.834Z" }, + { url = "https://files.pythonhosted.org/packages/8f/fe/d17c32dc72e17e155e06883efa84514ca375f8a528ba2546bee73fc4df81/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356", size = 201238, upload-time = "2026-04-02T09:27:18.229Z" }, + { url = "https://files.pythonhosted.org/packages/6a/29/f33daa50b06525a237451cdb6c69da366c381a3dadcd833fa5676bc468b3/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab", size = 230189, upload-time = "2026-04-02T09:27:19.445Z" }, + { url = "https://files.pythonhosted.org/packages/b6/6e/52c84015394a6a0bdcd435210a7e944c5f94ea1055f5cc5d56c5fe368e7b/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46", size = 211352, upload-time = "2026-04-02T09:27:20.79Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d7/4353be581b373033fb9198bf1da3cf8f09c1082561e8e922aa7b39bf9fe8/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44", size = 227024, upload-time = "2026-04-02T09:27:22.063Z" }, + { url = "https://files.pythonhosted.org/packages/30/45/99d18aa925bd1740098ccd3060e238e21115fffbfdcb8f3ece837d0ace6c/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72", size = 217869, upload-time = "2026-04-02T09:27:23.486Z" }, + { url = "https://files.pythonhosted.org/packages/5c/05/5ee478aa53f4bb7996482153d4bfe1b89e0f087f0ab6b294fcf92d595873/charset_normalizer-3.4.7-cp314-cp314-win32.whl", hash = "sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10", size = 148541, upload-time = "2026-04-02T09:27:25.146Z" }, + { url = "https://files.pythonhosted.org/packages/48/77/72dcb0921b2ce86420b2d79d454c7022bf5be40202a2a07906b9f2a35c97/charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl", hash = "sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f", size = 159634, upload-time = "2026-04-02T09:27:26.642Z" }, + { url = "https://files.pythonhosted.org/packages/c6/a3/c2369911cd72f02386e4e340770f6e158c7980267da16af8f668217abaa0/charset_normalizer-3.4.7-cp314-cp314-win_arm64.whl", hash = "sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246", size = 148384, upload-time = "2026-04-02T09:27:28.271Z" }, + { url = "https://files.pythonhosted.org/packages/94/09/7e8a7f73d24dba1f0035fbbf014d2c36828fc1bf9c88f84093e57d315935/charset_normalizer-3.4.7-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24", size = 330133, upload-time = "2026-04-02T09:27:29.474Z" }, + { url = "https://files.pythonhosted.org/packages/8d/da/96975ddb11f8e977f706f45cddd8540fd8242f71ecdb5d18a80723dcf62c/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79", size = 216257, upload-time = "2026-04-02T09:27:30.793Z" }, + { url = "https://files.pythonhosted.org/packages/e5/e8/1d63bf8ef2d388e95c64b2098f45f84758f6d102a087552da1485912637b/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960", size = 234851, upload-time = "2026-04-02T09:27:32.44Z" }, + { url = "https://files.pythonhosted.org/packages/9b/40/e5ff04233e70da2681fa43969ad6f66ca5611d7e669be0246c4c7aaf6dc8/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4", size = 233393, upload-time = "2026-04-02T09:27:34.03Z" }, + { url = "https://files.pythonhosted.org/packages/be/c1/06c6c49d5a5450f76899992f1ee40b41d076aee9279b49cf9974d2f313d5/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e", size = 223251, upload-time = "2026-04-02T09:27:35.369Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9f/f2ff16fb050946169e3e1f82134d107e5d4ae72647ec8a1b1446c148480f/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1", size = 206609, upload-time = "2026-04-02T09:27:36.661Z" }, + { url = "https://files.pythonhosted.org/packages/69/d5/a527c0cd8d64d2eab7459784fb4169a0ac76e5a6fc5237337982fd61347e/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44", size = 220014, upload-time = "2026-04-02T09:27:38.019Z" }, + { url = "https://files.pythonhosted.org/packages/7e/80/8a7b8104a3e203074dc9aa2c613d4b726c0e136bad1cc734594b02867972/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e", size = 218979, upload-time = "2026-04-02T09:27:39.37Z" }, + { url = "https://files.pythonhosted.org/packages/02/9a/b759b503d507f375b2b5c153e4d2ee0a75aa215b7f2489cf314f4541f2c0/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3", size = 209238, upload-time = "2026-04-02T09:27:40.722Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/0f3f5d47b86bdb79256e7290b26ac847a2832d9a4033f7eb2cd4bcf4bb5b/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0", size = 236110, upload-time = "2026-04-02T09:27:42.33Z" }, + { url = "https://files.pythonhosted.org/packages/96/23/bce28734eb3ed2c91dcf93abeb8a5cf393a7b2749725030bb630e554fdd8/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e", size = 219824, upload-time = "2026-04-02T09:27:43.924Z" }, + { url = "https://files.pythonhosted.org/packages/2c/6f/6e897c6984cc4d41af319b077f2f600fc8214eb2fe2d6bcb79141b882400/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb", size = 233103, upload-time = "2026-04-02T09:27:45.348Z" }, + { url = "https://files.pythonhosted.org/packages/76/22/ef7bd0fe480a0ae9b656189ec00744b60933f68b4f42a7bb06589f6f576a/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe", size = 225194, upload-time = "2026-04-02T09:27:46.706Z" }, + { url = "https://files.pythonhosted.org/packages/c5/a7/0e0ab3e0b5bc1219bd80a6a0d4d72ca74d9250cb2382b7c699c147e06017/charset_normalizer-3.4.7-cp314-cp314t-win32.whl", hash = "sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0", size = 159827, upload-time = "2026-04-02T09:27:48.053Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1d/29d32e0fb40864b1f878c7f5a0b343ae676c6e2b271a2d55cc3a152391da/charset_normalizer-3.4.7-cp314-cp314t-win_amd64.whl", hash = "sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c", size = 174168, upload-time = "2026-04-02T09:27:49.795Z" }, + { url = "https://files.pythonhosted.org/packages/de/32/d92444ad05c7a6e41fb2036749777c163baf7a0301a040cb672d6b2b1ae9/charset_normalizer-3.4.7-cp314-cp314t-win_arm64.whl", hash = "sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d", size = 153018, upload-time = "2026-04-02T09:27:51.116Z" }, + { url = "https://files.pythonhosted.org/packages/db/8f/61959034484a4a7c527811f4721e75d02d653a35afb0b6054474d8185d4c/charset_normalizer-3.4.7-py3-none-any.whl", hash = "sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d", size = 61958, upload-time = "2026-04-02T09:28:37.794Z" }, +] + +[[package]] +name = "click" +version = "8.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bb/63/f9e1ea081ce35720d8b92acde70daaedace594dc93b693c869e0d5910718/click-8.3.3.tar.gz", hash = "sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2", size = 328061, upload-time = "2026-04-22T15:11:27.506Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/44/c1221527f6a71a01ec6fbad7fa78f1d50dfa02217385cf0fa3eec7087d59/click-8.3.3-py3-none-any.whl", hash = "sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613", size = 110502, upload-time = "2026-04-22T15:11:25.044Z" }, +] + +[[package]] +name = "cloudpickle" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size = 22330, upload-time = "2025-11-03T09:25:26.604Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228, upload-time = "2025-11-03T09:25:25.534Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "comm" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, +] + +[[package]] +name = "contourpy" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419, upload-time = "2025-07-26T12:01:21.16Z" }, + { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979, upload-time = "2025-07-26T12:01:22.448Z" }, + { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653, upload-time = "2025-07-26T12:01:24.155Z" }, + { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536, upload-time = "2025-07-26T12:01:25.91Z" }, + { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397, upload-time = "2025-07-26T12:01:27.152Z" }, + { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601, upload-time = "2025-07-26T12:01:28.808Z" }, + { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288, upload-time = "2025-07-26T12:01:31.198Z" }, + { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386, upload-time = "2025-07-26T12:01:33.947Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018, upload-time = "2025-07-26T12:01:35.64Z" }, + { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567, upload-time = "2025-07-26T12:01:36.804Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, + { url = "https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257, upload-time = "2025-07-26T12:01:39.367Z" }, + { url = "https://files.pythonhosted.org/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034, upload-time = "2025-07-26T12:01:40.645Z" }, + { url = "https://files.pythonhosted.org/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672, upload-time = "2025-07-26T12:01:41.942Z" }, + { url = "https://files.pythonhosted.org/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234, upload-time = "2025-07-26T12:01:43.499Z" }, + { url = "https://files.pythonhosted.org/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169, upload-time = "2025-07-26T12:01:45.219Z" }, + { url = "https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859, upload-time = "2025-07-26T12:01:46.519Z" }, + { url = "https://files.pythonhosted.org/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062, upload-time = "2025-07-26T12:01:48.964Z" }, + { url = "https://files.pythonhosted.org/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932, upload-time = "2025-07-26T12:01:51.979Z" }, + { url = "https://files.pythonhosted.org/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024, upload-time = "2025-07-26T12:01:53.245Z" }, + { url = "https://files.pythonhosted.org/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578, upload-time = "2025-07-26T12:01:54.422Z" }, + { url = "https://files.pythonhosted.org/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524, upload-time = "2025-07-26T12:01:55.73Z" }, + { url = "https://files.pythonhosted.org/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730, upload-time = "2025-07-26T12:01:57.051Z" }, + { url = "https://files.pythonhosted.org/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897, upload-time = "2025-07-26T12:01:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751, upload-time = "2025-07-26T12:02:00.343Z" }, + { url = "https://files.pythonhosted.org/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486, upload-time = "2025-07-26T12:02:02.128Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106, upload-time = "2025-07-26T12:02:03.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548, upload-time = "2025-07-26T12:02:05.165Z" }, + { url = "https://files.pythonhosted.org/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297, upload-time = "2025-07-26T12:02:07.379Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023, upload-time = "2025-07-26T12:02:10.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157, upload-time = "2025-07-26T12:02:11.488Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570, upload-time = "2025-07-26T12:02:12.754Z" }, + { url = "https://files.pythonhosted.org/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713, upload-time = "2025-07-26T12:02:14.4Z" }, + { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" }, + { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" }, + { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" }, + { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" }, + { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" }, + { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" }, + { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" }, + { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" }, + { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" }, + { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" }, + { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" }, + { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" }, + { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" }, + { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, +] + +[[package]] +name = "decorator" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, +] + +[[package]] +name = "executing" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, +] + +[[package]] +name = "fastjsonschema" +version = "2.21.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/b5/23b216d9d985a956623b6bd12d4086b60f0059b27799f23016af04a74ea1/fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de", size = 374130, upload-time = "2025-08-14T18:49:36.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463", size = 24024, upload-time = "2025-08-14T18:49:34.776Z" }, +] + +[[package]] +name = "fonttools" +version = "4.62.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/08/7012b00a9a5874311b639c3920270c36ee0c445b69d9989a85e5c92ebcb0/fonttools-4.62.1.tar.gz", hash = "sha256:e54c75fd6041f1122476776880f7c3c3295ffa31962dc6ebe2543c00dca58b5d", size = 3580737, upload-time = "2026-03-13T13:54:25.52Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/d4/dbacced3953544b9a93088cc10ef2b596d348c983d5c67a404fa41ec51ba/fonttools-4.62.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:90365821debbd7db678809c7491ca4acd1e0779b9624cdc6ddaf1f31992bf974", size = 2870219, upload-time = "2026-03-13T13:52:53.664Z" }, + { url = "https://files.pythonhosted.org/packages/66/9e/a769c8e99b81e5a87ab7e5e7236684de4e96246aae17274e5347d11ebd78/fonttools-4.62.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:12859ff0b47dd20f110804c3e0d0970f7b832f561630cd879969011541a464a9", size = 2414891, upload-time = "2026-03-13T13:52:56.493Z" }, + { url = "https://files.pythonhosted.org/packages/69/64/f19a9e3911968c37e1e620e14dfc5778299e1474f72f4e57c5ec771d9489/fonttools-4.62.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c125ffa00c3d9003cdaaf7f2c79e6e535628093e14b5de1dccb08859b680936", size = 5033197, upload-time = "2026-03-13T13:52:59.179Z" }, + { url = "https://files.pythonhosted.org/packages/9b/8a/99c8b3c3888c5c474c08dbfd7c8899786de9604b727fcefb055b42c84bba/fonttools-4.62.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:149f7d84afca659d1a97e39a4778794a2f83bf344c5ee5134e09995086cc2392", size = 4988768, upload-time = "2026-03-13T13:53:02.761Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c6/0f904540d3e6ab463c1243a0d803504826a11604c72dd58c2949796a1762/fonttools-4.62.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0aa72c43a601cfa9273bb1ae0518f1acadc01ee181a6fc60cd758d7fdadffc04", size = 4971512, upload-time = "2026-03-13T13:53:05.678Z" }, + { url = "https://files.pythonhosted.org/packages/29/0b/5cbef6588dc9bd6b5c9ad6a4d5a8ca384d0cea089da31711bbeb4f9654a6/fonttools-4.62.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:19177c8d96c7c36359266e571c5173bcee9157b59cfc8cb0153c5673dc5a3a7d", size = 5122723, upload-time = "2026-03-13T13:53:08.662Z" }, + { url = "https://files.pythonhosted.org/packages/4a/47/b3a5342d381595ef439adec67848bed561ab7fdb1019fa522e82101b7d9c/fonttools-4.62.1-cp312-cp312-win32.whl", hash = "sha256:a24decd24d60744ee8b4679d38e88b8303d86772053afc29b19d23bb8207803c", size = 2281278, upload-time = "2026-03-13T13:53:10.998Z" }, + { url = "https://files.pythonhosted.org/packages/28/b1/0c2ab56a16f409c6c8a68816e6af707827ad5d629634691ff60a52879792/fonttools-4.62.1-cp312-cp312-win_amd64.whl", hash = "sha256:9e7863e10b3de72376280b515d35b14f5eeed639d1aa7824f4cf06779ec65e42", size = 2331414, upload-time = "2026-03-13T13:53:13.992Z" }, + { url = "https://files.pythonhosted.org/packages/3b/56/6f389de21c49555553d6a5aeed5ac9767631497ac836c4f076273d15bd72/fonttools-4.62.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c22b1014017111c401469e3acc5433e6acf6ebcc6aa9efb538a533c800971c79", size = 2865155, upload-time = "2026-03-13T13:53:16.132Z" }, + { url = "https://files.pythonhosted.org/packages/03/c5/0e3966edd5ec668d41dfe418787726752bc07e2f5fd8c8f208615e61fa89/fonttools-4.62.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:68959f5fc58ed4599b44aad161c2837477d7f35f5f79402d97439974faebfebe", size = 2412802, upload-time = "2026-03-13T13:53:18.878Z" }, + { url = "https://files.pythonhosted.org/packages/52/94/e6ac4b44026de7786fe46e3bfa0c87e51d5d70a841054065d49cd62bb909/fonttools-4.62.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef46db46c9447103b8f3ff91e8ba009d5fe181b1920a83757a5762551e32bb68", size = 5013926, upload-time = "2026-03-13T13:53:21.379Z" }, + { url = "https://files.pythonhosted.org/packages/e2/98/8b1e801939839d405f1f122e7d175cebe9aeb4e114f95bfc45e3152af9a7/fonttools-4.62.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6706d1cb1d5e6251a97ad3c1b9347505c5615c112e66047abbef0f8545fa30d1", size = 4964575, upload-time = "2026-03-13T13:53:23.857Z" }, + { url = "https://files.pythonhosted.org/packages/46/76/7d051671e938b1881670528fec69cc4044315edd71a229c7fd712eaa5119/fonttools-4.62.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2e7abd2b1e11736f58c1de27819e1955a53267c21732e78243fa2fa2e5c1e069", size = 4953693, upload-time = "2026-03-13T13:53:26.569Z" }, + { url = "https://files.pythonhosted.org/packages/1f/ae/b41f8628ec0be3c1b934fc12b84f4576a5c646119db4d3bdd76a217c90b5/fonttools-4.62.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:403d28ce06ebfc547fbcb0cb8b7f7cc2f7a2d3e1a67ba9a34b14632df9e080f9", size = 5094920, upload-time = "2026-03-13T13:53:29.329Z" }, + { url = "https://files.pythonhosted.org/packages/f2/f6/53a1e9469331a23dcc400970a27a4caa3d9f6edbf5baab0260285238b884/fonttools-4.62.1-cp313-cp313-win32.whl", hash = "sha256:93c316e0f5301b2adbe6a5f658634307c096fd5aae60a5b3412e4f3e1728ab24", size = 2279928, upload-time = "2026-03-13T13:53:32.352Z" }, + { url = "https://files.pythonhosted.org/packages/38/60/35186529de1db3c01f5ad625bde07c1f576305eab6d86bbda4c58445f721/fonttools-4.62.1-cp313-cp313-win_amd64.whl", hash = "sha256:7aa21ff53e28a9c2157acbc44e5b401149d3c9178107130e82d74ceb500e5056", size = 2330514, upload-time = "2026-03-13T13:53:34.991Z" }, + { url = "https://files.pythonhosted.org/packages/36/f0/2888cdac391807d68d90dcb16ef858ddc1b5309bfc6966195a459dd326e2/fonttools-4.62.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fa1d16210b6b10a826d71bed68dd9ec24a9e218d5a5e2797f37c573e7ec215ca", size = 2864442, upload-time = "2026-03-13T13:53:37.509Z" }, + { url = "https://files.pythonhosted.org/packages/4b/b2/e521803081f8dc35990816b82da6360fa668a21b44da4b53fc9e77efcd62/fonttools-4.62.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:aa69d10ed420d8121118e628ad47d86e4caa79ba37f968597b958f6cceab7eca", size = 2410901, upload-time = "2026-03-13T13:53:40.55Z" }, + { url = "https://files.pythonhosted.org/packages/00/a4/8c3511ff06e53110039358dbbdc1a65d72157a054638387aa2ada300a8b8/fonttools-4.62.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd13b7999d59c5eb1c2b442eb2d0c427cb517a0b7a1f5798fc5c9e003f5ff782", size = 4999608, upload-time = "2026-03-13T13:53:42.798Z" }, + { url = "https://files.pythonhosted.org/packages/28/63/cd0c3b26afe60995a5295f37c246a93d454023726c3261cfbb3559969bb9/fonttools-4.62.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8d337fdd49a79b0d51c4da87bc38169d21c3abbf0c1aa9367eff5c6656fb6dae", size = 4912726, upload-time = "2026-03-13T13:53:45.405Z" }, + { url = "https://files.pythonhosted.org/packages/70/b9/ac677cb07c24c685cf34f64e140617d58789d67a3dd524164b63648c6114/fonttools-4.62.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d241cdc4a67b5431c6d7f115fdf63335222414995e3a1df1a41e1182acd4bcc7", size = 4951422, upload-time = "2026-03-13T13:53:48.326Z" }, + { url = "https://files.pythonhosted.org/packages/e6/10/11c08419a14b85b7ca9a9faca321accccc8842dd9e0b1c8a72908de05945/fonttools-4.62.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c05557a78f8fa514da0f869556eeda40887a8abc77c76ee3f74cf241778afd5a", size = 5060979, upload-time = "2026-03-13T13:53:51.366Z" }, + { url = "https://files.pythonhosted.org/packages/4e/3c/12eea4a4cf054e7ab058ed5ceada43b46809fce2bf319017c4d63ae55bb4/fonttools-4.62.1-cp314-cp314-win32.whl", hash = "sha256:49a445d2f544ce4a69338694cad575ba97b9a75fff02720da0882d1a73f12800", size = 2283733, upload-time = "2026-03-13T13:53:53.606Z" }, + { url = "https://files.pythonhosted.org/packages/6b/67/74b070029043186b5dd13462c958cb7c7f811be0d2e634309d9a1ffb1505/fonttools-4.62.1-cp314-cp314-win_amd64.whl", hash = "sha256:1eecc128c86c552fb963fe846ca4e011b1be053728f798185a1687502f6d398e", size = 2335663, upload-time = "2026-03-13T13:53:56.23Z" }, + { url = "https://files.pythonhosted.org/packages/42/c5/4d2ed3ca6e33617fc5624467da353337f06e7f637707478903c785bd8e20/fonttools-4.62.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1596aeaddf7f78e21e68293c011316a25267b3effdaccaf4d59bc9159d681b82", size = 2947288, upload-time = "2026-03-13T13:53:59.397Z" }, + { url = "https://files.pythonhosted.org/packages/1f/e9/7ab11ddfda48ed0f89b13380e5595ba572619c27077be0b2c447a63ff351/fonttools-4.62.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:8f8fca95d3bb3208f59626a4b0ea6e526ee51f5a8ad5d91821c165903e8d9260", size = 2449023, upload-time = "2026-03-13T13:54:01.642Z" }, + { url = "https://files.pythonhosted.org/packages/b2/10/a800fa090b5e8819942e54e19b55fc7c21fe14a08757c3aa3ca8db358939/fonttools-4.62.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee91628c08e76f77b533d65feb3fbe6d9dad699f95be51cf0d022db94089cdc4", size = 5137599, upload-time = "2026-03-13T13:54:04.495Z" }, + { url = "https://files.pythonhosted.org/packages/37/dc/8ccd45033fffd74deb6912fa1ca524643f584b94c87a16036855b498a1ed/fonttools-4.62.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5f37df1cac61d906e7b836abe356bc2f34c99d4477467755c216b72aa3dc748b", size = 4920933, upload-time = "2026-03-13T13:54:07.557Z" }, + { url = "https://files.pythonhosted.org/packages/99/eb/e618adefb839598d25ac8136cd577925d6c513dc0d931d93b8af956210f0/fonttools-4.62.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:92bb00a947e666169c99b43753c4305fc95a890a60ef3aeb2a6963e07902cc87", size = 5016232, upload-time = "2026-03-13T13:54:10.611Z" }, + { url = "https://files.pythonhosted.org/packages/d9/5f/9b5c9bfaa8ec82def8d8168c4f13615990d6ce5996fe52bd49bfb5e05134/fonttools-4.62.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bdfe592802ef939a0e33106ea4a318eeb17822c7ee168c290273cbd5fabd746c", size = 5042987, upload-time = "2026-03-13T13:54:13.569Z" }, + { url = "https://files.pythonhosted.org/packages/90/aa/dfbbe24c6a6afc5c203d90cc0343e24bcbb09e76d67c4d6eef8c2558d7ba/fonttools-4.62.1-cp314-cp314t-win32.whl", hash = "sha256:b820fcb92d4655513d8402d5b219f94481c4443d825b4372c75a2072aa4b357a", size = 2348021, upload-time = "2026-03-13T13:54:16.98Z" }, + { url = "https://files.pythonhosted.org/packages/13/6f/ae9c4e4dd417948407b680855c2c7790efb52add6009aaecff1e3bc50e8e/fonttools-4.62.1-cp314-cp314t-win_amd64.whl", hash = "sha256:59b372b4f0e113d3746b88985f1c796e7bf830dd54b28374cd85c2b8acd7583e", size = 2414147, upload-time = "2026-03-13T13:54:19.416Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ba/56147c165442cc5ba7e82ecf301c9a68353cede498185869e6e02b4c264f/fonttools-4.62.1-py3-none-any.whl", hash = "sha256:7487782e2113861f4ddcc07c3436450659e3caa5e470b27dc2177cade2d8e7fd", size = 1152647, upload-time = "2026-03-13T13:54:22.735Z" }, +] + +[[package]] +name = "gensim" +version = "4.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "scipy" }, + { name = "smart-open" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1a/80/fe9d2e1ace968041814dbcfce4e8499a643a36c41267fa4b6c4f54cce420/gensim-4.4.0.tar.gz", hash = "sha256:a3f5b626da5518e79a479140361c663089fe7998df8ba52d56e1ded71ac5bdf5", size = 23260095, upload-time = "2025-10-18T02:06:45.962Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/65/d5285865ca54b93d41ccd8683c2d79952434957c76b411283c7a6c66ca69/gensim-4.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0845b2fa039dbea5667fb278b5414e70f6d48fd208ef51f33e84a78444288d8d", size = 24467245, upload-time = "2025-10-18T01:55:09.924Z" }, + { url = "https://files.pythonhosted.org/packages/32/59/f0ea443cbfb3b06e1d2e060217bb91f954845f6df38cbc9c5468b6c9c638/gensim-4.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1853fc5be730f692c444a826041fef9a2fc8d74c73bb59748904b2e3221daa86", size = 24455775, upload-time = "2025-10-18T01:55:52.866Z" }, + { url = "https://files.pythonhosted.org/packages/f0/b8/9b0ba15756e41ccfdd852f9c65cd2b552f240c201dc3237ad8c178642e80/gensim-4.4.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:23a2a4260f01c8f71bae5dd0e8a01bb247a2c789480c033e0eaba100b0ad4239", size = 27771345, upload-time = "2025-10-18T01:56:41.448Z" }, + { url = "https://files.pythonhosted.org/packages/97/2c/c29701826c963b04a43d5d7b87573a74040387ab9219e65b10f377d22b5b/gensim-4.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4b73ff30af6ddd0d2ddf9473b1eb44603cd79ec14c87d93b75291802b991916c", size = 27864118, upload-time = "2025-10-18T01:57:32.428Z" }, + { url = "https://files.pythonhosted.org/packages/fd/f2/9ec6863143888bf390cdc5261f6d9e71d79bc95d98fb815679dba478d5f6/gensim-4.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b3a3f9bc8d4178b01d114e1c58c5ab2333f131c7415fb3d8ec8f1ecfe4c5b544", size = 24400277, upload-time = "2025-10-18T01:58:17.629Z" }, + { url = "https://files.pythonhosted.org/packages/80/6c/4e522973e07ca491d33cc7829996b9e8c8663a16b3f87f580cbdc2732d97/gensim-4.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b8961b7a2bb5190b46bc6cd26c29d5bfea22f99123ed5f506ebd0aaf65996758", size = 24460186, upload-time = "2025-10-18T01:59:01.904Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6a/593107ee98331128ed20e5d074865587558a0766659be787a40550ab66df/gensim-4.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:59d0d29099a76dd97d4563e002f3488a43e51f99d46387025da38007ebfeeff9", size = 24448880, upload-time = "2025-10-18T01:59:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/d9/ef/1675e1a3a04f7d0293a21082f57f4a6a8bf0a9e387da58b71db648b663de/gensim-4.4.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3bec3e6a1ecaa6439b21a3e42ceb0ca67ffabc114b646f89b1aab5fe69a39ffc", size = 27736031, upload-time = "2025-10-18T02:00:36.791Z" }, + { url = "https://files.pythonhosted.org/packages/b3/b9/ee43ef9c391857232603a9ee281e9c5953f7922d70c98c2296a037d1c0b7/gensim-4.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9033b18920b7774e68eafacdbd87252ffa29382ec465ddb88bd036e00fc86365", size = 27826360, upload-time = "2025-10-18T02:01:26.166Z" }, + { url = "https://files.pythonhosted.org/packages/82/f3/4f8f4d478ce69af812c6002b513c5ad3242976923d172dbe5814903be22f/gensim-4.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:6ecb7aed37fb92d24e15a6adbabe693074003263db0fd9ce97c9f4234a9edc1b", size = 24396932, upload-time = "2025-10-18T02:02:11.568Z" }, +] + +[[package]] +name = "idna" +version = "3.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ce/cc/762dfb036166873f0059f3b7de4565e1b5bc3d6f28a414c13da27e442f99/idna-3.13.tar.gz", hash = "sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242", size = 194210, upload-time = "2026-04-22T16:42:42.314Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/13/ad7d7ca3808a898b4612b6fe93cde56b53f3034dcde235acb1f0e1df24c6/idna-3.13-py3-none-any.whl", hash = "sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3", size = 68629, upload-time = "2026-04-22T16:42:40.909Z" }, +] + +[[package]] +name = "imageio" +version = "2.37.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/84/93bcd1300216ea50811cee96873b84a1bebf8d0489ffaf7f2a3756bab866/imageio-2.37.3.tar.gz", hash = "sha256:bbb37efbfc4c400fcd534b367b91fcd66d5da639aaa138034431a1c5e0a41451", size = 389673, upload-time = "2026-03-09T11:31:12.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/fa/391e437a34e55095173dca5f24070d89cbc233ff85bf1c29c93248c6588d/imageio-2.37.3-py3-none-any.whl", hash = "sha256:46f5bb8522cd421c0f5ae104d8268f569d856b29eb1a13b92829d1970f32c9f0", size = 317646, upload-time = "2026-03-09T11:31:10.771Z" }, +] + +[[package]] +name = "ipython" +version = "9.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "ipython-pygments-lexers" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/73/7114f80a8f9cabdb13c27732dce24af945b2923dcab80723602f7c8bc2d8/ipython-9.12.0.tar.gz", hash = "sha256:01daa83f504b693ba523b5a407246cabde4eb4513285a3c6acaff11a66735ee4", size = 4428879, upload-time = "2026-03-27T09:42:45.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/22/906c8108974c673ebef6356c506cebb6870d48cedea3c41e949e2dd556bb/ipython-9.12.0-py3-none-any.whl", hash = "sha256:0f2701e8ee86e117e37f50563205d36feaa259d2e08d4a6bc6b6d74b18ce128d", size = 625661, upload-time = "2026-03-27T09:42:42.831Z" }, +] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, +] + +[[package]] +name = "ipywidgets" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "comm" }, + { name = "ipython" }, + { name = "jupyterlab-widgets" }, + { name = "traitlets" }, + { name = "widgetsnbextension" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/ae/c5ce1edc1afe042eadb445e95b0671b03cee61895264357956e61c0d2ac0/ipywidgets-8.1.8.tar.gz", hash = "sha256:61f969306b95f85fba6b6986b7fe45d73124d1d9e3023a8068710d47a22ea668", size = 116739, upload-time = "2025-11-01T21:18:12.393Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/6d/0d9848617b9f753b87f214f1c682592f7ca42de085f564352f10f0843026/ipywidgets-8.1.8-py3-none-any.whl", hash = "sha256:ecaca67aed704a338f88f67b1181b58f821ab5dc89c1f0f5ef99db43c1c2921e", size = 139808, upload-time = "2025-11-01T21:18:10.956Z" }, +] + +[[package]] +name = "jedi" +version = "0.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/f2/d34e8b3a08a9cc79a50b2208a93dce981fe615b64d5a4d4abee421d898df/joblib-1.5.3.tar.gz", hash = "sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3", size = 331603, upload-time = "2025-12-15T08:41:46.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/91/984aca2ec129e2757d1e4e3c81c3fcda9d0f85b74670a094cc443d9ee949/joblib-1.5.3-py3-none-any.whl", hash = "sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713", size = 309071, upload-time = "2025-12-15T08:41:44.973Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "jupyter-core" +version = "5.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, +] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.16" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/2d/ef58fed122b268c69c0aa099da20bc67657cdfb2e222688d5731bd5b971d/jupyterlab_widgets-3.0.16.tar.gz", hash = "sha256:423da05071d55cf27a9e602216d35a3a65a3e41cdf9c5d3b643b814ce38c19e0", size = 897423, upload-time = "2025-11-01T21:11:29.724Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl", hash = "sha256:45fa36d9c6422cf2559198e4db481aa243c7a32d9926b500781c830c80f7ecf8", size = 914926, upload-time = "2025-11-01T21:11:28.008Z" }, +] + +[[package]] +name = "kiwisolver" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/67/9c61eccb13f0bdca9307614e782fec49ffdde0f7a2314935d489fa93cd9c/kiwisolver-1.5.0.tar.gz", hash = "sha256:d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a", size = 103482, upload-time = "2026-03-09T13:15:53.382Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/b2/818b74ebea34dabe6d0c51cb1c572e046730e64844da6ed646d5298c40ce/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4e9750bc21b886308024f8a54ccb9a2cc38ac9fa813bf4348434e3d54f337ff9", size = 123158, upload-time = "2026-03-09T13:13:23.127Z" }, + { url = "https://files.pythonhosted.org/packages/bf/d9/405320f8077e8e1c5c4bd6adc45e1e6edf6d727b6da7f2e2533cf58bff71/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:72ec46b7eba5b395e0a7b63025490d3214c11013f4aacb4f5e8d6c3041829588", size = 66388, upload-time = "2026-03-09T13:13:24.765Z" }, + { url = "https://files.pythonhosted.org/packages/99/9f/795fedf35634f746151ca8839d05681ceb6287fbed6cc1c9bf235f7887c2/kiwisolver-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ed3a984b31da7481b103f68776f7128a89ef26ed40f4dc41a2223cda7fb24819", size = 64068, upload-time = "2026-03-09T13:13:25.878Z" }, + { url = "https://files.pythonhosted.org/packages/c4/13/680c54afe3e65767bed7ec1a15571e1a2f1257128733851ade24abcefbcc/kiwisolver-1.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb5136fb5352d3f422df33f0c879a1b0c204004324150cc3b5e3c4f310c9049f", size = 1477934, upload-time = "2026-03-09T13:13:27.166Z" }, + { url = "https://files.pythonhosted.org/packages/c8/2f/cebfcdb60fd6a9b0f6b47a9337198bcbad6fbe15e68189b7011fd914911f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2af221f268f5af85e776a73d62b0845fc8baf8ef0abfae79d29c77d0e776aaf", size = 1278537, upload-time = "2026-03-09T13:13:28.707Z" }, + { url = "https://files.pythonhosted.org/packages/f2/0d/9b782923aada3fafb1d6b84e13121954515c669b18af0c26e7d21f579855/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b0f172dc8ffaccb8522d7c5d899de00133f2f1ca7b0a49b7da98e901de87bf2d", size = 1296685, upload-time = "2026-03-09T13:13:30.528Z" }, + { url = "https://files.pythonhosted.org/packages/27/70/83241b6634b04fe44e892688d5208332bde130f38e610c0418f9ede47ded/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6ab8ba9152203feec73758dad83af9a0bbe05001eb4639e547207c40cfb52083", size = 1346024, upload-time = "2026-03-09T13:13:32.818Z" }, + { url = "https://files.pythonhosted.org/packages/e4/db/30ed226fb271ae1a6431fc0fe0edffb2efe23cadb01e798caeb9f2ceae8f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_39_riscv64.whl", hash = "sha256:cdee07c4d7f6d72008d3f73b9bf027f4e11550224c7c50d8df1ae4a37c1402a6", size = 987241, upload-time = "2026-03-09T13:13:34.435Z" }, + { url = "https://files.pythonhosted.org/packages/ec/bd/c314595208e4c9587652d50959ead9e461995389664e490f4dce7ff0f782/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7c60d3c9b06fb23bd9c6139281ccbdc384297579ae037f08ae90c69f6845c0b1", size = 2227742, upload-time = "2026-03-09T13:13:36.4Z" }, + { url = "https://files.pythonhosted.org/packages/c1/43/0499cec932d935229b5543d073c2b87c9c22846aab48881e9d8d6e742a2d/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e315e5ec90d88e140f57696ff85b484ff68bb311e36f2c414aa4286293e6dee0", size = 2323966, upload-time = "2026-03-09T13:13:38.204Z" }, + { url = "https://files.pythonhosted.org/packages/3d/6f/79b0d760907965acfd9d61826a3d41f8f093c538f55cd2633d3f0db269f6/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:1465387ac63576c3e125e5337a6892b9e99e0627d52317f3ca79e6930d889d15", size = 1977417, upload-time = "2026-03-09T13:13:39.966Z" }, + { url = "https://files.pythonhosted.org/packages/ab/31/01d0537c41cb75a551a438c3c7a80d0c60d60b81f694dac83dd436aec0d0/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:530a3fd64c87cffa844d4b6b9768774763d9caa299e9b75d8eca6a4423b31314", size = 2491238, upload-time = "2026-03-09T13:13:41.698Z" }, + { url = "https://files.pythonhosted.org/packages/e4/34/8aefdd0be9cfd00a44509251ba864f5caf2991e36772e61c408007e7f417/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d9daea4ea6b9be74fe2f01f7fbade8d6ffab263e781274cffca0dba9be9eec9", size = 2294947, upload-time = "2026-03-09T13:13:43.343Z" }, + { url = "https://files.pythonhosted.org/packages/ad/cf/0348374369ca588f8fe9c338fae49fa4e16eeb10ffb3d012f23a54578a9e/kiwisolver-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:f18c2d9782259a6dc132fdc7a63c168cbc74b35284b6d75c673958982a378384", size = 73569, upload-time = "2026-03-09T13:13:45.792Z" }, + { url = "https://files.pythonhosted.org/packages/28/26/192b26196e2316e2bd29deef67e37cdf9870d9af8e085e521afff0fed526/kiwisolver-1.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:f7c7553b13f69c1b29a5bde08ddc6d9d0c8bfb84f9ed01c30db25944aeb852a7", size = 64997, upload-time = "2026-03-09T13:13:46.878Z" }, + { url = "https://files.pythonhosted.org/packages/9d/69/024d6711d5ba575aa65d5538042e99964104e97fa153a9f10bc369182bc2/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fd40bb9cd0891c4c3cb1ddf83f8bbfa15731a248fdc8162669405451e2724b09", size = 123166, upload-time = "2026-03-09T13:13:48.032Z" }, + { url = "https://files.pythonhosted.org/packages/ce/48/adbb40df306f587054a348831220812b9b1d787aff714cfbc8556e38fccd/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0e1403fd7c26d77c1f03e096dc58a5c726503fa0db0456678b8668f76f521e3", size = 66395, upload-time = "2026-03-09T13:13:49.365Z" }, + { url = "https://files.pythonhosted.org/packages/a8/3a/d0a972b34e1c63e2409413104216cd1caa02c5a37cb668d1687d466c1c45/kiwisolver-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dda366d548e89a90d88a86c692377d18d8bd64b39c1fb2b92cb31370e2896bbd", size = 64065, upload-time = "2026-03-09T13:13:50.562Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0a/7b98e1e119878a27ba8618ca1e18b14f992ff1eda40f47bccccf4de44121/kiwisolver-1.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:332b4f0145c30b5f5ad9374881133e5aa64320428a57c2c2b61e9d891a51c2f3", size = 1477903, upload-time = "2026-03-09T13:13:52.084Z" }, + { url = "https://files.pythonhosted.org/packages/18/d8/55638d89ffd27799d5cc3d8aa28e12f4ce7a64d67b285114dbedc8ea4136/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c50b89ffd3e1a911c69a1dd3de7173c0cd10b130f56222e57898683841e4f96", size = 1278751, upload-time = "2026-03-09T13:13:54.673Z" }, + { url = "https://files.pythonhosted.org/packages/b8/97/b4c8d0d18421ecceba20ad8701358453b88e32414e6f6950b5a4bad54e65/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4db576bb8c3ef9365f8b40fe0f671644de6736ae2c27a2c62d7d8a1b4329f099", size = 1296793, upload-time = "2026-03-09T13:13:56.287Z" }, + { url = "https://files.pythonhosted.org/packages/c4/10/f862f94b6389d8957448ec9df59450b81bec4abb318805375c401a1e6892/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0b85aad90cea8ac6797a53b5d5f2e967334fa4d1149f031c4537569972596cb8", size = 1346041, upload-time = "2026-03-09T13:13:58.269Z" }, + { url = "https://files.pythonhosted.org/packages/a3/6a/f1650af35821eaf09de398ec0bc2aefc8f211f0cda50204c9f1673741ba9/kiwisolver-1.5.0-cp313-cp313-manylinux_2_39_riscv64.whl", hash = "sha256:d36ca54cb4c6c4686f7cbb7b817f66f5911c12ddb519450bbe86707155028f87", size = 987292, upload-time = "2026-03-09T13:13:59.871Z" }, + { url = "https://files.pythonhosted.org/packages/de/19/d7fb82984b9238115fe629c915007be608ebd23dc8629703d917dbfaffd4/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:38f4a703656f493b0ad185211ccfca7f0386120f022066b018eb5296d8613e23", size = 2227865, upload-time = "2026-03-09T13:14:01.401Z" }, + { url = "https://files.pythonhosted.org/packages/7f/b9/46b7f386589fd222dac9e9de9c956ce5bcefe2ee73b4e79891381dda8654/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3ac2360e93cb41be81121755c6462cff3beaa9967188c866e5fce5cf13170859", size = 2324369, upload-time = "2026-03-09T13:14:02.972Z" }, + { url = "https://files.pythonhosted.org/packages/92/8b/95e237cf3d9c642960153c769ddcbe278f182c8affb20cecc1cc983e7cc5/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c95cab08d1965db3d84a121f1c7ce7479bdd4072c9b3dafd8fecce48a2e6b902", size = 1977989, upload-time = "2026-03-09T13:14:04.503Z" }, + { url = "https://files.pythonhosted.org/packages/1b/95/980c9df53501892784997820136c01f62bc1865e31b82b9560f980c0e649/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc20894c3d21194d8041a28b65622d5b86db786da6e3cfe73f0c762951a61167", size = 2491645, upload-time = "2026-03-09T13:14:06.106Z" }, + { url = "https://files.pythonhosted.org/packages/cb/32/900647fd0840abebe1561792c6b31e6a7c0e278fc3973d30572a965ca14c/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7a32f72973f0f950c1920475d5c5ea3d971b81b6f0ec53b8d0a956cc965f22e0", size = 2295237, upload-time = "2026-03-09T13:14:08.891Z" }, + { url = "https://files.pythonhosted.org/packages/be/8a/be60e3bbcf513cc5a50f4a3e88e1dcecebb79c1ad607a7222877becaa101/kiwisolver-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bf3acf1419fa93064a4c2189ac0b58e3be7872bf6ee6177b0d4c63dc4cea276", size = 73573, upload-time = "2026-03-09T13:14:12.327Z" }, + { url = "https://files.pythonhosted.org/packages/4d/d2/64be2e429eb4fca7f7e1c52a91b12663aeaf25de3895e5cca0f47ef2a8d0/kiwisolver-1.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:fa8eb9ecdb7efb0b226acec134e0d709e87a909fa4971a54c0c4f6e88635484c", size = 64998, upload-time = "2026-03-09T13:14:13.469Z" }, + { url = "https://files.pythonhosted.org/packages/b0/69/ce68dd0c85755ae2de490bf015b62f2cea5f6b14ff00a463f9d0774449ff/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:db485b3847d182b908b483b2ed133c66d88d49cacf98fd278fadafe11b4478d1", size = 125700, upload-time = "2026-03-09T13:14:14.636Z" }, + { url = "https://files.pythonhosted.org/packages/74/aa/937aac021cf9d4349990d47eb319309a51355ed1dbdc9c077cdc9224cb11/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:be12f931839a3bdfe28b584db0e640a65a8bcbc24560ae3fdb025a449b3d754e", size = 67537, upload-time = "2026-03-09T13:14:15.808Z" }, + { url = "https://files.pythonhosted.org/packages/ee/20/3a87fbece2c40ad0f6f0aefa93542559159c5f99831d596050e8afae7a9f/kiwisolver-1.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:16b85d37c2cbb3253226d26e64663f755d88a03439a9c47df6246b35defbdfb7", size = 65514, upload-time = "2026-03-09T13:14:18.035Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7f/f943879cda9007c45e1f7dba216d705c3a18d6b35830e488b6c6a4e7cdf0/kiwisolver-1.5.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4432b835675f0ea7414aab3d37d119f7226d24869b7a829caeab49ebda407b0c", size = 1584848, upload-time = "2026-03-09T13:14:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/37/f8/4d4f85cc1870c127c88d950913370dd76138482161cd07eabbc450deff01/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b0feb50971481a2cc44d94e88bdb02cdd497618252ae226b8eb1201b957e368", size = 1391542, upload-time = "2026-03-09T13:14:21.54Z" }, + { url = "https://files.pythonhosted.org/packages/04/0b/65dd2916c84d252b244bd405303220f729e7c17c9d7d33dca6feeff9ffc4/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56fa888f10d0f367155e76ce849fa1166fc9730d13bd2d65a2aa13b6f5424489", size = 1404447, upload-time = "2026-03-09T13:14:23.205Z" }, + { url = "https://files.pythonhosted.org/packages/39/5c/2606a373247babce9b1d056c03a04b65f3cf5290a8eac5d7bdead0a17e21/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:940dda65d5e764406b9fb92761cbf462e4e63f712ab60ed98f70552e496f3bf1", size = 1455918, upload-time = "2026-03-09T13:14:24.74Z" }, + { url = "https://files.pythonhosted.org/packages/d5/d1/c6078b5756670658e9192a2ef11e939c92918833d2745f85cd14a6004bdf/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_39_riscv64.whl", hash = "sha256:89fc958c702ee9a745e4700378f5d23fddbc46ff89e8fdbf5395c24d5c1452a3", size = 1072856, upload-time = "2026-03-09T13:14:26.597Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c8/7def6ddf16eb2b3741d8b172bdaa9af882b03c78e9b0772975408801fa63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9027d773c4ff81487181a925945743413f6069634d0b122d0b37684ccf4f1e18", size = 2333580, upload-time = "2026-03-09T13:14:28.237Z" }, + { url = "https://files.pythonhosted.org/packages/9e/87/2ac1fce0eb1e616fcd3c35caa23e665e9b1948bb984f4764790924594128/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:5b233ea3e165e43e35dba1d2b8ecc21cf070b45b65ae17dd2747d2713d942021", size = 2423018, upload-time = "2026-03-09T13:14:30.018Z" }, + { url = "https://files.pythonhosted.org/packages/67/13/c6700ccc6cc218716bfcda4935e4b2997039869b4ad8a94f364c5a3b8e63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:ce9bf03dad3b46408c08649c6fbd6ca28a9fce0eb32fdfffa6775a13103b5310", size = 2062804, upload-time = "2026-03-09T13:14:32.888Z" }, + { url = "https://files.pythonhosted.org/packages/1b/bd/877056304626943ff0f1f44c08f584300c199b887cb3176cd7e34f1515f1/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:fc4d3f1fb9ca0ae9f97b095963bc6326f1dbfd3779d6679a1e016b9baaa153d3", size = 2597482, upload-time = "2026-03-09T13:14:34.971Z" }, + { url = "https://files.pythonhosted.org/packages/75/19/c60626c47bf0f8ac5dcf72c6c98e266d714f2fbbfd50cf6dab5ede3aaa50/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f443b4825c50a51ee68585522ab4a1d1257fac65896f282b4c6763337ac9f5d2", size = 2394328, upload-time = "2026-03-09T13:14:36.816Z" }, + { url = "https://files.pythonhosted.org/packages/47/84/6a6d5e5bb8273756c27b7d810d47f7ef2f1f9b9fd23c9ee9a3f8c75c9cef/kiwisolver-1.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:893ff3a711d1b515ba9da14ee090519bad4610ed1962fbe298a434e8c5f8db53", size = 68410, upload-time = "2026-03-09T13:14:38.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/060f45052f2a01ad5762c8fdecd6d7a752b43400dc29ff75cd47225a40fd/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8df31fe574b8b3993cc61764f40941111b25c2d9fea13d3ce24a49907cd2d615", size = 123231, upload-time = "2026-03-09T13:14:41.323Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a7/78da680eadd06ff35edef6ef68a1ad273bad3e2a0936c9a885103230aece/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1d49a49ac4cbfb7c1375301cd1ec90169dfeae55ff84710d782260ce77a75a02", size = 66489, upload-time = "2026-03-09T13:14:42.534Z" }, + { url = "https://files.pythonhosted.org/packages/49/b2/97980f3ad4fae37dd7fe31626e2bf75fbf8bdf5d303950ec1fab39a12da8/kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0cbe94b69b819209a62cb27bdfa5dc2a8977d8de2f89dfd97ba4f53ed3af754e", size = 64063, upload-time = "2026-03-09T13:14:44.759Z" }, + { url = "https://files.pythonhosted.org/packages/e7/f9/b06c934a6aa8bc91f566bd2a214fd04c30506c2d9e2b6b171953216a65b6/kiwisolver-1.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:80aa065ffd378ff784822a6d7c3212f2d5f5e9c3589614b5c228b311fd3063ac", size = 1475913, upload-time = "2026-03-09T13:14:46.247Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f0/f768ae564a710135630672981231320bc403cf9152b5596ec5289de0f106/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e7f886f47ab881692f278ae901039a234e4025a68e6dfab514263a0b1c4ae05", size = 1282782, upload-time = "2026-03-09T13:14:48.458Z" }, + { url = "https://files.pythonhosted.org/packages/e2/9f/1de7aad00697325f05238a5f2eafbd487fb637cc27a558b5367a5f37fb7f/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5060731cc3ed12ca3a8b57acd4aeca5bbc2f49216dd0bec1650a1acd89486bcd", size = 1300815, upload-time = "2026-03-09T13:14:50.721Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c2/297f25141d2e468e0ce7f7a7b92e0cf8918143a0cbd3422c1ad627e85a06/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a4aa69609f40fce3cbc3f87b2061f042eee32f94b8f11db707b66a26461591a", size = 1347925, upload-time = "2026-03-09T13:14:52.304Z" }, + { url = "https://files.pythonhosted.org/packages/b9/d3/f4c73a02eb41520c47610207b21afa8cdd18fdbf64ffd94674ae21c4812d/kiwisolver-1.5.0-cp314-cp314-manylinux_2_39_riscv64.whl", hash = "sha256:d168fda2dbff7b9b5f38e693182d792a938c31db4dac3a80a4888de603c99554", size = 991322, upload-time = "2026-03-09T13:14:54.637Z" }, + { url = "https://files.pythonhosted.org/packages/7b/46/d3f2efef7732fcda98d22bf4ad5d3d71d545167a852ca710a494f4c15343/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:413b820229730d358efd838ecbab79902fe97094565fdc80ddb6b0a18c18a581", size = 2232857, upload-time = "2026-03-09T13:14:56.471Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ec/2d9756bf2b6d26ae4349b8d3662fb3993f16d80c1f971c179ce862b9dbae/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5124d1ea754509b09e53738ec185584cc609aae4a3b510aaf4ed6aa047ef9303", size = 2329376, upload-time = "2026-03-09T13:14:58.072Z" }, + { url = "https://files.pythonhosted.org/packages/8f/9f/876a0a0f2260f1bde92e002b3019a5fabc35e0939c7d945e0fa66185eb20/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e4415a8db000bf49a6dd1c478bf70062eaacff0f462b92b0ba68791a905861f9", size = 1982549, upload-time = "2026-03-09T13:14:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4f/ba3624dfac23a64d54ac4179832860cb537c1b0af06024936e82ca4154a0/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d618fd27420381a4f6044faa71f46d8bfd911bd077c555f7138ed88729bfbe79", size = 2494680, upload-time = "2026-03-09T13:15:01.364Z" }, + { url = "https://files.pythonhosted.org/packages/39/b7/97716b190ab98911b20d10bf92eca469121ec483b8ce0edd314f51bc85af/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5092eb5b1172947f57d6ea7d89b2f29650414e4293c47707eb499ec07a0ac796", size = 2297905, upload-time = "2026-03-09T13:15:03.925Z" }, + { url = "https://files.pythonhosted.org/packages/a3/36/4e551e8aa55c9188bca9abb5096805edbf7431072b76e2298e34fd3a3008/kiwisolver-1.5.0-cp314-cp314-win_amd64.whl", hash = "sha256:d76e2d8c75051d58177e762164d2e9ab92886534e3a12e795f103524f221dd8e", size = 75086, upload-time = "2026-03-09T13:15:07.775Z" }, + { url = "https://files.pythonhosted.org/packages/70/15/9b90f7df0e31a003c71649cf66ef61c3c1b862f48c81007fa2383c8bd8d7/kiwisolver-1.5.0-cp314-cp314-win_arm64.whl", hash = "sha256:fa6248cd194edff41d7ea9425ced8ca3a6f838bfb295f6f1d6e6bb694a8518df", size = 66577, upload-time = "2026-03-09T13:15:09.139Z" }, + { url = "https://files.pythonhosted.org/packages/17/01/7dc8c5443ff42b38e72731643ed7cf1ed9bf01691ae5cdca98501999ed83/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d1ffeb80b5676463d7a7d56acbe8e37a20ce725570e09549fe738e02ca6b7e1e", size = 125794, upload-time = "2026-03-09T13:15:10.525Z" }, + { url = "https://files.pythonhosted.org/packages/46/8a/b4ebe46ebaac6a303417fab10c2e165c557ddaff558f9699d302b256bc53/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc4d8e252f532ab46a1de9349e2d27b91fce46736a9eedaa37beaca66f574ed4", size = 67646, upload-time = "2026-03-09T13:15:12.016Z" }, + { url = "https://files.pythonhosted.org/packages/60/35/10a844afc5f19d6f567359bf4789e26661755a2f36200d5d1ed8ad0126e5/kiwisolver-1.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6783e069732715ad0c3ce96dbf21dbc2235ab0593f2baf6338101f70371f4028", size = 65511, upload-time = "2026-03-09T13:15:13.311Z" }, + { url = "https://files.pythonhosted.org/packages/f8/8a/685b297052dd041dcebce8e8787b58923b6e78acc6115a0dc9189011c44b/kiwisolver-1.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e7c4c09a490dc4d4a7f8cbee56c606a320f9dc28cf92a7157a39d1ce7676a657", size = 1584858, upload-time = "2026-03-09T13:15:15.103Z" }, + { url = "https://files.pythonhosted.org/packages/9e/80/04865e3d4638ac5bddec28908916df4a3075b8c6cc101786a96803188b96/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a075bd7bd19c70cf67c8badfa36cf7c5d8de3c9ddb8420c51e10d9c50e94920", size = 1392539, upload-time = "2026-03-09T13:15:16.661Z" }, + { url = "https://files.pythonhosted.org/packages/ba/01/77a19cacc0893fa13fafa46d1bba06fb4dc2360b3292baf4b56d8e067b24/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bdd3e53429ff02aa319ba59dfe4ceeec345bf46cf180ec2cf6fd5b942e7975e9", size = 1405310, upload-time = "2026-03-09T13:15:18.229Z" }, + { url = "https://files.pythonhosted.org/packages/53/39/bcaf5d0cca50e604cfa9b4e3ae1d64b50ca1ae5b754122396084599ef903/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cdcb35dc9d807259c981a85531048ede628eabcffb3239adf3d17463518992d", size = 1456244, upload-time = "2026-03-09T13:15:20.444Z" }, + { url = "https://files.pythonhosted.org/packages/d0/7a/72c187abc6975f6978c3e39b7cf67aeb8b3c0a8f9790aa7fd412855e9e1f/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_39_riscv64.whl", hash = "sha256:70d593af6a6ca332d1df73d519fddb5148edb15cd90d5f0155e3746a6d4fcc65", size = 1073154, upload-time = "2026-03-09T13:15:22.039Z" }, + { url = "https://files.pythonhosted.org/packages/c7/ca/cf5b25783ebbd59143b4371ed0c8428a278abe68d6d0104b01865b1bbd0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:377815a8616074cabbf3f53354e1d040c35815a134e01d7614b7692e4bf8acfa", size = 2334377, upload-time = "2026-03-09T13:15:23.741Z" }, + { url = "https://files.pythonhosted.org/packages/4a/e5/b1f492adc516796e88751282276745340e2a72dcd0d36cf7173e0daf3210/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0255a027391d52944eae1dbb5d4cc5903f57092f3674e8e544cdd2622826b3f0", size = 2425288, upload-time = "2026-03-09T13:15:25.789Z" }, + { url = "https://files.pythonhosted.org/packages/e6/e5/9b21fbe91a61b8f409d74a26498706e97a48008bfcd1864373d32a6ba31c/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:012b1eb16e28718fa782b5e61dc6f2da1f0792ca73bd05d54de6cb9561665fc9", size = 2063158, upload-time = "2026-03-09T13:15:27.63Z" }, + { url = "https://files.pythonhosted.org/packages/b1/02/83f47986138310f95ea95531f851b2a62227c11cbc3e690ae1374fe49f0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0e3aafb33aed7479377e5e9a82e9d4bf87063741fc99fc7ae48b0f16e32bdd6f", size = 2597260, upload-time = "2026-03-09T13:15:29.421Z" }, + { url = "https://files.pythonhosted.org/packages/07/18/43a5f24608d8c313dd189cf838c8e68d75b115567c6279de7796197cfb6a/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7a116ae737f0000343218c4edf5bd45893bfeaff0993c0b215d7124c9f77646", size = 2394403, upload-time = "2026-03-09T13:15:31.517Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b5/98222136d839b8afabcaa943b09bd05888c2d36355b7e448550211d1fca4/kiwisolver-1.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1dd9b0b119a350976a6d781e7278ec7aca0b201e1a9e2d23d9804afecb6ca681", size = 79687, upload-time = "2026-03-09T13:15:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/99/a2/ca7dc962848040befed12732dff6acae7fb3c4f6fc4272b3f6c9a30b8713/kiwisolver-1.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:58f812017cd2985c21fbffb4864d59174d4903dd66fa23815e74bbc7a0e2dd57", size = 70032, upload-time = "2026-03-09T13:15:34.411Z" }, + { url = "https://files.pythonhosted.org/packages/1c/fa/2910df836372d8761bb6eff7d8bdcb1613b5c2e03f260efe7abe34d388a7/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_10_13_x86_64.whl", hash = "sha256:5ae8e62c147495b01a0f4765c878e9bfdf843412446a247e28df59936e99e797", size = 130262, upload-time = "2026-03-09T13:15:35.629Z" }, + { url = "https://files.pythonhosted.org/packages/0f/41/c5f71f9f00aabcc71fee8b7475e3f64747282580c2fe748961ba29b18385/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f6764a4ccab3078db14a632420930f6186058750df066b8ea2a7106df91d3203", size = 138036, upload-time = "2026-03-09T13:15:36.894Z" }, + { url = "https://files.pythonhosted.org/packages/fa/06/7399a607f434119c6e1fdc8ec89a8d51ccccadf3341dee4ead6bd14caaf5/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c31c13da98624f957b0fb1b5bae5383b2333c2c3f6793d9825dd5ce79b525cb7", size = 194295, upload-time = "2026-03-09T13:15:38.22Z" }, + { url = "https://files.pythonhosted.org/packages/b5/91/53255615acd2a1eaca307ede3c90eb550bae9c94581f8c00081b6b1c8f44/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-win_amd64.whl", hash = "sha256:1f1489f769582498610e015a8ef2d36f28f505ab3096d0e16b4858a9ec214f57", size = 75987, upload-time = "2026-03-09T13:15:39.65Z" }, +] + +[[package]] +name = "lazy-loader" +version = "0.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/ac/21a1f8aa3777f5658576777ea76bfb124b702c520bbe90edf4ae9915eafa/lazy_loader-0.5.tar.gz", hash = "sha256:717f9179a0dbed357012ddad50a5ad3d5e4d9a0b8712680d4e687f5e6e6ed9b3", size = 15294, upload-time = "2026-03-06T15:45:09.054Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/a1/8d812e53a5da1687abb10445275d41a8b13adb781bbf7196ddbcf8d88505/lazy_loader-0.5-py3-none-any.whl", hash = "sha256:ab0ea149e9c554d4ffeeb21105ac60bed7f3b4fd69b1d2360a4add51b170b005", size = 8044, upload-time = "2026-03-06T15:45:07.668Z" }, +] + +[[package]] +name = "lime" +version = "0.2.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "matplotlib" }, + { name = "numpy" }, + { name = "scikit-image" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/86/91a13127d83d793ecb50eb75e716f76e6eda809b6803c5a4ff462339789e/lime-0.2.0.1.tar.gz", hash = "sha256:76960e4f055feb53e89b5022383bafc87b63f25bac6265984b0a333d1a57f781", size = 275719, upload-time = "2020-06-26T21:38:15.46Z" } + +[[package]] +name = "llvmlite" +version = "0.36.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", + "python_full_version < '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", +] +sdist = { url = "https://files.pythonhosted.org/packages/19/66/6b2c49c7c68da48d17059882fdb9ad9ac9e5ac3f22b00874d7996e3c44a8/llvmlite-0.36.0.tar.gz", hash = "sha256:765128fdf5f149ed0b889ffbe2b05eb1717f8e20a5c87fa2b4018fbcce0fcfc9", size = 126219, upload-time = "2021-03-12T13:41:52.064Z" } + +[[package]] +name = "llvmlite" +version = "0.47.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "(python_full_version >= '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", + "python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version < '3.14' and sys_platform == 'emscripten'", + "(python_full_version < '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", +] +sdist = { url = "https://files.pythonhosted.org/packages/01/88/a8952b6d5c21e74cbf158515b779666f692846502623e9e3c39d8e8ba25f/llvmlite-0.47.0.tar.gz", hash = "sha256:62031ce968ec74e95092184d4b0e857e444f8fdff0b8f9213707699570c33ccc", size = 193614, upload-time = "2026-03-31T18:29:53.497Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/48/4b7fe0e34c169fa2f12532916133e0b219d2823b540733651b34fdac509a/llvmlite-0.47.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:306a265f408c259067257a732c8e159284334018b4083a9e35f67d19792b164f", size = 37232769, upload-time = "2026-03-31T18:28:43.735Z" }, + { url = "https://files.pythonhosted.org/packages/e6/4b/e3f2cd17822cf772a4a51a0a8080b0032e6d37b2dbe8cfb724eac4e31c52/llvmlite-0.47.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5853bf26160857c0c2573415ff4efe01c4c651e59e2c55c2a088740acfee51cd", size = 56275178, upload-time = "2026-03-31T18:28:48.342Z" }, + { url = "https://files.pythonhosted.org/packages/b6/55/a3b4a543185305a9bdf3d9759d53646ed96e55e7dfd43f53e7a421b8fbae/llvmlite-0.47.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:003bcf7fa579e14db59c1a1e113f93ab8a06b56a4be31c7f08264d1d4072d077", size = 55128632, upload-time = "2026-03-31T18:28:52.901Z" }, + { url = "https://files.pythonhosted.org/packages/2f/f5/d281ae0f79378a5a91f308ea9fdb9f9cc068fddd09629edc0725a5a8fde1/llvmlite-0.47.0-cp312-cp312-win_amd64.whl", hash = "sha256:f3079f25bdc24cd9d27c4b2b5e68f5f60c4fdb7e8ad5ee2b9b006007558f9df7", size = 38138692, upload-time = "2026-03-31T18:28:57.147Z" }, + { url = "https://files.pythonhosted.org/packages/77/6f/4615353e016799f80fa52ccb270a843c413b22361fadda2589b2922fb9b0/llvmlite-0.47.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:a3c6a735d4e1041808434f9d440faa3d78d9b4af2ee64d05a66f351883b6ceec", size = 37232771, upload-time = "2026-03-31T18:29:01.324Z" }, + { url = "https://files.pythonhosted.org/packages/31/b8/69f5565f1a280d032525878a86511eebed0645818492feeb169dfb20ae8e/llvmlite-0.47.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2699a74321189e812d476a43d6d7f652f51811e7b5aad9d9bba842a1c7927acb", size = 56275178, upload-time = "2026-03-31T18:29:05.748Z" }, + { url = "https://files.pythonhosted.org/packages/d6/da/b32cafcb926fb0ce2aa25553bf32cb8764af31438f40e2481df08884c947/llvmlite-0.47.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c6951e2b29930227963e53ee152441f0e14be92e9d4231852102d986c761e40", size = 55128632, upload-time = "2026-03-31T18:29:11.235Z" }, + { url = "https://files.pythonhosted.org/packages/46/9f/4898b44e4042c60fafcb1162dfb7014f6f15b1ec19bf29cfea6bf26df90d/llvmlite-0.47.0-cp313-cp313-win_amd64.whl", hash = "sha256:c2e9adf8698d813a9a5efb2d4370caf344dbc1e145019851fee6a6f319ba760e", size = 38138695, upload-time = "2026-03-31T18:29:15.43Z" }, + { url = "https://files.pythonhosted.org/packages/1c/d4/33c8af00f0bf6f552d74f3a054f648af2c5bc6bece97972f3bfadce4f5ec/llvmlite-0.47.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:de966c626c35c9dff5ae7bf12db25637738d0df83fc370cf793bc94d43d92d14", size = 37232773, upload-time = "2026-03-31T18:29:19.453Z" }, + { url = "https://files.pythonhosted.org/packages/64/1d/a760e993e0c0ba6db38d46b9f48f6c7dceb8ac838824997fb9e25f97bc04/llvmlite-0.47.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ddbccff2aeaff8670368340a158abefc032fe9b3ccf7d9c496639263d00151aa", size = 56275176, upload-time = "2026-03-31T18:29:24.149Z" }, + { url = "https://files.pythonhosted.org/packages/84/3b/e679bc3b29127182a7f4aa2d2e9e5bea42adb93fb840484147d59c236299/llvmlite-0.47.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4a7b778a2e144fc64468fb9bf509ac1226c9813a00b4d7afea5d988c4e22fca", size = 55128631, upload-time = "2026-03-31T18:29:29.536Z" }, + { url = "https://files.pythonhosted.org/packages/be/f7/19e2a09c62809c9e63bbd14ce71fb92c6ff7b7b3045741bb00c781efc3c9/llvmlite-0.47.0-cp314-cp314-win_amd64.whl", hash = "sha256:694e3c2cdc472ed2bd8bd4555ca002eec4310961dd58ef791d508f57b5cc4c94", size = 39153826, upload-time = "2026-03-31T18:29:33.681Z" }, + { url = "https://files.pythonhosted.org/packages/40/a1/581a8c707b5e80efdbbe1dd94527404d33fe50bceb71f39d5a7e11bd57b7/llvmlite-0.47.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:92ec8a169a20b473c1c54d4695e371bde36489fc1efa3688e11e99beba0abf9c", size = 37232772, upload-time = "2026-03-31T18:29:37.952Z" }, + { url = "https://files.pythonhosted.org/packages/11/03/16090dd6f74ba2b8b922276047f15962fbeea0a75d5601607edb301ba945/llvmlite-0.47.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fa1cbd800edd3b20bc141521f7fd45a6185a5b84109aa6855134e81397ffe72b", size = 56275178, upload-time = "2026-03-31T18:29:42.58Z" }, + { url = "https://files.pythonhosted.org/packages/f5/cb/0abf1dd4c5286a95ffe0c1d8c67aec06b515894a0dd2ac97f5e27b82ab0b/llvmlite-0.47.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f6725179b89f03b17dabe236ff3422cb8291b4c1bf40af152826dfd34e350ae8", size = 55128632, upload-time = "2026-03-31T18:29:46.939Z" }, + { url = "https://files.pythonhosted.org/packages/4f/79/d3bbab197e86e0ff4f9c07122895b66a3e0d024247fcff7f12c473cb36d9/llvmlite-0.47.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6842cf6f707ec4be3d985a385ad03f72b2d724439e118fcbe99b2929964f0453", size = 39153839, upload-time = "2026-03-31T18:29:51.004Z" }, +] + +[[package]] +name = "matplotlib" +version = "3.10.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/76/d3c6e3a13fe484ebe7718d14e269c9569c4eb0020a968a327acb3b9a8fe6/matplotlib-3.10.8.tar.gz", hash = "sha256:2299372c19d56bcd35cf05a2738308758d32b9eaed2371898d8f5bd33f084aa3", size = 34806269, upload-time = "2025-12-10T22:56:51.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/67/f997cdcbb514012eb0d10cd2b4b332667997fb5ebe26b8d41d04962fa0e6/matplotlib-3.10.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:64fcc24778ca0404ce0cb7b6b77ae1f4c7231cdd60e6778f999ee05cbd581b9a", size = 8260453, upload-time = "2025-12-10T22:55:30.709Z" }, + { url = "https://files.pythonhosted.org/packages/7e/65/07d5f5c7f7c994f12c768708bd2e17a4f01a2b0f44a1c9eccad872433e2e/matplotlib-3.10.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9a5ca4ac220a0cdd1ba6bcba3608547117d30468fefce49bb26f55c1a3d5c58", size = 8148321, upload-time = "2025-12-10T22:55:33.265Z" }, + { url = "https://files.pythonhosted.org/packages/3e/f3/c5195b1ae57ef85339fd7285dfb603b22c8b4e79114bae5f4f0fcf688677/matplotlib-3.10.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3ab4aabc72de4ff77b3ec33a6d78a68227bf1123465887f9905ba79184a1cc04", size = 8716944, upload-time = "2025-12-10T22:55:34.922Z" }, + { url = "https://files.pythonhosted.org/packages/00/f9/7638f5cc82ec8a7aa005de48622eecc3ed7c9854b96ba15bd76b7fd27574/matplotlib-3.10.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24d50994d8c5816ddc35411e50a86ab05f575e2530c02752e02538122613371f", size = 9550099, upload-time = "2025-12-10T22:55:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/57/61/78cd5920d35b29fd2a0fe894de8adf672ff52939d2e9b43cb83cd5ce1bc7/matplotlib-3.10.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:99eefd13c0dc3b3c1b4d561c1169e65fe47aab7b8158754d7c084088e2329466", size = 9613040, upload-time = "2025-12-10T22:55:38.715Z" }, + { url = "https://files.pythonhosted.org/packages/30/4e/c10f171b6e2f44d9e3a2b96efa38b1677439d79c99357600a62cc1e9594e/matplotlib-3.10.8-cp312-cp312-win_amd64.whl", hash = "sha256:dd80ecb295460a5d9d260df63c43f4afbdd832d725a531f008dad1664f458adf", size = 8142717, upload-time = "2025-12-10T22:55:41.103Z" }, + { url = "https://files.pythonhosted.org/packages/f1/76/934db220026b5fef85f45d51a738b91dea7d70207581063cd9bd8fafcf74/matplotlib-3.10.8-cp312-cp312-win_arm64.whl", hash = "sha256:3c624e43ed56313651bc18a47f838b60d7b8032ed348911c54906b130b20071b", size = 8012751, upload-time = "2025-12-10T22:55:42.684Z" }, + { url = "https://files.pythonhosted.org/packages/3d/b9/15fd5541ef4f5b9a17eefd379356cf12175fe577424e7b1d80676516031a/matplotlib-3.10.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3f2e409836d7f5ac2f1c013110a4d50b9f7edc26328c108915f9075d7d7a91b6", size = 8261076, upload-time = "2025-12-10T22:55:44.648Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a0/2ba3473c1b66b9c74dc7107c67e9008cb1782edbe896d4c899d39ae9cf78/matplotlib-3.10.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56271f3dac49a88d7fca5060f004d9d22b865f743a12a23b1e937a0be4818ee1", size = 8148794, upload-time = "2025-12-10T22:55:46.252Z" }, + { url = "https://files.pythonhosted.org/packages/75/97/a471f1c3eb1fd6f6c24a31a5858f443891d5127e63a7788678d14e249aea/matplotlib-3.10.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a0a7f52498f72f13d4a25ea70f35f4cb60642b466cbb0a9be951b5bc3f45a486", size = 8718474, upload-time = "2025-12-10T22:55:47.864Z" }, + { url = "https://files.pythonhosted.org/packages/01/be/cd478f4b66f48256f42927d0acbcd63a26a893136456cd079c0cc24fbabf/matplotlib-3.10.8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:646d95230efb9ca614a7a594d4fcacde0ac61d25e37dd51710b36477594963ce", size = 9549637, upload-time = "2025-12-10T22:55:50.048Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7c/8dc289776eae5109e268c4fb92baf870678dc048a25d4ac903683b86d5bf/matplotlib-3.10.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f89c151aab2e2e23cb3fe0acad1e8b82841fd265379c4cecd0f3fcb34c15e0f6", size = 9613678, upload-time = "2025-12-10T22:55:52.21Z" }, + { url = "https://files.pythonhosted.org/packages/64/40/37612487cc8a437d4dd261b32ca21fe2d79510fe74af74e1f42becb1bdb8/matplotlib-3.10.8-cp313-cp313-win_amd64.whl", hash = "sha256:e8ea3e2d4066083e264e75c829078f9e149fa119d27e19acd503de65e0b13149", size = 8142686, upload-time = "2025-12-10T22:55:54.253Z" }, + { url = "https://files.pythonhosted.org/packages/66/52/8d8a8730e968185514680c2a6625943f70269509c3dcfc0dcf7d75928cb8/matplotlib-3.10.8-cp313-cp313-win_arm64.whl", hash = "sha256:c108a1d6fa78a50646029cb6d49808ff0fc1330fda87fa6f6250c6b5369b6645", size = 8012917, upload-time = "2025-12-10T22:55:56.268Z" }, + { url = "https://files.pythonhosted.org/packages/b5/27/51fe26e1062f298af5ef66343d8ef460e090a27fea73036c76c35821df04/matplotlib-3.10.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ad3d9833a64cf48cc4300f2b406c3d0f4f4724a91c0bd5640678a6ba7c102077", size = 8305679, upload-time = "2025-12-10T22:55:57.856Z" }, + { url = "https://files.pythonhosted.org/packages/2c/1e/4de865bc591ac8e3062e835f42dd7fe7a93168d519557837f0e37513f629/matplotlib-3.10.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:eb3823f11823deade26ce3b9f40dcb4a213da7a670013929f31d5f5ed1055b22", size = 8198336, upload-time = "2025-12-10T22:55:59.371Z" }, + { url = "https://files.pythonhosted.org/packages/c6/cb/2f7b6e75fb4dce87ef91f60cac4f6e34f4c145ab036a22318ec837971300/matplotlib-3.10.8-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d9050fee89a89ed57b4fb2c1bfac9a3d0c57a0d55aed95949eedbc42070fea39", size = 8731653, upload-time = "2025-12-10T22:56:01.032Z" }, + { url = "https://files.pythonhosted.org/packages/46/b3/bd9c57d6ba670a37ab31fb87ec3e8691b947134b201f881665b28cc039ff/matplotlib-3.10.8-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b44d07310e404ba95f8c25aa5536f154c0a8ec473303535949e52eb71d0a1565", size = 9561356, upload-time = "2025-12-10T22:56:02.95Z" }, + { url = "https://files.pythonhosted.org/packages/c0/3d/8b94a481456dfc9dfe6e39e93b5ab376e50998cddfd23f4ae3b431708f16/matplotlib-3.10.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0a33deb84c15ede243aead39f77e990469fff93ad1521163305095b77b72ce4a", size = 9614000, upload-time = "2025-12-10T22:56:05.411Z" }, + { url = "https://files.pythonhosted.org/packages/bd/cd/bc06149fe5585ba800b189a6a654a75f1f127e8aab02fd2be10df7fa500c/matplotlib-3.10.8-cp313-cp313t-win_amd64.whl", hash = "sha256:3a48a78d2786784cc2413e57397981fb45c79e968d99656706018d6e62e57958", size = 8220043, upload-time = "2025-12-10T22:56:07.551Z" }, + { url = "https://files.pythonhosted.org/packages/e3/de/b22cf255abec916562cc04eef457c13e58a1990048de0c0c3604d082355e/matplotlib-3.10.8-cp313-cp313t-win_arm64.whl", hash = "sha256:15d30132718972c2c074cd14638c7f4592bd98719e2308bccea40e0538bc0cb5", size = 8062075, upload-time = "2025-12-10T22:56:09.178Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/9c0ff7a2f11615e516c3b058e1e6e8f9614ddeca53faca06da267c48345d/matplotlib-3.10.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b53285e65d4fa4c86399979e956235deb900be5baa7fc1218ea67fbfaeaadd6f", size = 8262481, upload-time = "2025-12-10T22:56:10.885Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ca/e8ae28649fcdf039fda5ef554b40a95f50592a3c47e6f7270c9561c12b07/matplotlib-3.10.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:32f8dce744be5569bebe789e46727946041199030db8aeb2954d26013a0eb26b", size = 8151473, upload-time = "2025-12-10T22:56:12.377Z" }, + { url = "https://files.pythonhosted.org/packages/f1/6f/009d129ae70b75e88cbe7e503a12a4c0670e08ed748a902c2568909e9eb5/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4cf267add95b1c88300d96ca837833d4112756045364f5c734a2276038dae27d", size = 9553896, upload-time = "2025-12-10T22:56:14.432Z" }, + { url = "https://files.pythonhosted.org/packages/f5/26/4221a741eb97967bc1fd5e4c52b9aa5a91b2f4ec05b59f6def4d820f9df9/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2cf5bd12cecf46908f286d7838b2abc6c91cda506c0445b8223a7c19a00df008", size = 9824193, upload-time = "2025-12-10T22:56:16.29Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/3abf75f38605772cf48a9daf5821cd4f563472f38b4b828c6fba6fa6d06e/matplotlib-3.10.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:41703cc95688f2516b480f7f339d8851a6035f18e100ee6a32bc0b8536a12a9c", size = 9615444, upload-time = "2025-12-10T22:56:18.155Z" }, + { url = "https://files.pythonhosted.org/packages/93/a5/de89ac80f10b8dc615807ee1133cd99ac74082581196d4d9590bea10690d/matplotlib-3.10.8-cp314-cp314-win_amd64.whl", hash = "sha256:83d282364ea9f3e52363da262ce32a09dfe241e4080dcedda3c0db059d3c1f11", size = 8272719, upload-time = "2025-12-10T22:56:20.366Z" }, + { url = "https://files.pythonhosted.org/packages/69/ce/b006495c19ccc0a137b48083168a37bd056392dee02f87dba0472f2797fe/matplotlib-3.10.8-cp314-cp314-win_arm64.whl", hash = "sha256:2c1998e92cd5999e295a731bcb2911c75f597d937341f3030cc24ef2733d78a8", size = 8144205, upload-time = "2025-12-10T22:56:22.239Z" }, + { url = "https://files.pythonhosted.org/packages/68/d9/b31116a3a855bd313c6fcdb7226926d59b041f26061c6c5b1be66a08c826/matplotlib-3.10.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b5a2b97dbdc7d4f353ebf343744f1d1f1cca8aa8bfddb4262fcf4306c3761d50", size = 8305785, upload-time = "2025-12-10T22:56:24.218Z" }, + { url = "https://files.pythonhosted.org/packages/1e/90/6effe8103f0272685767ba5f094f453784057072f49b393e3ea178fe70a5/matplotlib-3.10.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3f5c3e4da343bba819f0234186b9004faba952cc420fbc522dc4e103c1985908", size = 8198361, upload-time = "2025-12-10T22:56:26.787Z" }, + { url = "https://files.pythonhosted.org/packages/d7/65/a73188711bea603615fc0baecca1061429ac16940e2385433cc778a9d8e7/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f62550b9a30afde8c1c3ae450e5eb547d579dd69b25c2fc7a1c67f934c1717a", size = 9561357, upload-time = "2025-12-10T22:56:28.953Z" }, + { url = "https://files.pythonhosted.org/packages/f4/3d/b5c5d5d5be8ce63292567f0e2c43dde9953d3ed86ac2de0a72e93c8f07a1/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:495672de149445ec1b772ff2c9ede9b769e3cb4f0d0aa7fa730d7f59e2d4e1c1", size = 9823610, upload-time = "2025-12-10T22:56:31.455Z" }, + { url = "https://files.pythonhosted.org/packages/4d/4b/e7beb6bbd49f6bae727a12b270a2654d13c397576d25bd6786e47033300f/matplotlib-3.10.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:595ba4d8fe983b88f0eec8c26a241e16d6376fe1979086232f481f8f3f67494c", size = 9614011, upload-time = "2025-12-10T22:56:33.85Z" }, + { url = "https://files.pythonhosted.org/packages/7c/e6/76f2813d31f032e65f6f797e3f2f6e4aab95b65015924b1c51370395c28a/matplotlib-3.10.8-cp314-cp314t-win_amd64.whl", hash = "sha256:25d380fe8b1dc32cf8f0b1b448470a77afb195438bafdf1d858bfb876f3edf7b", size = 8362801, upload-time = "2025-12-10T22:56:36.107Z" }, + { url = "https://files.pythonhosted.org/packages/5d/49/d651878698a0b67f23aa28e17f45a6d6dd3d3f933fa29087fa4ce5947b5a/matplotlib-3.10.8-cp314-cp314t-win_arm64.whl", hash = "sha256:113bb52413ea508ce954a02c10ffd0d565f9c3bc7f2eddc27dfe1731e71c7b5f", size = 8192560, upload-time = "2025-12-10T22:56:38.008Z" }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c7/74/97e72a36efd4ae2bccb3463284300f8953f199b5ffbc04cbbb0ec78f74b1/matplotlib_inline-0.2.1.tar.gz", hash = "sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe", size = 8110, upload-time = "2025-10-23T09:00:22.126Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/33/ee4519fa02ed11a94aef9559552f3b17bb863f2ecfe1a35dc7f548cde231/matplotlib_inline-0.2.1-py3-none-any.whl", hash = "sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76", size = 9516, upload-time = "2025-10-23T09:00:20.675Z" }, +] + +[[package]] +name = "narwhals" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e9/f3/257adc69a71011b4c8cda321b00f02c5bf1980ae38ffd05a58d9632d4de8/narwhals-2.20.0.tar.gz", hash = "sha256:c10994975fa7dc5a68c2cffcddbd5908fc8ebb2d463c5bab085309c0ee1f551e", size = 627848, upload-time = "2026-04-20T12:11:45.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/69/f24d3d1c38ad69e256138b4ec2452a8c7cf66be49dc214771ae99dd4f0a0/narwhals-2.20.0-py3-none-any.whl", hash = "sha256:16e750ea5507d4ba6e8d03455b5f93a535e0405976561baea235bca5dc9f475d", size = 449373, upload-time = "2026-04-20T12:11:43.596Z" }, +] + +[[package]] +name = "nbformat" +version = "5.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastjsonschema" }, + { name = "jsonschema" }, + { name = "jupyter-core" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749, upload-time = "2024-04-04T11:20:37.371Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454, upload-time = "2024-04-04T11:20:34.895Z" }, +] + +[[package]] +name = "networkx" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, +] + +[[package]] +name = "nltk" +version = "3.9.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "joblib" }, + { name = "regex" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/a1/b3b4adf15585a5bc4c357adde150c01ebeeb642173ded4d871e89468767c/nltk-3.9.4.tar.gz", hash = "sha256:ed03bc098a40481310320808b2db712d95d13ca65b27372f8a403949c8b523d0", size = 2946864, upload-time = "2026-03-24T06:13:40.641Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/91/04e965f8e717ba0ab4bdca5c112deeab11c9e750d94c4d4602f050295d39/nltk-3.9.4-py3-none-any.whl", hash = "sha256:f2fa301c3a12718ce4a0e9305c5675299da5ad9e26068218b69d692fda84828f", size = 1552087, upload-time = "2026-03-24T06:13:38.47Z" }, +] + +[[package]] +name = "numba" +version = "0.53.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", + "python_full_version < '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", +] +dependencies = [ + { name = "llvmlite", version = "0.36.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, + { name = "numpy", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, + { name = "setuptools", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e3/7d/3d61160836e49f40913741c464f119551c15ed371c1d91ea50308495b93b/numba-0.53.1.tar.gz", hash = "sha256:9cd4e5216acdc66c4e9dab2dfd22ddb5bef151185c070d4a3cd8e78638aff5b0", size = 2213956, upload-time = "2021-03-26T09:15:50.402Z" } + +[[package]] +name = "numba" +version = "0.65.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "(python_full_version >= '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", + "python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version < '3.14' and sys_platform == 'emscripten'", + "(python_full_version < '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", +] +dependencies = [ + { name = "llvmlite", version = "0.47.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, + { name = "numpy", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f6/c5/db2ac3685833d626c0dcae6bd2330cd68433e1fd248d15f70998160d3ad7/numba-0.65.1.tar.gz", hash = "sha256:19357146c32fe9ed25059ab915e8465fb13951cf6b0aace3826b76886373ab23", size = 2765600, upload-time = "2026-04-24T02:02:56.551Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/bc/76f8f8c5cf9adee47fdb7bbb03be8900f76f902d451d7477cf12b845e1de/numba-0.65.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ac3f1e77c352dd0ea9712732c2d8f9ca507717435eec5b5013bf138ac33c4a08", size = 2681371, upload-time = "2026-04-24T02:02:26.105Z" }, + { url = "https://files.pythonhosted.org/packages/69/47/a415af0283e4db0398104c6d1c11c9861a98dc67a7aa442a7769ed5d6196/numba-0.65.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:52bc6f3ceb8fcaff9b2ae26b4c6b1e9fee39db8d355534c0fe4f39a901246b84", size = 3802467, upload-time = "2026-04-24T02:02:27.712Z" }, + { url = "https://files.pythonhosted.org/packages/46/36/246f73ec99cfeab2f2cb2ce7d4218766cc36a2da418901223f4f4da9c813/numba-0.65.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90ca10b3463bae0bd70589726fe3c77d01d6b5fc86bee54bcdf9fb6b47c28977", size = 3502628, upload-time = "2026-04-24T02:02:29.763Z" }, + { url = "https://files.pythonhosted.org/packages/db/9e/3c679b2ee078425b9e99a91e44f8d132a6830d8ccce5227bc5e9181aeed8/numba-0.65.1-cp312-cp312-win_amd64.whl", hash = "sha256:5971c632be2a2351500431f46213821dba8d02b18a9f7d02fd36bd2743e41a6a", size = 2750611, upload-time = "2026-04-24T02:02:31.477Z" }, + { url = "https://files.pythonhosted.org/packages/79/37/14a4579049c1eb673afd0de0cb4842982acd55b9ce2643e763db858bcea0/numba-0.65.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:1735c15c1134a5108b4d6a5c77fc0947924ea066a738dc09a52008c13df9cad3", size = 2681344, upload-time = "2026-04-24T02:02:33.65Z" }, + { url = "https://files.pythonhosted.org/packages/a0/22/b8d873f6466b20aa563fc9b33acd48dec89a07803ddaa2f1c8ca1cd33126/numba-0.65.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c09f49117ef255e1f1c6dad0c7a1ed39868243862a73be5706793241a3755f1b", size = 3810619, upload-time = "2026-04-24T02:02:36.041Z" }, + { url = "https://files.pythonhosted.org/packages/62/08/e16a8b5d9a018962ebb5c66be662317cde32b9f5dab08441f90bed5522fb/numba-0.65.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:594a8680b3fadac99e97e489b1fd89007177e5336713745c3b769528c635a464", size = 3509783, upload-time = "2026-04-24T02:02:38.245Z" }, + { url = "https://files.pythonhosted.org/packages/fd/a5/03c970d57f4c1741354837353ce39fb5206952ae1dba8922d29c86f64805/numba-0.65.1-cp313-cp313-win_amd64.whl", hash = "sha256:85be74c0d036842699a30058f82fb88fc5ffdc59f7615cab5792ea92914c9b62", size = 2750534, upload-time = "2026-04-24T02:02:39.903Z" }, + { url = "https://files.pythonhosted.org/packages/4f/2e/8aed9b726d9ba5f11ad287645fd479e88278db3060a25cb1225d730eb2b7/numba-0.65.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:33f5eb68eb1c843511615d14663ce60258525d6a4c65ab040e2c2b0c4cf17450", size = 2681554, upload-time = "2026-04-24T02:02:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/87/96/f3eb235fafa82a34e2ab5dd7dc9ffff998ebf5f0bbc23fa56a96aeb44da6/numba-0.65.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:71e73029bf53a62cc6afcf96be4bd942290d8b4c55f0a454fb536158115790f7", size = 3779602, upload-time = "2026-04-24T02:02:43.726Z" }, + { url = "https://files.pythonhosted.org/packages/09/90/b0f09b48752d23640b8284f22aa597737e8adaddc7fbfacc4708b7f73a4c/numba-0.65.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a07635e0be926b9bdbffb09137c230fb13f6ec0e564914ba937cee12ce3eb35", size = 3479532, upload-time = "2026-04-24T02:02:45.427Z" }, + { url = "https://files.pythonhosted.org/packages/56/46/3f7fc04fb853559e74b210e0b62c19974ec844cefec611f9e535f4da3761/numba-0.65.1-cp314-cp314-win_amd64.whl", hash = "sha256:2a20fcdabdefbdacf88d85caf70c3b18c4bcb7ebb8f82e6a19486383dd26ab63", size = 2752637, upload-time = "2026-04-24T02:02:47.664Z" }, + { url = "https://files.pythonhosted.org/packages/81/7b/c1a341a9067367778f4152a5f01061cf281fb09582c92c510ec4918cabf6/numba-0.65.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:548dd4b3a4508d5062768d1514b2cd7b015f9a25ec7af651c50dee243965e652", size = 2684600, upload-time = "2026-04-24T02:02:49.653Z" }, + { url = "https://files.pythonhosted.org/packages/03/36/98ddbcf3e4f04a6dd07e1c67249955920579ba4af6bb6868e3088f4ed282/numba-0.65.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:78abc28feff2c2ff8307fff3975b6438352759c9acb797ecd6b1fb6e7e39e31d", size = 3817198, upload-time = "2026-04-24T02:02:51.266Z" }, + { url = "https://files.pythonhosted.org/packages/a3/83/0dad21057ece5a835599f5d24099b091703995e23dbbf894f259e91c010b/numba-0.65.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee7676cb389555805f9b9a1840cbcd1ea6c8bd5376ab6918e3a29c5ea1dbda20", size = 3533862, upload-time = "2026-04-24T02:02:52.987Z" }, + { url = "https://files.pythonhosted.org/packages/32/36/8be7118ffd4c8440881046eac3d0982cc5ab42909508cf5d67024d62a2e4/numba-0.65.1-cp314-cp314t-win_amd64.whl", hash = "sha256:20609346e3bd75204950dcbbfe383a8d7dbf4902f442aedbf00f97fef4aa8f38", size = 2758237, upload-time = "2026-04-24T02:02:54.612Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/9f/b8cef5bffa569759033adda9481211426f12f53299629b410340795c2514/numpy-2.4.4.tar.gz", hash = "sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0", size = 20731587, upload-time = "2026-03-29T13:22:01.298Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/05/32396bec30fb2263770ee910142f49c1476d08e8ad41abf8403806b520ce/numpy-2.4.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b", size = 16689272, upload-time = "2026-03-29T13:18:49.223Z" }, + { url = "https://files.pythonhosted.org/packages/c5/f3/a983d28637bfcd763a9c7aafdb6d5c0ebf3d487d1e1459ffdb57e2f01117/numpy-2.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e", size = 14699573, upload-time = "2026-03-29T13:18:52.629Z" }, + { url = "https://files.pythonhosted.org/packages/9b/fd/e5ecca1e78c05106d98028114f5c00d3eddb41207686b2b7de3e477b0e22/numpy-2.4.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842", size = 5204782, upload-time = "2026-03-29T13:18:55.579Z" }, + { url = "https://files.pythonhosted.org/packages/de/2f/702a4594413c1a8632092beae8aba00f1d67947389369b3777aed783fdca/numpy-2.4.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8", size = 6552038, upload-time = "2026-03-29T13:18:57.769Z" }, + { url = "https://files.pythonhosted.org/packages/7f/37/eed308a8f56cba4d1fdf467a4fc67ef4ff4bf1c888f5fc980481890104b1/numpy-2.4.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121", size = 15670666, upload-time = "2026-03-29T13:19:00.341Z" }, + { url = "https://files.pythonhosted.org/packages/0a/0d/0e3ecece05b7a7e87ab9fb587855548da437a061326fff64a223b6dcb78a/numpy-2.4.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e", size = 16645480, upload-time = "2026-03-29T13:19:03.63Z" }, + { url = "https://files.pythonhosted.org/packages/34/49/f2312c154b82a286758ee2f1743336d50651f8b5195db18cdb63675ff649/numpy-2.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44", size = 17020036, upload-time = "2026-03-29T13:19:07.428Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e9/736d17bd77f1b0ec4f9901aaec129c00d59f5d84d5e79bba540ef12c2330/numpy-2.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d", size = 18368643, upload-time = "2026-03-29T13:19:10.775Z" }, + { url = "https://files.pythonhosted.org/packages/63/f6/d417977c5f519b17c8a5c3bc9e8304b0908b0e21136fe43bf628a1343914/numpy-2.4.4-cp312-cp312-win32.whl", hash = "sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827", size = 5961117, upload-time = "2026-03-29T13:19:13.464Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5b/e1deebf88ff431b01b7406ca3583ab2bbb90972bbe1c568732e49c844f7e/numpy-2.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a", size = 12320584, upload-time = "2026-03-29T13:19:16.155Z" }, + { url = "https://files.pythonhosted.org/packages/58/89/e4e856ac82a68c3ed64486a544977d0e7bdd18b8da75b78a577ca31c4395/numpy-2.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec", size = 10221450, upload-time = "2026-03-29T13:19:18.994Z" }, + { url = "https://files.pythonhosted.org/packages/14/1d/d0a583ce4fefcc3308806a749a536c201ed6b5ad6e1322e227ee4848979d/numpy-2.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50", size = 16684933, upload-time = "2026-03-29T13:19:22.47Z" }, + { url = "https://files.pythonhosted.org/packages/c1/62/2b7a48fbb745d344742c0277f01286dead15f3f68e4f359fbfcf7b48f70f/numpy-2.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115", size = 14694532, upload-time = "2026-03-29T13:19:25.581Z" }, + { url = "https://files.pythonhosted.org/packages/e5/87/499737bfba066b4a3bebff24a8f1c5b2dee410b209bc6668c9be692580f0/numpy-2.4.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af", size = 5199661, upload-time = "2026-03-29T13:19:28.31Z" }, + { url = "https://files.pythonhosted.org/packages/cd/da/464d551604320d1491bc345efed99b4b7034143a85787aab78d5691d5a0e/numpy-2.4.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c", size = 6547539, upload-time = "2026-03-29T13:19:30.97Z" }, + { url = "https://files.pythonhosted.org/packages/7d/90/8d23e3b0dafd024bf31bdec225b3bb5c2dbfa6912f8a53b8659f21216cbf/numpy-2.4.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103", size = 15668806, upload-time = "2026-03-29T13:19:33.887Z" }, + { url = "https://files.pythonhosted.org/packages/d1/73/a9d864e42a01896bb5974475438f16086be9ba1f0d19d0bb7a07427c4a8b/numpy-2.4.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83", size = 16632682, upload-time = "2026-03-29T13:19:37.336Z" }, + { url = "https://files.pythonhosted.org/packages/34/fb/14570d65c3bde4e202a031210475ae9cde9b7686a2e7dc97ee67d2833b35/numpy-2.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed", size = 17019810, upload-time = "2026-03-29T13:19:40.963Z" }, + { url = "https://files.pythonhosted.org/packages/8a/77/2ba9d87081fd41f6d640c83f26fb7351e536b7ce6dd9061b6af5904e8e46/numpy-2.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959", size = 18357394, upload-time = "2026-03-29T13:19:44.859Z" }, + { url = "https://files.pythonhosted.org/packages/a2/23/52666c9a41708b0853fa3b1a12c90da38c507a3074883823126d4e9d5b30/numpy-2.4.4-cp313-cp313-win32.whl", hash = "sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed", size = 5959556, upload-time = "2026-03-29T13:19:47.661Z" }, + { url = "https://files.pythonhosted.org/packages/57/fb/48649b4971cde70d817cf97a2a2fdc0b4d8308569f1dd2f2611959d2e0cf/numpy-2.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf", size = 12317311, upload-time = "2026-03-29T13:19:50.67Z" }, + { url = "https://files.pythonhosted.org/packages/ba/d8/11490cddd564eb4de97b4579ef6bfe6a736cc07e94c1598590ae25415e01/numpy-2.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d", size = 10222060, upload-time = "2026-03-29T13:19:54.229Z" }, + { url = "https://files.pythonhosted.org/packages/99/5d/dab4339177a905aad3e2221c915b35202f1ec30d750dd2e5e9d9a72b804b/numpy-2.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5", size = 14822302, upload-time = "2026-03-29T13:19:57.585Z" }, + { url = "https://files.pythonhosted.org/packages/eb/e4/0564a65e7d3d97562ed6f9b0fd0fb0a6f559ee444092f105938b50043876/numpy-2.4.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7", size = 5327407, upload-time = "2026-03-29T13:20:00.601Z" }, + { url = "https://files.pythonhosted.org/packages/29/8d/35a3a6ce5ad371afa58b4700f1c820f8f279948cca32524e0a695b0ded83/numpy-2.4.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93", size = 6647631, upload-time = "2026-03-29T13:20:02.855Z" }, + { url = "https://files.pythonhosted.org/packages/f4/da/477731acbd5a58a946c736edfdabb2ac5b34c3d08d1ba1a7b437fa0884df/numpy-2.4.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e", size = 15727691, upload-time = "2026-03-29T13:20:06.004Z" }, + { url = "https://files.pythonhosted.org/packages/e6/db/338535d9b152beabeb511579598418ba0212ce77cf9718edd70262cc4370/numpy-2.4.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40", size = 16681241, upload-time = "2026-03-29T13:20:09.417Z" }, + { url = "https://files.pythonhosted.org/packages/e2/a9/ad248e8f58beb7a0219b413c9c7d8151c5d285f7f946c3e26695bdbbe2df/numpy-2.4.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e", size = 17085767, upload-time = "2026-03-29T13:20:13.126Z" }, + { url = "https://files.pythonhosted.org/packages/b5/1a/3b88ccd3694681356f70da841630e4725a7264d6a885c8d442a697e1146b/numpy-2.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392", size = 18403169, upload-time = "2026-03-29T13:20:17.096Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c9/fcfd5d0639222c6eac7f304829b04892ef51c96a75d479214d77e3ce6e33/numpy-2.4.4-cp313-cp313t-win32.whl", hash = "sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008", size = 6083477, upload-time = "2026-03-29T13:20:20.195Z" }, + { url = "https://files.pythonhosted.org/packages/d5/e3/3938a61d1c538aaec8ed6fd6323f57b0c2d2d2219512434c5c878db76553/numpy-2.4.4-cp313-cp313t-win_amd64.whl", hash = "sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8", size = 12457487, upload-time = "2026-03-29T13:20:22.946Z" }, + { url = "https://files.pythonhosted.org/packages/97/6a/7e345032cc60501721ef94e0e30b60f6b0bd601f9174ebd36389a2b86d40/numpy-2.4.4-cp313-cp313t-win_arm64.whl", hash = "sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233", size = 10292002, upload-time = "2026-03-29T13:20:25.909Z" }, + { url = "https://files.pythonhosted.org/packages/6e/06/c54062f85f673dd5c04cbe2f14c3acb8c8b95e3384869bb8cc9bff8cb9df/numpy-2.4.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0", size = 16684353, upload-time = "2026-03-29T13:20:29.504Z" }, + { url = "https://files.pythonhosted.org/packages/4c/39/8a320264a84404c74cc7e79715de85d6130fa07a0898f67fb5cd5bd79908/numpy-2.4.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a", size = 14704914, upload-time = "2026-03-29T13:20:33.547Z" }, + { url = "https://files.pythonhosted.org/packages/91/fb/287076b2614e1d1044235f50f03748f31fa287e3dbe6abeb35cdfa351eca/numpy-2.4.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a", size = 5210005, upload-time = "2026-03-29T13:20:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/63/eb/fcc338595309910de6ecabfcef2419a9ce24399680bfb149421fa2df1280/numpy-2.4.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b", size = 6544974, upload-time = "2026-03-29T13:20:39.014Z" }, + { url = "https://files.pythonhosted.org/packages/44/5d/e7e9044032a716cdfaa3fba27a8e874bf1c5f1912a1ddd4ed071bf8a14a6/numpy-2.4.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a", size = 15684591, upload-time = "2026-03-29T13:20:42.146Z" }, + { url = "https://files.pythonhosted.org/packages/98/7c/21252050676612625449b4807d6b695b9ce8a7c9e1c197ee6216c8a65c7c/numpy-2.4.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d", size = 16637700, upload-time = "2026-03-29T13:20:46.204Z" }, + { url = "https://files.pythonhosted.org/packages/b1/29/56d2bbef9465db24ef25393383d761a1af4f446a1df9b8cded4fe3a5a5d7/numpy-2.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252", size = 17035781, upload-time = "2026-03-29T13:20:50.242Z" }, + { url = "https://files.pythonhosted.org/packages/e3/2b/a35a6d7589d21f44cea7d0a98de5ddcbb3d421b2622a5c96b1edf18707c3/numpy-2.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f", size = 18362959, upload-time = "2026-03-29T13:20:54.019Z" }, + { url = "https://files.pythonhosted.org/packages/64/c9/d52ec581f2390e0f5f85cbfd80fb83d965fc15e9f0e1aec2195faa142cde/numpy-2.4.4-cp314-cp314-win32.whl", hash = "sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc", size = 6008768, upload-time = "2026-03-29T13:20:56.912Z" }, + { url = "https://files.pythonhosted.org/packages/fa/22/4cc31a62a6c7b74a8730e31a4274c5dc80e005751e277a2ce38e675e4923/numpy-2.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74", size = 12449181, upload-time = "2026-03-29T13:20:59.548Z" }, + { url = "https://files.pythonhosted.org/packages/70/2e/14cda6f4d8e396c612d1bf97f22958e92148801d7e4f110cabebdc0eef4b/numpy-2.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb", size = 10496035, upload-time = "2026-03-29T13:21:02.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e8/8fed8c8d848d7ecea092dc3469643f9d10bc3a134a815a3b033da1d2039b/numpy-2.4.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e", size = 14824958, upload-time = "2026-03-29T13:21:05.671Z" }, + { url = "https://files.pythonhosted.org/packages/05/1a/d8007a5138c179c2bf33ef44503e83d70434d2642877ee8fbb230e7c0548/numpy-2.4.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113", size = 5330020, upload-time = "2026-03-29T13:21:08.635Z" }, + { url = "https://files.pythonhosted.org/packages/99/64/ffb99ac6ae93faf117bcbd5c7ba48a7f45364a33e8e458545d3633615dda/numpy-2.4.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d", size = 6650758, upload-time = "2026-03-29T13:21:10.949Z" }, + { url = "https://files.pythonhosted.org/packages/6e/6e/795cc078b78a384052e73b2f6281ff7a700e9bf53bcce2ee579d4f6dd879/numpy-2.4.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d", size = 15729948, upload-time = "2026-03-29T13:21:14.047Z" }, + { url = "https://files.pythonhosted.org/packages/5f/86/2acbda8cc2af5f3d7bfc791192863b9e3e19674da7b5e533fded124d1299/numpy-2.4.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f", size = 16679325, upload-time = "2026-03-29T13:21:17.561Z" }, + { url = "https://files.pythonhosted.org/packages/bc/59/cafd83018f4aa55e0ac6fa92aa066c0a1877b77a615ceff1711c260ffae8/numpy-2.4.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0", size = 17084883, upload-time = "2026-03-29T13:21:21.106Z" }, + { url = "https://files.pythonhosted.org/packages/f0/85/a42548db84e65ece46ab2caea3d3f78b416a47af387fcbb47ec28e660dc2/numpy-2.4.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150", size = 18403474, upload-time = "2026-03-29T13:21:24.828Z" }, + { url = "https://files.pythonhosted.org/packages/ed/ad/483d9e262f4b831000062e5d8a45e342166ec8aaa1195264982bca267e62/numpy-2.4.4-cp314-cp314t-win32.whl", hash = "sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871", size = 6155500, upload-time = "2026-03-29T13:21:28.205Z" }, + { url = "https://files.pythonhosted.org/packages/c7/03/2fc4e14c7bd4ff2964b74ba90ecb8552540b6315f201df70f137faa5c589/numpy-2.4.4-cp314-cp314t-win_amd64.whl", hash = "sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e", size = 12637755, upload-time = "2026-03-29T13:21:31.107Z" }, + { url = "https://files.pythonhosted.org/packages/58/78/548fb8e07b1a341746bfbecb32f2c268470f45fa028aacdbd10d9bc73aab/numpy-2.4.4-cp314-cp314t-win_arm64.whl", hash = "sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7", size = 10566643, upload-time = "2026-03-29T13:21:34.339Z" }, +] + +[[package]] +name = "packaging" +version = "26.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/de/0d2b39fb4af88a0258f3bac87dfcbb48e73fbdea4a2ed0e2213f9a4c2f9a/packaging-26.1.tar.gz", hash = "sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de", size = 215519, upload-time = "2026-04-14T21:12:49.362Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/c2/920ef838e2f0028c8262f16101ec09ebd5969864e5a64c4c05fad0617c56/packaging-26.1-py3-none-any.whl", hash = "sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f", size = 95831, upload-time = "2026-04-14T21:12:47.56Z" }, +] + +[[package]] +name = "pandas" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/da/99/b342345300f13440fe9fe385c3c481e2d9a595ee3bab4d3219247ac94e9a/pandas-3.0.2.tar.gz", hash = "sha256:f4753e73e34c8d83221ba58f232433fca2748be8b18dbca02d242ed153945043", size = 4645855, upload-time = "2026-03-31T06:48:30.816Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/b0/c20bd4d6d3f736e6bd6b55794e9cd0a617b858eaad27c8f410ea05d953b7/pandas-3.0.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:232a70ebb568c0c4d2db4584f338c1577d81e3af63292208d615907b698a0f18", size = 10347921, upload-time = "2026-03-31T06:46:33.36Z" }, + { url = "https://files.pythonhosted.org/packages/35/d0/4831af68ce30cc2d03c697bea8450e3225a835ef497d0d70f31b8cdde965/pandas-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:970762605cff1ca0d3f71ed4f3a769ea8f85fc8e6348f6e110b8fea7e6eb5a14", size = 9888127, upload-time = "2026-03-31T06:46:36.253Z" }, + { url = "https://files.pythonhosted.org/packages/61/a9/16ea9346e1fc4a96e2896242d9bc674764fb9049b0044c0132502f7a771e/pandas-3.0.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aff4e6f4d722e0652707d7bcb190c445fe58428500c6d16005b02401764b1b3d", size = 10399577, upload-time = "2026-03-31T06:46:39.224Z" }, + { url = "https://files.pythonhosted.org/packages/c4/a8/3a61a721472959ab0ce865ef05d10b0d6bfe27ce8801c99f33d4fa996e65/pandas-3.0.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ef8b27695c3d3dc78403c9a7d5e59a62d5464a7e1123b4e0042763f7104dc74f", size = 10880030, upload-time = "2026-03-31T06:46:42.412Z" }, + { url = "https://files.pythonhosted.org/packages/da/65/7225c0ea4d6ce9cb2160a7fb7f39804871049f016e74782e5dade4d14109/pandas-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f8d68083e49e16b84734eb1a4dcae4259a75c90fb6e2251ab9a00b61120c06ab", size = 11409468, upload-time = "2026-03-31T06:46:45.2Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5b/46e7c76032639f2132359b5cf4c785dd8cf9aea5ea64699eac752f02b9db/pandas-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:32cc41f310ebd4a296d93515fcac312216adfedb1894e879303987b8f1e2b97d", size = 11936381, upload-time = "2026-03-31T06:46:48.293Z" }, + { url = "https://files.pythonhosted.org/packages/7b/8b/721a9cff6fa6a91b162eb51019c6243b82b3226c71bb6c8ef4a9bd65cbc6/pandas-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:a4785e1d6547d8427c5208b748ae2efb64659a21bd82bf440d4262d02bfa02a4", size = 9744993, upload-time = "2026-03-31T06:46:51.488Z" }, + { url = "https://files.pythonhosted.org/packages/d5/18/7f0bd34ae27b28159aa80f2a6799f47fda34f7fb938a76e20c7b7fe3b200/pandas-3.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:08504503f7101300107ecdc8df73658e4347586db5cfdadabc1592e9d7e7a0fd", size = 9056118, upload-time = "2026-03-31T06:46:54.548Z" }, + { url = "https://files.pythonhosted.org/packages/bf/ca/3e639a1ea6fcd0617ca4e8ca45f62a74de33a56ae6cd552735470b22c8d3/pandas-3.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b5918ba197c951dec132b0c5929a00c0bf05d5942f590d3c10a807f6e15a57d3", size = 10321105, upload-time = "2026-03-31T06:46:57.327Z" }, + { url = "https://files.pythonhosted.org/packages/0b/77/dbc82ff2fb0e63c6564356682bf201edff0ba16c98630d21a1fb312a8182/pandas-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d606a041c89c0a474a4702d532ab7e73a14fe35c8d427b972a625c8e46373668", size = 9864088, upload-time = "2026-03-31T06:46:59.935Z" }, + { url = "https://files.pythonhosted.org/packages/5c/2b/341f1b04bbca2e17e13cd3f08c215b70ef2c60c5356ef1e8c6857449edc7/pandas-3.0.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:710246ba0616e86891b58ab95f2495143bb2bc83ab6b06747c74216f583a6ac9", size = 10369066, upload-time = "2026-03-31T06:47:02.792Z" }, + { url = "https://files.pythonhosted.org/packages/12/c5/cbb1ffefb20a93d3f0e1fdcda699fb84976210d411b008f97f48bf6ce27e/pandas-3.0.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5d3cfe227c725b1f3dff4278b43d8c784656a42a9325b63af6b1492a8232209e", size = 10876780, upload-time = "2026-03-31T06:47:06.205Z" }, + { url = "https://files.pythonhosted.org/packages/98/fe/2249ae5e0a69bd0ddf17353d0a5d26611d70970111f5b3600cdc8be883e7/pandas-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c3b723df9087a9a9a840e263ebd9f88b64a12075d1bf2ea401a5a42f254f084d", size = 11375181, upload-time = "2026-03-31T06:47:09.383Z" }, + { url = "https://files.pythonhosted.org/packages/de/64/77a38b09e70b6464883b8d7584ab543e748e42c1b5d337a2ee088e0df741/pandas-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a3096110bf9eac0070b7208465f2740e2d8a670d5cb6530b5bb884eca495fd39", size = 11928899, upload-time = "2026-03-31T06:47:12.686Z" }, + { url = "https://files.pythonhosted.org/packages/5e/52/42855bf626868413f761addd574acc6195880ae247a5346477a4361c3acb/pandas-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:07a10f5c36512eead51bc578eb3354ad17578b22c013d89a796ab5eee90cd991", size = 9746574, upload-time = "2026-03-31T06:47:15.64Z" }, + { url = "https://files.pythonhosted.org/packages/88/39/21304ae06a25e8bf9fc820d69b29b2c495b2ae580d1e143146c309941760/pandas-3.0.2-cp313-cp313-win_arm64.whl", hash = "sha256:5fdbfa05931071aba28b408e59226186b01eb5e92bea2ab78b65863ca3228d84", size = 9047156, upload-time = "2026-03-31T06:47:18.595Z" }, + { url = "https://files.pythonhosted.org/packages/72/20/7defa8b27d4f330a903bb68eea33be07d839c5ea6bdda54174efcec0e1d2/pandas-3.0.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:dbc20dea3b9e27d0e66d74c42b2d0c1bed9c2ffe92adea33633e3bedeb5ac235", size = 10756238, upload-time = "2026-03-31T06:47:22.012Z" }, + { url = "https://files.pythonhosted.org/packages/e9/95/49433c14862c636afc0e9b2db83ff16b3ad92959364e52b2955e44c8e94c/pandas-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b75c347eff42497452116ce05ef461822d97ce5b9ff8df6edacb8076092c855d", size = 10408520, upload-time = "2026-03-31T06:47:25.197Z" }, + { url = "https://files.pythonhosted.org/packages/3b/f8/462ad2b5881d6b8ec8e5f7ed2ea1893faa02290d13870a1600fe72ad8efc/pandas-3.0.2-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1478075142e83a5571782ad007fb201ed074bdeac7ebcc8890c71442e96adf7", size = 10324154, upload-time = "2026-03-31T06:47:28.097Z" }, + { url = "https://files.pythonhosted.org/packages/0a/65/d1e69b649cbcddda23ad6e4c40ef935340f6f652a006e5cbc3555ac8adb3/pandas-3.0.2-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5880314e69e763d4c8b27937090de570f1fb8d027059a7ada3f7f8e98bdcb677", size = 10714449, upload-time = "2026-03-31T06:47:30.85Z" }, + { url = "https://files.pythonhosted.org/packages/47/a4/85b59bc65b8190ea3689882db6cdf32a5003c0ccd5a586c30fdcc3ffc4fc/pandas-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b5329e26898896f06035241a626d7c335daa479b9bbc82be7c2742d048e41172", size = 11338475, upload-time = "2026-03-31T06:47:34.026Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c4/bc6966c6e38e5d9478b935272d124d80a589511ed1612a5d21d36f664c68/pandas-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:81526c4afd31971f8b62671442a4b2b51e0aa9acc3819c9f0f12a28b6fcf85f1", size = 11786568, upload-time = "2026-03-31T06:47:36.941Z" }, + { url = "https://files.pythonhosted.org/packages/e8/74/09298ca9740beed1d3504e073d67e128aa07e5ca5ca2824b0c674c0b8676/pandas-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:7cadd7e9a44ec13b621aec60f9150e744cfc7a3dd32924a7e2f45edff31823b0", size = 10488652, upload-time = "2026-03-31T06:47:40.612Z" }, + { url = "https://files.pythonhosted.org/packages/bb/40/c6ea527147c73b24fc15c891c3fcffe9c019793119c5742b8784a062c7db/pandas-3.0.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:db0dbfd2a6cdf3770aa60464d50333d8f3d9165b2f2671bcc299b72de5a6677b", size = 10326084, upload-time = "2026-03-31T06:47:43.834Z" }, + { url = "https://files.pythonhosted.org/packages/95/25/bdb9326c3b5455f8d4d3549fce7abcf967259de146fe2cf7a82368141948/pandas-3.0.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0555c5882688a39317179ab4a0ed41d3ebc8812ab14c69364bbee8fb7a3f6288", size = 9914146, upload-time = "2026-03-31T06:47:46.67Z" }, + { url = "https://files.pythonhosted.org/packages/8d/77/3a227ff3337aa376c60d288e1d61c5d097131d0ac71f954d90a8f369e422/pandas-3.0.2-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:01f31a546acd5574ef77fe199bc90b55527c225c20ccda6601cf6b0fd5ed597c", size = 10444081, upload-time = "2026-03-31T06:47:49.681Z" }, + { url = "https://files.pythonhosted.org/packages/15/88/3cdd54fa279341afa10acf8d2b503556b1375245dccc9315659f795dd2e9/pandas-3.0.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:deeca1b5a931fdf0c2212c8a659ade6d3b1edc21f0914ce71ef24456ca7a6535", size = 10897535, upload-time = "2026-03-31T06:47:53.033Z" }, + { url = "https://files.pythonhosted.org/packages/06/9d/98cc7a7624f7932e40f434299260e2917b090a579d75937cb8a57b9d2de3/pandas-3.0.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0f48afd9bb13300ffb5a3316973324c787054ba6665cda0da3fbd67f451995db", size = 11446992, upload-time = "2026-03-31T06:47:56.193Z" }, + { url = "https://files.pythonhosted.org/packages/9a/cd/19ff605cc3760e80602e6826ddef2824d8e7050ed80f2e11c4b079741dc3/pandas-3.0.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6c4d8458b97a35717b62469a4ea0e85abd5ed8687277f5ccfc67f8a5126f8c53", size = 11968257, upload-time = "2026-03-31T06:47:59.137Z" }, + { url = "https://files.pythonhosted.org/packages/db/60/aba6a38de456e7341285102bede27514795c1eaa353bc0e7638b6b785356/pandas-3.0.2-cp314-cp314-win_amd64.whl", hash = "sha256:b35d14bb5d8285d9494fe93815a9e9307c0876e10f1e8e89ac5b88f728ec8dcf", size = 9865893, upload-time = "2026-03-31T06:48:02.038Z" }, + { url = "https://files.pythonhosted.org/packages/08/71/e5ec979dd2e8a093dacb8864598c0ff59a0cee0bbcdc0bfec16a51684d4f/pandas-3.0.2-cp314-cp314-win_arm64.whl", hash = "sha256:63d141b56ef686f7f0d714cfb8de4e320475b86bf4b620aa0b7da89af8cbdbbb", size = 9188644, upload-time = "2026-03-31T06:48:05.045Z" }, + { url = "https://files.pythonhosted.org/packages/f1/6c/7b45d85db19cae1eb524f2418ceaa9d85965dcf7b764ed151386b7c540f0/pandas-3.0.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:140f0cffb1fa2524e874dde5b477d9defe10780d8e9e220d259b2c0874c89d9d", size = 10776246, upload-time = "2026-03-31T06:48:07.789Z" }, + { url = "https://files.pythonhosted.org/packages/a8/3e/7b00648b086c106e81766f25322b48aa8dfa95b55e621dbdf2fdd413a117/pandas-3.0.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ae37e833ff4fed0ba352f6bdd8b73ba3ab3256a85e54edfd1ab51ae40cca0af8", size = 10424801, upload-time = "2026-03-31T06:48:10.897Z" }, + { url = "https://files.pythonhosted.org/packages/da/6e/558dd09a71b53b4008e7fc8a98ec6d447e9bfb63cdaeea10e5eb9b2dabe8/pandas-3.0.2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4d888a5c678a419a5bb41a2a93818e8ed9fd3172246555c0b37b7cc27027effd", size = 10345643, upload-time = "2026-03-31T06:48:13.7Z" }, + { url = "https://files.pythonhosted.org/packages/be/e3/921c93b4d9a280409451dc8d07b062b503bbec0531d2627e73a756e99a82/pandas-3.0.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b444dc64c079e84df91baa8bf613d58405645461cabca929d9178f2cd392398d", size = 10743641, upload-time = "2026-03-31T06:48:16.659Z" }, + { url = "https://files.pythonhosted.org/packages/56/ca/fd17286f24fa3b4d067965d8d5d7e14fe557dd4f979a0b068ac0deaf8228/pandas-3.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4544c7a54920de8eeacaa1466a6b7268ecfbc9bc64ab4dbb89c6bbe94d5e0660", size = 11361993, upload-time = "2026-03-31T06:48:19.475Z" }, + { url = "https://files.pythonhosted.org/packages/e4/a5/2f6ed612056819de445a433ca1f2821ac3dab7f150d569a59e9cc105de1d/pandas-3.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:734be7551687c00fbd760dc0522ed974f82ad230d4a10f54bf51b80d44a08702", size = 11815274, upload-time = "2026-03-31T06:48:22.695Z" }, + { url = "https://files.pythonhosted.org/packages/00/2f/b622683e99ec3ce00b0854bac9e80868592c5b051733f2cf3a868e5fea26/pandas-3.0.2-cp314-cp314t-win_amd64.whl", hash = "sha256:57a07209bebcbcf768d2d13c9b78b852f9a15978dac41b9e6421a81ad4cdd276", size = 10888530, upload-time = "2026-03-31T06:48:25.806Z" }, + { url = "https://files.pythonhosted.org/packages/cb/2b/f8434233fab2bd66a02ec014febe4e5adced20e2693e0e90a07d118ed30e/pandas-3.0.2-cp314-cp314t-win_arm64.whl", hash = "sha256:5371b72c2d4d415d08765f32d689217a43227484e81b2305b52076e328f6f482", size = 9455341, upload-time = "2026-03-31T06:48:28.418Z" }, +] + +[[package]] +name = "parso" +version = "0.8.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/81/76/a1e769043c0c0c9fe391b702539d594731a4362334cdf4dc25d0c09761e7/parso-0.8.6.tar.gz", hash = "sha256:2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd", size = 401621, upload-time = "2026-02-09T15:45:24.425Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b6/61/fae042894f4296ec49e3f193aff5d7c18440da9e48102c3315e1bc4519a7/parso-0.8.6-py2.py3-none-any.whl", hash = "sha256:2c549f800b70a5c4952197248825584cb00f033b29c692671d3bf08bf380baff", size = 106894, upload-time = "2026-02-09T15:45:21.391Z" }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, +] + +[[package]] +name = "pillow" +version = "12.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/21/c2bcdd5906101a30244eaffc1b6e6ce71a31bd0742a01eb89e660ebfac2d/pillow-12.2.0.tar.gz", hash = "sha256:a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5", size = 46987819, upload-time = "2026-04-01T14:46:17.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/be/7482c8a5ebebbc6470b3eb791812fff7d5e0216c2be3827b30b8bb6603ed/pillow-12.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2d192a155bbcec180f8564f693e6fd9bccff5a7af9b32e2e4bf8c9c69dbad6b5", size = 5308279, upload-time = "2026-04-01T14:43:13.246Z" }, + { url = "https://files.pythonhosted.org/packages/d8/95/0a351b9289c2b5cbde0bacd4a83ebc44023e835490a727b2a3bd60ddc0f4/pillow-12.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3f40b3c5a968281fd507d519e444c35f0ff171237f4fdde090dd60699458421", size = 4695490, upload-time = "2026-04-01T14:43:15.584Z" }, + { url = "https://files.pythonhosted.org/packages/de/af/4e8e6869cbed569d43c416fad3dc4ecb944cb5d9492defaed89ddd6fe871/pillow-12.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:03e7e372d5240cc23e9f07deca4d775c0817bffc641b01e9c3af208dbd300987", size = 6284462, upload-time = "2026-04-01T14:43:18.268Z" }, + { url = "https://files.pythonhosted.org/packages/e9/9e/c05e19657fd57841e476be1ab46c4d501bffbadbafdc31a6d665f8b737b6/pillow-12.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b86024e52a1b269467a802258c25521e6d742349d760728092e1bc2d135b4d76", size = 8094744, upload-time = "2026-04-01T14:43:20.716Z" }, + { url = "https://files.pythonhosted.org/packages/2b/54/1789c455ed10176066b6e7e6da1b01e50e36f94ba584dc68d9eebfe9156d/pillow-12.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7371b48c4fa448d20d2714c9a1f775a81155050d383333e0a6c15b1123dda005", size = 6398371, upload-time = "2026-04-01T14:43:23.443Z" }, + { url = "https://files.pythonhosted.org/packages/43/e3/fdc657359e919462369869f1c9f0e973f353f9a9ee295a39b1fea8ee1a77/pillow-12.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62f5409336adb0663b7caa0da5c7d9e7bdbaae9ce761d34669420c2a801b2780", size = 7087215, upload-time = "2026-04-01T14:43:26.758Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f8/2f6825e441d5b1959d2ca5adec984210f1ec086435b0ed5f52c19b3b8a6e/pillow-12.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:01afa7cf67f74f09523699b4e88c73fb55c13346d212a59a2db1f86b0a63e8c5", size = 6509783, upload-time = "2026-04-01T14:43:29.56Z" }, + { url = "https://files.pythonhosted.org/packages/67/f9/029a27095ad20f854f9dba026b3ea6428548316e057e6fc3545409e86651/pillow-12.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc3d34d4a8fbec3e88a79b92e5465e0f9b842b628675850d860b8bd300b159f5", size = 7212112, upload-time = "2026-04-01T14:43:32.091Z" }, + { url = "https://files.pythonhosted.org/packages/be/42/025cfe05d1be22dbfdb4f264fe9de1ccda83f66e4fc3aac94748e784af04/pillow-12.2.0-cp312-cp312-win32.whl", hash = "sha256:58f62cc0f00fd29e64b29f4fd923ffdb3859c9f9e6105bfc37ba1d08994e8940", size = 6378489, upload-time = "2026-04-01T14:43:34.601Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7b/25a221d2c761c6a8ae21bfa3874988ff2583e19cf8a27bf2fee358df7942/pillow-12.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:7f84204dee22a783350679a0333981df803dac21a0190d706a50475e361c93f5", size = 7084129, upload-time = "2026-04-01T14:43:37.213Z" }, + { url = "https://files.pythonhosted.org/packages/10/e1/542a474affab20fd4a0f1836cb234e8493519da6b76899e30bcc5d990b8b/pillow-12.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:af73337013e0b3b46f175e79492d96845b16126ddf79c438d7ea7ff27783a414", size = 2463612, upload-time = "2026-04-01T14:43:39.421Z" }, + { url = "https://files.pythonhosted.org/packages/4a/01/53d10cf0dbad820a8db274d259a37ba50b88b24768ddccec07355382d5ad/pillow-12.2.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:8297651f5b5679c19968abefd6bb84d95fe30ef712eb1b2d9b2d31ca61267f4c", size = 4100837, upload-time = "2026-04-01T14:43:41.506Z" }, + { url = "https://files.pythonhosted.org/packages/0f/98/f3a6657ecb698c937f6c76ee564882945f29b79bad496abcba0e84659ec5/pillow-12.2.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:50d8520da2a6ce0af445fa6d648c4273c3eeefbc32d7ce049f22e8b5c3daecc2", size = 4176528, upload-time = "2026-04-01T14:43:43.773Z" }, + { url = "https://files.pythonhosted.org/packages/69/bc/8986948f05e3ea490b8442ea1c1d4d990b24a7e43d8a51b2c7d8b1dced36/pillow-12.2.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:766cef22385fa1091258ad7e6216792b156dc16d8d3fa607e7545b2b72061f1c", size = 3640401, upload-time = "2026-04-01T14:43:45.87Z" }, + { url = "https://files.pythonhosted.org/packages/34/46/6c717baadcd62bc8ed51d238d521ab651eaa74838291bda1f86fe1f864c9/pillow-12.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5d2fd0fa6b5d9d1de415060363433f28da8b1526c1c129020435e186794b3795", size = 5308094, upload-time = "2026-04-01T14:43:48.438Z" }, + { url = "https://files.pythonhosted.org/packages/71/43/905a14a8b17fdb1ccb58d282454490662d2cb89a6bfec26af6d3520da5ec/pillow-12.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56b25336f502b6ed02e889f4ece894a72612fe885889a6e8c4c80239ff6e5f5f", size = 4695402, upload-time = "2026-04-01T14:43:51.292Z" }, + { url = "https://files.pythonhosted.org/packages/73/dd/42107efcb777b16fa0393317eac58f5b5cf30e8392e266e76e51cff28c3d/pillow-12.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f1c943e96e85df3d3478f7b691f229887e143f81fedab9b20205349ab04d73ed", size = 6280005, upload-time = "2026-04-01T14:43:54.242Z" }, + { url = "https://files.pythonhosted.org/packages/a8/68/b93e09e5e8549019e61acf49f65b1a8530765a7f812c77a7461bca7e4494/pillow-12.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:03f6fab9219220f041c74aeaa2939ff0062bd5c364ba9ce037197f4c6d498cd9", size = 8090669, upload-time = "2026-04-01T14:43:57.335Z" }, + { url = "https://files.pythonhosted.org/packages/4b/6e/3ccb54ce8ec4ddd1accd2d89004308b7b0b21c4ac3d20fa70af4760a4330/pillow-12.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5cdfebd752ec52bf5bb4e35d9c64b40826bc5b40a13df7c3cda20a2c03a0f5ed", size = 6395194, upload-time = "2026-04-01T14:43:59.864Z" }, + { url = "https://files.pythonhosted.org/packages/67/ee/21d4e8536afd1a328f01b359b4d3997b291ffd35a237c877b331c1c3b71c/pillow-12.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eedf4b74eda2b5a4b2b2fb4c006d6295df3bf29e459e198c90ea48e130dc75c3", size = 7082423, upload-time = "2026-04-01T14:44:02.74Z" }, + { url = "https://files.pythonhosted.org/packages/78/5f/e9f86ab0146464e8c133fe85df987ed9e77e08b29d8d35f9f9f4d6f917ba/pillow-12.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:00a2865911330191c0b818c59103b58a5e697cae67042366970a6b6f1b20b7f9", size = 6505667, upload-time = "2026-04-01T14:44:05.381Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1e/409007f56a2fdce61584fd3acbc2bbc259857d555196cedcadc68c015c82/pillow-12.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1e1757442ed87f4912397c6d35a0db6a7b52592156014706f17658ff58bbf795", size = 7208580, upload-time = "2026-04-01T14:44:08.39Z" }, + { url = "https://files.pythonhosted.org/packages/23/c4/7349421080b12fb35414607b8871e9534546c128a11965fd4a7002ccfbee/pillow-12.2.0-cp313-cp313-win32.whl", hash = "sha256:144748b3af2d1b358d41286056d0003f47cb339b8c43a9ea42f5fea4d8c66b6e", size = 6375896, upload-time = "2026-04-01T14:44:11.197Z" }, + { url = "https://files.pythonhosted.org/packages/3f/82/8a3739a5e470b3c6cbb1d21d315800d8e16bff503d1f16b03a4ec3212786/pillow-12.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:390ede346628ccc626e5730107cde16c42d3836b89662a115a921f28440e6a3b", size = 7081266, upload-time = "2026-04-01T14:44:13.947Z" }, + { url = "https://files.pythonhosted.org/packages/c3/25/f968f618a062574294592f668218f8af564830ccebdd1fa6200f598e65c5/pillow-12.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:8023abc91fba39036dbce14a7d6535632f99c0b857807cbbbf21ecc9f4717f06", size = 2463508, upload-time = "2026-04-01T14:44:16.312Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a4/b342930964e3cb4dce5038ae34b0eab4653334995336cd486c5a8c25a00c/pillow-12.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:042db20a421b9bafecc4b84a8b6e444686bd9d836c7fd24542db3e7df7baad9b", size = 5309927, upload-time = "2026-04-01T14:44:18.89Z" }, + { url = "https://files.pythonhosted.org/packages/9f/de/23198e0a65a9cf06123f5435a5d95cea62a635697f8f03d134d3f3a96151/pillow-12.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:dd025009355c926a84a612fecf58bb315a3f6814b17ead51a8e48d3823d9087f", size = 4698624, upload-time = "2026-04-01T14:44:21.115Z" }, + { url = "https://files.pythonhosted.org/packages/01/a6/1265e977f17d93ea37aa28aa81bad4fa597933879fac2520d24e021c8da3/pillow-12.2.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88ddbc66737e277852913bd1e07c150cc7bb124539f94c4e2df5344494e0a612", size = 6321252, upload-time = "2026-04-01T14:44:23.663Z" }, + { url = "https://files.pythonhosted.org/packages/3c/83/5982eb4a285967baa70340320be9f88e57665a387e3a53a7f0db8231a0cd/pillow-12.2.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d362d1878f00c142b7e1a16e6e5e780f02be8195123f164edf7eddd911eefe7c", size = 8126550, upload-time = "2026-04-01T14:44:26.772Z" }, + { url = "https://files.pythonhosted.org/packages/4e/48/6ffc514adce69f6050d0753b1a18fd920fce8cac87620d5a31231b04bfc5/pillow-12.2.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c727a6d53cb0018aadd8018c2b938376af27914a68a492f59dfcaca650d5eea", size = 6433114, upload-time = "2026-04-01T14:44:29.615Z" }, + { url = "https://files.pythonhosted.org/packages/36/a3/f9a77144231fb8d40ee27107b4463e205fa4677e2ca2548e14da5cf18dce/pillow-12.2.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:efd8c21c98c5cc60653bcb311bef2ce0401642b7ce9d09e03a7da87c878289d4", size = 7115667, upload-time = "2026-04-01T14:44:32.773Z" }, + { url = "https://files.pythonhosted.org/packages/c1/fc/ac4ee3041e7d5a565e1c4fd72a113f03b6394cc72ab7089d27608f8aaccb/pillow-12.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f08483a632889536b8139663db60f6724bfcb443c96f1b18855860d7d5c0fd4", size = 6538966, upload-time = "2026-04-01T14:44:35.252Z" }, + { url = "https://files.pythonhosted.org/packages/c0/a8/27fb307055087f3668f6d0a8ccb636e7431d56ed0750e07a60547b1e083e/pillow-12.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dac8d77255a37e81a2efcbd1fc05f1c15ee82200e6c240d7e127e25e365c39ea", size = 7238241, upload-time = "2026-04-01T14:44:37.875Z" }, + { url = "https://files.pythonhosted.org/packages/ad/4b/926ab182c07fccae9fcb120043464e1ff1564775ec8864f21a0ebce6ac25/pillow-12.2.0-cp313-cp313t-win32.whl", hash = "sha256:ee3120ae9dff32f121610bb08e4313be87e03efeadfc6c0d18f89127e24d0c24", size = 6379592, upload-time = "2026-04-01T14:44:40.336Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c4/f9e476451a098181b30050cc4c9a3556b64c02cf6497ea421ac047e89e4b/pillow-12.2.0-cp313-cp313t-win_amd64.whl", hash = "sha256:325ca0528c6788d2a6c3d40e3568639398137346c3d6e66bb61db96b96511c98", size = 7085542, upload-time = "2026-04-01T14:44:43.251Z" }, + { url = "https://files.pythonhosted.org/packages/00/a4/285f12aeacbe2d6dc36c407dfbbe9e96d4a80b0fb710a337f6d2ad978c75/pillow-12.2.0-cp313-cp313t-win_arm64.whl", hash = "sha256:2e5a76d03a6c6dcef67edabda7a52494afa4035021a79c8558e14af25313d453", size = 2465765, upload-time = "2026-04-01T14:44:45.996Z" }, + { url = "https://files.pythonhosted.org/packages/bf/98/4595daa2365416a86cb0d495248a393dfc84e96d62ad080c8546256cb9c0/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:3adc9215e8be0448ed6e814966ecf3d9952f0ea40eb14e89a102b87f450660d8", size = 4100848, upload-time = "2026-04-01T14:44:48.48Z" }, + { url = "https://files.pythonhosted.org/packages/0b/79/40184d464cf89f6663e18dfcf7ca21aae2491fff1a16127681bf1fa9b8cf/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:6a9adfc6d24b10f89588096364cc726174118c62130c817c2837c60cf08a392b", size = 4176515, upload-time = "2026-04-01T14:44:51.353Z" }, + { url = "https://files.pythonhosted.org/packages/b0/63/703f86fd4c422a9cf722833670f4f71418fb116b2853ff7da722ea43f184/pillow-12.2.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:6a6e67ea2e6feda684ed370f9a1c52e7a243631c025ba42149a2cc5934dec295", size = 3640159, upload-time = "2026-04-01T14:44:53.588Z" }, + { url = "https://files.pythonhosted.org/packages/71/e0/fb22f797187d0be2270f83500aab851536101b254bfa1eae10795709d283/pillow-12.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2bb4a8d594eacdfc59d9e5ad972aa8afdd48d584ffd5f13a937a664c3e7db0ed", size = 5312185, upload-time = "2026-04-01T14:44:56.039Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8c/1a9e46228571de18f8e28f16fabdfc20212a5d019f3e3303452b3f0a580d/pillow-12.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:80b2da48193b2f33ed0c32c38140f9d3186583ce7d516526d462645fd98660ae", size = 4695386, upload-time = "2026-04-01T14:44:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/70/62/98f6b7f0c88b9addd0e87c217ded307b36be024d4ff8869a812b241d1345/pillow-12.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22db17c68434de69d8ecfc2fe821569195c0c373b25cccb9cbdacf2c6e53c601", size = 6280384, upload-time = "2026-04-01T14:45:01.5Z" }, + { url = "https://files.pythonhosted.org/packages/5e/03/688747d2e91cfbe0e64f316cd2e8005698f76ada3130d0194664174fa5de/pillow-12.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7b14cc0106cd9aecda615dd6903840a058b4700fcb817687d0ee4fc8b6e389be", size = 8091599, upload-time = "2026-04-01T14:45:04.5Z" }, + { url = "https://files.pythonhosted.org/packages/f6/35/577e22b936fcdd66537329b33af0b4ccfefaeabd8aec04b266528cddb33c/pillow-12.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cbeb542b2ebc6fcdacabf8aca8c1a97c9b3ad3927d46b8723f9d4f033288a0f", size = 6396021, upload-time = "2026-04-01T14:45:07.117Z" }, + { url = "https://files.pythonhosted.org/packages/11/8d/d2532ad2a603ca2b93ad9f5135732124e57811d0168155852f37fbce2458/pillow-12.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4bfd07bc812fbd20395212969e41931001fd59eb55a60658b0e5710872e95286", size = 7083360, upload-time = "2026-04-01T14:45:09.763Z" }, + { url = "https://files.pythonhosted.org/packages/5e/26/d325f9f56c7e039034897e7380e9cc202b1e368bfd04d4cbe6a441f02885/pillow-12.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9aba9a17b623ef750a4d11b742cbafffeb48a869821252b30ee21b5e91392c50", size = 6507628, upload-time = "2026-04-01T14:45:12.378Z" }, + { url = "https://files.pythonhosted.org/packages/5f/f7/769d5632ffb0988f1c5e7660b3e731e30f7f8ec4318e94d0a5d674eb65a4/pillow-12.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:deede7c263feb25dba4e82ea23058a235dcc2fe1f6021025dc71f2b618e26104", size = 7209321, upload-time = "2026-04-01T14:45:15.122Z" }, + { url = "https://files.pythonhosted.org/packages/6a/7a/c253e3c645cd47f1aceea6a8bacdba9991bf45bb7dfe927f7c893e89c93c/pillow-12.2.0-cp314-cp314-win32.whl", hash = "sha256:632ff19b2778e43162304d50da0181ce24ac5bb8180122cbe1bf4673428328c7", size = 6479723, upload-time = "2026-04-01T14:45:17.797Z" }, + { url = "https://files.pythonhosted.org/packages/cd/8b/601e6566b957ca50e28725cb6c355c59c2c8609751efbecd980db44e0349/pillow-12.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:4e6c62e9d237e9b65fac06857d511e90d8461a32adcc1b9065ea0c0fa3a28150", size = 7217400, upload-time = "2026-04-01T14:45:20.529Z" }, + { url = "https://files.pythonhosted.org/packages/d6/94/220e46c73065c3e2951bb91c11a1fb636c8c9ad427ac3ce7d7f3359b9b2f/pillow-12.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:b1c1fbd8a5a1af3412a0810d060a78b5136ec0836c8a4ef9aa11807f2a22f4e1", size = 2554835, upload-time = "2026-04-01T14:45:23.162Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ab/1b426a3974cb0e7da5c29ccff4807871d48110933a57207b5a676cccc155/pillow-12.2.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:57850958fe9c751670e49b2cecf6294acc99e562531f4bd317fa5ddee2068463", size = 5314225, upload-time = "2026-04-01T14:45:25.637Z" }, + { url = "https://files.pythonhosted.org/packages/19/1e/dce46f371be2438eecfee2a1960ee2a243bbe5e961890146d2dee1ff0f12/pillow-12.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d5d38f1411c0ed9f97bcb49b7bd59b6b7c314e0e27420e34d99d844b9ce3b6f3", size = 4698541, upload-time = "2026-04-01T14:45:28.355Z" }, + { url = "https://files.pythonhosted.org/packages/55/c3/7fbecf70adb3a0c33b77a300dc52e424dc22ad8cdc06557a2e49523b703d/pillow-12.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5c0a9f29ca8e79f09de89293f82fc9b0270bb4af1d58bc98f540cc4aedf03166", size = 6322251, upload-time = "2026-04-01T14:45:30.924Z" }, + { url = "https://files.pythonhosted.org/packages/1c/3c/7fbc17cfb7e4fe0ef1642e0abc17fc6c94c9f7a16be41498e12e2ba60408/pillow-12.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1610dd6c61621ae1cf811bef44d77e149ce3f7b95afe66a4512f8c59f25d9ebe", size = 8127807, upload-time = "2026-04-01T14:45:33.908Z" }, + { url = "https://files.pythonhosted.org/packages/ff/c3/a8ae14d6defd2e448493ff512fae903b1e9bd40b72efb6ec55ce0048c8ce/pillow-12.2.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a34329707af4f73cf1782a36cd2289c0368880654a2c11f027bcee9052d35dd", size = 6433935, upload-time = "2026-04-01T14:45:36.623Z" }, + { url = "https://files.pythonhosted.org/packages/6e/32/2880fb3a074847ac159d8f902cb43278a61e85f681661e7419e6596803ed/pillow-12.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e9c4f5b3c546fa3458a29ab22646c1c6c787ea8f5ef51300e5a60300736905e", size = 7116720, upload-time = "2026-04-01T14:45:39.258Z" }, + { url = "https://files.pythonhosted.org/packages/46/87/495cc9c30e0129501643f24d320076f4cc54f718341df18cc70ec94c44e1/pillow-12.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fb043ee2f06b41473269765c2feae53fc2e2fbf96e5e22ca94fb5ad677856f06", size = 6540498, upload-time = "2026-04-01T14:45:41.879Z" }, + { url = "https://files.pythonhosted.org/packages/18/53/773f5edca692009d883a72211b60fdaf8871cbef075eaa9d577f0a2f989e/pillow-12.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f278f034eb75b4e8a13a54a876cc4a5ab39173d2cdd93a638e1b467fc545ac43", size = 7239413, upload-time = "2026-04-01T14:45:44.705Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e4/4b64a97d71b2a83158134abbb2f5bd3f8a2ea691361282f010998f339ec7/pillow-12.2.0-cp314-cp314t-win32.whl", hash = "sha256:6bb77b2dcb06b20f9f4b4a8454caa581cd4dd0643a08bacf821216a16d9c8354", size = 6482084, upload-time = "2026-04-01T14:45:47.568Z" }, + { url = "https://files.pythonhosted.org/packages/ba/13/306d275efd3a3453f72114b7431c877d10b1154014c1ebbedd067770d629/pillow-12.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6562ace0d3fb5f20ed7290f1f929cae41b25ae29528f2af1722966a0a02e2aa1", size = 7225152, upload-time = "2026-04-01T14:45:50.032Z" }, + { url = "https://files.pythonhosted.org/packages/ff/6e/cf826fae916b8658848d7b9f38d88da6396895c676e8086fc0988073aaf8/pillow-12.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:aa88ccfe4e32d362816319ed727a004423aab09c5cea43c01a4b435643fa34eb", size = 2556579, upload-time = "2026-04-01T14:45:52.529Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.9.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/4a/0883b8e3802965322523f0b200ecf33d31f10991d0401162f4b23c698b42/platformdirs-4.9.6.tar.gz", hash = "sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a", size = 29400, upload-time = "2026-04-09T00:04:10.812Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917", size = 21348, upload-time = "2026-04-09T00:04:09.463Z" }, +] + +[[package]] +name = "plotly" +version = "6.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "narwhals" }, + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/7f/0f100df1172aadf88a929a9dbb902656b0880ba4b960fe5224867159d8f4/plotly-6.7.0.tar.gz", hash = "sha256:45eea0ff27e2a23ccd62776f77eb43aa1ca03df4192b76036e380bb479b892c6", size = 6911286, upload-time = "2026-04-09T20:36:45.738Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/ad/cba91b3bcf04073e4d1655a5c1710ef3f457f56f7d1b79dcc3d72f4dd912/plotly-6.7.0-py3-none-any.whl", hash = "sha256:ac8aca1c25c663a59b5b9140a549264a5badde2e057d79b8c772ae2920e32ff0", size = 9898444, upload-time = "2026-04-09T20:36:39.812Z" }, +] + +[[package]] +name = "pot" +version = "0.9.6.post1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "scipy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/8b/5f939eaf1fbeb7ff914fe540d659486951a056e5537b8f454362045b6c72/pot-0.9.6.post1.tar.gz", hash = "sha256:9b6cc14a8daecfe1268268168cf46548f9130976b22b24a9e8ec62a734be6c43", size = 604243, upload-time = "2025-09-22T12:51:14.894Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/28/13622807461f9f6082a8cd6768f9b4a810bc3a8fda474b81572da94b4d23/pot-0.9.6.post1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f7c542fc20662e35c24dd82eeff8a737220757434d7f0038664a7322221452f7", size = 599240, upload-time = "2025-09-22T12:50:44.848Z" }, + { url = "https://files.pythonhosted.org/packages/c6/5c/b4e017560531f53d06798c681b0d0a9488bb8116bc98da9d399a3d096391/pot-0.9.6.post1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c1755516a7354cbd6110ad2e5f341b98b9968240c2f0f67b0ff5e3ebcb3105bd", size = 464695, upload-time = "2025-09-22T12:50:46.341Z" }, + { url = "https://files.pythonhosted.org/packages/07/9f/57e49b3f7173359741053c5e2766a45dcf649d767c2e967ef93526c9045f/pot-0.9.6.post1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3207362d3e3b5aaa783f452aa85f66e83edbefb5764f34662860af54ac72ee6", size = 454726, upload-time = "2025-09-22T12:50:47.953Z" }, + { url = "https://files.pythonhosted.org/packages/30/60/fa72dd6094f7dbe6b38e2c6907af8cd0f18c6bd107e0cf4874deddaba883/pot-0.9.6.post1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:05f6659c5657e6d7e9f98f4a82e0ed64f88e9fce69b2e557416d156343919ba3", size = 1503391, upload-time = "2025-09-22T12:50:49.336Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3f/cc519c1176116271b6282268a705162fa042c16cc922bc56039445c9d697/pot-0.9.6.post1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f1b0148ae17bec0ed12264c6da3a05e13913b716e2a8c9043242b5d8349d8df", size = 1528170, upload-time = "2025-09-22T12:50:50.625Z" }, + { url = "https://files.pythonhosted.org/packages/f5/01/0132c94404cd0b1b2f21c4a49698db9dcd6107c47c02b22df1ed38206b2a/pot-0.9.6.post1-cp312-cp312-win32.whl", hash = "sha256:571e543cc2b0a462365002203595baf2b89c3d064cce4fce70fd1231e832c21f", size = 440577, upload-time = "2025-09-22T12:50:51.716Z" }, + { url = "https://files.pythonhosted.org/packages/c1/6d/23229c0e198a4f7fb27750b3ef8497e6ebed23fe531ed64b5194da8b2b02/pot-0.9.6.post1-cp312-cp312-win_amd64.whl", hash = "sha256:b1d8bd9a334c72baa37f9a2b268de5366c23c0f9c9e3d6dc25d150137ec2823c", size = 455404, upload-time = "2025-09-22T12:50:52.956Z" }, + { url = "https://files.pythonhosted.org/packages/53/17/e4aebb8deef58b0d40ac339d952d12c63559801b50ae43c622d49bebda7e/pot-0.9.6.post1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:659fff750a162f58b52b33a64c4ac358f4ff44e9dff0841052c088e1b6a54430", size = 596485, upload-time = "2025-09-22T12:50:54.309Z" }, + { url = "https://files.pythonhosted.org/packages/f7/b9/3646c153b13f999ac30112dcf85c5f233af79b0d98c37b52dda9a624c91b/pot-0.9.6.post1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4f54830e9f9cb78b1ff7abd5c5bf162625ed6aea903241267c64ea9f0fb73ddb", size = 463244, upload-time = "2025-09-22T12:50:56.004Z" }, + { url = "https://files.pythonhosted.org/packages/53/e9/c7092f7aec8cb32739ad66ba1f1259626546e4893b61b905ce2da3987235/pot-0.9.6.post1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e9fd4b1fafacd37debdb984687ddb26f5c43d1429401847d388a6f1bd1f10e98", size = 453215, upload-time = "2025-09-22T12:50:57.515Z" }, + { url = "https://files.pythonhosted.org/packages/0c/a1/f0187ab15aa1538ece07b28f3a7938b8592ef01fbe37b1a8f9c2f8f47f4d/pot-0.9.6.post1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec097ec0ef8bb93fee8cdb187b6a0a9653613cba7b06bb603247930e2c629cdc", size = 1496245, upload-time = "2025-09-22T12:50:58.848Z" }, + { url = "https://files.pythonhosted.org/packages/29/fa/85af71553b7e990fc37da8d5f2e7294ec66297e62cba419efeec11518e5a/pot-0.9.6.post1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:299f11f172908d799793ef18b2bc82452305350d2528d243e255a17876e98a57", size = 1521691, upload-time = "2025-09-22T12:51:00.203Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/96b2bce173b3d2d3d0faf8b7362fe79e60e1a6a939c9459b2f7b64e625d8/pot-0.9.6.post1-cp313-cp313-win32.whl", hash = "sha256:8a1d95310faae9c75355d9e2fac8dfac41316a2450061eefc982ee498a687a34", size = 439760, upload-time = "2025-09-22T12:51:01.601Z" }, + { url = "https://files.pythonhosted.org/packages/f7/b1/8ca34418e7c4a2ec666e2204539577287223c4e78ab80b1c746cedb559c3/pot-0.9.6.post1-cp313-cp313-win_amd64.whl", hash = "sha256:a43e2b61389bd32f5b488da2488999ed55867e95fedb25dd64f9f390e40b4fab", size = 454228, upload-time = "2025-09-22T12:51:03.215Z" }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.52" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, +] + +[[package]] +name = "pygments" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "regex" +version = "2026.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cb/0e/3a246dbf05666918bd3664d9d787f84a9108f6f43cc953a077e4a7dfdb7e/regex-2026.4.4.tar.gz", hash = "sha256:e08270659717f6973523ce3afbafa53515c4dc5dcad637dc215b6fd50f689423", size = 416000, upload-time = "2026-04-03T20:56:28.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/28/b972a4d3df61e1d7bcf1b59fdb3cddef22f88b6be43f161bb41ebc0e4081/regex-2026.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c07ab8794fa929e58d97a0e1796b8b76f70943fa39df225ac9964615cf1f9d52", size = 490434, upload-time = "2026-04-03T20:53:40.219Z" }, + { url = "https://files.pythonhosted.org/packages/84/20/30041446cf6dc3e0eab344fc62770e84c23b6b68a3b657821f9f80cb69b4/regex-2026.4.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2c785939dc023a1ce4ec09599c032cc9933d258a998d16ca6f2b596c010940eb", size = 292061, upload-time = "2026-04-03T20:53:41.862Z" }, + { url = "https://files.pythonhosted.org/packages/62/c8/3baa06d75c98c46d4cc4262b71fd2edb9062b5665e868bca57859dadf93a/regex-2026.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1b1ce5c81c9114f1ce2f9288a51a8fd3aeea33a0cc440c415bf02da323aa0a76", size = 289628, upload-time = "2026-04-03T20:53:43.701Z" }, + { url = "https://files.pythonhosted.org/packages/31/87/3accf55634caad8c0acab23f5135ef7d4a21c39f28c55c816ae012931408/regex-2026.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:760ef21c17d8e6a4fe8cf406a97cf2806a4df93416ccc82fc98d25b1c20425be", size = 796651, upload-time = "2026-04-03T20:53:45.379Z" }, + { url = "https://files.pythonhosted.org/packages/f6/0c/aaa2c83f34efedbf06f61cb1942c25f6cf1ee3b200f832c4d05f28306c2e/regex-2026.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7088fcdcb604a4417c208e2169715800d28838fefd7455fbe40416231d1d47c1", size = 865916, upload-time = "2026-04-03T20:53:47.064Z" }, + { url = "https://files.pythonhosted.org/packages/d9/f6/8c6924c865124643e8f37823eca845dc27ac509b2ee58123685e71cd0279/regex-2026.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:07edca1ba687998968f7db5bc355288d0c6505caa7374f013d27356d93976d13", size = 912287, upload-time = "2026-04-03T20:53:49.422Z" }, + { url = "https://files.pythonhosted.org/packages/11/0e/a9f6f81013e0deaf559b25711623864970fe6a098314e374ccb1540a4152/regex-2026.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:993f657a7c1c6ec51b5e0ba97c9817d06b84ea5fa8d82e43b9405de0defdc2b9", size = 801126, upload-time = "2026-04-03T20:53:51.096Z" }, + { url = "https://files.pythonhosted.org/packages/71/61/3a0cc8af2dc0c8deb48e644dd2521f173f7e6513c6e195aad9aa8dd77ac5/regex-2026.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2b69102a743e7569ebee67e634a69c4cb7e59d6fa2e1aa7d3bdbf3f61435f62d", size = 776788, upload-time = "2026-04-03T20:53:52.889Z" }, + { url = "https://files.pythonhosted.org/packages/64/0b/8bb9cbf21ef7dee58e49b0fdb066a7aded146c823202e16494a36777594f/regex-2026.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dac006c8b6dda72d86ea3d1333d45147de79a3a3f26f10c1cf9287ca4ca0ac3", size = 785184, upload-time = "2026-04-03T20:53:55.627Z" }, + { url = "https://files.pythonhosted.org/packages/99/c2/d3e80e8137b25ee06c92627de4e4d98b94830e02b3e6f81f3d2e3f504cf5/regex-2026.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:50a766ee2010d504554bfb5f578ed2e066898aa26411d57e6296230627cdefa0", size = 859913, upload-time = "2026-04-03T20:53:57.249Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/9d5d876157d969c804622456ef250017ac7a8f83e0e14f903b9e6df5ce95/regex-2026.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:9e2f5217648f68e3028c823df58663587c1507a5ba8419f4fdfc8a461be76043", size = 765732, upload-time = "2026-04-03T20:53:59.428Z" }, + { url = "https://files.pythonhosted.org/packages/82/80/b568935b4421388561c8ed42aff77247285d3ae3bb2a6ca22af63bae805e/regex-2026.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:39d8de85a08e32632974151ba59c6e9140646dcc36c80423962b1c5c0a92e244", size = 852152, upload-time = "2026-04-03T20:54:01.505Z" }, + { url = "https://files.pythonhosted.org/packages/39/29/f0f81217e21cd998245da047405366385d5c6072048038a3d33b37a79dc0/regex-2026.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:55d9304e0e7178dfb1e106c33edf834097ddf4a890e2f676f6c5118f84390f73", size = 789076, upload-time = "2026-04-03T20:54:03.323Z" }, + { url = "https://files.pythonhosted.org/packages/49/1d/1d957a61976ab9d4e767dd4f9d04b66cc0c41c5e36cf40e2d43688b5ae6f/regex-2026.4.4-cp312-cp312-win32.whl", hash = "sha256:04bb679bc0bde8a7bfb71e991493d47314e7b98380b083df2447cda4b6edb60f", size = 266700, upload-time = "2026-04-03T20:54:05.639Z" }, + { url = "https://files.pythonhosted.org/packages/c5/5c/bf575d396aeb58ea13b06ef2adf624f65b70fafef6950a80fc3da9cae3bc/regex-2026.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:db0ac18435a40a2543dbb3d21e161a6c78e33e8159bd2e009343d224bb03bb1b", size = 277768, upload-time = "2026-04-03T20:54:07.312Z" }, + { url = "https://files.pythonhosted.org/packages/c9/27/049df16ec6a6828ccd72add3c7f54b4df029669bea8e9817df6fff58be90/regex-2026.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:4ce255cc05c1947a12989c6db801c96461947adb7a59990f1360b5983fab4983", size = 270568, upload-time = "2026-04-03T20:54:09.484Z" }, + { url = "https://files.pythonhosted.org/packages/9d/83/c4373bc5f31f2cf4b66f9b7c31005bd87fe66f0dce17701f7db4ee79ee29/regex-2026.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:62f5519042c101762509b1d717b45a69c0139d60414b3c604b81328c01bd1943", size = 490273, upload-time = "2026-04-03T20:54:11.202Z" }, + { url = "https://files.pythonhosted.org/packages/46/f8/fe62afbcc3cf4ad4ac9adeaafd98aa747869ae12d3e8e2ac293d0593c435/regex-2026.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3790ba9fb5dd76715a7afe34dbe603ba03f8820764b1dc929dd08106214ed031", size = 291954, upload-time = "2026-04-03T20:54:13.412Z" }, + { url = "https://files.pythonhosted.org/packages/5a/92/4712b9fe6a33d232eeb1c189484b80c6c4b8422b90e766e1195d6e758207/regex-2026.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8fae3c6e795d7678963f2170152b0d892cf6aee9ee8afc8c45e6be38d5107fe7", size = 289487, upload-time = "2026-04-03T20:54:15.824Z" }, + { url = "https://files.pythonhosted.org/packages/88/2c/f83b93f85e01168f1070f045a42d4c937b69fdb8dd7ae82d307253f7e36e/regex-2026.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:298c3ec2d53225b3bf91142eb9691025bab610e0c0c51592dde149db679b3d17", size = 796646, upload-time = "2026-04-03T20:54:18.229Z" }, + { url = "https://files.pythonhosted.org/packages/df/55/61a2e17bf0c4dc57e11caf8dd11771280d8aaa361785f9e3bc40d653f4a7/regex-2026.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e9638791082eaf5b3ac112c587518ee78e083a11c4b28012d8fe2a0f536dfb17", size = 865904, upload-time = "2026-04-03T20:54:20.019Z" }, + { url = "https://files.pythonhosted.org/packages/45/32/1ac8ed1b5a346b5993a3d256abe0a0f03b0b73c8cc88d928537368ac65b6/regex-2026.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ae3e764bd4c5ff55035dc82a8d49acceb42a5298edf6eb2fc4d328ee5dd7afae", size = 912304, upload-time = "2026-04-03T20:54:22.403Z" }, + { url = "https://files.pythonhosted.org/packages/26/47/2ee5c613ab546f0eddebf9905d23e07beb933416b1246c2d8791d01979b4/regex-2026.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ffa81f81b80047ba89a3c69ae6a0f78d06f4a42ce5126b0eb2a0a10ad44e0b2e", size = 801126, upload-time = "2026-04-03T20:54:24.308Z" }, + { url = "https://files.pythonhosted.org/packages/75/cd/41dacd129ca9fd20bd7d02f83e0fad83e034ac8a084ec369c90f55ef37e2/regex-2026.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f56ebf9d70305307a707911b88469213630aba821e77de7d603f9d2f0730687d", size = 776772, upload-time = "2026-04-03T20:54:26.319Z" }, + { url = "https://files.pythonhosted.org/packages/89/6d/5af0b588174cb5f46041fa7dd64d3fd5cd2fe51f18766703d1edc387f324/regex-2026.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:773d1dfd652bbffb09336abf890bfd64785c7463716bf766d0eb3bc19c8b7f27", size = 785228, upload-time = "2026-04-03T20:54:28.387Z" }, + { url = "https://files.pythonhosted.org/packages/b7/3b/f5a72b7045bd59575fc33bf1345f156fcfd5a8484aea6ad84b12c5a82114/regex-2026.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d51d20befd5275d092cdffba57ded05f3c436317ee56466c8928ac32d960edaf", size = 860032, upload-time = "2026-04-03T20:54:30.641Z" }, + { url = "https://files.pythonhosted.org/packages/39/a4/72a317003d6fcd7a573584a85f59f525dfe8f67e355ca74eb6b53d66a5e2/regex-2026.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:0a51cdb3c1e9161154f976cb2bef9894bc063ac82f31b733087ffb8e880137d0", size = 765714, upload-time = "2026-04-03T20:54:32.789Z" }, + { url = "https://files.pythonhosted.org/packages/25/1e/5672e16f34dbbcb2560cc7e6a2fbb26dfa8b270711e730101da4423d3973/regex-2026.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ae5266a82596114e41fb5302140e9630204c1b5f325c770bec654b95dd54b0aa", size = 852078, upload-time = "2026-04-03T20:54:34.546Z" }, + { url = "https://files.pythonhosted.org/packages/f7/0d/c813f0af7c6cc7ed7b9558bac2e5120b60ad0fa48f813e4d4bd55446f214/regex-2026.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c882cd92ec68585e9c1cf36c447ec846c0d94edd706fe59e0c198e65822fd23b", size = 789181, upload-time = "2026-04-03T20:54:36.642Z" }, + { url = "https://files.pythonhosted.org/packages/ea/6d/a344608d1adbd2a95090ddd906cec09a11be0e6517e878d02a5123e0917f/regex-2026.4.4-cp313-cp313-win32.whl", hash = "sha256:05568c4fbf3cb4fa9e28e3af198c40d3237cf6041608a9022285fe567ec3ad62", size = 266690, upload-time = "2026-04-03T20:54:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/31/07/54049f89b46235ca6f45cd6c88668a7050e77d4a15555e47dd40fde75263/regex-2026.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:3384df51ed52db0bea967e21458ab0a414f67cdddfd94401688274e55147bb81", size = 277733, upload-time = "2026-04-03T20:54:40.11Z" }, + { url = "https://files.pythonhosted.org/packages/0e/21/61366a8e20f4d43fb597708cac7f0e2baadb491ecc9549b4980b2be27d16/regex-2026.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:acd38177bd2c8e69a411d6521760806042e244d0ef94e2dd03ecdaa8a3c99427", size = 270565, upload-time = "2026-04-03T20:54:41.883Z" }, + { url = "https://files.pythonhosted.org/packages/f1/1e/3a2b9672433bef02f5d39aa1143ca2c08f311c1d041c464a42be9ae648dc/regex-2026.4.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f94a11a9d05afcfcfa640e096319720a19cc0c9f7768e1a61fceee6a3afc6c7c", size = 494126, upload-time = "2026-04-03T20:54:43.602Z" }, + { url = "https://files.pythonhosted.org/packages/4e/4b/c132a4f4fe18ad3340d89fcb56235132b69559136036b845be3c073142ed/regex-2026.4.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:36bcb9d6d1307ab629edc553775baada2aefa5c50ccc0215fbfd2afcfff43141", size = 293882, upload-time = "2026-04-03T20:54:45.41Z" }, + { url = "https://files.pythonhosted.org/packages/f4/5f/eaa38092ce7a023656280f2341dbbd4ad5f05d780a70abba7bb4f4bea54c/regex-2026.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:261c015b3e2ed0919157046d768774ecde57f03d8fa4ba78d29793447f70e717", size = 292334, upload-time = "2026-04-03T20:54:47.051Z" }, + { url = "https://files.pythonhosted.org/packages/5f/f6/dd38146af1392dac33db7074ab331cec23cced3759167735c42c5460a243/regex-2026.4.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c228cf65b4a54583763645dcd73819b3b381ca8b4bb1b349dee1c135f4112c07", size = 811691, upload-time = "2026-04-03T20:54:49.074Z" }, + { url = "https://files.pythonhosted.org/packages/7a/f0/dc54c2e69f5eeec50601054998ec3690d5344277e782bd717e49867c1d29/regex-2026.4.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dd2630faeb6876fb0c287f664d93ddce4d50cd46c6e88e60378c05c9047e08ca", size = 871227, upload-time = "2026-04-03T20:54:51.035Z" }, + { url = "https://files.pythonhosted.org/packages/a1/af/cb16bd5dc61621e27df919a4449bbb7e5a1034c34d307e0a706e9cc0f3e3/regex-2026.4.4-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6a50ab11b7779b849472337191f3a043e27e17f71555f98d0092fa6d73364520", size = 917435, upload-time = "2026-04-03T20:54:52.994Z" }, + { url = "https://files.pythonhosted.org/packages/5c/71/8b260897f22996b666edd9402861668f45a2ca259f665ac029e6104a2d7d/regex-2026.4.4-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0734f63afe785138549fbe822a8cfeaccd1bae814c5057cc0ed5b9f2de4fc883", size = 816358, upload-time = "2026-04-03T20:54:54.884Z" }, + { url = "https://files.pythonhosted.org/packages/1c/60/775f7f72a510ef238254906c2f3d737fc80b16ca85f07d20e318d2eea894/regex-2026.4.4-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c4ee50606cb1967db7e523224e05f32089101945f859928e65657a2cbb3d278b", size = 785549, upload-time = "2026-04-03T20:54:57.01Z" }, + { url = "https://files.pythonhosted.org/packages/58/42/34d289b3627c03cf381e44da534a0021664188fa49ba41513da0b4ec6776/regex-2026.4.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6c1818f37be3ca02dcb76d63f2c7aaba4b0dc171b579796c6fbe00148dfec6b1", size = 801364, upload-time = "2026-04-03T20:54:58.981Z" }, + { url = "https://files.pythonhosted.org/packages/fc/20/f6ecf319b382a8f1ab529e898b222c3f30600fcede7834733c26279e7465/regex-2026.4.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f5bfc2741d150d0be3e4a0401a5c22b06e60acb9aa4daa46d9e79a6dcd0f135b", size = 866221, upload-time = "2026-04-03T20:55:00.88Z" }, + { url = "https://files.pythonhosted.org/packages/92/6a/9f16d3609d549bd96d7a0b2aee1625d7512ba6a03efc01652149ef88e74d/regex-2026.4.4-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:504ffa8a03609a087cad81277a629b6ce884b51a24bd388a7980ad61748618ff", size = 772530, upload-time = "2026-04-03T20:55:03.213Z" }, + { url = "https://files.pythonhosted.org/packages/fa/f6/aa9768bc96a4c361ac96419fbaf2dcdc33970bb813df3ba9b09d5d7b6d96/regex-2026.4.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:70aadc6ff12e4b444586e57fc30771f86253f9f0045b29016b9605b4be5f7dfb", size = 856989, upload-time = "2026-04-03T20:55:05.087Z" }, + { url = "https://files.pythonhosted.org/packages/4d/b4/c671db3556be2473ae3e4bb7a297c518d281452871501221251ea4ecba57/regex-2026.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f4f83781191007b6ef43b03debc35435f10cad9b96e16d147efe84a1d48bdde4", size = 803241, upload-time = "2026-04-03T20:55:07.162Z" }, + { url = "https://files.pythonhosted.org/packages/2a/5c/83e3b1d89fa4f6e5a1bc97b4abd4a9a97b3c1ac7854164f694f5f0ba98a0/regex-2026.4.4-cp313-cp313t-win32.whl", hash = "sha256:e014a797de43d1847df957c0a2a8e861d1c17547ee08467d1db2c370b7568baa", size = 269921, upload-time = "2026-04-03T20:55:09.62Z" }, + { url = "https://files.pythonhosted.org/packages/28/07/077c387121f42cdb4d92b1301133c0d93b5709d096d1669ab847dda9fe2e/regex-2026.4.4-cp313-cp313t-win_amd64.whl", hash = "sha256:b15b88b0d52b179712632832c1d6e58e5774f93717849a41096880442da41ab0", size = 281240, upload-time = "2026-04-03T20:55:11.521Z" }, + { url = "https://files.pythonhosted.org/packages/9d/22/ead4a4abc7c59a4d882662aa292ca02c8b617f30b6e163bc1728879e9353/regex-2026.4.4-cp313-cp313t-win_arm64.whl", hash = "sha256:586b89cdadf7d67bf86ae3342a4dcd2b8d70a832d90c18a0ae955105caf34dbe", size = 272440, upload-time = "2026-04-03T20:55:13.365Z" }, + { url = "https://files.pythonhosted.org/packages/f0/f5/ed97c2dc47b5fbd4b73c0d7d75f9ebc8eca139f2bbef476bba35f28c0a77/regex-2026.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:2da82d643fa698e5e5210e54af90181603d5853cf469f5eedf9bfc8f59b4b8c7", size = 490343, upload-time = "2026-04-03T20:55:15.241Z" }, + { url = "https://files.pythonhosted.org/packages/80/e9/de4828a7385ec166d673a5790ad06ac48cdaa98bc0960108dd4b9cc1aef7/regex-2026.4.4-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:54a1189ad9d9357760557c91103d5e421f0a2dabe68a5cdf9103d0dcf4e00752", size = 291909, upload-time = "2026-04-03T20:55:17.558Z" }, + { url = "https://files.pythonhosted.org/packages/b4/d6/5cfbfc97f3201a4d24b596a77957e092030dcc4205894bc035cedcfce62f/regex-2026.4.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:76d67d5afb1fe402d10a6403bae668d000441e2ab115191a804287d53b772951", size = 289692, upload-time = "2026-04-03T20:55:20.561Z" }, + { url = "https://files.pythonhosted.org/packages/8e/ac/f2212d9fd56fe897e36d0110ba30ba2d247bd6410c5bd98499c7e5a1e1f2/regex-2026.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e7cd3e4ee8d80447a83bbc9ab0c8459781fa77087f856c3e740d7763be0df27f", size = 796979, upload-time = "2026-04-03T20:55:22.56Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e3/a016c12675fbac988a60c7e1c16e67823ff0bc016beb27bd7a001dbdabc6/regex-2026.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2e19e18c568d2866d8b6a6dfad823db86193503f90823a8f66689315ba28fbe8", size = 866744, upload-time = "2026-04-03T20:55:24.646Z" }, + { url = "https://files.pythonhosted.org/packages/af/a4/0b90ca4cf17adc3cb43de80ec71018c37c88ad64987e8d0d481a95ca60b5/regex-2026.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7698a6f38730fd1385d390d1ed07bb13dce39aa616aca6a6d89bea178464b9a4", size = 911613, upload-time = "2026-04-03T20:55:27.033Z" }, + { url = "https://files.pythonhosted.org/packages/8e/3b/2b3dac0b82d41ab43aa87c6ecde63d71189d03fe8854b8ca455a315edac3/regex-2026.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:173a66f3651cdb761018078e2d9487f4cf971232c990035ec0eb1cdc6bf929a9", size = 800551, upload-time = "2026-04-03T20:55:29.532Z" }, + { url = "https://files.pythonhosted.org/packages/25/fe/5365eb7aa0e753c4b5957815c321519ecab033c279c60e1b1ae2367fa810/regex-2026.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fa7922bbb2cc84fa062d37723f199d4c0cd200245ce269c05db82d904db66b83", size = 776911, upload-time = "2026-04-03T20:55:31.526Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b3/7fb0072156bba065e3b778a7bc7b0a6328212be5dd6a86fd207e0c4f2dab/regex-2026.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:59f67cd0a0acaf0e564c20bbd7f767286f23e91e2572c5703bf3e56ea7557edb", size = 785751, upload-time = "2026-04-03T20:55:33.797Z" }, + { url = "https://files.pythonhosted.org/packages/02/1a/9f83677eb699273e56e858f7bd95acdbee376d42f59e8bfca2fd80d79df3/regex-2026.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:475e50f3f73f73614f7cba5524d6de49dee269df00272a1b85e3d19f6d498465", size = 860484, upload-time = "2026-04-03T20:55:35.745Z" }, + { url = "https://files.pythonhosted.org/packages/3b/7a/93937507b61cfcff8b4c5857f1b452852b09f741daa9acae15c971d8554e/regex-2026.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:a1c0c7d67b64d85ac2e1879923bad2f08a08f3004055f2f406ef73c850114bd4", size = 765939, upload-time = "2026-04-03T20:55:37.972Z" }, + { url = "https://files.pythonhosted.org/packages/86/ea/81a7f968a351c6552b1670ead861e2a385be730ee28402233020c67f9e0f/regex-2026.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:1371c2ccbb744d66ee63631cc9ca12aa233d5749972626b68fe1a649dd98e566", size = 851417, upload-time = "2026-04-03T20:55:39.92Z" }, + { url = "https://files.pythonhosted.org/packages/4c/7e/323c18ce4b5b8f44517a36342961a0306e931e499febbd876bb149d900f0/regex-2026.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:59968142787042db793348a3f5b918cf24ced1f23247328530e063f89c128a95", size = 789056, upload-time = "2026-04-03T20:55:42.303Z" }, + { url = "https://files.pythonhosted.org/packages/c0/af/e7510f9b11b1913b0cd44eddb784b2d650b2af6515bfce4cffcc5bfd1d38/regex-2026.4.4-cp314-cp314-win32.whl", hash = "sha256:59efe72d37fd5a91e373e5146f187f921f365f4abc1249a5ab446a60f30dd5f8", size = 272130, upload-time = "2026-04-03T20:55:44.995Z" }, + { url = "https://files.pythonhosted.org/packages/9a/51/57dae534c915e2d3a21490e88836fa2ae79dde3b66255ecc0c0a155d2c10/regex-2026.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:e0aab3ff447845049d676827d2ff714aab4f73f340e155b7de7458cf53baa5a4", size = 280992, upload-time = "2026-04-03T20:55:47.316Z" }, + { url = "https://files.pythonhosted.org/packages/0a/5e/abaf9f4c3792e34edb1434f06717fae2b07888d85cb5cec29f9204931bf8/regex-2026.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:a7a5bb6aa0cf62208bb4fa079b0c756734f8ad0e333b425732e8609bd51ee22f", size = 273563, upload-time = "2026-04-03T20:55:49.273Z" }, + { url = "https://files.pythonhosted.org/packages/ff/06/35da85f9f217b9538b99cbb170738993bcc3b23784322decb77619f11502/regex-2026.4.4-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:97850d0638391bdc7d35dc1c1039974dcb921eaafa8cc935ae4d7f272b1d60b3", size = 494191, upload-time = "2026-04-03T20:55:51.258Z" }, + { url = "https://files.pythonhosted.org/packages/54/5b/1bc35f479eef8285c4baf88d8c002023efdeebb7b44a8735b36195486ae7/regex-2026.4.4-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:ee7337f88f2a580679f7bbfe69dc86c043954f9f9c541012f49abc554a962f2e", size = 293877, upload-time = "2026-04-03T20:55:53.214Z" }, + { url = "https://files.pythonhosted.org/packages/39/5b/f53b9ad17480b3ddd14c90da04bfb55ac6894b129e5dea87bcaf7d00e336/regex-2026.4.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7429f4e6192c11d659900c0648ba8776243bf396ab95558b8c51a345afeddde6", size = 292410, upload-time = "2026-04-03T20:55:55.736Z" }, + { url = "https://files.pythonhosted.org/packages/bb/56/52377f59f60a7c51aa4161eecf0b6032c20b461805aca051250da435ffc9/regex-2026.4.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4f10fbd5dd13dcf4265b4cc07d69ca70280742870c97ae10093e3d66000359", size = 811831, upload-time = "2026-04-03T20:55:57.802Z" }, + { url = "https://files.pythonhosted.org/packages/dd/63/8026310bf066f702a9c361f83a8c9658f3fe4edb349f9c1e5d5273b7c40c/regex-2026.4.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a152560af4f9742b96f3827090f866eeec5becd4765c8e0d3473d9d280e76a5a", size = 871199, upload-time = "2026-04-03T20:56:00.333Z" }, + { url = "https://files.pythonhosted.org/packages/20/9f/a514bbb00a466dbb506d43f187a04047f7be1505f10a9a15615ead5080ee/regex-2026.4.4-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54170b3e95339f415d54651f97df3bff7434a663912f9358237941bbf9143f55", size = 917649, upload-time = "2026-04-03T20:56:02.445Z" }, + { url = "https://files.pythonhosted.org/packages/cb/6b/8399f68dd41a2030218839b9b18360d79b86d22b9fab5ef477c7f23ca67c/regex-2026.4.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:07f190d65f5a72dcb9cf7106bfc3d21e7a49dd2879eda2207b683f32165e4d99", size = 816388, upload-time = "2026-04-03T20:56:04.595Z" }, + { url = "https://files.pythonhosted.org/packages/1e/9c/103963f47c24339a483b05edd568594c2be486188f688c0170fd504b2948/regex-2026.4.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9a2741ce5a29d3c84b0b94261ba630ab459a1b847a0d6beca7d62d188175c790", size = 785746, upload-time = "2026-04-03T20:56:07.13Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ee/7f6054c0dec0cee3463c304405e4ff42e27cff05bf36fcb34be549ab17bd/regex-2026.4.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b26c30df3a28fd9793113dac7385a4deb7294a06c0f760dd2b008bd49a9139bc", size = 801483, upload-time = "2026-04-03T20:56:09.365Z" }, + { url = "https://files.pythonhosted.org/packages/30/c2/51d3d941cf6070dc00c3338ecf138615fc3cce0421c3df6abe97a08af61a/regex-2026.4.4-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:421439d1bee44b19f4583ccf42670ca464ffb90e9fdc38d37f39d1ddd1e44f1f", size = 866331, upload-time = "2026-04-03T20:56:12.039Z" }, + { url = "https://files.pythonhosted.org/packages/16/e8/76d50dcc122ac33927d939f350eebcfe3dbcbda96913e03433fc36de5e63/regex-2026.4.4-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:b40379b53ecbc747fd9bdf4a0ea14eb8188ca1bd0f54f78893a39024b28f4863", size = 772673, upload-time = "2026-04-03T20:56:14.558Z" }, + { url = "https://files.pythonhosted.org/packages/a5/6e/5f6bf75e20ea6873d05ba4ec78378c375cbe08cdec571c83fbb01606e563/regex-2026.4.4-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:08c55c13d2eef54f73eeadc33146fb0baaa49e7335eb1aff6ae1324bf0ddbe4a", size = 857146, upload-time = "2026-04-03T20:56:16.663Z" }, + { url = "https://files.pythonhosted.org/packages/0b/33/3c76d9962949e487ebba353a18e89399f292287204ac8f2f4cfc3a51c233/regex-2026.4.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9776b85f510062f5a75ef112afe5f494ef1635607bf1cc220c1391e9ac2f5e81", size = 803463, upload-time = "2026-04-03T20:56:18.923Z" }, + { url = "https://files.pythonhosted.org/packages/19/eb/ef32dcd2cb69b69bc0c3e55205bce94a7def48d495358946bc42186dcccc/regex-2026.4.4-cp314-cp314t-win32.whl", hash = "sha256:385edaebde5db5be103577afc8699fea73a0e36a734ba24870be7ffa61119d74", size = 275709, upload-time = "2026-04-03T20:56:20.996Z" }, + { url = "https://files.pythonhosted.org/packages/a0/86/c291bf740945acbf35ed7dbebf8e2eea2f3f78041f6bd7cdab80cb274dc0/regex-2026.4.4-cp314-cp314t-win_amd64.whl", hash = "sha256:5d354b18839328927832e2fa5f7c95b7a3ccc39e7a681529e1685898e6436d45", size = 285622, upload-time = "2026-04-03T20:56:23.641Z" }, + { url = "https://files.pythonhosted.org/packages/d5/e7/ec846d560ae6a597115153c02ca6138a7877a1748b2072d9521c10a93e58/regex-2026.4.4-cp314-cp314t-win_arm64.whl", hash = "sha256:af0384cb01a33600c49505c27c6c57ab0b27bf84a74e28524c92ca897ebdac9d", size = 275773, upload-time = "2026-04-03T20:56:26.07Z" }, +] + +[[package]] +name = "requests" +version = "2.33.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/a4/98b9c7c6428a668bf7e42ebb7c79d576a1c3c1e3ae2d47e674b468388871/requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517", size = 134120, upload-time = "2026-03-30T16:09:15.531Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947, upload-time = "2026-03-30T16:09:13.83Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, + { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, + { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, + { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, +] + +[[package]] +name = "scikit-image" +version = "0.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "imageio" }, + { name = "lazy-loader" }, + { name = "networkx" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "scipy" }, + { name = "tifffile" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/b4/2528bb43c67d48053a7a649a9666432dc307d66ba02e3a6d5c40f46655df/scikit_image-0.26.0.tar.gz", hash = "sha256:f5f970ab04efad85c24714321fcc91613fcb64ef2a892a13167df2f3e59199fa", size = 22729739, upload-time = "2025-12-20T17:12:21.824Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/e8/e13757982264b33a1621628f86b587e9a73a13f5256dad49b19ba7dc9083/scikit_image-0.26.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d454b93a6fa770ac5ae2d33570f8e7a321bb80d29511ce4b6b78058ebe176e8c", size = 12376452, upload-time = "2025-12-20T17:10:52.796Z" }, + { url = "https://files.pythonhosted.org/packages/e3/be/f8dd17d0510f9911f9f17ba301f7455328bf13dae416560126d428de9568/scikit_image-0.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3409e89d66eff5734cd2b672d1c48d2759360057e714e1d92a11df82c87cba37", size = 12061567, upload-time = "2025-12-20T17:10:55.207Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/c70120a6880579fb42b91567ad79feb4772f7be72e8d52fec403a3dde0c6/scikit_image-0.26.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c717490cec9e276afb0438dd165b7c3072d6c416709cc0f9f5a4c1070d23a44", size = 13084214, upload-time = "2025-12-20T17:10:57.468Z" }, + { url = "https://files.pythonhosted.org/packages/f4/a2/70401a107d6d7466d64b466927e6b96fcefa99d57494b972608e2f8be50f/scikit_image-0.26.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7df650e79031634ac90b11e64a9eedaf5a5e06fcd09bcd03a34be01745744466", size = 13561683, upload-time = "2025-12-20T17:10:59.49Z" }, + { url = "https://files.pythonhosted.org/packages/13/a5/48bdfd92794c5002d664e0910a349d0a1504671ef5ad358150f21643c79a/scikit_image-0.26.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cefd85033e66d4ea35b525bb0937d7f42d4cdcfed2d1888e1570d5ce450d3932", size = 14112147, upload-time = "2025-12-20T17:11:02.083Z" }, + { url = "https://files.pythonhosted.org/packages/ee/b5/ac71694da92f5def5953ca99f18a10fe98eac2dd0a34079389b70b4d0394/scikit_image-0.26.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3f5bf622d7c0435884e1e141ebbe4b2804e16b2dd23ae4c6183e2ea99233be70", size = 14661625, upload-time = "2025-12-20T17:11:04.528Z" }, + { url = "https://files.pythonhosted.org/packages/23/4d/a3cc1e96f080e253dad2251bfae7587cf2b7912bcd76fd43fd366ff35a87/scikit_image-0.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:abed017474593cd3056ae0fe948d07d0747b27a085e92df5474f4955dd65aec0", size = 11911059, upload-time = "2025-12-20T17:11:06.61Z" }, + { url = "https://files.pythonhosted.org/packages/35/8a/d1b8055f584acc937478abf4550d122936f420352422a1a625eef2c605d8/scikit_image-0.26.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d57e39ef67a95d26860c8caf9b14b8fb130f83b34c6656a77f191fa6d1d04d8", size = 11348740, upload-time = "2025-12-20T17:11:09.118Z" }, + { url = "https://files.pythonhosted.org/packages/4f/48/02357ffb2cca35640f33f2cfe054a4d6d5d7a229b88880a64f1e45c11f4e/scikit_image-0.26.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a2e852eccf41d2d322b8e60144e124802873a92b8d43a6f96331aa42888491c7", size = 12346329, upload-time = "2025-12-20T17:11:11.599Z" }, + { url = "https://files.pythonhosted.org/packages/67/b9/b792c577cea2c1e94cda83b135a656924fc57c428e8a6d302cd69aac1b60/scikit_image-0.26.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:98329aab3bc87db352b9887f64ce8cdb8e75f7c2daa19927f2e121b797b678d5", size = 12031726, upload-time = "2025-12-20T17:11:13.871Z" }, + { url = "https://files.pythonhosted.org/packages/07/a9/9564250dfd65cb20404a611016db52afc6268b2b371cd19c7538ea47580f/scikit_image-0.26.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:915bb3ba66455cf8adac00dc8fdf18a4cd29656aec7ddd38cb4dda90289a6f21", size = 13094910, upload-time = "2025-12-20T17:11:16.2Z" }, + { url = "https://files.pythonhosted.org/packages/a3/b8/0d8eeb5a9fd7d34ba84f8a55753a0a3e2b5b51b2a5a0ade648a8db4a62f7/scikit_image-0.26.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b36ab5e778bf50af5ff386c3ac508027dc3aaeccf2161bdf96bde6848f44d21b", size = 13660939, upload-time = "2025-12-20T17:11:18.464Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d6/91d8973584d4793d4c1a847d388e34ef1218d835eeddecfc9108d735b467/scikit_image-0.26.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:09bad6a5d5949c7896c8347424c4cca899f1d11668030e5548813ab9c2865dcb", size = 14138938, upload-time = "2025-12-20T17:11:20.919Z" }, + { url = "https://files.pythonhosted.org/packages/39/9a/7e15d8dc10d6bbf212195fb39bdeb7f226c46dd53f9c63c312e111e2e175/scikit_image-0.26.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aeb14db1ed09ad4bee4ceb9e635547a8d5f3549be67fc6c768c7f923e027e6cd", size = 14752243, upload-time = "2025-12-20T17:11:23.347Z" }, + { url = "https://files.pythonhosted.org/packages/8f/58/2b11b933097bc427e42b4a8b15f7de8f24f2bac1fd2779d2aea1431b2c31/scikit_image-0.26.0-cp313-cp313-win_amd64.whl", hash = "sha256:ac529eb9dbd5954f9aaa2e3fe9a3fd9661bfe24e134c688587d811a0233127f1", size = 11906770, upload-time = "2025-12-20T17:11:25.297Z" }, + { url = "https://files.pythonhosted.org/packages/ad/ec/96941474a18a04b69b6f6562a5bd79bd68049fa3728d3b350976eccb8b93/scikit_image-0.26.0-cp313-cp313-win_arm64.whl", hash = "sha256:a2d211bc355f59725efdcae699b93b30348a19416cc9e017f7b2fb599faf7219", size = 11342506, upload-time = "2025-12-20T17:11:27.399Z" }, + { url = "https://files.pythonhosted.org/packages/03/e5/c1a9962b0cf1952f42d32b4a2e48eed520320dbc4d2ff0b981c6fa508b6b/scikit_image-0.26.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9eefb4adad066da408a7601c4c24b07af3b472d90e08c3e7483d4e9e829d8c49", size = 12663278, upload-time = "2025-12-20T17:11:29.358Z" }, + { url = "https://files.pythonhosted.org/packages/ae/97/c1a276a59ce8e4e24482d65c1a3940d69c6b3873279193b7ebd04e5ee56b/scikit_image-0.26.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6caec76e16c970c528d15d1c757363334d5cb3069f9cea93d2bead31820511f3", size = 12405142, upload-time = "2025-12-20T17:11:31.282Z" }, + { url = "https://files.pythonhosted.org/packages/d4/4a/f1cbd1357caef6c7993f7efd514d6e53d8fd6f7fe01c4714d51614c53289/scikit_image-0.26.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a07200fe09b9d99fcdab959859fe0f7db8df6333d6204344425d476850ce3604", size = 12942086, upload-time = "2025-12-20T17:11:33.683Z" }, + { url = "https://files.pythonhosted.org/packages/5b/6f/74d9fb87c5655bd64cf00b0c44dc3d6206d9002e5f6ba1c9aeb13236f6bf/scikit_image-0.26.0-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92242351bccf391fc5df2d1529d15470019496d2498d615beb68da85fe7fdf37", size = 13265667, upload-time = "2025-12-20T17:11:36.11Z" }, + { url = "https://files.pythonhosted.org/packages/a7/73/faddc2413ae98d863f6fa2e3e14da4467dd38e788e1c23346cf1a2b06b97/scikit_image-0.26.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:52c496f75a7e45844d951557f13c08c81487c6a1da2e3c9c8a39fcde958e02cc", size = 14001966, upload-time = "2025-12-20T17:11:38.55Z" }, + { url = "https://files.pythonhosted.org/packages/02/94/9f46966fa042b5d57c8cd641045372b4e0df0047dd400e77ea9952674110/scikit_image-0.26.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:20ef4a155e2e78b8ab973998e04d8a361d49d719e65412405f4dadd9155a61d9", size = 14359526, upload-time = "2025-12-20T17:11:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b4/2840fe38f10057f40b1c9f8fb98a187a370936bf144a4ac23452c5ef1baf/scikit_image-0.26.0-cp313-cp313t-win_amd64.whl", hash = "sha256:c9087cf7d0e7f33ab5c46d2068d86d785e70b05400a891f73a13400f1e1faf6a", size = 12287629, upload-time = "2025-12-20T17:11:43.11Z" }, + { url = "https://files.pythonhosted.org/packages/22/ba/73b6ca70796e71f83ab222690e35a79612f0117e5aaf167151b7d46f5f2c/scikit_image-0.26.0-cp313-cp313t-win_arm64.whl", hash = "sha256:27d58bc8b2acd351f972c6508c1b557cfed80299826080a4d803dd29c51b707e", size = 11647755, upload-time = "2025-12-20T17:11:45.279Z" }, + { url = "https://files.pythonhosted.org/packages/51/44/6b744f92b37ae2833fd423cce8f806d2368859ec325a699dc30389e090b9/scikit_image-0.26.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:63af3d3a26125f796f01052052f86806da5b5e54c6abef152edb752683075a9c", size = 12365810, upload-time = "2025-12-20T17:11:47.357Z" }, + { url = "https://files.pythonhosted.org/packages/40/f5/83590d9355191f86ac663420fec741b82cc547a4afe7c4c1d986bf46e4db/scikit_image-0.26.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ce00600cd70d4562ed59f80523e18cdcc1fae0e10676498a01f73c255774aefd", size = 12075717, upload-time = "2025-12-20T17:11:49.483Z" }, + { url = "https://files.pythonhosted.org/packages/72/48/253e7cf5aee6190459fe136c614e2cbccc562deceb4af96e0863f1b8ee29/scikit_image-0.26.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6381edf972b32e4f54085449afde64365a57316637496c1325a736987083e2ab", size = 13161520, upload-time = "2025-12-20T17:11:51.58Z" }, + { url = "https://files.pythonhosted.org/packages/73/c3/cec6a3cbaadfdcc02bd6ff02f3abfe09eaa7f4d4e0a525a1e3a3f4bce49c/scikit_image-0.26.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6624a76c6085218248154cc7e1500e6b488edcd9499004dd0d35040607d7505", size = 13684340, upload-time = "2025-12-20T17:11:53.708Z" }, + { url = "https://files.pythonhosted.org/packages/d4/0d/39a776f675d24164b3a267aa0db9f677a4cb20127660d8bf4fd7fef66817/scikit_image-0.26.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f775f0e420faac9c2aa6757135f4eb468fb7b70e0b67fa77a5e79be3c30ee331", size = 14203839, upload-time = "2025-12-20T17:11:55.89Z" }, + { url = "https://files.pythonhosted.org/packages/ee/25/2514df226bbcedfe9b2caafa1ba7bc87231a0c339066981b182b08340e06/scikit_image-0.26.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ede4d6d255cc5da9faeb2f9ba7fedbc990abbc652db429f40a16b22e770bb578", size = 14770021, upload-time = "2025-12-20T17:11:58.014Z" }, + { url = "https://files.pythonhosted.org/packages/8d/5b/0671dc91c0c79340c3fe202f0549c7d3681eb7640fe34ab68a5f090a7c7f/scikit_image-0.26.0-cp314-cp314-win_amd64.whl", hash = "sha256:0660b83968c15293fd9135e8d860053ee19500d52bf55ca4fb09de595a1af650", size = 12023490, upload-time = "2025-12-20T17:12:00.013Z" }, + { url = "https://files.pythonhosted.org/packages/65/08/7c4cb59f91721f3de07719085212a0b3962e3e3f2d1818cbac4eeb1ea53e/scikit_image-0.26.0-cp314-cp314-win_arm64.whl", hash = "sha256:b8d14d3181c21c11170477a42542c1addc7072a90b986675a71266ad17abc37f", size = 11473782, upload-time = "2025-12-20T17:12:01.983Z" }, + { url = "https://files.pythonhosted.org/packages/49/41/65c4258137acef3d73cb561ac55512eacd7b30bb4f4a11474cad526bc5db/scikit_image-0.26.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:cde0bbd57e6795eba83cb10f71a677f7239271121dc950bc060482834a668ad1", size = 12686060, upload-time = "2025-12-20T17:12:03.886Z" }, + { url = "https://files.pythonhosted.org/packages/e7/32/76971f8727b87f1420a962406388a50e26667c31756126444baf6668f559/scikit_image-0.26.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:163e9afb5b879562b9aeda0dd45208a35316f26cc7a3aed54fd601604e5cf46f", size = 12422628, upload-time = "2025-12-20T17:12:05.921Z" }, + { url = "https://files.pythonhosted.org/packages/37/0d/996febd39f757c40ee7b01cdb861867327e5c8e5f595a634e8201462d958/scikit_image-0.26.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:724f79fd9b6cb6f4a37864fe09f81f9f5d5b9646b6868109e1b100d1a7019e59", size = 12962369, upload-time = "2025-12-20T17:12:07.912Z" }, + { url = "https://files.pythonhosted.org/packages/48/b4/612d354f946c9600e7dea012723c11d47e8d455384e530f6daaaeb9bf62c/scikit_image-0.26.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3268f13310e6857508bd87202620df996199a016a1d281b309441d227c822394", size = 13272431, upload-time = "2025-12-20T17:12:10.255Z" }, + { url = "https://files.pythonhosted.org/packages/0a/6e/26c00b466e06055a086de2c6e2145fe189ccdc9a1d11ccc7de020f2591ad/scikit_image-0.26.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fac96a1f9b06cd771cbbb3cd96c5332f36d4efd839b1d8b053f79e5887acde62", size = 14016362, upload-time = "2025-12-20T17:12:12.793Z" }, + { url = "https://files.pythonhosted.org/packages/47/88/00a90402e1775634043c2a0af8a3c76ad450866d9fa444efcc43b553ba2d/scikit_image-0.26.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2c1e7bd342f43e7a97e571b3f03ba4c1293ea1a35c3f13f41efdc8a81c1dc8f2", size = 14364151, upload-time = "2025-12-20T17:12:14.909Z" }, + { url = "https://files.pythonhosted.org/packages/da/ca/918d8d306bd43beacff3b835c6d96fac0ae64c0857092f068b88db531a7c/scikit_image-0.26.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b702c3bb115e1dcf4abf5297429b5c90f2189655888cbed14921f3d26f81d3a4", size = 12413484, upload-time = "2025-12-20T17:12:17.046Z" }, + { url = "https://files.pythonhosted.org/packages/dc/cd/4da01329b5a8d47ff7ec3c99a2b02465a8017b186027590dc7425cee0b56/scikit_image-0.26.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0608aa4a9ec39e0843de10d60edb2785a30c1c47819b67866dd223ebd149acaf", size = 11769501, upload-time = "2025-12-20T17:12:19.339Z" }, +] + +[[package]] +name = "scikit-learn" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "threadpoolctl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/d4/40988bf3b8e34feec1d0e6a051446b1f66225f8529b9309becaeef62b6c4/scikit_learn-1.8.0.tar.gz", hash = "sha256:9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd", size = 7335585, upload-time = "2025-12-10T07:08:53.618Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/74/e6a7cc4b820e95cc38cf36cd74d5aa2b42e8ffc2d21fe5a9a9c45c1c7630/scikit_learn-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5fb63362b5a7ddab88e52b6dbb47dac3fd7dafeee740dc6c8d8a446ddedade8e", size = 8548242, upload-time = "2025-12-10T07:07:51.568Z" }, + { url = "https://files.pythonhosted.org/packages/49/d8/9be608c6024d021041c7f0b3928d4749a706f4e2c3832bbede4fb4f58c95/scikit_learn-1.8.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:5025ce924beccb28298246e589c691fe1b8c1c96507e6d27d12c5fadd85bfd76", size = 8079075, upload-time = "2025-12-10T07:07:53.697Z" }, + { url = "https://files.pythonhosted.org/packages/dd/47/f187b4636ff80cc63f21cd40b7b2d177134acaa10f6bb73746130ee8c2e5/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4496bb2cf7a43ce1a2d7524a79e40bc5da45cf598dbf9545b7e8316ccba47bb4", size = 8660492, upload-time = "2025-12-10T07:07:55.574Z" }, + { url = "https://files.pythonhosted.org/packages/97/74/b7a304feb2b49df9fafa9382d4d09061a96ee9a9449a7cbea7988dda0828/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0bcfe4d0d14aec44921545fd2af2338c7471de9cb701f1da4c9d85906ab847a", size = 8931904, upload-time = "2025-12-10T07:07:57.666Z" }, + { url = "https://files.pythonhosted.org/packages/9f/c4/0ab22726a04ede56f689476b760f98f8f46607caecff993017ac1b64aa5d/scikit_learn-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:35c007dedb2ffe38fe3ee7d201ebac4a2deccd2408e8621d53067733e3c74809", size = 8019359, upload-time = "2025-12-10T07:07:59.838Z" }, + { url = "https://files.pythonhosted.org/packages/24/90/344a67811cfd561d7335c1b96ca21455e7e472d281c3c279c4d3f2300236/scikit_learn-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:8c497fff237d7b4e07e9ef1a640887fa4fb765647f86fbe00f969ff6280ce2bb", size = 7641898, upload-time = "2025-12-10T07:08:01.36Z" }, + { url = "https://files.pythonhosted.org/packages/03/aa/e22e0768512ce9255eba34775be2e85c2048da73da1193e841707f8f039c/scikit_learn-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0d6ae97234d5d7079dc0040990a6f7aeb97cb7fa7e8945f1999a429b23569e0a", size = 8513770, upload-time = "2025-12-10T07:08:03.251Z" }, + { url = "https://files.pythonhosted.org/packages/58/37/31b83b2594105f61a381fc74ca19e8780ee923be2d496fcd8d2e1147bd99/scikit_learn-1.8.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:edec98c5e7c128328124a029bceb09eda2d526997780fef8d65e9a69eead963e", size = 8044458, upload-time = "2025-12-10T07:08:05.336Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5a/3f1caed8765f33eabb723596666da4ebbf43d11e96550fb18bdec42b467b/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:74b66d8689d52ed04c271e1329f0c61635bcaf5b926db9b12d58914cdc01fe57", size = 8610341, upload-time = "2025-12-10T07:08:07.732Z" }, + { url = "https://files.pythonhosted.org/packages/38/cf/06896db3f71c75902a8e9943b444a56e727418f6b4b4a90c98c934f51ed4/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8fdf95767f989b0cfedb85f7ed8ca215d4be728031f56ff5a519ee1e3276dc2e", size = 8900022, upload-time = "2025-12-10T07:08:09.862Z" }, + { url = "https://files.pythonhosted.org/packages/1c/f9/9b7563caf3ec8873e17a31401858efab6b39a882daf6c1bfa88879c0aa11/scikit_learn-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:2de443b9373b3b615aec1bb57f9baa6bb3a9bd093f1269ba95c17d870422b271", size = 7989409, upload-time = "2025-12-10T07:08:12.028Z" }, + { url = "https://files.pythonhosted.org/packages/49/bd/1f4001503650e72c4f6009ac0c4413cb17d2d601cef6f71c0453da2732fc/scikit_learn-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:eddde82a035681427cbedded4e6eff5e57fa59216c2e3e90b10b19ab1d0a65c3", size = 7619760, upload-time = "2025-12-10T07:08:13.688Z" }, + { url = "https://files.pythonhosted.org/packages/d2/7d/a630359fc9dcc95496588c8d8e3245cc8fd81980251079bc09c70d41d951/scikit_learn-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7cc267b6108f0a1499a734167282c00c4ebf61328566b55ef262d48e9849c735", size = 8826045, upload-time = "2025-12-10T07:08:15.215Z" }, + { url = "https://files.pythonhosted.org/packages/cc/56/a0c86f6930cfcd1c7054a2bc417e26960bb88d32444fe7f71d5c2cfae891/scikit_learn-1.8.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:fe1c011a640a9f0791146011dfd3c7d9669785f9fed2b2a5f9e207536cf5c2fd", size = 8420324, upload-time = "2025-12-10T07:08:17.561Z" }, + { url = "https://files.pythonhosted.org/packages/46/1e/05962ea1cebc1cf3876667ecb14c283ef755bf409993c5946ade3b77e303/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72358cce49465d140cc4e7792015bb1f0296a9742d5622c67e31399b75468b9e", size = 8680651, upload-time = "2025-12-10T07:08:19.952Z" }, + { url = "https://files.pythonhosted.org/packages/fe/56/a85473cd75f200c9759e3a5f0bcab2d116c92a8a02ee08ccd73b870f8bb4/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80832434a6cc114f5219211eec13dcbc16c2bac0e31ef64c6d346cde3cf054cb", size = 8925045, upload-time = "2025-12-10T07:08:22.11Z" }, + { url = "https://files.pythonhosted.org/packages/cc/b7/64d8cfa896c64435ae57f4917a548d7ac7a44762ff9802f75a79b77cb633/scikit_learn-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ee787491dbfe082d9c3013f01f5991658b0f38aa8177e4cd4bf434c58f551702", size = 8507994, upload-time = "2025-12-10T07:08:23.943Z" }, + { url = "https://files.pythonhosted.org/packages/5e/37/e192ea709551799379958b4c4771ec507347027bb7c942662c7fbeba31cb/scikit_learn-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf97c10a3f5a7543f9b88cbf488d33d175e9146115a451ae34568597ba33dcde", size = 7869518, upload-time = "2025-12-10T07:08:25.71Z" }, + { url = "https://files.pythonhosted.org/packages/24/05/1af2c186174cc92dcab2233f327336058c077d38f6fe2aceb08e6ab4d509/scikit_learn-1.8.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c22a2da7a198c28dd1a6e1136f19c830beab7fdca5b3e5c8bba8394f8a5c45b3", size = 8528667, upload-time = "2025-12-10T07:08:27.541Z" }, + { url = "https://files.pythonhosted.org/packages/a8/25/01c0af38fe969473fb292bba9dc2b8f9b451f3112ff242c647fee3d0dfe7/scikit_learn-1.8.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:6b595b07a03069a2b1740dc08c2299993850ea81cce4fe19b2421e0c970de6b7", size = 8066524, upload-time = "2025-12-10T07:08:29.822Z" }, + { url = "https://files.pythonhosted.org/packages/be/ce/a0623350aa0b68647333940ee46fe45086c6060ec604874e38e9ab7d8e6c/scikit_learn-1.8.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:29ffc74089f3d5e87dfca4c2c8450f88bdc61b0fc6ed5d267f3988f19a1309f6", size = 8657133, upload-time = "2025-12-10T07:08:31.865Z" }, + { url = "https://files.pythonhosted.org/packages/b8/cb/861b41341d6f1245e6ca80b1c1a8c4dfce43255b03df034429089ca2a2c5/scikit_learn-1.8.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fb65db5d7531bccf3a4f6bec3462223bea71384e2cda41da0f10b7c292b9e7c4", size = 8923223, upload-time = "2025-12-10T07:08:34.166Z" }, + { url = "https://files.pythonhosted.org/packages/76/18/a8def8f91b18cd1ba6e05dbe02540168cb24d47e8dcf69e8d00b7da42a08/scikit_learn-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:56079a99c20d230e873ea40753102102734c5953366972a71d5cb39a32bc40c6", size = 8096518, upload-time = "2025-12-10T07:08:36.339Z" }, + { url = "https://files.pythonhosted.org/packages/d1/77/482076a678458307f0deb44e29891d6022617b2a64c840c725495bee343f/scikit_learn-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:3bad7565bc9cf37ce19a7c0d107742b320c1285df7aab1a6e2d28780df167242", size = 7754546, upload-time = "2025-12-10T07:08:38.128Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d1/ef294ca754826daa043b2a104e59960abfab4cf653891037d19dd5b6f3cf/scikit_learn-1.8.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:4511be56637e46c25721e83d1a9cea9614e7badc7040c4d573d75fbe257d6fd7", size = 8848305, upload-time = "2025-12-10T07:08:41.013Z" }, + { url = "https://files.pythonhosted.org/packages/5b/e2/b1f8b05138ee813b8e1a4149f2f0d289547e60851fd1bb268886915adbda/scikit_learn-1.8.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:a69525355a641bf8ef136a7fa447672fb54fe8d60cab5538d9eb7c6438543fb9", size = 8432257, upload-time = "2025-12-10T07:08:42.873Z" }, + { url = "https://files.pythonhosted.org/packages/26/11/c32b2138a85dcb0c99f6afd13a70a951bfdff8a6ab42d8160522542fb647/scikit_learn-1.8.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c2656924ec73e5939c76ac4c8b026fc203b83d8900362eb2599d8aee80e4880f", size = 8678673, upload-time = "2025-12-10T07:08:45.362Z" }, + { url = "https://files.pythonhosted.org/packages/c7/57/51f2384575bdec454f4fe4e7a919d696c9ebce914590abf3e52d47607ab8/scikit_learn-1.8.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15fc3b5d19cc2be65404786857f2e13c70c83dd4782676dd6814e3b89dc8f5b9", size = 8922467, upload-time = "2025-12-10T07:08:47.408Z" }, + { url = "https://files.pythonhosted.org/packages/35/4d/748c9e2872637a57981a04adc038dacaa16ba8ca887b23e34953f0b3f742/scikit_learn-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:00d6f1d66fbcf4eba6e356e1420d33cc06c70a45bb1363cd6f6a8e4ebbbdece2", size = 8774395, upload-time = "2025-12-10T07:08:49.337Z" }, + { url = "https://files.pythonhosted.org/packages/60/22/d7b2ebe4704a5e50790ba089d5c2ae308ab6bb852719e6c3bd4f04c3a363/scikit_learn-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f28dd15c6bb0b66ba09728cf09fd8736c304be29409bd8445a080c1280619e8c", size = 8002647, upload-time = "2025-12-10T07:08:51.601Z" }, +] + +[[package]] +name = "scipy" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/97/5a3609c4f8d58b039179648e62dd220f89864f56f7357f5d4f45c29eb2cc/scipy-1.17.1.tar.gz", hash = "sha256:95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0", size = 30573822, upload-time = "2026-02-23T00:26:24.851Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/48/b992b488d6f299dbe3f11a20b24d3dda3d46f1a635ede1c46b5b17a7b163/scipy-1.17.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:35c3a56d2ef83efc372eaec584314bd0ef2e2f0d2adb21c55e6ad5b344c0dcb8", size = 31610954, upload-time = "2026-02-23T00:17:49.855Z" }, + { url = "https://files.pythonhosted.org/packages/b2/02/cf107b01494c19dc100f1d0b7ac3cc08666e96ba2d64db7626066cee895e/scipy-1.17.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:fcb310ddb270a06114bb64bbe53c94926b943f5b7f0842194d585c65eb4edd76", size = 28172662, upload-time = "2026-02-23T00:18:01.64Z" }, + { url = "https://files.pythonhosted.org/packages/cf/a9/599c28631bad314d219cf9ffd40e985b24d603fc8a2f4ccc5ae8419a535b/scipy-1.17.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:cc90d2e9c7e5c7f1a482c9875007c095c3194b1cfedca3c2f3291cdc2bc7c086", size = 20344366, upload-time = "2026-02-23T00:18:12.015Z" }, + { url = "https://files.pythonhosted.org/packages/35/f5/906eda513271c8deb5af284e5ef0206d17a96239af79f9fa0aebfe0e36b4/scipy-1.17.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:c80be5ede8f3f8eded4eff73cc99a25c388ce98e555b17d31da05287015ffa5b", size = 22704017, upload-time = "2026-02-23T00:18:21.502Z" }, + { url = "https://files.pythonhosted.org/packages/da/34/16f10e3042d2f1d6b66e0428308ab52224b6a23049cb2f5c1756f713815f/scipy-1.17.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e19ebea31758fac5893a2ac360fedd00116cbb7628e650842a6691ba7ca28a21", size = 32927842, upload-time = "2026-02-23T00:18:35.367Z" }, + { url = "https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02ae3b274fde71c5e92ac4d54bc06c42d80e399fec704383dcd99b301df37458", size = 35235890, upload-time = "2026-02-23T00:18:49.188Z" }, + { url = "https://files.pythonhosted.org/packages/c5/5c/9d7f4c88bea6e0d5a4f1bc0506a53a00e9fcb198de372bfe4d3652cef482/scipy-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a604bae87c6195d8b1045eddece0514d041604b14f2727bbc2b3020172045eb", size = 35003557, upload-time = "2026-02-23T00:18:54.74Z" }, + { url = "https://files.pythonhosted.org/packages/65/94/7698add8f276dbab7a9de9fb6b0e02fc13ee61d51c7c3f85ac28b65e1239/scipy-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f590cd684941912d10becc07325a3eeb77886fe981415660d9265c4c418d0bea", size = 37625856, upload-time = "2026-02-23T00:19:00.307Z" }, + { url = "https://files.pythonhosted.org/packages/a2/84/dc08d77fbf3d87d3ee27f6a0c6dcce1de5829a64f2eae85a0ecc1f0daa73/scipy-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:41b71f4a3a4cab9d366cd9065b288efc4d4f3c0b37a91a8e0947fb5bd7f31d87", size = 36549682, upload-time = "2026-02-23T00:19:07.67Z" }, + { url = "https://files.pythonhosted.org/packages/bc/98/fe9ae9ffb3b54b62559f52dedaebe204b408db8109a8c66fdd04869e6424/scipy-1.17.1-cp312-cp312-win_arm64.whl", hash = "sha256:f4115102802df98b2b0db3cce5cb9b92572633a1197c77b7553e5203f284a5b3", size = 24547340, upload-time = "2026-02-23T00:19:12.024Z" }, + { url = "https://files.pythonhosted.org/packages/76/27/07ee1b57b65e92645f219b37148a7e7928b82e2b5dbeccecb4dff7c64f0b/scipy-1.17.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:5e3c5c011904115f88a39308379c17f91546f77c1667cea98739fe0fccea804c", size = 31590199, upload-time = "2026-02-23T00:19:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ae/db19f8ab842e9b724bf5dbb7db29302a91f1e55bc4d04b1025d6d605a2c5/scipy-1.17.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:6fac755ca3d2c3edcb22f479fceaa241704111414831ddd3bc6056e18516892f", size = 28154001, upload-time = "2026-02-23T00:19:22.241Z" }, + { url = "https://files.pythonhosted.org/packages/5b/58/3ce96251560107b381cbd6e8413c483bbb1228a6b919fa8652b0d4090e7f/scipy-1.17.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:7ff200bf9d24f2e4d5dc6ee8c3ac64d739d3a89e2326ba68aaf6c4a2b838fd7d", size = 20325719, upload-time = "2026-02-23T00:19:26.329Z" }, + { url = "https://files.pythonhosted.org/packages/b2/83/15087d945e0e4d48ce2377498abf5ad171ae013232ae31d06f336e64c999/scipy-1.17.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4b400bdc6f79fa02a4d86640310dde87a21fba0c979efff5248908c6f15fad1b", size = 22683595, upload-time = "2026-02-23T00:19:30.304Z" }, + { url = "https://files.pythonhosted.org/packages/b4/e0/e58fbde4a1a594c8be8114eb4aac1a55bcd6587047efc18a61eb1f5c0d30/scipy-1.17.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b64ca7d4aee0102a97f3ba22124052b4bd2152522355073580bf4845e2550b6", size = 32896429, upload-time = "2026-02-23T00:19:35.536Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5f/f17563f28ff03c7b6799c50d01d5d856a1d55f2676f537ca8d28c7f627cd/scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:581b2264fc0aa555f3f435a5944da7504ea3a065d7029ad60e7c3d1ae09c5464", size = 35203952, upload-time = "2026-02-23T00:19:42.259Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a5/9afd17de24f657fdfe4df9a3f1ea049b39aef7c06000c13db1530d81ccca/scipy-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:beeda3d4ae615106d7094f7e7cef6218392e4465cc95d25f900bebabfded0950", size = 34979063, upload-time = "2026-02-23T00:19:47.547Z" }, + { url = "https://files.pythonhosted.org/packages/8b/13/88b1d2384b424bf7c924f2038c1c409f8d88bb2a8d49d097861dd64a57b2/scipy-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6609bc224e9568f65064cfa72edc0f24ee6655b47575954ec6339534b2798369", size = 37598449, upload-time = "2026-02-23T00:19:53.238Z" }, + { url = "https://files.pythonhosted.org/packages/35/e5/d6d0e51fc888f692a35134336866341c08655d92614f492c6860dc45bb2c/scipy-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:37425bc9175607b0268f493d79a292c39f9d001a357bebb6b88fdfaff13f6448", size = 36510943, upload-time = "2026-02-23T00:20:50.89Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fd/3be73c564e2a01e690e19cc618811540ba5354c67c8680dce3281123fb79/scipy-1.17.1-cp313-cp313-win_arm64.whl", hash = "sha256:5cf36e801231b6a2059bf354720274b7558746f3b1a4efb43fcf557ccd484a87", size = 24545621, upload-time = "2026-02-23T00:20:55.871Z" }, + { url = "https://files.pythonhosted.org/packages/6f/6b/17787db8b8114933a66f9dcc479a8272e4b4da75fe03b0c282f7b0ade8cd/scipy-1.17.1-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:d59c30000a16d8edc7e64152e30220bfbd724c9bbb08368c054e24c651314f0a", size = 31936708, upload-time = "2026-02-23T00:19:58.694Z" }, + { url = "https://files.pythonhosted.org/packages/38/2e/524405c2b6392765ab1e2b722a41d5da33dc5c7b7278184a8ad29b6cb206/scipy-1.17.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:010f4333c96c9bb1a4516269e33cb5917b08ef2166d5556ca2fd9f082a9e6ea0", size = 28570135, upload-time = "2026-02-23T00:20:03.934Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c3/5bd7199f4ea8556c0c8e39f04ccb014ac37d1468e6cfa6a95c6b3562b76e/scipy-1.17.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:2ceb2d3e01c5f1d83c4189737a42d9cb2fc38a6eeed225e7515eef71ad301dce", size = 20741977, upload-time = "2026-02-23T00:20:07.935Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b8/8ccd9b766ad14c78386599708eb745f6b44f08400a5fd0ade7cf89b6fc93/scipy-1.17.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:844e165636711ef41f80b4103ed234181646b98a53c8f05da12ca5ca289134f6", size = 23029601, upload-time = "2026-02-23T00:20:12.161Z" }, + { url = "https://files.pythonhosted.org/packages/6d/a0/3cb6f4d2fb3e17428ad2880333cac878909ad1a89f678527b5328b93c1d4/scipy-1.17.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:158dd96d2207e21c966063e1635b1063cd7787b627b6f07305315dd73d9c679e", size = 33019667, upload-time = "2026-02-23T00:20:17.208Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c3/2d834a5ac7bf3a0c806ad1508efc02dda3c8c61472a56132d7894c312dea/scipy-1.17.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74cbb80d93260fe2ffa334efa24cb8f2f0f622a9b9febf8b483c0b865bfb3475", size = 35264159, upload-time = "2026-02-23T00:20:23.087Z" }, + { url = "https://files.pythonhosted.org/packages/4d/77/d3ed4becfdbd217c52062fafe35a72388d1bd82c2d0ba5ca19d6fcc93e11/scipy-1.17.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dbc12c9f3d185f5c737d801da555fb74b3dcfa1a50b66a1a93e09190f41fab50", size = 35102771, upload-time = "2026-02-23T00:20:28.636Z" }, + { url = "https://files.pythonhosted.org/packages/bd/12/d19da97efde68ca1ee5538bb261d5d2c062f0c055575128f11a2730e3ac1/scipy-1.17.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94055a11dfebe37c656e70317e1996dc197e1a15bbcc351bcdd4610e128fe1ca", size = 37665910, upload-time = "2026-02-23T00:20:34.743Z" }, + { url = "https://files.pythonhosted.org/packages/06/1c/1172a88d507a4baaf72c5a09bb6c018fe2ae0ab622e5830b703a46cc9e44/scipy-1.17.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e30bdeaa5deed6bc27b4cc490823cd0347d7dae09119b8803ae576ea0ce52e4c", size = 36562980, upload-time = "2026-02-23T00:20:40.575Z" }, + { url = "https://files.pythonhosted.org/packages/70/b0/eb757336e5a76dfa7911f63252e3b7d1de00935d7705cf772db5b45ec238/scipy-1.17.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a720477885a9d2411f94a93d16f9d89bad0f28ca23c3f8daa521e2dcc3f44d49", size = 24856543, upload-time = "2026-02-23T00:20:45.313Z" }, + { url = "https://files.pythonhosted.org/packages/cf/83/333afb452af6f0fd70414dc04f898647ee1423979ce02efa75c3b0f2c28e/scipy-1.17.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:a48a72c77a310327f6a3a920092fa2b8fd03d7deaa60f093038f22d98e096717", size = 31584510, upload-time = "2026-02-23T00:21:01.015Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a6/d05a85fd51daeb2e4ea71d102f15b34fedca8e931af02594193ae4fd25f7/scipy-1.17.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:45abad819184f07240d8a696117a7aacd39787af9e0b719d00285549ed19a1e9", size = 28170131, upload-time = "2026-02-23T00:21:05.888Z" }, + { url = "https://files.pythonhosted.org/packages/db/7b/8624a203326675d7746a254083a187398090a179335b2e4a20e2ddc46e83/scipy-1.17.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:3fd1fcdab3ea951b610dc4cef356d416d5802991e7e32b5254828d342f7b7e0b", size = 20342032, upload-time = "2026-02-23T00:21:09.904Z" }, + { url = "https://files.pythonhosted.org/packages/c9/35/2c342897c00775d688d8ff3987aced3426858fd89d5a0e26e020b660b301/scipy-1.17.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:7bdf2da170b67fdf10bca777614b1c7d96ae3ca5794fd9587dce41eb2966e866", size = 22678766, upload-time = "2026-02-23T00:21:14.313Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f2/7cdb8eb308a1a6ae1e19f945913c82c23c0c442a462a46480ce487fdc0ac/scipy-1.17.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:adb2642e060a6549c343603a3851ba76ef0b74cc8c079a9a58121c7ec9fe2350", size = 32957007, upload-time = "2026-02-23T00:21:19.663Z" }, + { url = "https://files.pythonhosted.org/packages/0b/2e/7eea398450457ecb54e18e9d10110993fa65561c4f3add5e8eccd2b9cd41/scipy-1.17.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eee2cfda04c00a857206a4330f0c5e3e56535494e30ca445eb19ec624ae75118", size = 35221333, upload-time = "2026-02-23T00:21:25.278Z" }, + { url = "https://files.pythonhosted.org/packages/d9/77/5b8509d03b77f093a0d52e606d3c4f79e8b06d1d38c441dacb1e26cacf46/scipy-1.17.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d2650c1fb97e184d12d8ba010493ee7b322864f7d3d00d3f9bb97d9c21de4068", size = 35042066, upload-time = "2026-02-23T00:21:31.358Z" }, + { url = "https://files.pythonhosted.org/packages/f9/df/18f80fb99df40b4070328d5ae5c596f2f00fffb50167e31439e932f29e7d/scipy-1.17.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:08b900519463543aa604a06bec02461558a6e1cef8fdbb8098f77a48a83c8118", size = 37612763, upload-time = "2026-02-23T00:21:37.247Z" }, + { url = "https://files.pythonhosted.org/packages/4b/39/f0e8ea762a764a9dc52aa7dabcfad51a354819de1f0d4652b6a1122424d6/scipy-1.17.1-cp314-cp314-win_amd64.whl", hash = "sha256:3877ac408e14da24a6196de0ddcace62092bfc12a83823e92e49e40747e52c19", size = 37290984, upload-time = "2026-02-23T00:22:35.023Z" }, + { url = "https://files.pythonhosted.org/packages/7c/56/fe201e3b0f93d1a8bcf75d3379affd228a63d7e2d80ab45467a74b494947/scipy-1.17.1-cp314-cp314-win_arm64.whl", hash = "sha256:f8885db0bc2bffa59d5c1b72fad7a6a92d3e80e7257f967dd81abb553a90d293", size = 25192877, upload-time = "2026-02-23T00:22:39.798Z" }, + { url = "https://files.pythonhosted.org/packages/96/ad/f8c414e121f82e02d76f310f16db9899c4fcde36710329502a6b2a3c0392/scipy-1.17.1-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:1cc682cea2ae55524432f3cdff9e9a3be743d52a7443d0cba9017c23c87ae2f6", size = 31949750, upload-time = "2026-02-23T00:21:42.289Z" }, + { url = "https://files.pythonhosted.org/packages/7c/b0/c741e8865d61b67c81e255f4f0a832846c064e426636cd7de84e74d209be/scipy-1.17.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:2040ad4d1795a0ae89bfc7e8429677f365d45aa9fd5e4587cf1ea737f927b4a1", size = 28585858, upload-time = "2026-02-23T00:21:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1b/3985219c6177866628fa7c2595bfd23f193ceebbe472c98a08824b9466ff/scipy-1.17.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:131f5aaea57602008f9822e2115029b55d4b5f7c070287699fe45c661d051e39", size = 20757723, upload-time = "2026-02-23T00:21:52.039Z" }, + { url = "https://files.pythonhosted.org/packages/c0/19/2a04aa25050d656d6f7b9e7b685cc83d6957fb101665bfd9369ca6534563/scipy-1.17.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9cdc1a2fcfd5c52cfb3045feb399f7b3ce822abdde3a193a6b9a60b3cb5854ca", size = 23043098, upload-time = "2026-02-23T00:21:56.185Z" }, + { url = "https://files.pythonhosted.org/packages/86/f1/3383beb9b5d0dbddd030335bf8a8b32d4317185efe495374f134d8be6cce/scipy-1.17.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e3dcd57ab780c741fde8dc68619de988b966db759a3c3152e8e9142c26295ad", size = 33030397, upload-time = "2026-02-23T00:22:01.404Z" }, + { url = "https://files.pythonhosted.org/packages/41/68/8f21e8a65a5a03f25a79165ec9d2b28c00e66dc80546cf5eb803aeeff35b/scipy-1.17.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9956e4d4f4a301ebf6cde39850333a6b6110799d470dbbb1e25326ac447f52a", size = 35281163, upload-time = "2026-02-23T00:22:07.024Z" }, + { url = "https://files.pythonhosted.org/packages/84/8d/c8a5e19479554007a5632ed7529e665c315ae7492b4f946b0deb39870e39/scipy-1.17.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a4328d245944d09fd639771de275701ccadf5f781ba0ff092ad141e017eccda4", size = 35116291, upload-time = "2026-02-23T00:22:12.585Z" }, + { url = "https://files.pythonhosted.org/packages/52/52/e57eceff0e342a1f50e274264ed47497b59e6a4e3118808ee58ddda7b74a/scipy-1.17.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a77cbd07b940d326d39a1d1b37817e2ee4d79cb30e7338f3d0cddffae70fcaa2", size = 37682317, upload-time = "2026-02-23T00:22:18.513Z" }, + { url = "https://files.pythonhosted.org/packages/11/2f/b29eafe4a3fbc3d6de9662b36e028d5f039e72d345e05c250e121a230dd4/scipy-1.17.1-cp314-cp314t-win_amd64.whl", hash = "sha256:eb092099205ef62cd1782b006658db09e2fed75bffcae7cc0d44052d8aa0f484", size = 37345327, upload-time = "2026-02-23T00:22:24.442Z" }, + { url = "https://files.pythonhosted.org/packages/07/39/338d9219c4e87f3e708f18857ecd24d22a0c3094752393319553096b98af/scipy-1.17.1-cp314-cp314t-win_arm64.whl", hash = "sha256:200e1050faffacc162be6a486a984a0497866ec54149a01270adc8a59b7c7d21", size = 25489165, upload-time = "2026-02-23T00:22:29.563Z" }, +] + +[[package]] +name = "setuptools" +version = "82.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4f/db/cfac1baf10650ab4d1c111714410d2fbb77ac5a616db26775db562c8fab2/setuptools-82.0.1.tar.gz", hash = "sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9", size = 1152316, upload-time = "2026-03-09T12:47:17.221Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl", hash = "sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb", size = 1006223, upload-time = "2026-03-09T12:47:15.026Z" }, +] + +[[package]] +name = "shap" +version = "0.51.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cloudpickle" }, + { name = "llvmlite", version = "0.36.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, + { name = "llvmlite", version = "0.47.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, + { name = "numba", version = "0.53.1", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, + { name = "numba", version = "0.65.1", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "slicer" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a4/0a/4a3ee4b1a3654f2a9ae038a64bb3e91a42af3da07577d69b65241f010970/shap-0.51.0.tar.gz", hash = "sha256:cfa17ff213657c9d50285aa923d79b0037a62e2ee1a31bc3eec7e196b00bdb59", size = 4108336, upload-time = "2026-03-04T09:18:19.985Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/ba/8c8fac8506327febada7dc58f90dc459287995bb7b8aadbc44506e61be55/shap-0.51.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:07b0367408b1b9fc51556f2ddac5ee4209cc51be592099e6d51d0834c9b037d8", size = 565741, upload-time = "2026-03-04T09:17:37.286Z" }, + { url = "https://files.pythonhosted.org/packages/49/fd/07f7c454ff5dff455576e5bb08cdb2cab05a4c1eb5e1b9959ef2ac28366d/shap-0.51.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e412bb475c9074ffd6684abb88d86d93275729b344cbfb37b4e4db37db759fbf", size = 562281, upload-time = "2026-03-04T09:17:39.006Z" }, + { url = "https://files.pythonhosted.org/packages/93/a1/37e7229be000cf608ece024dcd76edae4cc618b22b402ea78270849cac3f/shap-0.51.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1aa9f659d2028e26ac7ec34cafbc14585fdc14d0c8973e9442c65af1af1ff781", size = 1051009, upload-time = "2026-03-04T09:17:40.989Z" }, + { url = "https://files.pythonhosted.org/packages/af/c1/a9152876b04f9a05ca18bd3e8bc4bc72468ae32429bfbb30a9cbd4ad35b9/shap-0.51.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0b1f9e62d6a3fa28765d7b61abda7caf76aba21e769423fbf3ce8a7a5e498243", size = 1062849, upload-time = "2026-03-04T09:17:42.587Z" }, + { url = "https://files.pythonhosted.org/packages/80/89/38c903c438b33063b006f41d00684af8b424bb95f0fcfd8963d1501bf427/shap-0.51.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:dee16e81082dec5ce2a37c41c2b9cbebcb4bf7de79133a72d84a4093b7d4158c", size = 2014842, upload-time = "2026-03-04T09:17:44.212Z" }, + { url = "https://files.pythonhosted.org/packages/c9/fd/9b295ad15420566dca713b792d9beb65692804b96c69cc99ffec5e31db58/shap-0.51.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3b878f6414213a12247faa00d609957fdfbcc33cfd48a6751500c4708b5666d", size = 2090611, upload-time = "2026-03-04T09:17:46.728Z" }, + { url = "https://files.pythonhosted.org/packages/20/0e/6f581645b66efff6bf091953f474eb16e64da499cfac0c552dd77559f205/shap-0.51.0-cp312-cp312-win_amd64.whl", hash = "sha256:ee76aa705927ac64acd4f506722f52596e77d3ced87078bc86bfcb4571c7b976", size = 556117, upload-time = "2026-03-04T09:17:48.68Z" }, + { url = "https://files.pythonhosted.org/packages/36/4a/77f8dc2c6874d8a27123afffcb79f540a80ed3ccfd640604e4d8beb9cc5e/shap-0.51.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3efeef8a76e2ee735fad50f82e5a8e56ba8639f42e2fa50dc1997caed77c488", size = 564931, upload-time = "2026-03-04T09:17:51.022Z" }, + { url = "https://files.pythonhosted.org/packages/e6/5e/5c6d37992e93b3fa44509d8544281cd5ae357c8946bc0e756e78139b4baf/shap-0.51.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:724cdd8298450ae22b08ca40e07136c73e4e75dbdf8e3f07d741a291bf636dad", size = 561686, upload-time = "2026-03-04T09:17:52.462Z" }, + { url = "https://files.pythonhosted.org/packages/ec/b7/76dbca9c4b83602841c016fec7201e4146c5e6347a8b0428e7c0617ba424/shap-0.51.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13eb21626ea671604769c847ac0604871a03df0842522087ffc00181683780a4", size = 1050719, upload-time = "2026-03-04T09:17:54.252Z" }, + { url = "https://files.pythonhosted.org/packages/64/b1/472ca0adf25215dfdbca9f398d853536413091fe47dd69bb3f67dbd445f4/shap-0.51.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f32d006680708513efff07f67dcbe44a531b242ae042dee99b7024e210391ac2", size = 1063794, upload-time = "2026-03-04T09:17:56.154Z" }, + { url = "https://files.pythonhosted.org/packages/c6/8e/9072acfcbe6abc79fbfe87360c7dcfe16d7498cdb13dc560820912eb5dd5/shap-0.51.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:33540a7e3c70bd1a742a4d0576c19b5e000165038de953d3ebf31a7bb53d01f4", size = 2012838, upload-time = "2026-03-04T09:17:57.835Z" }, + { url = "https://files.pythonhosted.org/packages/f3/65/b95588a1f48eb9e98aa61e6db31cf63a388970e4c11341d40ddece3b54f8/shap-0.51.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f461e5a1d6b0cae3fd9c6bd00c95111ed95b9e0020ec71f14291429ed17d49f4", size = 2090245, upload-time = "2026-03-04T09:17:59.501Z" }, + { url = "https://files.pythonhosted.org/packages/79/d5/1ec3120f461f31a03d1d2f1d339f5058f12c7a542d22bfcc350511eccc8a/shap-0.51.0-cp313-cp313-win_amd64.whl", hash = "sha256:5f51ca55bda10b3fa2125f2b8e08e9d6a6edcbb0e752c67050e87a6d3ca7d53b", size = 555927, upload-time = "2026-03-04T09:18:01.274Z" }, + { url = "https://files.pythonhosted.org/packages/1f/57/f48dd00ac0d9f75a1f34f5ae47ed3269e8acd541189555f39e49e6f126f4/shap-0.51.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d0c33498ed7042f7259ff207bd3aa1cc814fb759240e5f1500e018660b597c17", size = 562390, upload-time = "2026-03-04T09:18:02.722Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c8/c3b067d10c7a792fd1a32ea93f218b2c217fa99d125f79f26d31376ae246/shap-0.51.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6afaeac1fdd7883a058fb071c7044aff6c44699377a35a5d73e75b68564d0d47", size = 1050124, upload-time = "2026-03-04T09:18:04.172Z" }, + { url = "https://files.pythonhosted.org/packages/31/81/cf180b20ac0c1323b78386667a24dfc2f6d827baa0b223d84bfd5818aa03/shap-0.51.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da930d73fa23d7a296660431f01726ae47ef2e7d9fee7e1632fb674be7b150b9", size = 1059129, upload-time = "2026-03-04T09:18:05.815Z" }, + { url = "https://files.pythonhosted.org/packages/e8/c3/45ab3242f055980938671d568540ff1dbd84eb9bf4fe0d3235432f7bad35/shap-0.51.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:331d80a993e32404dd76254f5a82cb481453b4d9e58c0e7da13a3b700a381b03", size = 2012487, upload-time = "2026-03-04T09:18:07.919Z" }, + { url = "https://files.pythonhosted.org/packages/aa/38/a25863c3c8d344e3e322b8dcbac41929b9d00cfb9df3166ac9c350d89c53/shap-0.51.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c52aa8fb311502d5d25e8d631806326656318ab4094459ddbf1410837aaeb139", size = 2086328, upload-time = "2026-03-04T09:18:09.851Z" }, + { url = "https://files.pythonhosted.org/packages/6a/5e/60fbf1ffe0c150c4db0e80e31b3f9428e633d33ccf072e1e75227679cbfc/shap-0.51.0-cp314-cp314-win_amd64.whl", hash = "sha256:86f24dab2c64d78f38170d490a03ff6fb1b48cf3bd0a1527e9bed23e74ad5d2c", size = 559185, upload-time = "2026-03-04T09:18:11.64Z" }, + { url = "https://files.pythonhosted.org/packages/d2/56/8c5f94ae86590e612487c77b9b9bef3fd2f3c91969b3c6e8743ce06440f3/shap-0.51.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:80132eca5679e7e8da7a0d9bfee58d0a3979be25630fd6598ef608bbcefce784", size = 568928, upload-time = "2026-03-04T09:18:13.2Z" }, + { url = "https://files.pythonhosted.org/packages/a6/16/04467bf7b8430c3a5c709401ab065022a72340bc50dfaf67a1cc117ce15e/shap-0.51.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:18828bc4f78adb644ae35c50e79a246d262fa6cf17143c78cca091796b21c27b", size = 1082574, upload-time = "2026-03-04T09:18:14.899Z" }, + { url = "https://files.pythonhosted.org/packages/12/d1/3f7b841dd943a1cbb9c693ed65366c6afc1ac54c70065e0281fa82b57075/shap-0.51.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:71e18a6850af4cdeece1a3f9d4b633a421885fcfda079125e3d35ea08433d3eb", size = 2034618, upload-time = "2026-03-04T09:18:16.542Z" }, + { url = "https://files.pythonhosted.org/packages/d6/42/3668db63cb38e9648e97087d60a0d4ce569c2e8c2b8828124e6da433026f/shap-0.51.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:23c33eae29f887153ef952846ec3bff6abc0aed3aa01594e4ae66cd94a227a49", size = 2096224, upload-time = "2026-03-04T09:18:18.094Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "slicer" +version = "0.0.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/f9/b4bce2825b39b57760b361e6131a3dacee3d8951c58cb97ad120abb90317/slicer-0.0.8.tar.gz", hash = "sha256:2e7553af73f0c0c2d355f4afcc3ecf97c6f2156fcf4593955c3f56cf6c4d6eb7", size = 14894, upload-time = "2024-03-09T23:35:26.826Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/81/9ef641ff4e12cbcca30e54e72fb0951a2ba195d0cda0ba4100e532d929db/slicer-0.0.8-py3-none-any.whl", hash = "sha256:6c206258543aecd010d497dc2eca9d2805860a0b3758673903456b7df7934dc3", size = 15251, upload-time = "2024-03-09T07:03:07.708Z" }, +] + +[[package]] +name = "smart-open" +version = "7.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/14/33/7a00ac9b4a63afb4279b99a766f6cbe56c443526dcbf5db97b219e21fde9/smart_open-7.6.0.tar.gz", hash = "sha256:44717f46b5ff276fac03b88e5d13d1c416f064f3b7b081381b0fa8889004bd7e", size = 54548, upload-time = "2026-04-13T09:48:04.347Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/bc/2761410d0541e975f384bc89f062d716bf119499dd097eb1af33dcd3b1c0/smart_open-7.6.0-py3-none-any.whl", hash = "sha256:2a78f454610a826aa688065b54b4a0a9b12a5599fa61d5190e9bac2df5e5f53f", size = 64591, upload-time = "2026-04-13T09:48:02.687Z" }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload-time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" }, +] + +[[package]] +name = "tifffile" +version = "2026.4.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d7/4a/e687f5957fead200faad58dbf9c9431a2bbb118040e96f5fb8a55f7ebc50/tifffile-2026.4.11.tar.gz", hash = "sha256:17758ff0c0d4db385792a083ad3ca51fcb0f4d942642f4d8f8bc1287fdcf17bc", size = 394956, upload-time = "2026-04-12T01:57:28.793Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/9f/74f110b4271ded519c7add4341cbabc824de26817ff1c345b3109df9e99c/tifffile-2026.4.11-py3-none-any.whl", hash = "sha256:9b94ffeddb39e97601af646345e8808f885773de01b299e480ed6d3a41509ec9", size = 248227, upload-time = "2026-04-12T01:57:26.969Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598, upload-time = "2026-02-03T17:35:53.048Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "tzdata" +version = "2026.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/f5/cd531b2d15a671a40c0f66cf06bc3570a12cd56eef98960068ebbad1bf5a/tzdata-2026.1.tar.gz", hash = "sha256:67658a1903c75917309e753fdc349ac0efd8c27db7a0cb406a25be4840f87f98", size = 197639, upload-time = "2026-04-03T11:25:22.002Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b0/70/d460bd685a170790ec89317e9bd33047988e4bce507b831f5db771e142de/tzdata-2026.1-py2.py3-none-any.whl", hash = "sha256:4b1d2be7ac37ceafd7327b961aa3a54e467efbdb563a23655fbfe0d39cfc42a9", size = 348952, upload-time = "2026-04-03T11:25:20.313Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/a2/8e3becb46433538a38726c948d3399905a4c7cabd0df578ede5dc51f0ec2/wcwidth-0.6.0.tar.gz", hash = "sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159", size = 159684, upload-time = "2026-02-06T19:19:40.919Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/5a/199c59e0a824a3db2b89c5d2dade7ab5f9624dbf6448dc291b46d5ec94d3/wcwidth-0.6.0-py3-none-any.whl", hash = "sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad", size = 94189, upload-time = "2026-02-06T19:19:39.646Z" }, +] + +[[package]] +name = "widgetsnbextension" +version = "4.0.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/f4/c67440c7fb409a71b7404b7aefcd7569a9c0d6bd071299bf4198ae7a5d95/widgetsnbextension-4.0.15.tar.gz", hash = "sha256:de8610639996f1567952d763a5a41af8af37f2575a41f9852a38f947eb82a3b9", size = 1097402, upload-time = "2025-11-01T21:15:55.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl", hash = "sha256:8156704e4346a571d9ce73b84bee86a29906c9abfd7223b7228a28899ccf3366", size = 2196503, upload-time = "2025-11-01T21:15:53.565Z" }, +] + +[[package]] +name = "wrapt" +version = "2.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2e/64/925f213fdcbb9baeb1530449ac71a4d57fc361c053d06bf78d0c5c7cd80c/wrapt-2.1.2.tar.gz", hash = "sha256:3996a67eecc2c68fd47b4e3c564405a5777367adfd9b8abb58387b63ee83b21e", size = 81678, upload-time = "2026-03-06T02:53:25.134Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4c/b6/1db817582c49c7fcbb7df6809d0f515af29d7c2fbf57eb44c36e98fb1492/wrapt-2.1.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ff2aad9c4cda28a8f0653fc2d487596458c2a3f475e56ba02909e950a9efa6a9", size = 61255, upload-time = "2026-03-06T02:52:45.663Z" }, + { url = "https://files.pythonhosted.org/packages/a2/16/9b02a6b99c09227c93cd4b73acc3678114154ec38da53043c0ddc1fba0dc/wrapt-2.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6433ea84e1cfacf32021d2a4ee909554ade7fd392caa6f7c13f1f4bf7b8e8748", size = 61848, upload-time = "2026-03-06T02:53:48.728Z" }, + { url = "https://files.pythonhosted.org/packages/af/aa/ead46a88f9ec3a432a4832dfedb84092fc35af2d0ba40cd04aea3889f247/wrapt-2.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c20b757c268d30d6215916a5fa8461048d023865d888e437fab451139cad6c8e", size = 121433, upload-time = "2026-03-06T02:54:40.328Z" }, + { url = "https://files.pythonhosted.org/packages/3a/9f/742c7c7cdf58b59085a1ee4b6c37b013f66ac33673a7ef4aaed5e992bc33/wrapt-2.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:79847b83eb38e70d93dc392c7c5b587efe65b3e7afcc167aa8abd5d60e8761c8", size = 123013, upload-time = "2026-03-06T02:53:26.58Z" }, + { url = "https://files.pythonhosted.org/packages/e8/44/2c3dd45d53236b7ed7c646fcf212251dc19e48e599debd3926b52310fafb/wrapt-2.1.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f8fba1bae256186a83d1875b2b1f4e2d1242e8fac0f58ec0d7e41b26967b965c", size = 117326, upload-time = "2026-03-06T02:53:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/74/e2/b17d66abc26bd96f89dec0ecd0ef03da4a1286e6ff793839ec431b9fae57/wrapt-2.1.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e3d3b35eedcf5f7d022291ecd7533321c4775f7b9cd0050a31a68499ba45757c", size = 121444, upload-time = "2026-03-06T02:54:09.5Z" }, + { url = "https://files.pythonhosted.org/packages/3c/62/e2977843fdf9f03daf1586a0ff49060b1b2fc7ff85a7ea82b6217c1ae36e/wrapt-2.1.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:6f2c5390460de57fa9582bc8a1b7a6c86e1a41dfad74c5225fc07044c15cc8d1", size = 116237, upload-time = "2026-03-06T02:54:03.884Z" }, + { url = "https://files.pythonhosted.org/packages/88/dd/27fc67914e68d740bce512f11734aec08696e6b17641fef8867c00c949fc/wrapt-2.1.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7dfa9f2cf65d027b951d05c662cc99ee3bd01f6e4691ed39848a7a5fffc902b2", size = 120563, upload-time = "2026-03-06T02:53:20.412Z" }, + { url = "https://files.pythonhosted.org/packages/ec/9f/b750b3692ed2ef4705cb305bd68858e73010492b80e43d2a4faa5573cbe7/wrapt-2.1.2-cp312-cp312-win32.whl", hash = "sha256:eba8155747eb2cae4a0b913d9ebd12a1db4d860fc4c829d7578c7b989bd3f2f0", size = 58198, upload-time = "2026-03-06T02:53:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/8e/b2/feecfe29f28483d888d76a48f03c4c4d8afea944dbee2b0cd3380f9df032/wrapt-2.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:1c51c738d7d9faa0b3601708e7e2eda9bf779e1b601dce6c77411f2a1b324a63", size = 60441, upload-time = "2026-03-06T02:52:47.138Z" }, + { url = "https://files.pythonhosted.org/packages/44/e1/e328f605d6e208547ea9fd120804fcdec68536ac748987a68c47c606eea8/wrapt-2.1.2-cp312-cp312-win_arm64.whl", hash = "sha256:c8e46ae8e4032792eb2f677dbd0d557170a8e5524d22acc55199f43efedd39bf", size = 58836, upload-time = "2026-03-06T02:53:22.053Z" }, + { url = "https://files.pythonhosted.org/packages/4c/7a/d936840735c828b38d26a854e85d5338894cda544cb7a85a9d5b8b9c4df7/wrapt-2.1.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787fd6f4d67befa6fe2abdffcbd3de2d82dfc6fb8a6d850407c53332709d030b", size = 61259, upload-time = "2026-03-06T02:53:41.922Z" }, + { url = "https://files.pythonhosted.org/packages/5e/88/9a9b9a90ac8ca11c2fdb6a286cb3a1fc7dd774c00ed70929a6434f6bc634/wrapt-2.1.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4bdf26e03e6d0da3f0e9422fd36bcebf7bc0eeb55fdf9c727a09abc6b9fe472e", size = 61851, upload-time = "2026-03-06T02:52:48.672Z" }, + { url = "https://files.pythonhosted.org/packages/03/a9/5b7d6a16fd6533fed2756900fc8fc923f678179aea62ada6d65c92718c00/wrapt-2.1.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bbac24d879aa22998e87f6b3f481a5216311e7d53c7db87f189a7a0266dafffb", size = 121446, upload-time = "2026-03-06T02:54:14.013Z" }, + { url = "https://files.pythonhosted.org/packages/45/bb/34c443690c847835cfe9f892be78c533d4f32366ad2888972c094a897e39/wrapt-2.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:16997dfb9d67addc2e3f41b62a104341e80cac52f91110dece393923c0ebd5ca", size = 123056, upload-time = "2026-03-06T02:54:10.829Z" }, + { url = "https://files.pythonhosted.org/packages/93/b9/ff205f391cb708f67f41ea148545f2b53ff543a7ac293b30d178af4d2271/wrapt-2.1.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:162e4e2ba7542da9027821cb6e7c5e068d64f9a10b5f15512ea28e954893a267", size = 117359, upload-time = "2026-03-06T02:53:03.623Z" }, + { url = "https://files.pythonhosted.org/packages/1f/3d/1ea04d7747825119c3c9a5e0874a40b33594ada92e5649347c457d982805/wrapt-2.1.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f29c827a8d9936ac320746747a016c4bc66ef639f5cd0d32df24f5eacbf9c69f", size = 121479, upload-time = "2026-03-06T02:53:45.844Z" }, + { url = "https://files.pythonhosted.org/packages/78/cc/ee3a011920c7a023b25e8df26f306b2484a531ab84ca5c96260a73de76c0/wrapt-2.1.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:a9dd9813825f7ecb018c17fd147a01845eb330254dff86d3b5816f20f4d6aaf8", size = 116271, upload-time = "2026-03-06T02:54:46.356Z" }, + { url = "https://files.pythonhosted.org/packages/98/fd/e5ff7ded41b76d802cf1191288473e850d24ba2e39a6ec540f21ae3b57cb/wrapt-2.1.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6f8dbdd3719e534860d6a78526aafc220e0241f981367018c2875178cf83a413", size = 120573, upload-time = "2026-03-06T02:52:50.163Z" }, + { url = "https://files.pythonhosted.org/packages/47/c5/242cae3b5b080cd09bacef0591691ba1879739050cc7c801ff35c8886b66/wrapt-2.1.2-cp313-cp313-win32.whl", hash = "sha256:5c35b5d82b16a3bc6e0a04349b606a0582bc29f573786aebe98e0c159bc48db6", size = 58205, upload-time = "2026-03-06T02:53:47.494Z" }, + { url = "https://files.pythonhosted.org/packages/12/69/c358c61e7a50f290958809b3c61ebe8b3838ea3e070d7aac9814f95a0528/wrapt-2.1.2-cp313-cp313-win_amd64.whl", hash = "sha256:f8bc1c264d8d1cf5b3560a87bbdd31131573eb25f9f9447bb6252b8d4c44a3a1", size = 60452, upload-time = "2026-03-06T02:53:30.038Z" }, + { url = "https://files.pythonhosted.org/packages/8e/66/c8a6fcfe321295fd8c0ab1bd685b5a01462a9b3aa2f597254462fc2bc975/wrapt-2.1.2-cp313-cp313-win_arm64.whl", hash = "sha256:3beb22f674550d5634642c645aba4c72a2c66fb185ae1aebe1e955fae5a13baf", size = 58842, upload-time = "2026-03-06T02:52:52.114Z" }, + { url = "https://files.pythonhosted.org/packages/da/55/9c7052c349106e0b3f17ae8db4b23a691a963c334de7f9dbd60f8f74a831/wrapt-2.1.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fc04bc8664a8bc4c8e00b37b5355cffca2535209fba1abb09ae2b7c76ddf82b", size = 63075, upload-time = "2026-03-06T02:53:19.108Z" }, + { url = "https://files.pythonhosted.org/packages/09/a8/ce7b4006f7218248dd71b7b2b732d0710845a0e49213b18faef64811ffef/wrapt-2.1.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a9b9d50c9af998875a1482a038eb05755dfd6fe303a313f6a940bb53a83c3f18", size = 63719, upload-time = "2026-03-06T02:54:33.452Z" }, + { url = "https://files.pythonhosted.org/packages/e4/e5/2ca472e80b9e2b7a17f106bb8f9df1db11e62101652ce210f66935c6af67/wrapt-2.1.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2d3ff4f0024dd224290c0eabf0240f1bfc1f26363431505fb1b0283d3b08f11d", size = 152643, upload-time = "2026-03-06T02:52:42.721Z" }, + { url = "https://files.pythonhosted.org/packages/36/42/30f0f2cefca9d9cbf6835f544d825064570203c3e70aa873d8ae12e23791/wrapt-2.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3278c471f4468ad544a691b31bb856374fbdefb7fee1a152153e64019379f015", size = 158805, upload-time = "2026-03-06T02:54:25.441Z" }, + { url = "https://files.pythonhosted.org/packages/bb/67/d08672f801f604889dcf58f1a0b424fe3808860ede9e03affc1876b295af/wrapt-2.1.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a8914c754d3134a3032601c6984db1c576e6abaf3fc68094bb8ab1379d75ff92", size = 145990, upload-time = "2026-03-06T02:53:57.456Z" }, + { url = "https://files.pythonhosted.org/packages/68/a7/fd371b02e73babec1de6ade596e8cd9691051058cfdadbfd62a5898f3295/wrapt-2.1.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ff95d4264e55839be37bafe1536db2ab2de19da6b65f9244f01f332b5286cfbf", size = 155670, upload-time = "2026-03-06T02:54:55.309Z" }, + { url = "https://files.pythonhosted.org/packages/86/2d/9fe0095dfdb621009f40117dcebf41d7396c2c22dca6eac779f4c007b86c/wrapt-2.1.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:76405518ca4e1b76fbb1b9f686cff93aebae03920cc55ceeec48ff9f719c5f67", size = 144357, upload-time = "2026-03-06T02:54:24.092Z" }, + { url = "https://files.pythonhosted.org/packages/0e/b6/ec7b4a254abbe4cde9fa15c5d2cca4518f6b07d0f1b77d4ee9655e30280e/wrapt-2.1.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c0be8b5a74c5824e9359b53e7e58bef71a729bacc82e16587db1c4ebc91f7c5a", size = 150269, upload-time = "2026-03-06T02:53:31.268Z" }, + { url = "https://files.pythonhosted.org/packages/6e/6b/2fabe8ebf148f4ee3c782aae86a795cc68ffe7d432ef550f234025ce0cfa/wrapt-2.1.2-cp313-cp313t-win32.whl", hash = "sha256:f01277d9a5fc1862f26f7626da9cf443bebc0abd2f303f41c5e995b15887dabd", size = 59894, upload-time = "2026-03-06T02:54:15.391Z" }, + { url = "https://files.pythonhosted.org/packages/ca/fb/9ba66fc2dedc936de5f8073c0217b5d4484e966d87723415cc8262c5d9c2/wrapt-2.1.2-cp313-cp313t-win_amd64.whl", hash = "sha256:84ce8f1c2104d2f6daa912b1b5b039f331febfeee74f8042ad4e04992bd95c8f", size = 63197, upload-time = "2026-03-06T02:54:41.943Z" }, + { url = "https://files.pythonhosted.org/packages/c0/1c/012d7423c95d0e337117723eb8ecf73c622ce15a97847e84cf3f8f26cd7e/wrapt-2.1.2-cp313-cp313t-win_arm64.whl", hash = "sha256:a93cd767e37faeddbe07d8fc4212d5cba660af59bdb0f6372c93faaa13e6e679", size = 60363, upload-time = "2026-03-06T02:54:48.093Z" }, + { url = "https://files.pythonhosted.org/packages/39/25/e7ea0b417db02bb796182a5316398a75792cd9a22528783d868755e1f669/wrapt-2.1.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1370e516598854e5b4366e09ce81e08bfe94d42b0fd569b88ec46cc56d9164a9", size = 61418, upload-time = "2026-03-06T02:53:55.706Z" }, + { url = "https://files.pythonhosted.org/packages/ec/0f/fa539e2f6a770249907757eaeb9a5ff4deb41c026f8466c1c6d799088a9b/wrapt-2.1.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6de1a3851c27e0bd6a04ca993ea6f80fc53e6c742ee1601f486c08e9f9b900a9", size = 61914, upload-time = "2026-03-06T02:52:53.37Z" }, + { url = "https://files.pythonhosted.org/packages/53/37/02af1867f5b1441aaeda9c82deed061b7cd1372572ddcd717f6df90b5e93/wrapt-2.1.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:de9f1a2bbc5ac7f6012ec24525bdd444765a2ff64b5985ac6e0692144838542e", size = 120417, upload-time = "2026-03-06T02:54:30.74Z" }, + { url = "https://files.pythonhosted.org/packages/c3/b7/0138a6238c8ba7476c77cf786a807f871672b37f37a422970342308276e7/wrapt-2.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:970d57ed83fa040d8b20c52fe74a6ae7e3775ae8cff5efd6a81e06b19078484c", size = 122797, upload-time = "2026-03-06T02:54:51.539Z" }, + { url = "https://files.pythonhosted.org/packages/e1/ad/819ae558036d6a15b7ed290d5b14e209ca795dd4da9c58e50c067d5927b0/wrapt-2.1.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3969c56e4563c375861c8df14fa55146e81ac11c8db49ea6fb7f2ba58bc1ff9a", size = 117350, upload-time = "2026-03-06T02:54:37.651Z" }, + { url = "https://files.pythonhosted.org/packages/8b/2d/afc18dc57a4600a6e594f77a9ae09db54f55ba455440a54886694a84c71b/wrapt-2.1.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:57d7c0c980abdc5f1d98b11a2aa3bb159790add80258c717fa49a99921456d90", size = 121223, upload-time = "2026-03-06T02:54:35.221Z" }, + { url = "https://files.pythonhosted.org/packages/b9/5b/5ec189b22205697bc56eb3b62aed87a1e0423e9c8285d0781c7a83170d15/wrapt-2.1.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:776867878e83130c7a04237010463372e877c1c994d449ca6aaafeab6aab2586", size = 116287, upload-time = "2026-03-06T02:54:19.654Z" }, + { url = "https://files.pythonhosted.org/packages/f7/2d/f84939a7c9b5e6cdd8a8d0f6a26cabf36a0f7e468b967720e8b0cd2bdf69/wrapt-2.1.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:fab036efe5464ec3291411fabb80a7a39e2dd80bae9bcbeeca5087fdfa891e19", size = 119593, upload-time = "2026-03-06T02:54:16.697Z" }, + { url = "https://files.pythonhosted.org/packages/0b/fe/ccd22a1263159c4ac811ab9374c061bcb4a702773f6e06e38de5f81a1bdc/wrapt-2.1.2-cp314-cp314-win32.whl", hash = "sha256:e6ed62c82ddf58d001096ae84ce7f833db97ae2263bff31c9b336ba8cfe3f508", size = 58631, upload-time = "2026-03-06T02:53:06.498Z" }, + { url = "https://files.pythonhosted.org/packages/65/0a/6bd83be7bff2e7efaac7b4ac9748da9d75a34634bbbbc8ad077d527146df/wrapt-2.1.2-cp314-cp314-win_amd64.whl", hash = "sha256:467e7c76315390331c67073073d00662015bb730c566820c9ca9b54e4d67fd04", size = 60875, upload-time = "2026-03-06T02:53:50.252Z" }, + { url = "https://files.pythonhosted.org/packages/6c/c0/0b3056397fe02ff80e5a5d72d627c11eb885d1ca78e71b1a5c1e8c7d45de/wrapt-2.1.2-cp314-cp314-win_arm64.whl", hash = "sha256:da1f00a557c66225d53b095a97eace0fc5349e3bfda28fa34ffae238978ee575", size = 59164, upload-time = "2026-03-06T02:53:59.128Z" }, + { url = "https://files.pythonhosted.org/packages/71/ed/5d89c798741993b2371396eb9d4634f009ff1ad8a6c78d366fe2883ea7a6/wrapt-2.1.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:62503ffbc2d3a69891cf29beeaccdb4d5e0a126e2b6a851688d4777e01428dbb", size = 63163, upload-time = "2026-03-06T02:52:54.873Z" }, + { url = "https://files.pythonhosted.org/packages/c6/8c/05d277d182bf36b0a13d6bd393ed1dec3468a25b59d01fba2dd70fe4d6ae/wrapt-2.1.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c7e6cd120ef837d5b6f860a6ea3745f8763805c418bb2f12eeb1fa6e25f22d22", size = 63723, upload-time = "2026-03-06T02:52:56.374Z" }, + { url = "https://files.pythonhosted.org/packages/f4/27/6c51ec1eff4413c57e72d6106bb8dec6f0c7cdba6503d78f0fa98767bcc9/wrapt-2.1.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3769a77df8e756d65fbc050333f423c01ae012b4f6731aaf70cf2bef61b34596", size = 152652, upload-time = "2026-03-06T02:53:23.79Z" }, + { url = "https://files.pythonhosted.org/packages/db/4c/d7dd662d6963fc7335bfe29d512b02b71cdfa23eeca7ab3ac74a67505deb/wrapt-2.1.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a76d61a2e851996150ba0f80582dd92a870643fa481f3b3846f229de88caf044", size = 158807, upload-time = "2026-03-06T02:53:35.742Z" }, + { url = "https://files.pythonhosted.org/packages/b4/4d/1e5eea1a78d539d346765727422976676615814029522c76b87a95f6bcdd/wrapt-2.1.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6f97edc9842cf215312b75fe737ee7c8adda75a89979f8e11558dfff6343cc4b", size = 146061, upload-time = "2026-03-06T02:52:57.574Z" }, + { url = "https://files.pythonhosted.org/packages/89/bc/62cabea7695cd12a288023251eeefdcb8465056ddaab6227cb78a2de005b/wrapt-2.1.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4006c351de6d5007aa33a551f600404ba44228a89e833d2fadc5caa5de8edfbf", size = 155667, upload-time = "2026-03-06T02:53:39.422Z" }, + { url = "https://files.pythonhosted.org/packages/e9/99/6f2888cd68588f24df3a76572c69c2de28287acb9e1972bf0c83ce97dbc1/wrapt-2.1.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:a9372fc3639a878c8e7d87e1556fa209091b0a66e912c611e3f833e2c4202be2", size = 144392, upload-time = "2026-03-06T02:54:22.41Z" }, + { url = "https://files.pythonhosted.org/packages/40/51/1dfc783a6c57971614c48e361a82ca3b6da9055879952587bc99fe1a7171/wrapt-2.1.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3144b027ff30cbd2fca07c0a87e67011adb717eb5f5bd8496325c17e454257a3", size = 150296, upload-time = "2026-03-06T02:54:07.848Z" }, + { url = "https://files.pythonhosted.org/packages/6c/38/cbb8b933a0201076c1f64fc42883b0023002bdc14a4964219154e6ff3350/wrapt-2.1.2-cp314-cp314t-win32.whl", hash = "sha256:3b8d15e52e195813efe5db8cec156eebe339aaf84222f4f4f051a6c01f237ed7", size = 60539, upload-time = "2026-03-06T02:54:00.594Z" }, + { url = "https://files.pythonhosted.org/packages/82/dd/e5176e4b241c9f528402cebb238a36785a628179d7d8b71091154b3e4c9e/wrapt-2.1.2-cp314-cp314t-win_amd64.whl", hash = "sha256:08ffa54146a7559f5b8df4b289b46d963a8e74ed16ba3687f99896101a3990c5", size = 63969, upload-time = "2026-03-06T02:54:39Z" }, + { url = "https://files.pythonhosted.org/packages/5c/99/79f17046cf67e4a95b9987ea129632ba8bcec0bc81f3fb3d19bdb0bd60cd/wrapt-2.1.2-cp314-cp314t-win_arm64.whl", hash = "sha256:72aaa9d0d8e4ed0e2e98019cea47a21f823c9dd4b43c7b77bba6679ffcca6a00", size = 60554, upload-time = "2026-03-06T02:53:14.132Z" }, + { url = "https://files.pythonhosted.org/packages/1a/c7/8528ac2dfa2c1e6708f647df7ae144ead13f0a31146f43c7264b4942bf12/wrapt-2.1.2-py3-none-any.whl", hash = "sha256:b8fd6fa2b2c4e7621808f8c62e8317f4aae56e59721ad933bac5239d913cf0e8", size = 43993, upload-time = "2026-03-06T02:53:12.905Z" }, +] diff --git a/examples/NLP_Examples/x_why_for_text_smile.ipynb b/examples/NLP_Examples/x_why_for_text_smile.ipynb new file mode 100644 index 0000000..081d869 --- /dev/null +++ b/examples/NLP_Examples/x_why_for_text_smile.ipynb @@ -0,0 +1,42041 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "6c7ed438", + "metadata": { + "id": "6c7ed438" + }, + "source": [ + "## Install libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d1ede52c", + "metadata": { + "id": "d1ede52c" + }, + "outputs": [], + "source": [ + "!pip install -q pandas numpy scikit-learn plotly matplotlib nltk gensim lime requests pot shap" + ] + }, + { + "cell_type": "markdown", + "id": "6b8cbca7", + "metadata": { + "id": "6b8cbca7" + }, + "source": [ + "## Import Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "27eaa6aa", + "metadata": { + "id": "27eaa6aa" + }, + "outputs": [], + "source": [ + "import os\n", + "import shutil\n", + "import gzip\n", + "\n", + "import requests\n", + "\n", + "from gensim.models import KeyedVectors\n", + "import gensim.downloader as api" + ] + }, + { + "cell_type": "markdown", + "id": "9e5fa8e5", + "metadata": { + "id": "9e5fa8e5" + }, + "source": [ + "## Text model embedding" + ] + }, + { + "cell_type": "markdown", + "id": "cef8417b", + "metadata": { + "id": "cef8417b" + }, + "source": [ + "### Utility: Fast Download" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e1af23ec", + "metadata": { + "id": "e1af23ec" + }, + "outputs": [], + "source": [ + "def _download_file_fast(url: str, output_path: str) -> None:\n", + " \"\"\"Download a file using streaming requests with a size sanity check.\n", + "\n", + " Args:\n", + " url (str): File URL.\n", + " output_path (str): Destination file path.\n", + "\n", + " Raises:\n", + " IOError: If downloaded file is unexpectedly small.\n", + " requests.exceptions.RequestException: If request fails.\n", + " \"\"\"\n", + " print(f\"Downloading from {url} => {output_path}\")\n", + "\n", + " try:\n", + " response = requests.get(url, stream=True, timeout=300)\n", + " response.raise_for_status()\n", + "\n", + " min_expected_size_bytes: int = 100 * 1024 * 1024 # 100 MB\n", + " downloaded_size: int = 0\n", + "\n", + " with open(output_path, \"wb\") as file:\n", + " for chunk in response.iter_content(chunk_size=8192):\n", + " if chunk:\n", + " file.write(chunk)\n", + " downloaded_size += len(chunk)\n", + "\n", + " if downloaded_size < min_expected_size_bytes:\n", + " raise IOError(\n", + " f\"Downloaded file too small: {downloaded_size / (1024**2):.2f} MB\"\n", + " )\n", + "\n", + " print(f\"Download completed: {downloaded_size / (1024**2):.2f} MB\")\n", + "\n", + " except requests.exceptions.RequestException as error:\n", + " if os.path.exists(output_path):\n", + " os.remove(output_path)\n", + " raise error\n", + "\n", + " except IOError as error:\n", + " if os.path.exists(output_path):\n", + " os.remove(output_path)\n", + " raise error" + ] + }, + { + "cell_type": "markdown", + "id": "1ceace38", + "metadata": { + "id": "1ceace38" + }, + "source": [ + "### Utility: Gzip Extraction" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2ddb37be", + "metadata": { + "id": "2ddb37be" + }, + "outputs": [], + "source": [ + "def _extract_gzip(gzip_path: str, output_path: str) -> None:\n", + " \"\"\"Extract a gzip file.\n", + "\n", + " Args:\n", + " gzip_path (str): Path to .gz file.\n", + " output_path (str): Output file path.\n", + " \"\"\"\n", + " print(f\"Extracting {gzip_path}...\")\n", + "\n", + " with gzip.open(gzip_path, \"rb\") as src, open(output_path, \"wb\") as dst:\n", + " shutil.copyfileobj(src, dst)" + ] + }, + { + "cell_type": "markdown", + "id": "f5ec1c4f", + "metadata": { + "id": "f5ec1c4f" + }, + "source": [ + "### Main Loader Function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "594fc144", + "metadata": { + "id": "594fc144" + }, + "outputs": [], + "source": [ + "def load_embedding_model(\n", + " model_name: str,\n", + " cache_dir: str = \"~/.cache/embeddings\",\n", + " force_download: bool = False,\n", + ") -> KeyedVectors:\n", + " \"\"\"Load a word embedding model with caching and fallback strategies.\n", + "\n", + " Supported models:\n", + " - word2vec-google-news-300\n", + " - glove.840B.300d\n", + " - paragram_300_sl999\n", + "\n", + " Args:\n", + " model_name (str): Name of the embedding model.\n", + " cache_dir (str): Directory for storing cached models.\n", + " force_download (bool): Force re-download.\n", + "\n", + " Returns:\n", + " KeyedVectors: Loaded embedding model.\n", + "\n", + " Raises:\n", + " RuntimeError: If model cannot be loaded.\n", + " \"\"\"\n", + " cache_dir = os.path.expanduser(cache_dir)\n", + " os.makedirs(cache_dir, exist_ok=True)\n", + "\n", + " model_file_map = {\n", + " \"word2vec-google-news-300\": {\n", + " \"file\": \"GoogleNews-vectors-negative300.bin\",\n", + " \"binary\": True,\n", + " \"gensim\": True,\n", + " },\n", + " \"glove.840B.300d\": {\n", + " \"file\": \"glove.840B.300d.txt\",\n", + " \"binary\": False,\n", + " \"gensim\": True,\n", + " },\n", + " \"paragram_300_sl999\": {\n", + " \"file\": \"paragram_300_sl999.txt\",\n", + " \"binary\": False,\n", + " \"gensim\": True,\n", + " },\n", + " }\n", + "\n", + " if model_name not in model_file_map:\n", + " raise ValueError(f\"Unsupported model: {model_name}\")\n", + "\n", + " model_info = model_file_map[model_name]\n", + " model_path = os.path.join(cache_dir, model_info[\"file\"])\n", + "\n", + " # === 1. Load from cache ===\n", + " if os.path.exists(model_path) and not force_download:\n", + " print(f\"Loading from cache: {model_path}\")\n", + " return KeyedVectors.load_word2vec_format(\n", + " model_path,\n", + " binary=model_info[\"binary\"],\n", + " )\n", + "\n", + " # === 2. Try gensim downloader ===\n", + " if model_info[\"gensim\"]:\n", + " print(f\"Loading via gensim: {model_name}\")\n", + " try:\n", + " model = api.load(model_name)\n", + "\n", + " print(f\"Saving to cache: {model_path}\")\n", + " model.save_word2vec_format(\n", + " model_path,\n", + " binary=model_info[\"binary\"],\n", + " )\n", + " return model\n", + "\n", + " except Exception as error:\n", + " print(f\"Gensim failed: {error}\")\n", + "\n", + " # === 3. Manual fallback (ONLY for GoogleNews) ===\n", + " if model_name == \"word2vec-google-news-300\":\n", + " gz_path = model_path + \".gz\"\n", + " download_url = (\n", + " \"https://public.ukp.informatik.tu-darmstadt.de/\"\n", + " \"reimers/wordembeddings/GoogleNews-vectors-negative300.bin.gz\"\n", + " )\n", + "\n", + " try:\n", + " _download_file_fast(download_url, gz_path)\n", + " _extract_gzip(gz_path, model_path)\n", + "\n", + " return KeyedVectors.load_word2vec_format(model_path, binary=True)\n", + "\n", + " except Exception as error:\n", + " raise RuntimeError(\"Failed to load GoogleNews model\") from error\n", + "\n", + " raise RuntimeError(f\"Failed to load model: {model_name}\")" + ] + }, + { + "cell_type": "markdown", + "id": "71f3f0c9", + "metadata": { + "id": "71f3f0c9" + }, + "source": [ + "## SMILE Text Explanation using LIME" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8da8acbd", + "metadata": { + "id": "8da8acbd" + }, + "outputs": [], + "source": [ + "from typing import Callable, Literal, Optional, Tuple, List, Dict\n", + "import numpy as np\n", + "\n", + "from lime.lime_text import LimeTextExplainer\n", + "from gensim.models import KeyedVectors\n", + "\n", + "EmbeddingName = Literal[\n", + " \"word2vec-google-news-300\",\n", + " \"glove.840B.300d\",\n", + " \"paragram_300_sl999\",\n", + "]\n", + "\n", + "\n", + "class SmileTextExplainer(LimeTextExplainer):\n", + " \"\"\"SMILE explainer using semantic (WMD) distance instead of cosine.\n", + "\n", + " This class extends LIME by replacing cosine distance with Word Mover's\n", + " Distance (WMD), with optimizations for practical performance.\n", + "\n", + " Args:\n", + " embedding_name: Embedding model name.\n", + " cache_dir: Directory to cache embeddings.\n", + " use_wmd_cache: Cache WMD distances for speed.\n", + " **kwargs: Passed to LimeTextExplainer.\n", + " \"\"\"\n", + "\n", + " def __init__(\n", + " self,\n", + " embedding_name: EmbeddingName = \"word2vec-google-news-300\",\n", + " cache_dir: str = \"~/.cache/embeddings\",\n", + " use_wmd_cache: bool = True,\n", + " **kwargs,\n", + " ) -> None:\n", + " super().__init__(**kwargs)\n", + " self.embedding_name: EmbeddingName = embedding_name\n", + " self.cache_dir: str = cache_dir\n", + " self.use_wmd_cache: bool = use_wmd_cache\n", + "\n", + " self.embedding_model: Optional[KeyedVectors] = None\n", + " self._wmd_cache: Dict[Tuple[str, str], float] = {}\n", + "\n", + " def _get_embedding(self) -> KeyedVectors:\n", + " \"\"\"Lazy-load the embedding model and ensure internal norms are filled.\"\"\"\n", + " if self.embedding_model is None:\n", + " # Assuming load_embedding_model is defined globally in your environment\n", + " self.embedding_model = load_embedding_model(\n", + " model_name=self.embedding_name,\n", + " cache_dir=self.cache_dir,\n", + " )\n", + " self.embedding_model.fill_norms(force=True)\n", + "\n", + " return self.embedding_model\n", + "\n", + " def _wmd_distance(\n", + " self,\n", + " doc1_tokens: List[str],\n", + " doc2_tokens: List[str],\n", + " ) -> float:\n", + " \"\"\"Compute (cached) WMD distance between two token lists.\n", + "\n", + " Args:\n", + " doc1_tokens: List of tokens from the first document.\n", + " doc2_tokens: List of tokens from the second document.\n", + "\n", + " Returns:\n", + " The Word Mover's Distance between the documents, or inf if OOV.\n", + " \"\"\"\n", + " key = (\" \".join(doc1_tokens), \" \".join(doc2_tokens))\n", + "\n", + " if self.use_wmd_cache and key in self._wmd_cache:\n", + " return self._wmd_cache[key]\n", + "\n", + " model = self._get_embedding()\n", + "\n", + " try:\n", + " distance = model.wmdistance(doc1_tokens, doc2_tokens)\n", + " except Exception:\n", + " # Fallback if tokens are Out-Of-Vocabulary (OOV)\n", + " distance = float(\"inf\")\n", + "\n", + " if self.use_wmd_cache:\n", + " self._wmd_cache[key] = distance\n", + "\n", + " return distance\n", + "\n", + " def _batch_wmd(\n", + " self,\n", + " original_tokens: List[str],\n", + " perturbed_texts: List[str],\n", + " ) -> np.ndarray:\n", + " \"\"\"Compute WMD distances for all perturbations efficiently.\n", + "\n", + " Args:\n", + " original_tokens: Tokens of the base unperturbed text.\n", + " perturbed_texts: List of raw strings representing perturbed sentences.\n", + "\n", + " Returns:\n", + " A numpy array of computed distances.\n", + " \"\"\"\n", + " distances: List[float] = []\n", + "\n", + " for text in perturbed_texts:\n", + " tokens = text.split()\n", + " dist = self._wmd_distance(original_tokens, tokens)\n", + " distances.append(dist)\n", + "\n", + " return np.array(distances)\n", + "\n", + " def _LimeTextExplainer__data_labels_distances( # noqa: N802\n", + " self,\n", + " indexed_string,\n", + " classifier_fn: Callable,\n", + " num_samples: int,\n", + " distance_metric: str = \"cosine\",\n", + " ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:\n", + " \"\"\"Override LIME distance with WMD-based semantic distance safely.\n", + "\n", + " Args:\n", + " indexed_string: The internal LIME IndexedString instance.\n", + " classifier_fn: Prediction function returning probabilities.\n", + " num_samples: Total number of perturbation samples to generate.\n", + " distance_metric: Unused parameter kept for signature matching.\n", + "\n", + " Returns:\n", + " A tuple containing the perturbation matrix, predictions, and distances.\n", + " \"\"\"\n", + " doc_size = indexed_string.num_words()\n", + " sample = self.random_state.randint(1, doc_size + 1, num_samples - 1)\n", + "\n", + " data = np.ones((num_samples, doc_size))\n", + " data[0] = np.ones(doc_size)\n", + "\n", + " features_range = range(doc_size)\n", + " inverse_data: List[str] = [indexed_string.raw_string()]\n", + "\n", + " for i, size in enumerate(sample, start=1):\n", + " inactive = self.random_state.choice(\n", + " features_range, size, replace=False\n", + " )\n", + " data[i, inactive] = 0\n", + " inverse_data.append(\n", + " indexed_string.inverse_removing(inactive)\n", + " )\n", + "\n", + " # === Model predictions ===\n", + " labels = classifier_fn(inverse_data)\n", + "\n", + " # === SMILE distance (WMD) ===\n", + " original_tokens = inverse_data[0].split()\n", + " distances = self._batch_wmd(original_tokens, inverse_data)\n", + "\n", + " # === Safe Handle for Infinity / NaN values ===\n", + " # Isolate valid, finite measurements to calculate a safe maximum scale\n", + " finite_mask = np.isfinite(distances)\n", + " finite_distances = distances[finite_mask]\n", + "\n", + " if len(finite_distances) > 0:\n", + " max_finite_distance = np.max(finite_distances)\n", + " # Use a large finite fallback value (max + a buffer) so that it\n", + " # naturally results in a 0 weight without overflowing NumPy's squaring operation\n", + " safe_fallback = max_finite_distance + 50.0\n", + " distances[~finite_mask] = safe_fallback\n", + " else:\n", + " # Edge case fallback if everything in the batch ends up OOV\n", + " distances[:] = 100.0\n", + "\n", + " distances = distances.reshape(-1)\n", + "\n", + " return data, labels, distances" + ] + }, + { + "cell_type": "markdown", + "id": "3673e4ef", + "metadata": { + "id": "3673e4ef" + }, + "source": [ + "## Data Loading" + ] + }, + { + "cell_type": "markdown", + "id": "282ee621", + "metadata": { + "id": "282ee621" + }, + "source": [ + "### Load Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "33a1c2bb", + "metadata": { + "id": "33a1c2bb" + }, + "outputs": [], + "source": [ + "from typing import List, Tuple\n", + "from sklearn.datasets import fetch_20newsgroups\n", + "\n", + "\n", + "def load_newsgroups_data(\n", + " categories: List[str],\n", + ") -> Tuple:\n", + " \"\"\"Load train and test subsets of 20 Newsgroups dataset.\n", + "\n", + " Args:\n", + " categories (List[str]): List of category names.\n", + "\n", + " Returns:\n", + " Tuple: Train and test datasets.\n", + " \"\"\"\n", + " train_data = fetch_20newsgroups(subset=\"train\", categories=categories)\n", + " test_data = fetch_20newsgroups(subset=\"test\", categories=categories)\n", + " return train_data, test_data\n", + "\n", + "\n", + "categories = [\"alt.atheism\", \"soc.religion.christian\"]\n", + "class_names = [\"atheism\", \"christian\"]\n", + "\n", + "newsgroups_train, newsgroups_test = load_newsgroups_data(categories)" + ] + }, + { + "cell_type": "markdown", + "id": "86178530", + "metadata": { + "id": "86178530" + }, + "source": [ + "## Feature Engineering" + ] + }, + { + "cell_type": "markdown", + "id": "3eb12300", + "metadata": { + "id": "3eb12300" + }, + "source": [ + "### TF-IDF Vectorization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "91ce2b0d", + "metadata": { + "id": "91ce2b0d" + }, + "outputs": [], + "source": [ + "import sklearn.feature_extraction.text as text\n", + "\n", + "\n", + "def build_vectorizer():\n", + " \"\"\"Create TF-IDF vectorizer.\n", + "\n", + " Returns:\n", + " TfidfVectorizer: Configured vectorizer.\n", + " \"\"\"\n", + " return text.TfidfVectorizer(lowercase=False)\n", + "\n", + "\n", + "vectorizer = build_vectorizer()\n", + "\n", + "train_vectors = vectorizer.fit_transform(newsgroups_train.data)\n", + "test_vectors = vectorizer.transform(newsgroups_test.data)" + ] + }, + { + "cell_type": "markdown", + "id": "1d8fbcbc", + "metadata": { + "id": "1d8fbcbc" + }, + "source": [ + "## Model Training" + ] + }, + { + "cell_type": "markdown", + "id": "e0604d01", + "metadata": { + "id": "e0604d01" + }, + "source": [ + "### Train Classifier" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c5db0a8a", + "metadata": { + "id": "c5db0a8a" + }, + "outputs": [], + "source": [ + "import sklearn.ensemble as ensemble\n", + "\n", + "\n", + "def train_random_forest(train_vectors, targets):\n", + " \"\"\"Train RandomForest classifier.\n", + "\n", + " Args:\n", + " train_vectors: Feature matrix.\n", + " targets: Target labels.\n", + "\n", + " Returns:\n", + " RandomForestClassifier: Trained model.\n", + " \"\"\"\n", + " model = ensemble.RandomForestClassifier(n_estimators=500)\n", + " model.fit(train_vectors, targets)\n", + " return model\n", + "\n", + "\n", + "rf = train_random_forest(train_vectors, newsgroups_train.target)" + ] + }, + { + "cell_type": "markdown", + "id": "3f1cecdc", + "metadata": { + "id": "3f1cecdc" + }, + "source": [ + "## Model Evaluation" + ] + }, + { + "cell_type": "markdown", + "id": "7dd8ff42", + "metadata": { + "id": "7dd8ff42" + }, + "source": [ + "### Compute F1 Score" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e0cfa548", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "e0cfa548", + "outputId": "02c660a4-043b-4901-9eeb-43f07913fd36" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "F1 Score: 0.9231\n" + ] + } + ], + "source": [ + "import sklearn.metrics as metrics\n", + "\n", + "\n", + "def evaluate_model(model, test_vectors, targets) -> float:\n", + " \"\"\"Evaluate model using F1 score.\n", + "\n", + " Args:\n", + " model: Trained model.\n", + " test_vectors: Feature matrix.\n", + " targets: True labels.\n", + "\n", + " Returns:\n", + " float: F1 score.\n", + " \"\"\"\n", + " predictions = model.predict(test_vectors)\n", + " return metrics.f1_score(targets, predictions, average=\"binary\")\n", + "\n", + "\n", + "f1 = evaluate_model(rf, test_vectors, newsgroups_test.target)\n", + "print(f\"F1 Score: {f1:.4f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "9961fccf", + "metadata": { + "id": "9961fccf" + }, + "source": [ + "## Pipeline Construction" + ] + }, + { + "cell_type": "markdown", + "id": "eb4d790c", + "metadata": { + "id": "eb4d790c" + }, + "source": [ + "### Build Sklearn Pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4c50eb62", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "4c50eb62", + "outputId": "c92c78a4-b823-4dce-9cd0-5b050d3cbe3b" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[0.274 0.726]]\n" + ] + } + ], + "source": [ + "from sklearn.pipeline import make_pipeline\n", + "\n", + "\n", + "def build_pipeline(vectorizer, model):\n", + " \"\"\"Create sklearn pipeline.\n", + "\n", + " Args:\n", + " vectorizer: Text vectorizer.\n", + " model: Trained model.\n", + "\n", + " Returns:\n", + " Pipeline: Combined pipeline.\n", + " \"\"\"\n", + " return make_pipeline(vectorizer, model)\n", + "\n", + "\n", + "pipeline_model = build_pipeline(vectorizer, rf)\n", + "\n", + "print(pipeline_model.predict_proba([newsgroups_test.data[0]]))" + ] + }, + { + "cell_type": "markdown", + "id": "5927a244", + "metadata": { + "id": "5927a244" + }, + "source": [ + "## SMILE Explanation instance" + ] + }, + { + "cell_type": "markdown", + "id": "7151d89b", + "metadata": { + "id": "7151d89b" + }, + "source": [ + "### Generate Explanation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "94565f0d", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "94565f0d", + "outputId": "b9400c46-0743-425c-a5c7-30bfe4175444" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Loading via gensim: word2vec-google-news-300\n", + "[==================================================] 100.0% 1662.8/1662.8MB downloaded\n", + "Saving to cache: /root/.cache/google_news_vectors/GoogleNews-vectors-negative300.bin\n", + "Document id: 50\n", + "Probability(christian) = 0.69\n", + "True class: christian\n", + "CPU times: user 4min 27s, sys: 38 s, total: 5min 5s\n", + "Wall time: 6min 33s\n" + ] + } + ], + "source": [ + "%%time\n", + "explainer = SmileTextExplainer(\n", + " embedding_name=\"word2vec-google-news-300\",\n", + " cache_dir=\"~/.cache/google_news_vectors\",\n", + " class_names=class_names,\n", + ")\n", + "\n", + "idx = 50\n", + "exp = explainer.explain_instance(\n", + " newsgroups_test.data[idx],\n", + " pipeline_model.predict_proba,\n", + " num_features=6,\n", + ")\n", + "\n", + "\n", + "print(f\"Document id: {idx}\")\n", + "print(\n", + " \"Probability(christian) =\",\n", + " pipeline_model.predict_proba([newsgroups_test.data[idx]])[0, 1],\n", + ")\n", + "print(\"True class:\", class_names[newsgroups_test.target[idx]])" + ] + }, + { + "cell_type": "markdown", + "id": "15f76dc8", + "metadata": { + "id": "15f76dc8" + }, + "source": [ + "## Feature Impact Analysis" + ] + }, + { + "cell_type": "markdown", + "id": "ffe50e98", + "metadata": { + "id": "ffe50e98" + }, + "source": [ + "### Remove Features and Compare Predictions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad2e1a54", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ad2e1a54", + "outputId": "09e05c76-f8d2-4bc7-a023-45c391b96e4c" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Original prediction: 0.69\n", + "Modified prediction: 0.69\n", + "Difference: 0.0\n" + ] + } + ], + "source": [ + "def analyze_feature_removal(\n", + " model,\n", + " vectorizer,\n", + " test_vectors,\n", + " index: int,\n", + " words_to_remove: List[str],\n", + ") -> None:\n", + " \"\"\"Analyze impact of removing specific words.\n", + "\n", + " Args:\n", + " model: Trained model.\n", + " vectorizer: TF-IDF vectorizer.\n", + " test_vectors: Feature matrix.\n", + " index (int): Sample index.\n", + " words_to_remove (List[str]): Words to remove.\n", + " \"\"\"\n", + " original_prob = model.predict_proba(test_vectors[index])[0, 1]\n", + " print(\"Original prediction:\", original_prob)\n", + "\n", + " # convert to LIL format\n", + " modified_vector = test_vectors[index].copy().tolil()\n", + "\n", + " for word in words_to_remove:\n", + " if word in vectorizer.vocabulary_:\n", + " col_idx = vectorizer.vocabulary_[word]\n", + " modified_vector[0, col_idx] = 0\n", + "\n", + " # convert back to CSR for model inference\n", + " modified_vector = modified_vector.tocsr()\n", + "\n", + " new_prob = model.predict_proba(modified_vector)[0, 1]\n", + "\n", + " print(\"Modified prediction:\", new_prob)\n", + " print(\"Difference:\", new_prob - original_prob)\n", + "\n", + "\n", + "analyze_feature_removal(\n", + " rf,\n", + " vectorizer,\n", + " test_vectors,\n", + " idx,\n", + " words_to_remove=[\"Posting\", \"Host\"],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "1930cf3b", + "metadata": { + "id": "1930cf3b" + }, + "source": [ + "## Visualization" + ] + }, + { + "cell_type": "markdown", + "id": "b2daac57", + "metadata": { + "id": "b2daac57" + }, + "source": [ + "### Plot Explanation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "88109d6d", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 452 + }, + "id": "88109d6d", + "outputId": "5078bfaf-63df-4ac3-a5b1-9adec9916484" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAGzCAYAAAA/lFPrAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAO3VJREFUeJzt3Xl8jWf+//H3SSKLRBKxJkRiC6FEaCmqKK1qtbZijDai06JlFGVaMx1Lv51qLVPqO7S6hG9nyrSqy69aRYmx1VY09l1ULbUltiYk1++PfnO+jsTVhJwcidfz8bgfnPu+7vt8riu3nLf7vs45DmOMEQAAAPLk5ekCAAAAbmWEJQAAAAvCEgAAgAVhCQAAwIKwBAAAYEFYAgAAsCAsAQAAWBCWAAAALAhLAAAAFoQlwE0cDofGjh3r6TKuq02bNmrTpo2ny/hN0dHRSkxM9Mhzr1+/Xi1atFBgYKAcDoc2b97skTpyHDx4UA6HQ7NmzfJoHTciMTFRQUFBN3WMwu5/cnKyHA6HkpOTC+V4KLkISyjWZs2aJYfDoQ0bNni6FNyE1atXa+zYsTp79qynS3G6fPmyevToodOnT+uNN97QBx98oKioKE+XhRswffr0Yhkwcevw8XQBALB69WqNGzdOiYmJCg0Nddm2a9cueXkV/f/r9u3bp0OHDumdd97RU089VeTPj9yioqJ06dIllSpVqkD7TZ8+XeXLl891hfLee+/VpUuX5OvrW4hVoiTiyhKAW5qfn1+BXxwLw4kTJyQpV3i7GRcuXCi0Y91Orly5oszMTDkcDvn7+8vb27tQjuvl5SV/f3+PhHEUL5whuC1s2rRJHTt2VHBwsIKCgtSuXTt99913udqdPXtWw4YNU3R0tPz8/FS1alUlJCTo5MmTkqTMzEyNHj1aTZo0UUhIiAIDA9WqVSstW7bshmvLyMjQmDFjVKtWLfn5+SkyMlJ/+tOflJGR4WzTt29f+fv7a8eOHS77dujQQWXLltVPP/0k6f9uS/7nP//RgAEDVK5cOQUHByshIUFnzpyx1pHfvuXMG5k0aZJmzpypmjVrys/PT3fddZfWr1/v0vaHH35QYmKiatSoIX9/f1WuXFlPPvmkTp065WwzduxYjRw5UpJUvXp1ORwOORwOHTx4UFLec5b279+vHj16KCwsTKVLl9bdd9+tBQsWuLTJmY/y0Ucf6W9/+5uqVq0qf39/tWvXTnv37rWORWJiolq3bi1J6tGjhxwOh8v8rqVLl6pVq1YKDAxUaGioOnfunOtnM3bsWDkcDm3fvl2///3vVbZsWd1zzz3W5/2t8y8v+RljSTp37pyGDh3qPHbFihV1//336/vvv3e22bNnj7p3767KlSvL399fVatW1e9+9zulpaVZ65aktWvX6qGHHlLZsmUVGBiohg0baurUqbnaHTlyRF26dFFQUJAqVKigESNGKCsry7n96vNrypQpzvNr+/btec5ZOnbsmPr166eqVavKz89P4eHh6ty5s8v5s23bNi1fvtx5buX8LPOas7RixQr16NFD1apVc/57HDZsmC5duuTSj5w5WL/VH5QM3IZDibdt2za1atVKwcHB+tOf/qRSpUrp7bffVps2bbR8+XI1a9ZMknT+/Hm1atVKO3bs0JNPPqnGjRvr5MmT+uKLL/Tjjz+qfPnySk9P17vvvqvevXvr6aef1rlz5/Tee++pQ4cOWrdunRo1alSg2rKzs/Xoo49q5cqV6t+/v2JjY5WSkqI33nhDu3fv1meffSZJmjp1qpYuXaq+fftqzZo18vb21ttvv61Fixbpgw8+UEREhMtxBw8erNDQUI0dO1a7du3SjBkzdOjQIeeLQ14K2rcPP/xQ586d04ABA+RwODRhwgR169ZN+/fvd14JWrx4sfbv369+/fqpcuXK2rZtm2bOnKlt27bpu+++k8PhULdu3bR7927NmTNHb7zxhsqXLy9JqlChQp51Hj9+XC1atNDFixc1ZMgQlStXTrNnz9ajjz6qefPmqWvXri7tX3vtNXl5eWnEiBFKS0vThAkT1KdPH61du/a6P5cBAwaoSpUqevXVVzVkyBDdddddqlSpkiRpyZIl6tixo2rUqKGxY8fq0qVLmjZtmlq2bKnvv/9e0dHRLsfq0aOHateurVdffVXGmOs+Z37Ov7zkZ4wlaeDAgZo3b54GDx6sevXq6dSpU1q5cqV27Nihxo0bKzMzUx06dFBGRob++Mc/qnLlyjpy5Ii+/PJLnT17ViEhIdetffHixerUqZPCw8P13HPPqXLlytqxY4e+/PJLPffcc852WVlZ6tChg5o1a6ZJkyZpyZIlmjx5smrWrKlnnnnG5ZhJSUn65Zdf1L9/f/n5+SksLEzZ2dm5nrt79+7atm2b/vjHPyo6OlonTpzQ4sWLlZqaqujoaE2ZMkV//OMfFRQUpL/85S+S5PxZ5uXjjz/WxYsX9cwzz6hcuXJat26dpk2bph9//FEff/yxS9uC9AfFnAGKsaSkJCPJrF+//rptunTpYnx9fc2+ffuc63766SdTpkwZc++99zrXjR492kgy8+fPz3WM7OxsY4wxV65cMRkZGS7bzpw5YypVqmSefPJJl/WSzJgxY6z1f/DBB8bLy8usWLHCZf1bb71lJJlVq1Y5133zzTdGknnllVfM/v37TVBQkOnSpYvLfjnj0aRJE5OZmelcP2HCBCPJfP755851rVu3Nq1bt3Y+zm/fDhw4YCSZcuXKmdOnTzvXf/7550aS+X//7/851128eDFXn+fMmWMkmf/85z/OdRMnTjSSzIEDB3K1j4qKMn379nU+Hjp0qJHkMmbnzp0z1atXN9HR0SYrK8sYY8yyZcuMJBMbG+vSr6lTpxpJJiUlJddzXS1n/48//thlfaNGjUzFihXNqVOnnOu2bNlivLy8TEJCgnPdmDFjjCTTu3dv6/PkyM/5lzP2SUlJzm35HeOQkBAzaNCg6z7/pk2b8uzvb7ly5YqpXr26iYqKMmfOnMmzbmOM6du3r5FkXn75ZZc28fHxpkmTJs7HOX0MDg42J06ccGl7bf/PnDljJJmJEydaa6xfv77LuZ4j52e8bNky57q8xnP8+PHG4XCYQ4cOFbg/KBm4DYcSLSsrS4sWLVKXLl1Uo0YN5/rw8HD9/ve/18qVK5Weni5J+uSTTxQXF5fryoQk5//Ovb29nZNBs7Ozdfr0aV25ckV33nmny+2M/Pr4448VGxurunXr6uTJk87lvvvukySXW2APPPCABgwYoJdfflndunWTv7+/3n777TyP279/f5d5Ps8884x8fHz01VdfXbeWgvatV69eKlu2rPNxq1atJP16iyxHQECA8++//PKLTp48qbvvvluSbmi8JOmrr75S06ZNXW5pBQUFqX///jp48KC2b9/u0r5fv34uE3jzqjO/jh49qs2bNysxMVFhYWHO9Q0bNtT999+f5/gOHDgwX8fOz/mXl/yOcWhoqNauXeu8ZXutnCtH33zzjS5evJivmqVfb3EfOHBAQ4cOzTW/K6+6rx2PVq1a5fmz6N69+3WvLuYICAiQr6+vkpOTf/M2c35dPZ4XLlzQyZMn1aJFCxljtGnTplzt89sfFG+EJZRoP//8sy5evKg6derk2hYbG6vs7GwdPnxY0q/vfrrjjjt+85izZ89Ww4YN5e/vr3LlyqlChQpasGBBvuZ1XGvPnj3atm2bKlSo4LLExMRI+r9JxjkmTZqksLAwbd68WW+++aYqVqyY53Fr167t8jgoKEjh4eHOeRyF0bdq1aq5PM4JTle/aJ0+fVrPPfecKlWqpICAAFWoUEHVq1eXpBsaL0k6dOjQdX+eOdsLWmdBnlvSdZ//5MmTuSZx5/T3t+T3/LtWfsd4woQJ2rp1qyIjI9W0aVONHTvW5UW9evXqGj58uN59912VL19eHTp00D/+8Y/f/Dnt27dPkvJVu7+/f64AVLZs2Tx/FvkZNz8/P73++uv6+uuvValSJd17772aMGGCjh079pv7Xk9qaqozDOfMQ8qZv3btWBSkPyjeCEtAAfzzn/9UYmKiatasqffee08LFy7U4sWLdd999+U5n+K3ZGdnq0GDBlq8eHGey7PPPuvSftOmTc4AlZKSUih9ylHQvl3vHUnmqnk5PXv21DvvvKOBAwdq/vz5WrRokRYuXChJNzReNyI/dbrT1Vcq3CG/Y9yzZ0/t379f06ZNU0REhCZOnKj69evr66+/draZPHmyfvjhB/35z3/WpUuXNGTIENWvX18//vhjodRakHex5Xfchg4dqt27d2v8+PHy9/fXX//6V8XGxuZ5Fei3ZGVl6f7779eCBQv0wgsv6LPPPtPixYudE8qvPWcL6115uPUxwRslWoUKFVS6dGnt2rUr17adO3fKy8tLkZGRkqSaNWtq69at1uPNmzdPNWrU0Pz5811uMYwZM+aG6qtZs6a2bNmidu3aWW+1SL/eEujXr5/q1aunFi1aaMKECeratavuuuuuXG337Nmjtm3bOh+fP39eR48e1UMPPXTd4xd2386cOaNvv/1W48aN0+jRo11qu9Zv9f1qUVFR1/155mx3l5xjX+/5y5cvr8DAwBs6dn7Ov2sVZIylX28/P/vss3r22Wd14sQJNW7cWH/729/UsWNHZ5sGDRqoQYMGeumll7R69Wq1bNlSb731ll555ZXr1i1JW7duVfv27QtUf2GpWbOmnn/+eT3//PPas2ePGjVqpMmTJ+uf//ynpPyfXykpKdq9e7dmz56thIQE5/rFixe7pW4UH1xZQonm7e2tBx54QJ9//rnLLajjx4/rww8/1D333KPg4GBJv86R2LJliz799NNcx8m5CpHzP8mrr0qsXbtWa9asuaH6evbsqSNHjuidd97Jte3SpUsut3ReeOEFpaamavbs2fr73/+u6Oho9e3b1+UjBnLMnDlTly9fdj6eMWOGrly54vKieK3C7ltex5OkKVOm5GqbEzDy8wneDz30kNatW+dS14ULFzRz5kxFR0erXr16N1RvfoSHh6tRo0aaPXu2S61bt27VokWLrGH0t+Tn/LtWfsc4Kysr1y2kihUrKiIiwnn+pKen68qVKy5tGjRoIC8vrzzPsRyNGzdW9erVNWXKlFw/P3dfvbt48aJ++eUXl3U1a9ZUmTJlXGoODAzM17mV13gaY/L8CATcXriyhBLh/fffd956uNpzzz2nV155RYsXL9Y999yjZ599Vj4+Pnr77beVkZGhCRMmONuOHDlS8+bNU48ePfTkk0+qSZMmOn36tL744gu99dZbiouLU6dOnTR//nx17dpVDz/8sA4cOKC33npL9erV0/nz5wtc9xNPPKGPPvpIAwcO1LJly9SyZUtlZWVp586d+uijj/TNN9/ozjvv1NKlSzV9+nSNGTNGjRs3lvTrW6vbtGmjv/71ry79kH79zKR27dqpZ8+e2rVrl6ZPn6577rlHjz766HVrKey+BQcHO+eQXL58WVWqVNGiRYt04MCBXG2bNGkiSfrLX/6i3/3udypVqpQeeeSRPK/SvPjii5ozZ446duyoIUOGKCwsTLNnz9aBAwf0ySefuP0DBidOnKiOHTuqefPm+sMf/uD86ICQkJCb+i7A/Jx/18rvGJ87d05Vq1bVY489pri4OAUFBWnJkiVav369Jk+eLOnXz44aPHiwevTooZiYGF25ckUffPCBvL291b179+vW7eXlpRkzZuiRRx5Ro0aN1K9fP4WHh2vnzp3atm2bvvnmmxsek9+ye/du53ler149+fj46NNPP9Xx48f1u9/9ztmuSZMmmjFjhl555RXVqlVLFStWdL6J4mp169ZVzZo1NWLECB05ckTBwcH65JNPmIMEPjoAxVvOW+Wvtxw+fNgYY8z3339vOnToYIKCgkzp0qVN27ZtzerVq3Md79SpU2bw4MGmSpUqxtfX11StWtX07dvXnDx50hjz61uhX331VRMVFWX8/PxMfHy8+fLLL03f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\n" + }, + "metadata": {} + } + ], + "source": [ + "def plot_explanation(exp):\n", + " \"\"\"Plot LIME explanation.\n", + "\n", + " Args:\n", + " exp: LIME explanation object.\n", + " \"\"\"\n", + " return exp.as_pyplot_figure()\n", + "\n", + "\n", + "fig = plot_explanation(exp)" + ] + }, + { + "cell_type": "markdown", + "id": "db22dde2", + "metadata": { + "id": "db22dde2" + }, + "source": [ + "### HTML Visualization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6175b671", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 515 + }, + "id": "6175b671", + "outputId": "d5559a16-c621-4b1e-b11d-db249b1f7cfa" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + " \n", + " \n", + "
\n", + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "execution_count": 16 + } + ], + "source": [ + "from IPython.display import HTML\n", + "\n", + "\n", + "def render_html(exp):\n", + " \"\"\"Render LIME explanation as HTML.\n", + "\n", + " Args:\n", + " exp: LIME explanation object.\n", + "\n", + " Returns:\n", + " HTML: Rendered HTML.\n", + " \"\"\"\n", + " return HTML(exp.as_html())\n", + "\n", + "\n", + "render_html(exp)" + ] + }, + { + "cell_type": "markdown", + "id": "aefb041a", + "metadata": { + "id": "aefb041a" + }, + "source": [ + "### Plot Explainer Comparision" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17ee145e", + "metadata": { + "id": "17ee145e" + }, + "outputs": [], + "source": [ + "from typing import Dict, List, Tuple\n", + "\n", + "import numpy as np\n", + "import plotly.graph_objects as go\n", + "from plotly.subplots import make_subplots\n", + "\n", + "\n", + "def plot_explainer_comparison(\n", + " explanations: Dict[str, Tuple[List[float], List[str]]],\n", + " title: str = \"Explainer Comparison\",\n", + " height: int = 600,\n", + " width_per_plot: int = 500,\n", + ") -> None:\n", + " \"\"\"\n", + " Compare multiple explanation methods using horizontal bar charts.\n", + "\n", + " Supported explainers:\n", + " - SMILE\n", + " - LIME\n", + " - SHAP\n", + " - Any custom explainer name\n", + "\n", + " Args:\n", + " explanations:\n", + " Dictionary format:\n", + " {\n", + " \"SMILE\": (weights, features),\n", + " \"LIME\": (weights, features),\n", + " \"SHAP\": (weights, features),\n", + " }\n", + "\n", + " Example:\n", + " {\n", + " \"SMILE\": ([0.8, 0.4], [\"god\", \"church\"]),\n", + " \"LIME\": ([0.7, 0.3], [\"god\", \"faith\"]),\n", + " }\n", + "\n", + " title:\n", + " Figure title.\n", + "\n", + " height:\n", + " Plot height.\n", + "\n", + " width_per_plot:\n", + " Width allocated for each subplot.\n", + " \"\"\"\n", + "\n", + " # -------------------------------------------------------------- #\n", + " # Validate Inputs\n", + " # -------------------------------------------------------------- #\n", + " if not explanations:\n", + " raise ValueError(\"`explanations` cannot be empty.\")\n", + "\n", + " valid_explanations: Dict[str, Tuple[List[float], List[str]]] = {}\n", + "\n", + " for name, value in explanations.items():\n", + "\n", + " if value is None:\n", + " continue\n", + "\n", + " if len(value) != 2:\n", + " raise ValueError(\n", + " f\"{name} must contain (weights, features).\"\n", + " )\n", + "\n", + " weights, features = value\n", + "\n", + " if len(weights) != len(features):\n", + " raise ValueError(\n", + " f\"{name}: weights and features must have same length.\"\n", + " )\n", + "\n", + " valid_explanations[name] = (weights, features)\n", + "\n", + " if not valid_explanations:\n", + " raise ValueError(\"No valid explanations provided.\")\n", + "\n", + " # -------------------------------------------------------------- #\n", + " # Dynamic subplot creation\n", + " # -------------------------------------------------------------- #\n", + " explainer_names: List[str] = list(valid_explanations.keys())\n", + " num_explainers: int = len(explainer_names)\n", + "\n", + " fig = make_subplots(\n", + " rows=1,\n", + " cols=num_explainers,\n", + " subplot_titles=tuple(explainer_names),\n", + " )\n", + "\n", + " # -------------------------------------------------------------- #\n", + " # Add traces\n", + " # -------------------------------------------------------------- #\n", + " for col_index, explainer_name in enumerate(explainer_names, start=1):\n", + "\n", + " weights, features = valid_explanations[explainer_name]\n", + "\n", + " weights_array = np.array(weights)\n", + "\n", + " fig.add_trace(\n", + " go.Bar(\n", + " x=weights,\n", + " y=features,\n", + " orientation=\"h\",\n", + " marker=dict(\n", + " color=np.argsort(weights_array),\n", + " coloraxis=\"coloraxis\",\n", + " ),\n", + " name=explainer_name,\n", + " ),\n", + " row=1,\n", + " col=col_index,\n", + " )\n", + "\n", + " # -------------------------------------------------------------- #\n", + " # Layout\n", + " # -------------------------------------------------------------- #\n", + " fig.update_layout(\n", + " title_text=title,\n", + " height=height,\n", + " width=max(width_per_plot * num_explainers, 700),\n", + " showlegend=False,\n", + " coloraxis=dict(\n", + " colorscale=\"Bluered_r\",\n", + " ),\n", + " )\n", + "\n", + " fig.show()" + ] + }, + { + "cell_type": "markdown", + "id": "602fcd33", + "metadata": { + "id": "602fcd33" + }, + "source": [ + "### Plot Text Heatmap" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0125149b", + "metadata": { + "id": "0125149b" + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import matplotlib.cm as cm\n", + "import matplotlib.transforms as transforms\n", + "import numpy as np\n", + "from typing import List, Union\n", + "\n", + "def plot_text_heatmap(\n", + " words: List[str],\n", + " scores: Union[List[float], np.ndarray],\n", + " title: str = \"\",\n", + " width: float = 10.0,\n", + " height: float = 0.2,\n", + " verbose: int = 0,\n", + " max_words_per_line: int = 20\n", + ") -> None:\n", + " \"\"\"Plots a text-based heatmap where words are highlighted based on their scores.\n", + "\n", + " Args:\n", + " words: A list of text tokens/words to display.\n", + " scores: An array or list of numerical scores associated with each word.\n", + " title: The title of the plot. Defaults to \"\".\n", + " width: Figure width in inches. Defaults to 10.0.\n", + " height: Figure height in inches. Defaults to 0.2.\n", + " verbose: Verbosity level. >0 prints lengths, >1 prints raw/normalized scores.\n", + " Defaults to 0.\n", + " max_words_per_line: Maximum number of words allowed before wrapping to a\n", + " new line. Defaults to 20.\n", + "\n", + " Raises:\n", + " ValueError: If input lists are empty, lengths mismatch, or max_words_per_line\n", + " is invalid.\n", + " \"\"\"\n", + " # Input Validation Checks\n", + " if not words or scores is None or len(scores) == 0:\n", + " raise ValueError(\"Both 'words' and 'scores' arguments must contain elements.\")\n", + "\n", + " if len(words) != len(scores):\n", + " raise ValueError(\n", + " f\"Length mismatch: 'words' has length {len(words)}, \"\n", + " f\"but 'scores' has length {len(scores)}.\"\n", + " )\n", + "\n", + " if max_words_per_line <= 0:\n", + " raise ValueError(\"The 'max_words_per_line' parameter must be greater than 0.\")\n", + "\n", + " # Initialize the figure and axis\n", + " plt.figure(figsize=(width, height))\n", + " axis = plt.gca()\n", + " axis.set_title(title, loc='left')\n", + "\n", + " if verbose > 0:\n", + " print(f\"len words : {len(words)} | len scores : {len(scores)}\")\n", + "\n", + " # Setup the colormap mapping normalized scores to colors\n", + " color_map = plt.cm.ScalarMappable(cmap=cm.bwr)\n", + " color_map.set_clim(0, 1)\n", + "\n", + " canvas = axis.figure.canvas\n", + " transform = axis.transData\n", + "\n", + " # Normalize scores: negative scores in [0, 0.5], positive scores in (0.5, 1]\n", + " max_absolute_score = np.max(np.abs(scores))\n", + " if max_absolute_score == 0:\n", + " # Fallback handle if all scores are 0 to prevent division by zero\n", + " normalized_scores = np.full_like(scores, 0.5, dtype=float)\n", + " else:\n", + " normalized_scores = 0.5 * np.array(scores) / max_absolute_score + 0.5\n", + "\n", + " if verbose > 1:\n", + " print(\"Raw score\")\n", + " print(scores)\n", + " print(\"Normalized score\")\n", + " print(normalized_scores)\n", + "\n", + " # Initial vertical offset to prevent overlap with the title\n", + " y_coordinate = -0.2\n", + "\n", + " for index, token in enumerate(words):\n", + " # Extract RGB values and format them into a hex color string\n", + " *rgb_values, _ = color_map.to_rgba(normalized_scores[index], bytes=True)\n", + " hex_color = f\"#{tuple(rgb_values)[0]:02x}{tuple(rgb_values)[1]:02x}{tuple(rgb_values)[2]:02x}\"\n", + "\n", + " # Render the text box with its corresponding background color\n", + " text_element = axis.text(\n", + " x=0.0,\n", + " y=y_coordinate,\n", + " s=token,\n", + " bbox={\n", + " 'facecolor': hex_color,\n", + " 'pad': 5.0,\n", + " 'linewidth': 1,\n", + " 'boxstyle': 'round,pad=0.5'\n", + " },\n", + " transform=transform,\n", + " fontsize=14\n", + " )\n", + "\n", + " text_element.draw(canvas.get_renderer())\n", + " window_extent = text_element.get_window_extent()\n", + "\n", + " # Wrap text to a new line if the word limit for the line is reached\n", + " if (index + 1) % max_words_per_line == 0:\n", + " y_coordinate -= 2.5\n", + " transform = axis.transData\n", + " else:\n", + " # Enhanced spacing to dynamically accommodate for the round bounding box padding\n", + " transform = transforms.offset_copy(\n", + " text_element._transform,\n", + " x=window_extent.width + 20,\n", + " units='dots'\n", + " )\n", + "\n", + " if verbose == 0:\n", + " axis.axis('off')" + ] + }, + { + "cell_type": "markdown", + "id": "db317d29", + "metadata": { + "id": "db317d29" + }, + "source": [ + "## Explanation Data Extraction" + ] + }, + { + "cell_type": "markdown", + "id": "3fb480a5", + "metadata": { + "id": "3fb480a5" + }, + "source": [ + "### Extract Weights and Features" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f62a71bb", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "f62a71bb", + "outputId": "57ca6467-2790-408b-d06c-a17103d401b2" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[-0.06060476 0.05657725 -0.05081376 -0.03628835 -0.03365471 -0.03190713]\n", + "[np.str_('atheism'), np.str_('rutgers'), np.str_('writes'), np.str_('In'), np.str_('Re'), np.str_('atheists')]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "\n", + "def extract_explanation_details(exp, label: int = 1):\n", + " \"\"\"Extract feature weights and names from explanation.\n", + "\n", + " Args:\n", + " exp: LIME explanation object.\n", + " label (int): Target class index.\n", + "\n", + " Returns:\n", + " Tuple[List[str], np.ndarray]: Features and weights.\n", + " \"\"\"\n", + " weights = [weight for _, weight in exp.local_exp[label]]\n", + " features = [feat for feat, _ in exp.as_list()]\n", + "\n", + " return features, np.array(weights)\n", + "\n", + "\n", + "features, weights = extract_explanation_details(exp)\n", + "\n", + "print(weights)\n", + "print(features)" + ] + }, + { + "cell_type": "markdown", + "id": "c3470541", + "metadata": { + "id": "c3470541" + }, + "source": [ + "### Extract SHAP Features and Weights" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ce99367f", + "metadata": { + "id": "ce99367f" + }, + "outputs": [], + "source": [ + "from typing import List, Tuple\n", + "import numpy as np\n", + "\n", + "\n", + "def extract_shap_explanation_details(\n", + " shap_explanation,\n", + " class_index: int = 1,\n", + " top_k: int = 6,\n", + ") -> Tuple[List[str], List[float]]:\n", + " \"\"\"\n", + " Extract top-k SHAP features and their importance weights.\n", + "\n", + " This version normalizes SHAP token output to make it comparable\n", + " with LIME and SMILE explanations.\n", + "\n", + " Args:\n", + " shap_explanation:\n", + " SHAP explanation object (output of shap.Explainer).\n", + "\n", + " class_index:\n", + " Target class index for classification models.\n", + "\n", + " top_k:\n", + " Number of most important features to return.\n", + "\n", + " Returns:\n", + " Tuple of:\n", + " - features: List of tokens (cleaned)\n", + " - weights: List of SHAP values (floats)\n", + " \"\"\"\n", + "\n", + " # -------------------------------------------------------------- #\n", + " # Extract tokens\n", + " # -------------------------------------------------------------- #\n", + " tokens = shap_explanation.data[0]\n", + "\n", + " # Normalize tokens (handles np.str_, whitespace, etc.)\n", + " tokens = [str(t).strip() for t in tokens]\n", + "\n", + " # -------------------------------------------------------------- #\n", + " # Extract SHAP values for selected class\n", + " # -------------------------------------------------------------- #\n", + " values = shap_explanation.values[0, :, class_index]\n", + " values = np.asarray(values, dtype=float)\n", + "\n", + " # -------------------------------------------------------------- #\n", + " # Top-k selection by absolute importance\n", + " # -------------------------------------------------------------- #\n", + " if top_k >= len(values):\n", + " idx = np.argsort(np.abs(values))[::-1]\n", + " else:\n", + " idx = np.argsort(np.abs(values))[-top_k:][::-1]\n", + "\n", + " # -------------------------------------------------------------- #\n", + " # Build outputs\n", + " # -------------------------------------------------------------- #\n", + " features = [tokens[i] for i in idx]\n", + " weights = [float(values[i]) for i in idx]\n", + "\n", + " return features, weights" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "154283cf", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "154283cf", + "outputId": "61d152bc-38c2-4c76-d52f-2f24f9aa3f8b" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SMILE\": (weights, features)\n", + " },\n", + " title=\"SMILE\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b156187a", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "b156187a", + "outputId": "f56d919a-9229-4a5d-af4d-501db6474b46" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=features,\n", + " scores=weights,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "e0158976", + "metadata": { + "id": "e0158976" + }, + "source": [ + "# Comparision" + ] + }, + { + "cell_type": "markdown", + "id": "2712419a", + "metadata": { + "id": "2712419a" + }, + "source": [ + "## Case 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0b58740a", + "metadata": { + "id": "0b58740a" + }, + "outputs": [], + "source": [ + "num_features = 6" + ] + }, + { + "cell_type": "markdown", + "id": "a3a6ffc6", + "metadata": { + "id": "a3a6ffc6" + }, + "source": [ + "### SMILE" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8bd11f68", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8bd11f68", + "outputId": "47e98f19-b147-4eec-b57b-d824cea9ac11" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Loading from cache: /root/.cache/google_news_vectors/GoogleNews-vectors-negative300.bin\n", + "Document id: 50\n", + "Probability(christian) = 0.69\n", + "True class: christian\n", + "[-0.06076704 0.0550452 -0.05119572 -0.03520598 -0.03312888 -0.03154844]\n", + "[np.str_('atheism'), np.str_('rutgers'), np.str_('writes'), np.str_('Re'), np.str_('In'), np.str_('atheists')]\n" + ] + } + ], + "source": [ + "explainer = SmileTextExplainer(\n", + " embedding_name=\"word2vec-google-news-300\",\n", + " cache_dir=\"~/.cache/google_news_vectors\",\n", + " class_names=class_names,\n", + ")\n", + "\n", + "idx = 50\n", + "exp = explainer.explain_instance(\n", + " newsgroups_test.data[idx],\n", + " pipeline_model.predict_proba,\n", + " num_features=num_features,\n", + ")\n", + "\n", + "\n", + "print(f\"Document id: {idx}\")\n", + "print(\n", + " \"Probability(christian) =\",\n", + " pipeline_model.predict_proba([newsgroups_test.data[idx]])[0, 1],\n", + ")\n", + "print(\"True class:\", class_names[newsgroups_test.target[idx]])\n", + "\n", + "\n", + "smile_features, smile_weights = extract_explanation_details(exp)\n", + "\n", + "print(smile_weights)\n", + "print(smile_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "93b0c2af", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "93b0c2af", + "outputId": "0424b2be-a112-474d-a1ce-e241a9e1b5fa" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SMILE\": (smile_weights, smile_features)\n", + " },\n", + " title=\"SMILE\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ad6ce04", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "4ad6ce04", + "outputId": "86fde7ec-692e-404a-f485-540fecdd9475" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=smile_features,\n", + " scores=smile_weights,\n", + "\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "235d3097", + "metadata": { + "id": "235d3097" + }, + "source": [ + "### LIME" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5bdccfbe", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "5bdccfbe", + "outputId": "5cba17b8-9096-4562-abf9-09bf021b4b7d" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Document id: 50\n", + "Probability(christian) = 0.69\n", + "True class: christian\n", + "[ 0.06012343 -0.05587341 0.04303422 -0.04154916 -0.02669592 0.02500365]\n", + "[np.str_('rutgers'), np.str_('atheism'), np.str_('athos'), np.str_('writes'), np.str_('Re'), np.str_('1993')]\n" + ] + } + ], + "source": [ + "from lime.lime_text import LimeTextExplainer\n", + "\n", + "explainer = LimeTextExplainer(class_names=class_names)\n", + "\n", + "idx = 50\n", + "exp = explainer.explain_instance(\n", + " newsgroups_test.data[idx],\n", + " pipeline_model.predict_proba,\n", + " num_features=num_features,\n", + ")\n", + "\n", + "\n", + "print(f\"Document id: {idx}\")\n", + "print(\n", + " \"Probability(christian) =\",\n", + " pipeline_model.predict_proba([newsgroups_test.data[idx]])[0, 1],\n", + ")\n", + "print(\"True class:\", class_names[newsgroups_test.target[idx]])\n", + "\n", + "\n", + "lime_features, lime_weights = extract_explanation_details(exp)\n", + "\n", + "print(lime_weights)\n", + "print(lime_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0e81c424", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "0e81c424", + "outputId": "dafc67a8-4193-48d6-c489-5eba94bac10d" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"LIME\": (lime_weights, lime_features)\n", + " },\n", + " title=\"LIME\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cf6db79c", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "cf6db79c", + "outputId": "d1c03771-3362-4194-c94b-28128a55f573" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=lime_features,\n", + " scores=lime_weights,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "95a8ed89", + "metadata": { + "id": "95a8ed89" + }, + "source": [ + "### SHAP" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5cdb3616", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "5cdb3616", + "outputId": "7261c323-5608-44d0-b99a-7a9f5e0052eb" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Document id: 50\n", + "Probability(christian) = 0.69\n", + "True class: christian\n", + "[0.03427181739631337, 0.03427181739631337, -0.016951388888888887, -0.016951388888888887, -0.016951388888888887, -0.01575347222222222]\n", + "['athos.', 'rutgers.', 'amongst', 'atheism,', 'other', 'alt.']\n" + ] + } + ], + "source": [ + "import shap\n", + "\n", + "idx = 50\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create SHAP text masker\n", + "# -------------------------------------------------------------- #\n", + "masker = shap.maskers.Text()\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create SHAP explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = shap.Explainer(\n", + " pipeline_model.predict_proba,\n", + " masker=masker,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Explain instance\n", + "# -------------------------------------------------------------- #\n", + "shap_exp = explainer(\n", + " [newsgroups_test.data[idx]]\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Print prediction details\n", + "# -------------------------------------------------------------- #\n", + "print(f\"Document id: {idx}\")\n", + "\n", + "print(\n", + " \"Probability(christian) =\",\n", + " pipeline_model.predict_proba(\n", + " [newsgroups_test.data[idx]]\n", + " )[0, 1],\n", + ")\n", + "\n", + "print(\n", + " \"True class:\",\n", + " class_names[newsgroups_test.target[idx]],\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract SHAP features + weights\n", + "# -------------------------------------------------------------- #\n", + "shap_features, shap_weights = extract_shap_explanation_details(\n", + " shap_exp,\n", + " class_index=1,\n", + " top_k=num_features,\n", + ")\n", + "\n", + "print(shap_weights)\n", + "print(shap_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e33d0b86", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "e33d0b86", + "outputId": "4b8bcbb3-1e74-437c-fbc1-d639bc17b162" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SHAP\": (shap_weights, shap_features)\n", + " },\n", + " title=\"SHAP\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b6f67b95", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "b6f67b95", + "outputId": "38b880e5-9645-42c0-c421-6088f2b3fd5d" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=shap_features,\n", + " scores=shap_weights,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a9ad00a0", + "metadata": { + "id": "a9ad00a0" + }, + "source": [ + "### Comparision together" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fe44b546", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 637 + }, + "id": "fe44b546", + "outputId": "96391987-1214-4638-a7e1-549c1e281e65" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SMILE\": (smile_weights, smile_features),\n", + " \"LIME\": (lime_weights, lime_features),\n", + " \"SHAP\": (shap_weights, shap_features),\n", + " },\n", + " title=\"Comparing SMILE, LIME, and SHAP\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "d5f93658", + "metadata": { + "id": "d5f93658" + }, + "source": [ + "## Case 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fdb89dbc", + "metadata": { + "id": "fdb89dbc" + }, + "outputs": [], + "source": [ + "# -------------------------------------------------------------- #\n", + "# Input text\n", + "# -------------------------------------------------------------- #\n", + "text = \"I believe in god who creates the entire planet\"\n", + "num_features = len(text.split())" + ] + }, + { + "cell_type": "markdown", + "id": "6e4d05db", + "metadata": { + "id": "6e4d05db" + }, + "source": [ + "### SMILE" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c32c9e17", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "c32c9e17", + "outputId": "3c6605f8-8f97-4f7d-a982-3af9ef06eceb" + }, + "outputs": [ + { + "metadata": { + "tags": null + }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading from cache: /root/.cache/google_news_vectors/GoogleNews-vectors-negative300.bin\n" + ] + }, + { + "metadata": { + "tags": null + }, + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n" + ] + }, + { + "metadata": { + "tags": null + }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Input text:\n", + "I believe in god who creates the entire planet\n", + "\n", + "Prediction probabilities:\n", + "[0.124 0.876]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-5.38870189e-02 1.57120990e-02 8.74202582e-03 -1.98168303e-03\n", + " -1.27582163e-03 -8.59091327e-04 4.96453118e-04 -4.63453009e-04\n", + " -9.84510815e-05]\n", + "\n", + "Features:\n", + "[np.str_('god'), np.str_('in'), np.str_('the'), np.str_('entire'), np.str_('believe'), np.str_('creates'), np.str_('who'), np.str_('planet'), np.str_('I')]\n" + ] + } + ], + "source": [ + "# -------------------------------------------------------------- #\n", + "# Create explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = SmileTextExplainer(\n", + " embedding_name=\"word2vec-google-news-300\",\n", + " cache_dir=\"~/.cache/google_news_vectors\",\n", + " class_names=class_names,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Generate explanation\n", + "# -------------------------------------------------------------- #\n", + "exp = explainer.explain_instance(\n", + " text,\n", + " pipeline_model.predict_proba,\n", + " num_features=num_features,\n", + ")\n", + "\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract features + weights\n", + "# -------------------------------------------------------------- #\n", + "smile_features, smile_weights = extract_explanation_details(exp)\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(smile_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(smile_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4e57f489", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "4e57f489", + "outputId": "28b401af-75d2-407d-e23f-7082507e5368" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SMILE\": (smile_weights, smile_features)\n", + " },\n", + " title=\"SMILE\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "18e67457", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "18e67457", + "outputId": "ae68d1ce-a60f-4e83-f8bd-a6f8463320f3" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=smile_features,\n", + " scores=smile_weights,\n", + "\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "d4bc594d", + "metadata": { + "id": "d4bc594d" + }, + "source": [ + "### LIME" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0f6f724e", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "0f6f724e", + "outputId": "d2e5299a-437a-47aa-a834-9fc3282449f9" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Input text:\n", + "I believe in god who creates the entire planet\n", + "\n", + "Prediction probabilities:\n", + "[0.124 0.876]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-5.28832688e-02 1.76668980e-02 6.78341717e-03 1.93302321e-03\n", + " -1.78640586e-03 -1.09191293e-03 -8.85836463e-04 -4.37080379e-04\n", + " -4.34780350e-05]\n", + "\n", + "Features:\n", + "[np.str_('god'), np.str_('in'), np.str_('the'), np.str_('who'), np.str_('entire'), np.str_('believe'), np.str_('creates'), np.str_('planet'), np.str_('I')]\n" + ] + } + ], + "source": [ + "from lime.lime_text import LimeTextExplainer\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = LimeTextExplainer(\n", + " class_names=class_names\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Generate explanation\n", + "# -------------------------------------------------------------- #\n", + "exp = explainer.explain_instance(\n", + " text,\n", + " pipeline_model.predict_proba,\n", + " num_features=num_features,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract features + weights\n", + "# -------------------------------------------------------------- #\n", + "lime_features, lime_weights = extract_explanation_details(exp)\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(lime_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(lime_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8921c195", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "8921c195", + "outputId": "1047cbf0-5f89-4883-b6fc-e198584d7da7" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"LIME\": (lime_weights, lime_features)\n", + " },\n", + " title=\"LIME\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2967d848", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "2967d848", + "outputId": "734586da-f556-4608-8a00-8a5903d9da82" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxoAAAAqCAYAAAA00i1iAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAL0VJREFUeJztnXdYVEfXwH+7LFUpghVE1IhiQfSNPUpRmoKiSFETjVFjii2a5EtiMJZoTEyixBZLzKsmsQASFSEiRIoFVHzVJII9KnZFqiKy7v3+WFhZWRSQBcT7e559FubOPffM2TN37tyZOSMRBEFARERERERERERERESkCpHWtAIiIiIiIiIiIiIiInUPWVkHFAoFKSkppKenk5mZSUFBQXXqVS7q169PgwYNaN++Pba2thU+Pz8/n6SkJG7fvk1WVhZyufy5dZJIJJiamtKgQQO6d+9Oo0aNKizj9u3bHDlyhMzMTLKzs6nJQScdHR1MTU2xsLCgV69emJiYVFhGeno6J06cIDMzk9zc3Botz7OQSCQYGxvToEEDunTpQvPmzSssIycnh+TkZDIyMsjOzubRo0da0LR2URvrYl1E9M/qR/Tt56e62hF9fX0aNGiAtbU13bp1QyoV36WKiNQ0ah0NhUJBUlISISEhbN26jZs3r6qOSSR61a7c0xEQhELVfx07OjBypD/+/v60bdu2zLPy8/PZvXs3oaGhROzcSd69ewBIpVJkOjrPrdUjhULVcOvo6ODi7Ix/QADDhg17aqfj9u3b/P7774SGhBAXH68mQ6cK9KoscrkchUIBKG/inp6e+Pv7M3jw4Kc2Funp6YSFhREaGkpSUpIqXSaT1eqbv0KhUHsQ6N27NwEBAfj5+T31oS4nJ4eIiAhCQkKIjo5WdcylUikyWZn9+TqBIAgUFj6uiw4ODvj7V7AuRkSQl5cHvBw2qyyif1Yvom9XDdXVjjx8+FD1t5WVFX5+fvj7+9O7d+9a3e6IiNRlJMVrNPLz8/H29mHv3hhkMkvkcj/AD+gAmPKUwY8apADIBJKAEKTSCBSKewQFBTFv3jwkEola7gsXLuDs5ET6lSt0btkS/5498enenRYNG2JsYFAlNyJBEMh/+JBb2dlEnzhBaHIycSdPIpPJCA8Px8vLq9Q5kZGR+Pr6IpfLcendG/+BA/FwdKSxhQWGBgalylGdCIJA3r17XL91i8i4OEKiokg+dgwzMzNiYmLo1q1bqXPWrl3LO++8g66uLp5ubvj7+uLi6IiFhQUGBgY1UIqK8eDBAzIyMohLTCQ0PJzdMTEUFhayevVq3n777VL5U1JScHNzIysri549e+Pr64+npxdNmzajfv36Nfr7VRcFBQVkZmZy6FAS4eEhREVFcO/eM+qiszPp6enY23dm+HB/Bg/2oUWLFhgbG4sPBU+h2D/j4+PYti2UPXt2l9s/e/XqzfDh/gwc6EWzZi+Pfz4Pxb6dnJxEWFgIkZHl9+3OnZW+PWTIy+3bgiCQl5fH9evXiYqKJDQ0hEOHksvfjnh64ufnj4uLy1PbEblcTnZ2NqmpqYSFhbFtWxjXrl3Dzc2NHTt2YGhoqO2iioiIPIFEEAQhPz8fL68hJCQcRKHYAnjxYi7fyAcWA0GlGoHiToaBQsH2jz6iQyWmHFSW2zk5TFyzhqjjx0t1Noo7GYOcnVmzYAGNLCyqTa/KcvnqVUZMm0bq+fPExsaqNRJr165l4sSJvD9xIl/NnYupqWkNalo1ZGdnM3P2bFauWcOaNWvUHuZSUlJwdXXFzq4DGzduwdq6RQ1qWnvIz89n6dLFzJ1bRl10dkZf34CwsO106NChhrV9scnOzmbWrJmsWrWyTP9s374Dv/66hRYtRP98XvLz8wkOXszs2WX7toGBAdu2ib79NC5fvsyoUSNIS0stsx157733+eqrryrdjigUCiIjIxk5cgR9+vRh586dYmdDRKSakTx69Ehwc/MkPv4ACkUU4FTTOlUB3wEf8+WXXxIUFMS1a9fo1bMnBgoF8V98gaW5ebVr9FAuZ0RwMJHHjxMVFcWAAQP4888/GTRoEF7OzmxZuhQ9vdo2Pa1scnJz8XzrLVLPn2ffvn3Y29vzyy+/MGbMGCa/+y5Lv/++Tr0pFQSBqR9+yPJVq9i4cSOjR4/m77//pl+/ftjZdWDHjt2Vmndc1wkO/o6ZM5+oi716oa9vQGxsPJaWljWtYp1AEASmT5/KypXLS/ln+/Yd2LVL9M+qZvHi7/j009K+bWBgwJ9/ir5dHnJychg0yJO0tNRS7cikSZNZunRplbQjCQkJeHkN4rXXXmP37t0v5aiSiEhNIdm/f7/Qt29fYCcwuKb1qUJmYGi4loyMWyxevJiF8+dzJji4RjoZxTyUy+k3ezamNjbsiYnBzdWV3IwMErdseaE6GcXk5ObS2csL94EDWb16NW3btqVzx46EbdpUpzoZxQiCgN+oUfydmsrp06eZOHEie/bEcPjwX+JD3FP45JMZ/Pe/a7l1q6guLlzIyZNnxAexKkYQBAID/Th58m+Vf8bExHD0qOif2uLjj2ewbp26b6elib5dEXJycujatTPu7u6P25HOnQkNDavSdmTnzp0MHerDgQMH6NOnT5XJFREReTrSkJAQZDJLlNOl6hITyc/PIzo6mpCtWxny6qs12skA0JPJGOfszN64OE6dOsXeuDjG+fu/kJ0MABNjY0Z6exMeHs6RI0c4d+4c74wfXyc7GaCM+DNx3DjOnj1LSkoK4eHhBASMEh/insG4cRPJyyuqiyEheHsPER/EtIBEImHChIlq/hkYKPqnNhk/Xt23Bw8WfbuimJiYEBg4Uq0dmTjxnSpvR7y9vWnWrBkhISFVKldEROTpSLdu3Va08LuuDSXaIZPZ89NP6/jr77/x7927phUCYFiPHgiCwIIFC5BIJAxzd69plZ4L/0GDyMjIYMmSJZibm+PiVBem3pVNf2dnzM3NWbx4MXfv3sXX17+mVar1tGtnR6dO9qxbt46//vqL4cNFm2kLF5f+av4p2lq72Nmp+7afn2jvyuDn56/ejri4VPk1pFIpw4f7ERYWpoqAJSIion2kyhC2fjWth1aQy/2Ijt5DPQMDPLt0qWl1AGhsaopThw7s2bMHp549X4jF30+ja8eOtG7RgpiYGIZ6e6Orq1vTKmkVXV1dfLy8iI6OplWr1jg4dKlplV4Ihg71Y8+ePdSrVw8PD8+aVqfOoqury+DBPkRHR9O6dWu61JL7Xl3G11f07eela9eutG7dmpiYGHx8hmqtHfHz8+Pq1ascPXpUK/JFRERKUzSMUVcjY3RALn9IqyZNMKxF05M6WFlx/949OrRpU9OqPDcSiYT2r7xCbk4OHdq3r2l1qoUO7duTk5ODnV2HOjtNrKpp374DDx8+pGXLVmLUFy3Tvn0H0T+rEdG3nx+JRIKdXXtyc3O1GqmrWHZ6errWriEiIqJOUUfDrEaV0B4NADAzMqphPdRpUK8ehYWFNKgDoV8BTI2NeVhYSAMzs5pWpVooLmeDBg1qVpEXCDOzorr4kvhITVLsl6J/Vg+P7W1Ws4q84JiamvLw4UOt+m3x/SczM1Nr1xAREVFHqtzxu+Z2ni4/zkBF384p3y5VdDTj4q1bSAICGLtiRQWvVz4M9fRQCAKG+vpVIm/sxx8jad2ai1euVIm8ilK8mL263ubFJyYiMTJizvz51XK9JzE0NEQikWBg8GK8vUxMjMfISML8+XNqTIdi36iojyQkxKOnJ2HevDlVrhOAq6szenrq9xVtX1PbGBgo/VN8u149VNa3K0L//s7IZHV7dKo62hGZTIauri4PHjzQ2jVERETUqWsrwJ+gdt6YKzOdIT45GUnr1swJDq56hZ6Tl216Rm0sr5GRBA8P55pWo0xqo83qKnXZ1ra2LbG1bVnTaqhRl+1dEeLj45HJJMydO6dS51fGjhcvXkQqlTBwYPnXxoi/l4hI9SKraQVqI1bm5qQtWYJpLZtyJSJSGbp168GxY2lYWDSsaVVeCLp378Fff6XRsKFoLxERERERkedB7GhoQFcmw87KqqbVEBGpEoyMjGjXzq6m1XhhMDIyws5OtJeIiIiIiMjzUompU3JgIfAKYAC0Kfr/AsqpSmOfyP8PEAA0BvSBVsAHQEYZ8vcDTkA9wAIIBKo3QoSmNRrOc+YgCQigUC5nTkgILSdNQn/UKNpOm8bK6Git6jMnOBiXUaMAmLt0KZLWrVWfkusyBEFg6fr12Lm6om9nh03fvsz94YcyY4bviIlhwOuv06BLFwzs7Ojk6cl3a9fy6NEjrZYnMzMTnfr18fb1VUs/fuIEEiMjJEZGnDt/Xu2Ys4cHhubmFBQUqKWnHD2Km7c3xo0bY9q0KcMCA7l46ZLG6x5ISsJr2DDMrawwaNAAuy5dmP3ll9y/f79qC/gU9u9PZPjwwVhbN8TMTB97e1vmzAlS06HkmoqjR1Pw9najcWNjmjY1JTBwGJcuXSyVF2DfvgSMjCSqzy+/rC8lryR2di2xs2tJVlYW06dPxtbWGmNjmeo8gL///osxY0bQqlUzTE31aNfOhhkzppCRUVb91R4HDuzH1dUZc3NjGjUyIyBgOOfOnSuV79atW3z00XTat29D/fr6NGvWkICA4fzzzz/lus7T1miUV3b79m0wNzcu07eGDRuCnp6EM2fOqKXv3LkDD48BNG7cAGNjA7p06cTixd9pvU4Ws29fIsOHD6V58ybUr69P69bW+Pv7cuDAfgDmzZuDnp6EhIR4Nm5cT48e/8HU1AhXV2eVjNzcXObOnY2DQ0dMTAxp1MgMLy8PlYyS/O9/R5k2bTJdunSiYUNTTEwM6drVnkWLvqawsFCV7+LFi+jpSbh06RKXLl1CT0+i+sybN6dUGYYOHUyzZg2pX1+fDh1s+eKLII2/RXj4NgYMcMLKqjHGxgbY2Fji6elKePi25zfmUyg5zWj//v307++MmZkxFhZm+Ptr9usnyc7OZtGib3BxccLa2hJDQz2srS0ZO3YM55+4fwLMnTsHmUxCfHw8mzdv4tVXu1C/viHNmzdj+vRp5Ofna7xOYmIiPj6DadKkIUZG+tjZ2TJrlro9586dg6urcu+LL7+ci0wmUX0uXrxYOSOJiIjUCSoxojEO+AVoDUwCCoAlQJKGvPsBD+Ahyr06Whbl+wHYBSQDJacn/AkMRNn/CQQsi9JeoziCVE0z8ocfOHzuHAO7dkVHKiUkKYlJ69ahq6PD266uWrmmc69eXLx6lQ3btuHUsyfOPXuqjpmV2PX344ULSTh8GG8XFzwcHdm+Zw9zfviBh4WFLPjoIzWZny1axNerVmHVtCm+Hh6YGhuz78gRPl64kEPHjxOqpYXwoIzS4mBvz76DB3n06BE6OspgBHGJiao8cQkJtHnlFQAePHhA8uHD9OnVC/0SC+iPHD3KoiVLcHF05J3x4zl24gTbIyL4++RJ/klJwcDAQJU3NDyckW++ib6+PoHDh9O4cWP2xMYyb+FComNjiY+OVsuvDdas+ZHp0ydhZmbGoEGDadSoMf/7XwqLFi0gMTGO3bvj1HaJP3r0CEuWLMLR0YXx49/hxIljRERs5+TJv0lJ+QcDAwNsbFoyc+ZsvvpqLi1a2PDGG2NV53fu3OWZOhUUFDBwYH/u3cvDy2sIMpmMxo2bALBr105Gjw5AKpXi7e1D8+bWpKWlsmrVcmJjo0lIOFRtkY0OH05m0aKFuLt78v77U0hNPcmOHb9z4MA+9u1LpnXr1gCcP38eNzdnrly5gpubO0OGDOXWrVv8/vs2YmKiiY7+kx49ej7japqpiOyRI99g/vy57NixnZEjR6nJuXPnDnv27KZHj560bdtWlf7555/x7bdfY2VlxdChvpiamrJ//z4+/fRjDh8+xJYtoZW0XvlYtuwHPvpoOoaGhvj4DMPaugXXrl3l4MH9hIeH8dprfVV5Fy/+lvj4OAYP9sHV1V1Vh+/evUv//o6kpp6kT5/XcHN7l5ycHCIiduDm5sLmzaH4+AxVyVm3bi2RkRH07euIp+cg8vPvk5AQT1DQZ6SkHCEkRPnAb2ZmRlDQbJYtCwZgypQPVDKcnJxVf69e/SNTpyrrmJfXYBo3bszRoyl8/fUCEhLiiIl5XMdWr/6RKVPep1mzZvj4DMPc3IKbN29w5Mhhduz4HV/f4doxdAkOHUrmm28W4uHhyaRJSr/evv139u/fx4EDj/1aE2lpacyZ8wXOzi4MHToMI6N6nD59is2bNxEVFcmRI//Dxsam1HkrVy4nOno3Q4b44Ozcnz17drNs2VLu3LnDL7/8ppZ31aofmTJFaU9vb+U96+jRFBYuXEB8fBx//qm0p5OTM5cuXWTjxg04Ojqp/SZipDkRkZcciURPAKGcn1gBEKCLAPdKpF8ToEnRsTeL0h4J8EpR2u4n5HxclD6uRNojAVoLIBFgX4l0hQCjivJTAV0FAQ4KgODm4CAIISHl/vy7fLkACG86OanSnDp0EAChp62tkL1+vSr9VHCwINPREdpZWpZb/lcjRwq6urrCVx99JAgXLpTrE7dpkwAIs6dOLXXszeHDBUBoZW0tXEtOVqXfTkkRzExMBOP69YWCU6dU6Xs2bBAAwcPRUcj75x9VuuL8eeHdUUpbh61YUW7d3vL3FwBh0/r1gnD/frk+M6ZOFQDhUEKCKm3woEFCW1tbwbp5c2FkQIAq/c+oKAEQ5s2aJQj37wtxu3er/GHLxo1qckcX6b95wwZVWvaNG4Kpqamgr68vnDh0SJX+KC9PCPTzU5Ndns+m9esFmUwmjBs3sbynCEePnhRkMplgb+8gpKffUTs2b95CARAWLvxOuH9fEHbvjlOVb+PGLWp5R40aLQDChg2b1dIBoV8/J43XLpY3c+ZstfQWLWwEQHB19RAyMu6rHUtPvyOYmJgIlpZWwqlTF9WObdiwWQCEd9+dXO7yx8UdLLqWm/DwoVDuT0zMY1usWLFK7diKFasEQBg0yFuV1rt3H0FHR0fYtWu3Wt5//jktGBsbC5062aulOzo6CYDGawYFzVZLr4js1NSzAiB4eg4sVabg4GUCIPzww3JVWlTUHgEQ3N09hMzMPFV6QYFCmDjxXaWvbwkrl802btwkyGQyYcKEieW285EjxwWpVCpYWloKZ878q3asoEAhXLx4VXj4UBCCgmYLgFCvXj3h6NG/SskZMUJZ/1atWquWfuXKTcHa2lpo1KiRkJOTr0o/d+6SkJ8vL3W9sWPHCYAQH79f7ZiNjY1gY2OjsQzHjyvrWOfODsL163fUjs2fr6xj33zznSqta9f/CHp6esKVKzdLyXry/Kd9EhOL2hk3N0EuF8r1iY197NcrV65SO7ZypdKvvby8VWnFfloyX0ZGlnDrVkYp2TExewWpVCqMHz9BLX3WLOVvZ2pqKpw8eUqVnpt7X2jbtq0glUqFy5evqtL/+ktpTwcHB+HmzTtqshYsUNpz0aLvSpVp1qzZ5bZDyc/YsW8JgPDbb5sEhUIo1+fChX+VbZmHR7nP0dPTE5YvXy6IiIhUDxWcOvVr0fcXQMmF0s2AaU/kPQCcRzlC4fHEsS8Ac2ATytEOUI5+XAC8gb4l8kqAr6gtIXgXjhyJSYlF4u0sLXmtXTtOX7tGbhlDz9XFrMmTada4ser/hubm+Li5kZuXx+kLF1Tpy3/5BYA1CxZQr0RZJBIJX//f/yGRSNgcEaFVXV0cHQHYm5AAwKNHj0g8cAAXR0dcnJyIK0oHVH87F51TjGPfvgT6qe9qP27MGEA52lHMjl27yM7OZtyYMXS2t1elS6VSFi1YgEwmY/2vv6JN1q1bjVwuZ/HiZVg8sRv8jBn/R6NGjQgJ2ayW3revI35+gWppY8aMA5SjHVXFggWLSoWU3LRpIzk5Ocybt5AWLdTfivr7j6BLl/8QFralynR4Fra2bRk//m21tPHj36ZNG1v++COS27dvc+zYMZKSDjJ69Ju4u6vfc9q2VZ7/zz9/l3sKVUkqKrtNmzb06tWb2NgYbt26pZb/t99+QVdXF3//x7/typXLi77XUK9ePVW6RCJhwYKvkUgkbN2q7h9VyU8/rUahUDB37nxatmypdkwikWBpaamWNmHCROxL1CVQjtSEhm7FxaU/48ZNUDvWuHFjZsz4mNu3b/Pnn7Gq9BYtWqhGQ0pe7733JgGo5S1PGeRyOcHBpevYRx8p69iTNtTV1dW4C/WT52uLtm3bMmGCul9PmPA2tra2REUp/bosTE1NMTc3L5Xu4uJCx44dy7TdlCnTaNeunep/Q0NDAgNHolAo1HbMXru2bHt+/LFme4qIiIg8SQWnTp0o+u6r4dhrT/x/rOjbWUPe+kA3YA9wGrAvIbufhvw2gDVwsfyqaolXNQxlNy+62Wfdu4dxDcauf7VTp1JpzZs2BSArJ0eVlnzsGPWMjPg5VPNUDEMDA06V6JhoA8e+fdHR0SEuMZFPP/qIY8ePk52dTX9nZ+7fv8/G334j7dQp2tvZEZeYiKGhIT27d1eT8WrXrqXkNi9axJ+VlaVKO3ZC6VtPdlQAWlhb07pVK86cPUtubi7GxsZVWMrHHD6cDEBMTDRxcX+WOi6T6XLmzCm1tK5dXy2Vz8qqOaBevufBwMCATp3sS6UX63vkyCEuXCg937ug4AF37tzhzp071RKdqU+f15BK1d+LSKVS+vR5jXPnzvLXXyc4d+4sALdu3dS4vuL06VOq704a6srTKLZHRWS//vpokpOT2Lp1M1OmKF/EnD17liNHDuPlNVjNbocPJ1OvXj3Wr/9Z4/UNDQ1V19AGR44cBsDV1b1c+bt161EqLSXlCI8ePaKgoECjjYp/n9OnT+Hl5Q3Aw4cPWblyOSEhWzh9+hR5eXkIgqA65/r1a+Uuw6FDyt9oz55o9u4tXcd0dXXVbBgQMILPPvs/unbtxIgRo3BycuG11/piUmI6qrZ5ml+fPXuWEydO4PqUKbnx8fEsXRrM4cOHuHPnDnK5XHVMr4z9o159tfR9pXlz5X0lOztLlZac/Gx7njqlPZ8UERGpG1Swo5GDcv2EpgeLJhryakovptkT+bKLvhtryFss5+KzVdQyJhpC3sqK3sg9KmPRdXVhouEhWZNud7OzkcvlzF26tExZ97S8QNrExIT/dOnCgaQkCgsLiUtMRCKR4OLoyP2ikaG4hARsWrTgcEoKTv36lWo4NZZXpnTpkuXNKepkNWms2beaNW3KmbNnycnJ0VpHIzPzLgCLFi0o9znGxqUfeIrLp1BUzeLgRo0aa4wrX6zv6tVPX6tz//49NN8PqpbidSNlpWdnZ3P3rlLnqKhIoqIiy5R17969Cl+/MrL9/QP58MMP2LTpV1VH47fflKOJr78+upR8uVzO/Plzy5SttLV2yMnJRiKR0KxZs2dnBpo0Kf17FNvo4MEDHDx4oMxzS9ooMNCPyMgIbG3b4u8fSKNGjdHV1SU7O4tly34oFfzhaRT77Ndfl6+OzZjxERYWFqxe/SNLlnzP4sXfIZPJGDjQi+++W0KrVq3Kfe3K8iy/zsnJ1ngcICwslJEjA6lfvz7u7h7Y2LTEyMgIiUTCxo3ruVRGUIyn3VdKBh0otufCheW/Z4mIiIg8SQU7GiaAArgDNHri2E0NeTWlF3PjiXymRd+3NOR9mhyRimJSvz4SiYQ7JYbJawIXJyeOHD3K4ZQU4hMT6dihA40aKf2qVcuWxCUmYtumDYWFhaqpVpWh+A3lzVuafevGzZtq+bRBceN+86b2OjOVoazNq4r1PXLkbzp2rNjbf21w65bm+l+cbmpqqvr9goOX8f77k6v0+pWRbW5ujqfnIHbu3M7p06dp164dmzf/iqmpKd7eg0vJl0gkXL9+p0r1Li+mpmYIgsD169exKkdob01+U2yj6dM/5JtvvnumjJSUI0RGRuDu7sGOHZFqU6gOHUpm2bIfKlCCxz6bkVG+OiaRSBg7dhxjx44jIyOD/fv3sXXrZsLCQjh37iz/+99fpaZ1VTXP8msTE1ONx0EZAczAwIDDh49ia2urdiwk5PmnNRb/npmZteueJSIi8mJRwTUaDkXfmt5WHXzi/+JpLfEa8t4DUgBDoHiuaLHsfRryX6K6Q9zWNnSKhterYtSkp4MDGZmZnP333+eW9TwUdx72xMay7+BB+js5qY71d3Iift8+1RoOTdOeyktXB6VvxZeIalVM+pUrnL9wgdatWmm1Me3eXRmNqHgKTlUjlUqrNARqsb6HDmmKJlf9HDx4oFSYZoVCQVLSQSQSCZ07O6giPiUnV73OlZVdPHKxadOvHDx4gH///RdfX79SEc569OhJRkYGZ8+erRqFK0j37sqpULGxeyoto1u37kgkknLbqDgE68CBXqUe6Pfv19QOgI6OTpl+XvwbFU+hqggWFhb4+Axl0yblGpO0tNRyhZh9Xp7l1w4ODmWcqbRf+/btS3Uyrl+/zoUqmPr62OfLZ8/i37C6QjGLiIi8GFSwo/F60fc8oOTC5xsoQ9aW5DWUe238ATy5KG0+yn00RgLF02H6otxjYxfKheHFCMBM4OW+eZkXhQhMv379uWVNHTsWgHGffEJGZmap4zdu3yatGhrZvn36IJPJ+PGnn8jNzVXraLg4OXHnzh3WbdhAvXr16K5hXnF58fH2xtTUlP/+8gsnU1NV6YIg8ElQEHK5nLFvvPFcZXkWEye+j0wm48MPp5CefrnU8aysLI4fP6bhzPJhbm7O1atXnp2xnIwe/RbGxsbMnfs5qaknSx2/f/++1jpNmjh79gzr1q1VS1u3bi1nz55h4EAvGjVqRPfuPejRoydbt24mJGRrKRkKhYLExIRS6eWhsrIHDfKiQYMGbNnyG7/+uhEoPW0KYNKkqQBMnDhO4x4lN27cIC0trVK6l4e3334XHR0dZs8OKjXlRhAErl179lqJpk2b4ucXQFLSQb7//lu1tRbFHD58SLX/QnHo1Sf31zh58iSLFi3UeI0GDcy5c+cODx48KHXsnXeUdeyDD6Zw+bLmOnbs2OM6lpAQX0rHwsJC1RQwbYe7Bjhz5gw//aTu1z/9tJYzZ84waJCXaoRXEzY2Npw7d46bNx+Pijx48IBJk95T24Oksrz7bsXsWbww/cqVl/uloIiIiDoVnDrlCoxCGS3KHhiKch+NEKAnEMHjvosUWI8y4tQgwB/lou4klKMcrwBfl5AtBdYU5XXl8T4ae4HrQGfgr4qpW4ewe+UVLJs0YUtEBPp6ejRv2hSJRMKUoihLFcHTyYlZU6bw5bJltHFxwdPRERsrKzKysjh36RL7jhxh/owZtG/TRgsleUz9+vXp/uqrJB06hFQqxanf40AAxaMdt2/fxsPVVWNkmPJiYmLC2hUrGPnmm/R0ciJw+HAaNWpE7N69HD12jB7duvHx9OnPXZ6n0bFjJ4KDVzJt2ns4OLTDw2MQrVu/Qm5uLhcvXmDfvgTeeGMsy5atqpR8J6f+bNsWQkDAUBwcuqKjo4OX1xDs7TtXSl6jRo1Yv34zb7zhT8+eDri5edKunR0FBQVcunSR/fsT6NmzDzt37q6U/Iri7u7B9OlT+eOPKDp06Ehq6kkiIyNo2LAhixc/fsnxyy+bcXd34Y03RrBsWTBdu/4HQ0NDLl++zKFDSdy+fZvc3NIPqeWhMrL19fXx8wtg7drVbNjwX2xsbOjXr/TonIeHJzNnzuKrr76kffs2uLt70qKFDXfvZnD+/Dn279/H3Lnzad++faV0fxb29vZ8/30w06dPpUuXjgwZMpQWLWy4efMG+/cnMnCgF99/H/xMOcuWreTMmdN89tn/8dtvv9CrV29MTc24ciWdo0dTOHfuLJcvX8fIyIju3XvQvXsPwsJCuHHjOj169CI9/TK7du1k4EAvwsPDSsl3du7P0aMpDB48kNdeU67b6tfPkX79HOnUqRPLlq1k8uT36NSpHZ6eyjqWl5fLv/9eIDExgTFjxrJihbKO+fkNxcTEhB49emFjY0NhYSGxsTGkpaXi6+uncQ+Kqsbd3YMPPlD36127lH69ZMnTp45NmjSFadOm0K1bV4YP90MulxMbG4MgCDg4OHDixImnnv8sOnXqxPLlK5k06T06dGjHwIGP7XnhgtKeb745lpUrlfa0s7PD0tKSrVu3oK+vj5VVcyQSCZMnT8HUtOwpYCIiInWbSmzYtwFoD/wMLAOao9zpewDKjkbJee59UW7KNw9lhKlslJ2HaUAQpReRuqLcoC8ICEU5tWpA0d8Vf6CuS+jo6BD+44988s03bI6IIDcvD4A3hg6tlLx506fj2L07Szds4M+kJLJycrAwM6OVtTVzpk3jdR+fKtS+bFwcHUk6dIiuDg5qGztZWlrS1taWM2fPPte0qWL8fX1p2qQJC7/9lvCdO7l//z4tbWyY9emnfPLhh9Xy9nLcuLfp3LkLy5YtZv/+RKKiIjA1NaV58xZMmTKd119/s9Kyv/1W+VCSkLCXqKgIFAoFVlbNK93RAOWUlqSkYyxZ8i1xcbHs3RtDvXr1sLJqzujRbzFihHZHgUrSo0cvPvssiNmzg1ixYik6OjoMGTKUhQsXqW1q1qpVKw4fPkZw8GJ27tzOhg3/RUdHh6ZNm9G3ryO+vn5PucrTqazs118fzdq1qyksLCQwcFSZ62LmzJlHv36OLF++lLi4P8nKysLCwoKWLVsxa9YcRo58XeN5VcX770+mY8dOLFnyPdHRf5CXl0fjxo3p3r0nfn4B5ZJhbm5OYuJBVq5cTmjoVjZv/g2FQkHTpk2xt3dg5sxZqmhbOjo6bN++i88//5Q9e3aTknKENm1s+eab7/DwGKixo/H557PIysokKmoX+/fv49GjRwQFzVZ13saPfxsHhy4EByvrWGSkso5ZW7dg6tTpjB79uI7Nn7+Q6OjdpKQcJjIygnr16tG69SssX/4jb701vgos+mx69uzFzJlBfPFFEMuXK/3ax2coX3+96Kmb9QG8//4kdHV1WbFiGT/9tLZoI1AvFixYSGCgf5XoN2HCY3vu25fIrl1Ke7Zo0YJp06YzZsxje+ro6BAaGs5nn33Cli2byc3NBeD1198QOxoiIi8xEolETxCE8kf2KJufgLeBlcB7VSCvKkgC+uDm4MCezz+vaWVULPz9d2aHhTF32jQ+e//9mlbnuRn3ySf8NzSUTevXMzKgfA8kLzKbQ0IYM2ECY8aMY/ny1TWtzgvBoUNJuLj0wdXVjaioyq8DEHk2W7ZsZty4MYwdO46VK0X/1DbJyUk4OvbBzc2NP/4on2/Hx8fj6urCrFmzmT17jnYVfEGYMGEc69f/l99+28TIkSO1dh0DA30WL17MpEmTtHYNERGRx1RwjQYo12M8Off2Ksp1FzooN9wTEREREREREREREXmZqcTUqa+BSJQb6zUGLqNcwJ0LzEG5sZ6IiIiIiIiIiIiIyMtMJToankAqys5GJmCAcqH2+ygXitcmSkc9qQ1oisbyIlPXyvMsXrbyVgWizaoP0dbVi2jvqqG67Cj+XiIi1YtMEB6iDB1b3o2JPIs+LwLKELz5Dx/WsB7q5D98iFQiIb8Cu97WZh4W2Tc/P/8ZOesG+fn5CILAgwcvR3mrgmLfeFl8pCZ58EDpn6Ktq4fK+LazszNyufjAW5LqaEfkcjmFhYXVEvxDRERESdEajawaVUJ7KPeIyCqK215byLx3D11dXTKzs2talSohOzcXPV1dMrOyalqVaqG4nJka9iAR0UxWVlFdfEl8pCYp9kvRP6uHx/bOqllFXnCys7PR09PTqt8W338aNGigtWuIiIioU9TRSH16rheWVGQyPS7cvFmrRjVSr17FqF49UqthUzxtIwgCaefPY2xiQqoWNxSrTaSmpWFiYsKpU6niMHw5SUtLRU9Pj3//vSC+adcyaWmpon9WI6JvPz+CIHDqVBrGxsakpmrveaRYtrW1uJZURKS6kDZpYgWUjldeF5DJwvDwcOf+gwfsPn68ptUB4FZ2Ngmpqbi7uxOfnMxtDbsAv0gcO3mSC5cv4+bmxvZdu6pkR9raTGFhITsiI/Hw8ODffy9w4sTxmlbphWD79jDc3d25f/8+0dHVs8nfy0hhYSERETvw8PDgwoULHK8l9726THi46NvPy7Fjx7hw4QJubm7s2LFda+1IWFgYVlZWvPrqq1qRLyIiUhppYOBwZLIwQFHTulQxp5DL/2bChPF0trcnNCmpphUC4PfDh5FIJHz++edIJBJ+3/Ni7ykQGhWFhYUFM2bM4O7du8QlJNS0Slplb3w8d+/eZcaMGZibmxMeHlrTKtV6Tp8+xT///M348ePp3Lkz27aJNtMWcXF71fxTtLV2OXVK3bfDwkR7V4awsFD1diQursqvoVAo2LYtDD8/P6TSSkT2FxERqRTSgIAA5PJrKKNI1SXWYGhYH09PTwICA9l59CjX7t6tUY0eyuX8HB9PfxcX7OzscHF25ufQUNUiuBeNnNxcNu/aha+vL926daNNmzasXreuzk7XEASBNT//jK2tLd26dcPX15eQkE3k5OTUtGq1mp9/XkP9+kV1MSCAXbt2cu3atZpWq84hCAI//bRGzT+3bhX9U5usW6fu2xERom9XlJycHLZu3azWjqxZs7rK25Fdu3Zx/fp1Al6CTWVFRGoT0t69e9O/vxtS6QigrryN/g5YwsyZn2BgYMBbb72FecOGOM+bV2OdjYdyOSOCgzl+6RKffPopAJ9+9hnHUlMZMXXqC9fZyMnNxfOtt8jKzWXKlClIJBK++OILwnfsYOqHH9a5zoYgCEz98EPCd+xg1qxZSCQSpk6dSnZ2Fj4+nuLDXBkEB3/HsmVL+OSTEnXR3BxXV2fxgawKEQSB6dOnsn17uJp/ZmVl4e0t+qc2WLz4O374obRvDxgg+nZ5ycnJYdAgT7KystTbkfBwpk6dWmXtSEJCAqNGjcTNzY1evXpViUwREZHyIZVKpezatQMnpz5IpYOACF7caVT5wALgY4KCgvj8888BsLS0JD4hgQdSKc7z5pF65Uq1anUrO5vA4GAijx8nPDycAQMGADBgwADCw8OJjI8ncOrUF2a9xuWrV/F86y1Sz58nNjYWe3t7AEaPHs2aNWtYvmoVk6dPJ7uuRNXKzmbSBx+wfNUq1qxZw+jRowGwt7cnNjaWU6dS8fHxJD39cg1rWnvIz8/nm28WMHOmhroYH09BwQNcXZ21uvDzZSE7O5upUyexcuVyjf6ZlpaKt7cnly+L/lkV5Ofns3DhAj79VLNvP3jwgAEDRN9+FpcvX2bQIE/S0lI1tiMrVixn8uTJz9WOKBQKdu7ciZfXIPr06cOOHTvEaVMiItWMRCh6ZZCfn4+3tw9798Ygk1kilw8H/IAOgBmV2ttP6xSgDGF7EIkkBKl0F48e3SMoKIh58+YhkUjUcl+4cAFnJyfSr1zB3sYG/549GdqjB9YWFpgYGlbJDUgQBO4XFHA7J4fdx48TeugQ8SdPIpPJCA8Px8vLq9Q5kZGR+Pr6IpfLce7VC/+BA/F0cqKRuTlGhoalylGdCIJAbl4eN27fZtfevYRERXHo+HHMzMyIiYmhW7dupc5Zu3Yt77zzDrq6uni4uuLv64uLoyMWFhYYGhrWQCkqRn5+PhkZGcQlJhIaHk50bCyFhYWsXr2at99+u1T+lJQU3NzcyMrKokePXvj6+jNwoDdNmjTF2Ni4Rn+/6qKgoIDMzEySkw8SHh7CH3/s4t69Z9RFZ2fS09Pp1Mme4cP9GTJkKNbW1piYmIgPA0+h2D/j4+PYti2UmJjocvtnz569GD7cn0GDvGna9OXxz+eh2LeTkg4SFhZCVFT5fdveXunbPj4vt28LgkBubi43btwgMnIXoaEhHD58qPztiIcHfn7+uLi4PLUdkcvlZGVlkZqaSlhYGNu2hXH9+vWiReY7Xoj2R0SkrqHqaICy95+UlERoaChbtoRx8+bVxxklukBtapAEBOFxZIqOHR0YNSoAf39/bG1tyzwrPz+f6OhoQkND2bljB3n37gEglUqR6ZR308KyeaRQ8OjRIwB0dHTo7+KCf0AAw4YNo2HDhmWed+fOHX7//XdCtm4lLj5eTYZOFehVWeRyOQqFcoRLX19fNRfZ29sbExOTMs9LT09n27ZthIaGcvDgQVW6TCar1Q2tQqFALper/u/Tpw/+/v74+fnRvHnzMs/LyckhIiKC0NBQdu/eTUHRZoxSqRSZrDZ20qsOQRDUosQ4ODgQEFDBurhzJ3l5ecDLYbPKIvpn9SL6dtVQHe3Ik7+VlZUVfn5+BAQE0KtXr1rd7oiI1GX+H05KVsvGo83uAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=lime_features,\n", + " scores=lime_weights,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "d7b082ea", + "metadata": { + "id": "d7b082ea" + }, + "source": [ + "### SHAP" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "901c4eca", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "901c4eca", + "outputId": "243c4114-b941-4edc-8708-807ec97ce13e" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Input text:\n", + "I believe in god who creates the entire planet\n", + "\n", + "Prediction probabilities:\n", + "[0.124 0.876]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-0.05300000000000005, 0.016000000000000014, 0.008875000000000008, -0.002375000000000002, 0.0010000000000000009, -0.0010000000000000009, -0.0010000000000000009, -0.0005000000000000004, 0.0]\n", + "\n", + "Features:\n", + "['god', 'in', 'the', 'entire', 'who', 'believe', 'creates', 'planet', 'I']\n" + ] + } + ], + "source": [ + "import shap\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create SHAP text masker\n", + "# -------------------------------------------------------------- #\n", + "masker = shap.maskers.Text()\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create SHAP explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = shap.Explainer(\n", + " pipeline_model.predict_proba,\n", + " masker=masker,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Explain instance\n", + "# -------------------------------------------------------------- #\n", + "shap_exp = explainer([text])\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract SHAP features + weights\n", + "# -------------------------------------------------------------- #\n", + "shap_features, shap_weights = extract_shap_explanation_details(\n", + " shap_exp,\n", + " class_index=1,\n", + " top_k=num_features,\n", + ")\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(shap_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(shap_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad0f6d9c", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "ad0f6d9c", + "outputId": "aaf6a7ff-a84a-4a78-e94e-65f23683ba16" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SHAP\": (shap_weights, shap_features)\n", + " },\n", + " title=\"SHAP\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5f62d6dd", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "5f62d6dd", + "outputId": "e4551b54-8be0-4deb-d4fe-60f77efe918e" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=shap_features,\n", + " scores=shap_weights,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "d2934846", + "metadata": { + "id": "d2934846" + }, + "source": [ + "### Comparision together" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e5d36cda", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 637 + }, + "id": "e5d36cda", + "outputId": "3d7bc847-74cc-454d-cc6a-decee3750048" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SMILE\": (smile_weights, smile_features),\n", + " \"LIME\": (lime_weights, lime_features),\n", + " \"SHAP\": (shap_weights, shap_features),\n", + " },\n", + " title=\"Comparing SMILE, LIME, and SHAP\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "3881e789", + "metadata": { + "id": "3881e789" + }, + "source": [ + "## Case 3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37c32787", + "metadata": { + "id": "37c32787" + }, + "outputs": [], + "source": [ + "\n", + "# -------------------------------------------------------------- #\n", + "# Input text\n", + "# -------------------------------------------------------------- #\n", + "text = \"For those who believe in God most of the big questions are answered But for those of us who can't readily accept the God formula the big answers don't remain stone-written. We adjust to new conditions and discoveries. We are pliable. Love need not be a command nor faith a dictum. I am my own god. We are here to unlearn the teachings of the church state, and our educational system. We are here to drink beer. We are here to kill war. We are here to laugh at the odds and live our lives so well that Death will tremble to take us -- Charles Bukowski\"\n", + "num_features = 6" + ] + }, + { + "cell_type": "markdown", + "id": "d958546b", + "metadata": { + "id": "d958546b" + }, + "source": [ + "### SMILE" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d4c757e", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "9d4c757e", + "outputId": "1dd23fc9-5a76-4f43-fe66-8a82da2ba709" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Loading from cache: /root/.cache/google_news_vectors/GoogleNews-vectors-negative300.bin\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Input text:\n", + "For those who believe in God most of the big questions are answered But for those of us who can't readily accept the God formula the big answers don't remain stone-written. We adjust to new conditions and discoveries. We are pliable. Love need not be a command nor faith a dictum. I am my own god. We are here to unlearn the teachings of the church state, and our educational system. We are here to drink beer. We are here to kill war. We are here to laugh at the odds and live our lives so well that Death will tremble to take us -- Charles Bukowski\n", + "\n", + "Prediction probabilities:\n", + "[0.172 0.828]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-0.04836119 -0.02482889 -0.01953172 -0.01924096 0.01580947 0.01547459]\n", + "\n", + "Features:\n", + "[np.str_('god'), np.str_('system'), np.str_('don'), np.str_('kill'), np.str_('God'), np.str_('and')]\n" + ] + } + ], + "source": [ + "# -------------------------------------------------------------- #\n", + "# Create explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = SmileTextExplainer(\n", + " embedding_name=\"word2vec-google-news-300\",\n", + " cache_dir=\"~/.cache/google_news_vectors\",\n", + " class_names=class_names,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Generate explanation\n", + "# -------------------------------------------------------------- #\n", + "exp = explainer.explain_instance(\n", + " text,\n", + " pipeline_model.predict_proba,\n", + " num_features=num_features,\n", + ")\n", + "\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract features + weights\n", + "# -------------------------------------------------------------- #\n", + "smile_features, smile_weights = extract_explanation_details(exp)\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(smile_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(smile_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "86127224", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "86127224", + "outputId": "f4e072bd-3038-4504-cef0-91f453bacf12" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SMILE\": (smile_weights, smile_features)\n", + " },\n", + " title=\"SMILE\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d085e514", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "d085e514", + "outputId": "747c5a81-e1f9-4435-9db1-57b36ec6c563" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=smile_features,\n", + " scores=smile_weights,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "5049a96c", + "metadata": { + "id": "5049a96c" + }, + "source": [ + "### LIME" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0b6a9e34", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "0b6a9e34", + "outputId": "01154687-9854-4305-b239-06840843cce7" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Input text:\n", + "For those who believe in God most of the big questions are answered But for those of us who can't readily accept the God formula the big answers don't remain stone-written. We adjust to new conditions and discoveries. We are pliable. Love need not be a command nor faith a dictum. I am my own god. We are here to unlearn the teachings of the church state, and our educational system. We are here to drink beer. We are here to kill war. We are here to laugh at the odds and live our lives so well that Death will tremble to take us -- Charles Bukowski\n", + "\n", + "Prediction probabilities:\n", + "[0.172 0.828]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-0.04599949 -0.02293877 -0.01814283 0.01656036 -0.01423032 0.0138147 ]\n", + "\n", + "Features:\n", + "[np.str_('god'), np.str_('system'), np.str_('kill'), np.str_('God'), np.str_('don'), np.str_('and')]\n" + ] + } + ], + "source": [ + "from lime.lime_text import LimeTextExplainer\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = LimeTextExplainer(\n", + " class_names=class_names\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Generate explanation\n", + "# -------------------------------------------------------------- #\n", + "exp = explainer.explain_instance(\n", + " text,\n", + " pipeline_model.predict_proba,\n", + " num_features=num_features,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract features + weights\n", + "# -------------------------------------------------------------- #\n", + "lime_features, lime_weights = extract_explanation_details(exp)\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(lime_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(lime_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4499a093", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "4499a093", + "outputId": "17597dc3-f7c7-4980-b852-27b886f8b952" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"LIME\": (lime_weights, lime_features)\n", + " },\n", + " title=\"LIME\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ac9a0c87", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "ac9a0c87", + "outputId": "8a6a5e3f-7b28-43dc-9e4b-95a708a1efc2" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=lime_features,\n", + " scores=lime_weights,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "8a64257b", + "metadata": { + "id": "8a64257b" + }, + "source": [ + "### SHAP" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c159f93d", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "c159f93d", + "outputId": "6538ed4b-0762-4c6a-f24c-dc280c9c90ed" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Input text:\n", + "For those who believe in God most of the big questions are answered But for those of us who can't readily accept the God formula the big answers don't remain stone-written. We adjust to new conditions and discoveries. We are pliable. Love need not be a command nor faith a dictum. I am my own god. We are here to unlearn the teachings of the church state, and our educational system. We are here to drink beer. We are here to kill war. We are here to laugh at the odds and live our lives so well that Death will tremble to take us -- Charles Bukowski\n", + "\n", + "Prediction probabilities:\n", + "[0.172 0.828]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-0.038109375, -0.013921874999999997, 0.006874999999999999, 0.006499999999999999, -0.004593750000000002, -0.004593750000000002]\n", + "\n", + "Features:\n", + "['god.', 'We', 'God', 'in', 'our', 'system.']\n" + ] + } + ], + "source": [ + "import shap\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create SHAP text masker\n", + "# -------------------------------------------------------------- #\n", + "masker = shap.maskers.Text()\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create SHAP explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = shap.Explainer(\n", + " pipeline_model.predict_proba,\n", + " masker=masker,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Explain instance\n", + "# -------------------------------------------------------------- #\n", + "shap_exp = explainer([text])\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract SHAP features + weights\n", + "# -------------------------------------------------------------- #\n", + "shap_features, shap_weights = extract_shap_explanation_details(\n", + " shap_exp,\n", + " class_index=1,\n", + " top_k=num_features,\n", + ")\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(shap_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(shap_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cf9175cc", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "cf9175cc", + "outputId": "81ed7b04-7f0c-464e-efa4-f233ccdd333f" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SHAP\": (shap_weights, shap_features)\n", + " },\n", + " title=\"SHAP\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7239f1cc", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "7239f1cc", + "outputId": "aebc792f-4cf0-4b34-99ca-8783c98e2e81" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=shap_features,\n", + " scores=shap_weights,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "b45d1bf0", + "metadata": { + "id": "b45d1bf0" + }, + "source": [ + "### Comparision together" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f38761d4", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 637 + }, + "id": "f38761d4", + "outputId": "0e9bdf05-f99f-4eef-cf28-31f4bc34b378" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SMILE\": (smile_weights, smile_features),\n", + " \"LIME\": (lime_weights, lime_features),\n", + " \"SHAP\": (shap_weights, shap_features),\n", + " },\n", + " title=\"Comparing SMILE, LIME, and SHAP\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "b310435e", + "metadata": { + "id": "b310435e" + }, + "source": [ + "## Case 4" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b21b1ce8", + "metadata": { + "id": "b21b1ce8" + }, + "outputs": [], + "source": [ + "# -------------------------------------------------------------- #\n", + "# Input text\n", + "# -------------------------------------------------------------- #\n", + "text = \"Is it just me or have you ever been in this phase wherein you became ignorant to the people you once loved completely disregarding their feelings/lives so you get to have something go your way and feel temporarily at ease. How did things change?\"\n", + "num_features = 6" + ] + }, + { + "cell_type": "markdown", + "id": "b6a797aa", + "metadata": { + "id": "b6a797aa" + }, + "source": [ + "### SMILE" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ca158d3a", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ca158d3a", + "outputId": "dba7b469-0682-4e87-aca7-9ed7e647d01b" + }, + "outputs": [ + { + "metadata": { + "tags": null + }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading from cache: /root/.cache/google_news_vectors/GoogleNews-vectors-negative300.bin\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Input text:\n", + "Is it just me or have you ever been in this phase wherein you became ignorant to the people you once loved completely disregarding their feelings/lives so you get to have something go your way and feel temporarily at ease. How did things change?\n", + "\n", + "Prediction probabilities:\n", + "[0.182 0.818]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-0.01839467 -0.01756669 -0.01524161 -0.01233502 -0.01138026 -0.01040259]\n", + "\n", + "Features:\n", + "[np.str_('you'), np.str_('people'), np.str_('it'), np.str_('just'), np.str_('so'), np.str_('something')]\n" + ] + } + ], + "source": [ + "# -------------------------------------------------------------- #\n", + "# Create explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = SmileTextExplainer(\n", + " embedding_name=\"word2vec-google-news-300\",\n", + " cache_dir=\"~/.cache/google_news_vectors\",\n", + " class_names=class_names,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Generate explanation\n", + "# -------------------------------------------------------------- #\n", + "exp = explainer.explain_instance(\n", + " text,\n", + " pipeline_model.predict_proba,\n", + " num_features=num_features,\n", + ")\n", + "\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract features + weights\n", + "# -------------------------------------------------------------- #\n", + "smile_features, smile_weights = extract_explanation_details(exp)\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(smile_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(smile_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97410776", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "97410776", + "outputId": "1f095276-bf1f-4e2d-a33d-be6e253a3e52" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SMILE\": (smile_weights, smile_features)\n", + " },\n", + " title=\"SMILE\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2415a8d", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "c2415a8d", + "outputId": "cd220f52-2493-4c67-e898-bbbe6497c31c" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=smile_features,\n", + " scores=smile_weights,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "79c3f3dd", + "metadata": { + "id": "79c3f3dd" + }, + "source": [ + "### LIME" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a2cbdb1", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "1a2cbdb1", + "outputId": "f6b2aad8-7c38-4f07-82d1-f78d81be4363" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Input text:\n", + "Is it just me or have you ever been in this phase wherein you became ignorant to the people you once loved completely disregarding their feelings/lives so you get to have something go your way and feel temporarily at ease. How did things change?\n", + "\n", + "Prediction probabilities:\n", + "[0.182 0.818]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-0.01788121 -0.01750191 -0.01302675 -0.01210684 -0.01179819 -0.00945272]\n", + "\n", + "Features:\n", + "[np.str_('you'), np.str_('people'), np.str_('it'), np.str_('just'), np.str_('so'), np.str_('something')]\n" + ] + } + ], + "source": [ + "from lime.lime_text import LimeTextExplainer\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = LimeTextExplainer(\n", + " class_names=class_names\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Generate explanation\n", + "# -------------------------------------------------------------- #\n", + "exp = explainer.explain_instance(\n", + " text,\n", + " pipeline_model.predict_proba,\n", + " num_features=num_features,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract features + weights\n", + "# -------------------------------------------------------------- #\n", + "lime_features, lime_weights = extract_explanation_details(exp)\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(lime_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(lime_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "HVtExPvYzuae", + "outputId": "cfe1b414-2030-4d88-b650-1b54de8e4329" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"LIME\": (lime_weights, lime_features)\n", + " },\n", + " title=\"LIME\",\n", + ")" + ], + "id": "HVtExPvYzuae" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7011b65f", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "7011b65f", + "outputId": "fa850f86-f568-4a7e-a40d-02fe4fcce37a" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=lime_features,\n", + " scores=lime_weights,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "ad7c2fa9", + "metadata": { + "id": "ad7c2fa9" + }, + "source": [ + "### SHAP" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7d7c8526", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "7d7c8526", + "outputId": "f261d03a-7817-4c36-89ff-2fcb63fa6f0a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Input text:\n", + "Is it just me or have you ever been in this phase wherein you became ignorant to the people you once loved completely disregarding their feelings/lives so you get to have something go your way and feel temporarily at ease. How did things change?\n", + "\n", + "Prediction probabilities:\n", + "[0.182 0.818]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-0.014125000000000009, -0.011156250000000008, 0.008562499999999997, -0.006875000000000006, -0.006749999999999999, -0.006125000000000004]\n", + "\n", + "Features:\n", + "['people', 'it', 'in', 'you', 'or', 'you']\n" + ] + } + ], + "source": [ + "import shap\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create SHAP text masker\n", + "# -------------------------------------------------------------- #\n", + "masker = shap.maskers.Text()\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create SHAP explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = shap.Explainer(\n", + " pipeline_model.predict_proba,\n", + " masker=masker,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Explain instance\n", + "# -------------------------------------------------------------- #\n", + "shap_exp = explainer([text])\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract SHAP features + weights\n", + "# -------------------------------------------------------------- #\n", + "shap_features, shap_weights = extract_shap_explanation_details(\n", + " shap_exp,\n", + " class_index=1,\n", + " top_k=num_features,\n", + ")\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(shap_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(shap_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "aH5ks9Sbzuaf", + "outputId": "cb2ee48b-53ed-42cd-b473-0002d8d1c995" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SHAP\": (shap_weights, shap_features)\n", + " },\n", + " title=\"SHAP\",\n", + ")" + ], + "id": "aH5ks9Sbzuaf" + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a40e7501", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "a40e7501", + "outputId": "7a8c4055-b92c-4ac3-ad54-0ddd855add5f" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=shap_features,\n", + " scores=shap_weights,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "0e769e5f", + "metadata": { + "id": "0e769e5f" + }, + "source": [ + "### Comparision together" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0f0eb2ee", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 637 + }, + "id": "0f0eb2ee", + "outputId": "40cb60fe-739e-4057-9aa9-2c200df88fe2" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SMILE\": (smile_weights, smile_features),\n", + " \"LIME\": (lime_weights, lime_features),\n", + " \"SHAP\": (shap_weights, shap_features),\n", + " },\n", + " title=\"Comparing SMILE, LIME, and SHAP\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "09257e7d", + "metadata": { + "id": "09257e7d" + }, + "source": [ + "## Case 5" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "IUs3-MV-zuah" + }, + "outputs": [], + "source": [ + "# -------------------------------------------------------------- #\n", + "# Input text\n", + "# -------------------------------------------------------------- #\n", + "text = \"When will Americans recognize that southern conservatives (those who whine about Obama, Jim Crow appreciators) are the biggest problem with America and that nothing will get solved until they are put in their place?\"\n", + "num_features = 6" + ], + "id": "IUs3-MV-zuah" + }, + { + "cell_type": "markdown", + "id": "7bf2133a", + "metadata": { + "id": "7bf2133a" + }, + "source": [ + "### SMILE" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ec837e8e", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ec837e8e", + "outputId": "266ac0e5-6707-47a1-a874-074fb14f0781" + }, + "outputs": [ + { + "metadata": { + "tags": null + }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading from cache: /root/.cache/google_news_vectors/GoogleNews-vectors-negative300.bin\n" + ] + }, + { + "metadata": { + "tags": null + }, + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n", + "WARNING:gensim.models.keyedvectors:At least one of the documents had no words that were in the vocabulary.\n" + ] + }, + { + "metadata": { + "tags": null + }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Input text:\n", + "When will Americans recognize that southern conservatives (those who whine about Obama, Jim Crow appreciators) are the biggest problem with America and that nothing will get solved until they are put in their place?\n", + "\n", + "Prediction probabilities:\n", + "[0.162 0.838]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-0.05363614 -0.01685009 0.01051229 -0.00852224 -0.00788304 0.00687007]\n", + "\n", + "Features:\n", + "[np.str_('Jim'), np.str_('Americans'), np.str_('in'), np.str_('place'), np.str_('until'), np.str_('and')]\n" + ] + } + ], + "source": [ + "# -------------------------------------------------------------- #\n", + "# Create explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = SmileTextExplainer(\n", + " embedding_name=\"word2vec-google-news-300\",\n", + " cache_dir=\"~/.cache/google_news_vectors\",\n", + " class_names=class_names,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Generate explanation\n", + "# -------------------------------------------------------------- #\n", + "exp = explainer.explain_instance(\n", + " text,\n", + " pipeline_model.predict_proba,\n", + " num_features=num_features,\n", + ")\n", + "\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract features + weights\n", + "# -------------------------------------------------------------- #\n", + "smile_features, smile_weights = extract_explanation_details(exp)\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(smile_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(smile_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4df7b649", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "4df7b649", + "outputId": "31e8eac7-4d5e-43e4-e727-66116270103d" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SMILE\": (smile_weights, smile_features)\n", + " },\n", + " title=\"SMILE\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "eLitXEVPzuai", + "outputId": "b06ec155-7f94-4295-cbad-bfc9a51abadd" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=smile_features,\n", + " scores=smile_weights,\n", + ")" + ], + "id": "eLitXEVPzuai" + }, + { + "cell_type": "markdown", + "id": "a5bab8e4", + "metadata": { + "id": "a5bab8e4" + }, + "source": [ + "### LIME" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a044d744", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "a044d744", + "outputId": "c9a4f314-45a3-4be2-ad8a-076710dee460" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Input text:\n", + "When will Americans recognize that southern conservatives (those who whine about Obama, Jim Crow appreciators) are the biggest problem with America and that nothing will get solved until they are put in their place?\n", + "\n", + "Prediction probabilities:\n", + "[0.162 0.838]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-0.05175235 -0.01668596 0.01114849 -0.00773472 -0.00744458 0.00536944]\n", + "\n", + "Features:\n", + "[np.str_('Jim'), np.str_('Americans'), np.str_('in'), np.str_('place'), np.str_('that'), np.str_('and')]\n" + ] + } + ], + "source": [ + "from lime.lime_text import LimeTextExplainer\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = LimeTextExplainer(\n", + " class_names=class_names\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Generate explanation\n", + "# -------------------------------------------------------------- #\n", + "exp = explainer.explain_instance(\n", + " text,\n", + " pipeline_model.predict_proba,\n", + " num_features=num_features,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract features + weights\n", + "# -------------------------------------------------------------- #\n", + "lime_features, lime_weights = extract_explanation_details(exp)\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(lime_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(lime_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "324f7d0c", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "324f7d0c", + "outputId": "371a3a9c-58fd-4f83-a0ea-b8dda38d5092" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"LIME\": (lime_weights, lime_features)\n", + " },\n", + " title=\"LIME\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "WvMH3v-Szuak", + "outputId": "d7f43373-f67e-47c2-c1d0-6224716d5093" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=lime_features,\n", + " scores=lime_weights,\n", + ")" + ], + "id": "WvMH3v-Szuak" + }, + { + "cell_type": "markdown", + "id": "ea77d1bf", + "metadata": { + "id": "ea77d1bf" + }, + "source": [ + "### SHAP" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "32a6f146", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "32a6f146", + "outputId": "0359f49f-9868-46a2-83ba-6182ee16c70f" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Input text:\n", + "When will Americans recognize that southern conservatives (those who whine about Obama, Jim Crow appreciators) are the biggest problem with America and that nothing will get solved until they are put in their place?\n", + "\n", + "Prediction probabilities:\n", + "[0.162 0.838]\n", + "\n", + "Predicted class: christian\n", + "\n", + "Weights:\n", + "[-0.052375000000000047, -0.014750000000000013, 0.005750000000000005, 0.004562500000000004, 0.004500000000000004, 0.004125000000000004]\n", + "\n", + "Features:\n", + "['Jim', 'Americans', 'and', 'the', 'in', 'are']\n" + ] + } + ], + "source": [ + "import shap\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create SHAP text masker\n", + "# -------------------------------------------------------------- #\n", + "masker = shap.maskers.Text()\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Create SHAP explainer\n", + "# -------------------------------------------------------------- #\n", + "explainer = shap.Explainer(\n", + " pipeline_model.predict_proba,\n", + " masker=masker,\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Explain instance\n", + "# -------------------------------------------------------------- #\n", + "shap_exp = explainer([text])\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Prediction details\n", + "# -------------------------------------------------------------- #\n", + "prediction_probs = pipeline_model.predict_proba([text])[0]\n", + "\n", + "predicted_class_index = prediction_probs.argmax()\n", + "\n", + "print(\"Input text:\")\n", + "print(text)\n", + "\n", + "print(\"\\nPrediction probabilities:\")\n", + "print(prediction_probs)\n", + "\n", + "print(\n", + " \"\\nPredicted class:\",\n", + " class_names[predicted_class_index],\n", + ")\n", + "\n", + "# -------------------------------------------------------------- #\n", + "# Extract SHAP features + weights\n", + "# -------------------------------------------------------------- #\n", + "shap_features, shap_weights = extract_shap_explanation_details(\n", + " shap_exp,\n", + " class_index=1,\n", + " top_k=num_features,\n", + ")\n", + "\n", + "print(\"\\nWeights:\")\n", + "print(shap_weights)\n", + "\n", + "print(\"\\nFeatures:\")\n", + "print(shap_features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "HqT_KfyHzual", + "outputId": "679efec1-6c61-4d23-f150-4b4955a56da4" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SHAP\": (shap_weights, shap_features)\n", + " },\n", + " title=\"SHAP\",\n", + ")" + ], + "id": "HqT_KfyHzual" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 59 + }, + "id": "o39w7tIwzuam", + "outputId": "4ef154c6-8181-4351-ec32-1a05124e96e1" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "plot_text_heatmap(\n", + " words=shap_features,\n", + " scores=shap_weights,\n", + ")" + ], + "id": "o39w7tIwzuam" + }, + { + "cell_type": "markdown", + "id": "7388da02", + "metadata": { + "id": "7388da02" + }, + "source": [ + "### Comparision together" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7f4a6957", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 637 + }, + "id": "7f4a6957", + "outputId": "fccd1036-99d7-4709-9e7e-6722163b07a0" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "plot_explainer_comparison(\n", + " explanations={\n", + " \"SMILE\": (smile_weights, smile_features),\n", + " \"LIME\": (lime_weights, lime_features),\n", + " \"SHAP\": (shap_weights, shap_features),\n", + " },\n", + " title=\"Comparing SMILE, LIME, and SHAP\",\n", + ")" + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "OnvX5Dca7HQ_" + }, + "id": "OnvX5Dca7HQ_", + "execution_count": null, + "outputs": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "3-NLP_Examples", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.12" + }, + "colab": { + "provenance": [], + "toc_visible": true + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/examples/NLP_Examples/x_why_for_text_smile.py b/examples/NLP_Examples/x_why_for_text_smile.py new file mode 100644 index 0000000..6c22923 --- /dev/null +++ b/examples/NLP_Examples/x_why_for_text_smile.py @@ -0,0 +1,1951 @@ +# -*- coding: utf-8 -*- +"""x-why-for-text-smile.ipynb + +Automatically generated by Colab. + +Original file is located at + https://colab.research.google.com/drive/1x0-0wIu7JRxf9dAvhwasj8gBqNsUV6yV + +## Install libraries +""" + +!pip install -q pandas numpy scikit-learn plotly matplotlib nltk gensim lime requests pot shap + +"""## Import Libraries""" + +import os +import shutil +import gzip + +import requests + +from gensim.models import KeyedVectors +import gensim.downloader as api + +"""## Text model embedding + +### Utility: Fast Download +""" + +def _download_file_fast(url: str, output_path: str) -> None: + """Download a file using streaming requests with a size sanity check. + + Args: + url (str): File URL. + output_path (str): Destination file path. + + Raises: + IOError: If downloaded file is unexpectedly small. + requests.exceptions.RequestException: If request fails. + """ + print(f"Downloading from {url} => {output_path}") + + try: + response = requests.get(url, stream=True, timeout=300) + response.raise_for_status() + + min_expected_size_bytes: int = 100 * 1024 * 1024 # 100 MB + downloaded_size: int = 0 + + with open(output_path, "wb") as file: + for chunk in response.iter_content(chunk_size=8192): + if chunk: + file.write(chunk) + downloaded_size += len(chunk) + + if downloaded_size < min_expected_size_bytes: + raise IOError( + f"Downloaded file too small: {downloaded_size / (1024**2):.2f} MB" + ) + + print(f"Download completed: {downloaded_size / (1024**2):.2f} MB") + + except requests.exceptions.RequestException as error: + if os.path.exists(output_path): + os.remove(output_path) + raise error + + except IOError as error: + if os.path.exists(output_path): + os.remove(output_path) + raise error + +"""### Utility: Gzip Extraction""" + +def _extract_gzip(gzip_path: str, output_path: str) -> None: + """Extract a gzip file. + + Args: + gzip_path (str): Path to .gz file. + output_path (str): Output file path. + """ + print(f"Extracting {gzip_path}...") + + with gzip.open(gzip_path, "rb") as src, open(output_path, "wb") as dst: + shutil.copyfileobj(src, dst) + +"""### Main Loader Function""" + +def load_embedding_model( + model_name: str, + cache_dir: str = "~/.cache/embeddings", + force_download: bool = False, +) -> KeyedVectors: + """Load a word embedding model with caching and fallback strategies. + + Supported models: + - word2vec-google-news-300 + - glove.840B.300d + - paragram_300_sl999 + + Args: + model_name (str): Name of the embedding model. + cache_dir (str): Directory for storing cached models. + force_download (bool): Force re-download. + + Returns: + KeyedVectors: Loaded embedding model. + + Raises: + RuntimeError: If model cannot be loaded. + """ + cache_dir = os.path.expanduser(cache_dir) + os.makedirs(cache_dir, exist_ok=True) + + model_file_map = { + "word2vec-google-news-300": { + "file": "GoogleNews-vectors-negative300.bin", + "binary": True, + "gensim": True, + }, + "glove.840B.300d": { + "file": "glove.840B.300d.txt", + "binary": False, + "gensim": True, + }, + "paragram_300_sl999": { + "file": "paragram_300_sl999.txt", + "binary": False, + "gensim": True, + }, + } + + if model_name not in model_file_map: + raise ValueError(f"Unsupported model: {model_name}") + + model_info = model_file_map[model_name] + model_path = os.path.join(cache_dir, model_info["file"]) + + # === 1. Load from cache === + if os.path.exists(model_path) and not force_download: + print(f"Loading from cache: {model_path}") + return KeyedVectors.load_word2vec_format( + model_path, + binary=model_info["binary"], + ) + + # === 2. Try gensim downloader === + if model_info["gensim"]: + print(f"Loading via gensim: {model_name}") + try: + model = api.load(model_name) + + print(f"Saving to cache: {model_path}") + model.save_word2vec_format( + model_path, + binary=model_info["binary"], + ) + return model + + except Exception as error: + print(f"Gensim failed: {error}") + + # === 3. Manual fallback (ONLY for GoogleNews) === + if model_name == "word2vec-google-news-300": + gz_path = model_path + ".gz" + download_url = ( + "https://public.ukp.informatik.tu-darmstadt.de/" + "reimers/wordembeddings/GoogleNews-vectors-negative300.bin.gz" + ) + + try: + _download_file_fast(download_url, gz_path) + _extract_gzip(gz_path, model_path) + + return KeyedVectors.load_word2vec_format(model_path, binary=True) + + except Exception as error: + raise RuntimeError("Failed to load GoogleNews model") from error + + raise RuntimeError(f"Failed to load model: {model_name}") + +"""## SMILE Text Explanation using LIME""" + +from typing import Callable, Literal, Optional, Tuple, List, Dict +import numpy as np + +from lime.lime_text import LimeTextExplainer +from gensim.models import KeyedVectors + +EmbeddingName = Literal[ + "word2vec-google-news-300", + "glove.840B.300d", + "paragram_300_sl999", +] + + +class SmileTextExplainer(LimeTextExplainer): + """SMILE explainer using semantic (WMD) distance instead of cosine. + + This class extends LIME by replacing cosine distance with Word Mover's + Distance (WMD), with optimizations for practical performance. + + Args: + embedding_name: Embedding model name. + cache_dir: Directory to cache embeddings. + use_wmd_cache: Cache WMD distances for speed. + **kwargs: Passed to LimeTextExplainer. + """ + + def __init__( + self, + embedding_name: EmbeddingName = "word2vec-google-news-300", + cache_dir: str = "~/.cache/embeddings", + use_wmd_cache: bool = True, + **kwargs, + ) -> None: + super().__init__(**kwargs) + self.embedding_name: EmbeddingName = embedding_name + self.cache_dir: str = cache_dir + self.use_wmd_cache: bool = use_wmd_cache + + self.embedding_model: Optional[KeyedVectors] = None + self._wmd_cache: Dict[Tuple[str, str], float] = {} + + def _get_embedding(self) -> KeyedVectors: + """Lazy-load the embedding model and ensure internal norms are filled.""" + if self.embedding_model is None: + # Assuming load_embedding_model is defined globally in your environment + self.embedding_model = load_embedding_model( + model_name=self.embedding_name, + cache_dir=self.cache_dir, + ) + self.embedding_model.fill_norms(force=True) + + return self.embedding_model + + def _wmd_distance( + self, + doc1_tokens: List[str], + doc2_tokens: List[str], + ) -> float: + """Compute (cached) WMD distance between two token lists. + + Args: + doc1_tokens: List of tokens from the first document. + doc2_tokens: List of tokens from the second document. + + Returns: + The Word Mover's Distance between the documents, or inf if OOV. + """ + key = (" ".join(doc1_tokens), " ".join(doc2_tokens)) + + if self.use_wmd_cache and key in self._wmd_cache: + return self._wmd_cache[key] + + model = self._get_embedding() + + try: + distance = model.wmdistance(doc1_tokens, doc2_tokens) + except Exception: + # Fallback if tokens are Out-Of-Vocabulary (OOV) + distance = float("inf") + + if self.use_wmd_cache: + self._wmd_cache[key] = distance + + return distance + + def _batch_wmd( + self, + original_tokens: List[str], + perturbed_texts: List[str], + ) -> np.ndarray: + """Compute WMD distances for all perturbations efficiently. + + Args: + original_tokens: Tokens of the base unperturbed text. + perturbed_texts: List of raw strings representing perturbed sentences. + + Returns: + A numpy array of computed distances. + """ + distances: List[float] = [] + + for text in perturbed_texts: + tokens = text.split() + dist = self._wmd_distance(original_tokens, tokens) + distances.append(dist) + + return np.array(distances) + + def _LimeTextExplainer__data_labels_distances( # noqa: N802 + self, + indexed_string, + classifier_fn: Callable, + num_samples: int, + distance_metric: str = "cosine", + ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: + """Override LIME distance with WMD-based semantic distance safely. + + Args: + indexed_string: The internal LIME IndexedString instance. + classifier_fn: Prediction function returning probabilities. + num_samples: Total number of perturbation samples to generate. + distance_metric: Unused parameter kept for signature matching. + + Returns: + A tuple containing the perturbation matrix, predictions, and distances. + """ + doc_size = indexed_string.num_words() + sample = self.random_state.randint(1, doc_size + 1, num_samples - 1) + + data = np.ones((num_samples, doc_size)) + data[0] = np.ones(doc_size) + + features_range = range(doc_size) + inverse_data: List[str] = [indexed_string.raw_string()] + + for i, size in enumerate(sample, start=1): + inactive = self.random_state.choice( + features_range, size, replace=False + ) + data[i, inactive] = 0 + inverse_data.append( + indexed_string.inverse_removing(inactive) + ) + + # === Model predictions === + labels = classifier_fn(inverse_data) + + # === SMILE distance (WMD) === + original_tokens = inverse_data[0].split() + distances = self._batch_wmd(original_tokens, inverse_data) + + # === Safe Handle for Infinity / NaN values === + # Isolate valid, finite measurements to calculate a safe maximum scale + finite_mask = np.isfinite(distances) + finite_distances = distances[finite_mask] + + if len(finite_distances) > 0: + max_finite_distance = np.max(finite_distances) + # Use a large finite fallback value (max + a buffer) so that it + # naturally results in a 0 weight without overflowing NumPy's squaring operation + safe_fallback = max_finite_distance + 50.0 + distances[~finite_mask] = safe_fallback + else: + # Edge case fallback if everything in the batch ends up OOV + distances[:] = 100.0 + + distances = distances.reshape(-1) + + return data, labels, distances + +"""## Data Loading + +### Load Dataset +""" + +from typing import List, Tuple +from sklearn.datasets import fetch_20newsgroups + + +def load_newsgroups_data( + categories: List[str], +) -> Tuple: + """Load train and test subsets of 20 Newsgroups dataset. + + Args: + categories (List[str]): List of category names. + + Returns: + Tuple: Train and test datasets. + """ + train_data = fetch_20newsgroups(subset="train", categories=categories) + test_data = fetch_20newsgroups(subset="test", categories=categories) + return train_data, test_data + + +categories = ["alt.atheism", "soc.religion.christian"] +class_names = ["atheism", "christian"] + +newsgroups_train, newsgroups_test = load_newsgroups_data(categories) + +"""## Feature Engineering + +### TF-IDF Vectorization +""" + +import sklearn.feature_extraction.text as text + + +def build_vectorizer(): + """Create TF-IDF vectorizer. + + Returns: + TfidfVectorizer: Configured vectorizer. + """ + return text.TfidfVectorizer(lowercase=False) + + +vectorizer = build_vectorizer() + +train_vectors = vectorizer.fit_transform(newsgroups_train.data) +test_vectors = vectorizer.transform(newsgroups_test.data) + +"""## Model Training + +### Train Classifier +""" + +import sklearn.ensemble as ensemble + + +def train_random_forest(train_vectors, targets): + """Train RandomForest classifier. + + Args: + train_vectors: Feature matrix. + targets: Target labels. + + Returns: + RandomForestClassifier: Trained model. + """ + model = ensemble.RandomForestClassifier(n_estimators=500) + model.fit(train_vectors, targets) + return model + + +rf = train_random_forest(train_vectors, newsgroups_train.target) + +"""## Model Evaluation + +### Compute F1 Score +""" + +import sklearn.metrics as metrics + + +def evaluate_model(model, test_vectors, targets) -> float: + """Evaluate model using F1 score. + + Args: + model: Trained model. + test_vectors: Feature matrix. + targets: True labels. + + Returns: + float: F1 score. + """ + predictions = model.predict(test_vectors) + return metrics.f1_score(targets, predictions, average="binary") + + +f1 = evaluate_model(rf, test_vectors, newsgroups_test.target) +print(f"F1 Score: {f1:.4f}") + +"""## Pipeline Construction + +### Build Sklearn Pipeline +""" + +from sklearn.pipeline import make_pipeline + + +def build_pipeline(vectorizer, model): + """Create sklearn pipeline. + + Args: + vectorizer: Text vectorizer. + model: Trained model. + + Returns: + Pipeline: Combined pipeline. + """ + return make_pipeline(vectorizer, model) + + +pipeline_model = build_pipeline(vectorizer, rf) + +print(pipeline_model.predict_proba([newsgroups_test.data[0]])) + +"""## SMILE Explanation instance + +### Generate Explanation +""" + +# Commented out IPython magic to ensure Python compatibility. +# %%time +# explainer = SmileTextExplainer( +# embedding_name="word2vec-google-news-300", +# cache_dir="~/.cache/google_news_vectors", +# class_names=class_names, +# ) +# +# idx = 50 +# exp = explainer.explain_instance( +# newsgroups_test.data[idx], +# pipeline_model.predict_proba, +# num_features=6, +# ) +# +# +# print(f"Document id: {idx}") +# print( +# "Probability(christian) =", +# pipeline_model.predict_proba([newsgroups_test.data[idx]])[0, 1], +# ) +# print("True class:", class_names[newsgroups_test.target[idx]]) + +"""## Feature Impact Analysis + +### Remove Features and Compare Predictions +""" + +def analyze_feature_removal( + model, + vectorizer, + test_vectors, + index: int, + words_to_remove: List[str], +) -> None: + """Analyze impact of removing specific words. + + Args: + model: Trained model. + vectorizer: TF-IDF vectorizer. + test_vectors: Feature matrix. + index (int): Sample index. + words_to_remove (List[str]): Words to remove. + """ + original_prob = model.predict_proba(test_vectors[index])[0, 1] + print("Original prediction:", original_prob) + + # convert to LIL format + modified_vector = test_vectors[index].copy().tolil() + + for word in words_to_remove: + if word in vectorizer.vocabulary_: + col_idx = vectorizer.vocabulary_[word] + modified_vector[0, col_idx] = 0 + + # convert back to CSR for model inference + modified_vector = modified_vector.tocsr() + + new_prob = model.predict_proba(modified_vector)[0, 1] + + print("Modified prediction:", new_prob) + print("Difference:", new_prob - original_prob) + + +analyze_feature_removal( + rf, + vectorizer, + test_vectors, + idx, + words_to_remove=["Posting", "Host"], +) + +"""## Visualization + +### Plot Explanation +""" + +def plot_explanation(exp): + """Plot LIME explanation. + + Args: + exp: LIME explanation object. + """ + return exp.as_pyplot_figure() + + +fig = plot_explanation(exp) + +"""### HTML Visualization""" + +from IPython.display import HTML + + +def render_html(exp): + """Render LIME explanation as HTML. + + Args: + exp: LIME explanation object. + + Returns: + HTML: Rendered HTML. + """ + return HTML(exp.as_html()) + + +render_html(exp) + +"""### Plot Explainer Comparision""" + +from typing import Dict, List, Tuple + +import numpy as np +import plotly.graph_objects as go +from plotly.subplots import make_subplots + + +def plot_explainer_comparison( + explanations: Dict[str, Tuple[List[float], List[str]]], + title: str = "Explainer Comparison", + height: int = 600, + width_per_plot: int = 500, +) -> None: + """ + Compare multiple explanation methods using horizontal bar charts. + + Supported explainers: + - SMILE + - LIME + - SHAP + - Any custom explainer name + + Args: + explanations: + Dictionary format: + { + "SMILE": (weights, features), + "LIME": (weights, features), + "SHAP": (weights, features), + } + + Example: + { + "SMILE": ([0.8, 0.4], ["god", "church"]), + "LIME": ([0.7, 0.3], ["god", "faith"]), + } + + title: + Figure title. + + height: + Plot height. + + width_per_plot: + Width allocated for each subplot. + """ + + # -------------------------------------------------------------- # + # Validate Inputs + # -------------------------------------------------------------- # + if not explanations: + raise ValueError("`explanations` cannot be empty.") + + valid_explanations: Dict[str, Tuple[List[float], List[str]]] = {} + + for name, value in explanations.items(): + + if value is None: + continue + + if len(value) != 2: + raise ValueError( + f"{name} must contain (weights, features)." + ) + + weights, features = value + + if len(weights) != len(features): + raise ValueError( + f"{name}: weights and features must have same length." + ) + + valid_explanations[name] = (weights, features) + + if not valid_explanations: + raise ValueError("No valid explanations provided.") + + # -------------------------------------------------------------- # + # Dynamic subplot creation + # -------------------------------------------------------------- # + explainer_names: List[str] = list(valid_explanations.keys()) + num_explainers: int = len(explainer_names) + + fig = make_subplots( + rows=1, + cols=num_explainers, + subplot_titles=tuple(explainer_names), + ) + + # -------------------------------------------------------------- # + # Add traces + # -------------------------------------------------------------- # + for col_index, explainer_name in enumerate(explainer_names, start=1): + + weights, features = valid_explanations[explainer_name] + + weights_array = np.array(weights) + + fig.add_trace( + go.Bar( + x=weights, + y=features, + orientation="h", + marker=dict( + color=np.argsort(weights_array), + coloraxis="coloraxis", + ), + name=explainer_name, + ), + row=1, + col=col_index, + ) + + # -------------------------------------------------------------- # + # Layout + # -------------------------------------------------------------- # + fig.update_layout( + title_text=title, + height=height, + width=max(width_per_plot * num_explainers, 700), + showlegend=False, + coloraxis=dict( + colorscale="Bluered_r", + ), + ) + + fig.show() + +"""### Plot Text Heatmap""" + +import matplotlib.pyplot as plt +import matplotlib.cm as cm +import matplotlib.transforms as transforms +import numpy as np +from typing import List, Union + +def plot_text_heatmap( + words: List[str], + scores: Union[List[float], np.ndarray], + title: str = "", + width: float = 10.0, + height: float = 0.2, + verbose: int = 0, + max_words_per_line: int = 20 +) -> None: + """Plots a text-based heatmap where words are highlighted based on their scores. + + Args: + words: A list of text tokens/words to display. + scores: An array or list of numerical scores associated with each word. + title: The title of the plot. Defaults to "". + width: Figure width in inches. Defaults to 10.0. + height: Figure height in inches. Defaults to 0.2. + verbose: Verbosity level. >0 prints lengths, >1 prints raw/normalized scores. + Defaults to 0. + max_words_per_line: Maximum number of words allowed before wrapping to a + new line. Defaults to 20. + + Raises: + ValueError: If input lists are empty, lengths mismatch, or max_words_per_line + is invalid. + """ + # Input Validation Checks + if not words or scores is None or len(scores) == 0: + raise ValueError("Both 'words' and 'scores' arguments must contain elements.") + + if len(words) != len(scores): + raise ValueError( + f"Length mismatch: 'words' has length {len(words)}, " + f"but 'scores' has length {len(scores)}." + ) + + if max_words_per_line <= 0: + raise ValueError("The 'max_words_per_line' parameter must be greater than 0.") + + # Initialize the figure and axis + plt.figure(figsize=(width, height)) + axis = plt.gca() + axis.set_title(title, loc='left') + + if verbose > 0: + print(f"len words : {len(words)} | len scores : {len(scores)}") + + # Setup the colormap mapping normalized scores to colors + color_map = plt.cm.ScalarMappable(cmap=cm.bwr) + color_map.set_clim(0, 1) + + canvas = axis.figure.canvas + transform = axis.transData + + # Normalize scores: negative scores in [0, 0.5], positive scores in (0.5, 1] + max_absolute_score = np.max(np.abs(scores)) + if max_absolute_score == 0: + # Fallback handle if all scores are 0 to prevent division by zero + normalized_scores = np.full_like(scores, 0.5, dtype=float) + else: + normalized_scores = 0.5 * np.array(scores) / max_absolute_score + 0.5 + + if verbose > 1: + print("Raw score") + print(scores) + print("Normalized score") + print(normalized_scores) + + # Initial vertical offset to prevent overlap with the title + y_coordinate = -0.2 + + for index, token in enumerate(words): + # Extract RGB values and format them into a hex color string + *rgb_values, _ = color_map.to_rgba(normalized_scores[index], bytes=True) + hex_color = f"#{tuple(rgb_values)[0]:02x}{tuple(rgb_values)[1]:02x}{tuple(rgb_values)[2]:02x}" + + # Render the text box with its corresponding background color + text_element = axis.text( + x=0.0, + y=y_coordinate, + s=token, + bbox={ + 'facecolor': hex_color, + 'pad': 5.0, + 'linewidth': 1, + 'boxstyle': 'round,pad=0.5' + }, + transform=transform, + fontsize=14 + ) + + text_element.draw(canvas.get_renderer()) + window_extent = text_element.get_window_extent() + + # Wrap text to a new line if the word limit for the line is reached + if (index + 1) % max_words_per_line == 0: + y_coordinate -= 2.5 + transform = axis.transData + else: + # Enhanced spacing to dynamically accommodate for the round bounding box padding + transform = transforms.offset_copy( + text_element._transform, + x=window_extent.width + 20, + units='dots' + ) + + if verbose == 0: + axis.axis('off') + +"""## Explanation Data Extraction + +### Extract Weights and Features +""" + +import numpy as np + + +def extract_explanation_details(exp, label: int = 1): + """Extract feature weights and names from explanation. + + Args: + exp: LIME explanation object. + label (int): Target class index. + + Returns: + Tuple[List[str], np.ndarray]: Features and weights. + """ + weights = [weight for _, weight in exp.local_exp[label]] + features = [feat for feat, _ in exp.as_list()] + + return features, np.array(weights) + + +features, weights = extract_explanation_details(exp) + +print(weights) +print(features) + +"""### Extract SHAP Features and Weights""" + +from typing import List, Tuple +import numpy as np + + +def extract_shap_explanation_details( + shap_explanation, + class_index: int = 1, + top_k: int = 6, +) -> Tuple[List[str], List[float]]: + """ + Extract top-k SHAP features and their importance weights. + + This version normalizes SHAP token output to make it comparable + with LIME and SMILE explanations. + + Args: + shap_explanation: + SHAP explanation object (output of shap.Explainer). + + class_index: + Target class index for classification models. + + top_k: + Number of most important features to return. + + Returns: + Tuple of: + - features: List of tokens (cleaned) + - weights: List of SHAP values (floats) + """ + + # -------------------------------------------------------------- # + # Extract tokens + # -------------------------------------------------------------- # + tokens = shap_explanation.data[0] + + # Normalize tokens (handles np.str_, whitespace, etc.) + tokens = [str(t).strip() for t in tokens] + + # -------------------------------------------------------------- # + # Extract SHAP values for selected class + # -------------------------------------------------------------- # + values = shap_explanation.values[0, :, class_index] + values = np.asarray(values, dtype=float) + + # -------------------------------------------------------------- # + # Top-k selection by absolute importance + # -------------------------------------------------------------- # + if top_k >= len(values): + idx = np.argsort(np.abs(values))[::-1] + else: + idx = np.argsort(np.abs(values))[-top_k:][::-1] + + # -------------------------------------------------------------- # + # Build outputs + # -------------------------------------------------------------- # + features = [tokens[i] for i in idx] + weights = [float(values[i]) for i in idx] + + return features, weights + +plot_explainer_comparison( + explanations={ + "SMILE": (weights, features) + }, + title="SMILE", +) + +plot_text_heatmap( + words=features, + scores=weights, +) + +"""# Comparision + +## Case 1 +""" + +num_features = 6 + +"""### SMILE""" + +explainer = SmileTextExplainer( + embedding_name="word2vec-google-news-300", + cache_dir="~/.cache/google_news_vectors", + class_names=class_names, +) + +idx = 50 +exp = explainer.explain_instance( + newsgroups_test.data[idx], + pipeline_model.predict_proba, + num_features=num_features, +) + + +print(f"Document id: {idx}") +print( + "Probability(christian) =", + pipeline_model.predict_proba([newsgroups_test.data[idx]])[0, 1], +) +print("True class:", class_names[newsgroups_test.target[idx]]) + + +smile_features, smile_weights = extract_explanation_details(exp) + +print(smile_weights) +print(smile_features) + +plot_explainer_comparison( + explanations={ + "SMILE": (smile_weights, smile_features) + }, + title="SMILE", +) + +plot_text_heatmap( + words=smile_features, + scores=smile_weights, + +) + +"""### LIME""" + +from lime.lime_text import LimeTextExplainer + +explainer = LimeTextExplainer(class_names=class_names) + +idx = 50 +exp = explainer.explain_instance( + newsgroups_test.data[idx], + pipeline_model.predict_proba, + num_features=num_features, +) + + +print(f"Document id: {idx}") +print( + "Probability(christian) =", + pipeline_model.predict_proba([newsgroups_test.data[idx]])[0, 1], +) +print("True class:", class_names[newsgroups_test.target[idx]]) + + +lime_features, lime_weights = extract_explanation_details(exp) + +print(lime_weights) +print(lime_features) + +plot_explainer_comparison( + explanations={ + "LIME": (lime_weights, lime_features) + }, + title="LIME", +) + +plot_text_heatmap( + words=lime_features, + scores=lime_weights, +) + +"""### SHAP""" + +import shap + +idx = 50 + +# -------------------------------------------------------------- # +# Create SHAP text masker +# -------------------------------------------------------------- # +masker = shap.maskers.Text() + +# -------------------------------------------------------------- # +# Create SHAP explainer +# -------------------------------------------------------------- # +explainer = shap.Explainer( + pipeline_model.predict_proba, + masker=masker, +) + +# -------------------------------------------------------------- # +# Explain instance +# -------------------------------------------------------------- # +shap_exp = explainer( + [newsgroups_test.data[idx]] +) + +# -------------------------------------------------------------- # +# Print prediction details +# -------------------------------------------------------------- # +print(f"Document id: {idx}") + +print( + "Probability(christian) =", + pipeline_model.predict_proba( + [newsgroups_test.data[idx]] + )[0, 1], +) + +print( + "True class:", + class_names[newsgroups_test.target[idx]], +) + +# -------------------------------------------------------------- # +# Extract SHAP features + weights +# -------------------------------------------------------------- # +shap_features, shap_weights = extract_shap_explanation_details( + shap_exp, + class_index=1, + top_k=num_features, +) + +print(shap_weights) +print(shap_features) + +plot_explainer_comparison( + explanations={ + "SHAP": (shap_weights, shap_features) + }, + title="SHAP", +) + +plot_text_heatmap( + words=shap_features, + scores=shap_weights, +) + +"""### Comparision together""" + +plot_explainer_comparison( + explanations={ + "SMILE": (smile_weights, smile_features), + "LIME": (lime_weights, lime_features), + "SHAP": (shap_weights, shap_features), + }, + title="Comparing SMILE, LIME, and SHAP", +) + +"""## Case 2""" + +# -------------------------------------------------------------- # +# Input text +# -------------------------------------------------------------- # +text = "I believe in god who creates the entire planet" +num_features = len(text.split()) + +"""### SMILE""" + +# -------------------------------------------------------------- # +# Create explainer +# -------------------------------------------------------------- # +explainer = SmileTextExplainer( + embedding_name="word2vec-google-news-300", + cache_dir="~/.cache/google_news_vectors", + class_names=class_names, +) + +# -------------------------------------------------------------- # +# Generate explanation +# -------------------------------------------------------------- # +exp = explainer.explain_instance( + text, + pipeline_model.predict_proba, + num_features=num_features, +) + + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + + +# -------------------------------------------------------------- # +# Extract features + weights +# -------------------------------------------------------------- # +smile_features, smile_weights = extract_explanation_details(exp) + +print("\nWeights:") +print(smile_weights) + +print("\nFeatures:") +print(smile_features) + +plot_explainer_comparison( + explanations={ + "SMILE": (smile_weights, smile_features) + }, + title="SMILE", +) + +plot_text_heatmap( + words=smile_features, + scores=smile_weights, + +) + +"""### LIME""" + +from lime.lime_text import LimeTextExplainer + +# -------------------------------------------------------------- # +# Create explainer +# -------------------------------------------------------------- # +explainer = LimeTextExplainer( + class_names=class_names +) + +# -------------------------------------------------------------- # +# Generate explanation +# -------------------------------------------------------------- # +exp = explainer.explain_instance( + text, + pipeline_model.predict_proba, + num_features=num_features, +) + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + +# -------------------------------------------------------------- # +# Extract features + weights +# -------------------------------------------------------------- # +lime_features, lime_weights = extract_explanation_details(exp) + +print("\nWeights:") +print(lime_weights) + +print("\nFeatures:") +print(lime_features) + +plot_explainer_comparison( + explanations={ + "LIME": (lime_weights, lime_features) + }, + title="LIME", +) + +plot_text_heatmap( + words=lime_features, + scores=lime_weights, +) + +"""### SHAP""" + +import shap + +# -------------------------------------------------------------- # +# Create SHAP text masker +# -------------------------------------------------------------- # +masker = shap.maskers.Text() + +# -------------------------------------------------------------- # +# Create SHAP explainer +# -------------------------------------------------------------- # +explainer = shap.Explainer( + pipeline_model.predict_proba, + masker=masker, +) + +# -------------------------------------------------------------- # +# Explain instance +# -------------------------------------------------------------- # +shap_exp = explainer([text]) + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + +# -------------------------------------------------------------- # +# Extract SHAP features + weights +# -------------------------------------------------------------- # +shap_features, shap_weights = extract_shap_explanation_details( + shap_exp, + class_index=1, + top_k=num_features, +) + +print("\nWeights:") +print(shap_weights) + +print("\nFeatures:") +print(shap_features) + +plot_explainer_comparison( + explanations={ + "SHAP": (shap_weights, shap_features) + }, + title="SHAP", +) + +plot_text_heatmap( + words=shap_features, + scores=shap_weights, +) + +"""### Comparision together""" + +plot_explainer_comparison( + explanations={ + "SMILE": (smile_weights, smile_features), + "LIME": (lime_weights, lime_features), + "SHAP": (shap_weights, shap_features), + }, + title="Comparing SMILE, LIME, and SHAP", +) + +"""## Case 3""" + +# -------------------------------------------------------------- # +# Input text +# -------------------------------------------------------------- # +text = "For those who believe in God most of the big questions are answered But for those of us who can't readily accept the God formula the big answers don't remain stone-written. We adjust to new conditions and discoveries. We are pliable. Love need not be a command nor faith a dictum. I am my own god. We are here to unlearn the teachings of the church state, and our educational system. We are here to drink beer. We are here to kill war. We are here to laugh at the odds and live our lives so well that Death will tremble to take us -- Charles Bukowski" +num_features = 6 + +"""### SMILE""" + +# -------------------------------------------------------------- # +# Create explainer +# -------------------------------------------------------------- # +explainer = SmileTextExplainer( + embedding_name="word2vec-google-news-300", + cache_dir="~/.cache/google_news_vectors", + class_names=class_names, +) + +# -------------------------------------------------------------- # +# Generate explanation +# -------------------------------------------------------------- # +exp = explainer.explain_instance( + text, + pipeline_model.predict_proba, + num_features=num_features, +) + + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + + +# -------------------------------------------------------------- # +# Extract features + weights +# -------------------------------------------------------------- # +smile_features, smile_weights = extract_explanation_details(exp) + +print("\nWeights:") +print(smile_weights) + +print("\nFeatures:") +print(smile_features) + +plot_explainer_comparison( + explanations={ + "SMILE": (smile_weights, smile_features) + }, + title="SMILE", +) + +plot_text_heatmap( + words=smile_features, + scores=smile_weights, +) + +"""### LIME""" + +from lime.lime_text import LimeTextExplainer + +# -------------------------------------------------------------- # +# Create explainer +# -------------------------------------------------------------- # +explainer = LimeTextExplainer( + class_names=class_names +) + +# -------------------------------------------------------------- # +# Generate explanation +# -------------------------------------------------------------- # +exp = explainer.explain_instance( + text, + pipeline_model.predict_proba, + num_features=num_features, +) + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + +# -------------------------------------------------------------- # +# Extract features + weights +# -------------------------------------------------------------- # +lime_features, lime_weights = extract_explanation_details(exp) + +print("\nWeights:") +print(lime_weights) + +print("\nFeatures:") +print(lime_features) + +plot_explainer_comparison( + explanations={ + "LIME": (lime_weights, lime_features) + }, + title="LIME", +) + +plot_text_heatmap( + words=lime_features, + scores=lime_weights, +) + +"""### SHAP""" + +import shap + +# -------------------------------------------------------------- # +# Create SHAP text masker +# -------------------------------------------------------------- # +masker = shap.maskers.Text() + +# -------------------------------------------------------------- # +# Create SHAP explainer +# -------------------------------------------------------------- # +explainer = shap.Explainer( + pipeline_model.predict_proba, + masker=masker, +) + +# -------------------------------------------------------------- # +# Explain instance +# -------------------------------------------------------------- # +shap_exp = explainer([text]) + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + +# -------------------------------------------------------------- # +# Extract SHAP features + weights +# -------------------------------------------------------------- # +shap_features, shap_weights = extract_shap_explanation_details( + shap_exp, + class_index=1, + top_k=num_features, +) + +print("\nWeights:") +print(shap_weights) + +print("\nFeatures:") +print(shap_features) + +plot_explainer_comparison( + explanations={ + "SHAP": (shap_weights, shap_features) + }, + title="SHAP", +) + +plot_text_heatmap( + words=shap_features, + scores=shap_weights, +) + +"""### Comparision together""" + +plot_explainer_comparison( + explanations={ + "SMILE": (smile_weights, smile_features), + "LIME": (lime_weights, lime_features), + "SHAP": (shap_weights, shap_features), + }, + title="Comparing SMILE, LIME, and SHAP", +) + +"""## Case 4""" + +# -------------------------------------------------------------- # +# Input text +# -------------------------------------------------------------- # +text = "Is it just me or have you ever been in this phase wherein you became ignorant to the people you once loved completely disregarding their feelings/lives so you get to have something go your way and feel temporarily at ease. How did things change?" +num_features = 6 + +"""### SMILE""" + +# -------------------------------------------------------------- # +# Create explainer +# -------------------------------------------------------------- # +explainer = SmileTextExplainer( + embedding_name="word2vec-google-news-300", + cache_dir="~/.cache/google_news_vectors", + class_names=class_names, +) + +# -------------------------------------------------------------- # +# Generate explanation +# -------------------------------------------------------------- # +exp = explainer.explain_instance( + text, + pipeline_model.predict_proba, + num_features=num_features, +) + + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + + +# -------------------------------------------------------------- # +# Extract features + weights +# -------------------------------------------------------------- # +smile_features, smile_weights = extract_explanation_details(exp) + +print("\nWeights:") +print(smile_weights) + +print("\nFeatures:") +print(smile_features) + +plot_explainer_comparison( + explanations={ + "SMILE": (smile_weights, smile_features) + }, + title="SMILE", +) + +plot_text_heatmap( + words=smile_features, + scores=smile_weights, +) + +"""### LIME""" + +from lime.lime_text import LimeTextExplainer + +# -------------------------------------------------------------- # +# Create explainer +# -------------------------------------------------------------- # +explainer = LimeTextExplainer( + class_names=class_names +) + +# -------------------------------------------------------------- # +# Generate explanation +# -------------------------------------------------------------- # +exp = explainer.explain_instance( + text, + pipeline_model.predict_proba, + num_features=num_features, +) + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + +# -------------------------------------------------------------- # +# Extract features + weights +# -------------------------------------------------------------- # +lime_features, lime_weights = extract_explanation_details(exp) + +print("\nWeights:") +print(lime_weights) + +print("\nFeatures:") +print(lime_features) + +plot_explainer_comparison( + explanations={ + "LIME": (lime_weights, lime_features) + }, + title="LIME", +) + +plot_text_heatmap( + words=lime_features, + scores=lime_weights, +) + +"""### SHAP""" + +import shap + +# -------------------------------------------------------------- # +# Create SHAP text masker +# -------------------------------------------------------------- # +masker = shap.maskers.Text() + +# -------------------------------------------------------------- # +# Create SHAP explainer +# -------------------------------------------------------------- # +explainer = shap.Explainer( + pipeline_model.predict_proba, + masker=masker, +) + +# -------------------------------------------------------------- # +# Explain instance +# -------------------------------------------------------------- # +shap_exp = explainer([text]) + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + +# -------------------------------------------------------------- # +# Extract SHAP features + weights +# -------------------------------------------------------------- # +shap_features, shap_weights = extract_shap_explanation_details( + shap_exp, + class_index=1, + top_k=num_features, +) + +print("\nWeights:") +print(shap_weights) + +print("\nFeatures:") +print(shap_features) + +plot_explainer_comparison( + explanations={ + "SHAP": (shap_weights, shap_features) + }, + title="SHAP", +) + +plot_text_heatmap( + words=shap_features, + scores=shap_weights, +) + +"""### Comparision together""" + +plot_explainer_comparison( + explanations={ + "SMILE": (smile_weights, smile_features), + "LIME": (lime_weights, lime_features), + "SHAP": (shap_weights, shap_features), + }, + title="Comparing SMILE, LIME, and SHAP", +) + +"""## Case 5""" + +# -------------------------------------------------------------- # +# Input text +# -------------------------------------------------------------- # +text = "When will Americans recognize that southern conservatives (those who whine about Obama, Jim Crow appreciators) are the biggest problem with America and that nothing will get solved until they are put in their place?" +num_features = 6 + +"""### SMILE""" + +# -------------------------------------------------------------- # +# Create explainer +# -------------------------------------------------------------- # +explainer = SmileTextExplainer( + embedding_name="word2vec-google-news-300", + cache_dir="~/.cache/google_news_vectors", + class_names=class_names, +) + +# -------------------------------------------------------------- # +# Generate explanation +# -------------------------------------------------------------- # +exp = explainer.explain_instance( + text, + pipeline_model.predict_proba, + num_features=num_features, +) + + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + + +# -------------------------------------------------------------- # +# Extract features + weights +# -------------------------------------------------------------- # +smile_features, smile_weights = extract_explanation_details(exp) + +print("\nWeights:") +print(smile_weights) + +print("\nFeatures:") +print(smile_features) + +plot_explainer_comparison( + explanations={ + "SMILE": (smile_weights, smile_features) + }, + title="SMILE", +) + +plot_text_heatmap( + words=smile_features, + scores=smile_weights, +) + +"""### LIME""" + +from lime.lime_text import LimeTextExplainer + +# -------------------------------------------------------------- # +# Create explainer +# -------------------------------------------------------------- # +explainer = LimeTextExplainer( + class_names=class_names +) + +# -------------------------------------------------------------- # +# Generate explanation +# -------------------------------------------------------------- # +exp = explainer.explain_instance( + text, + pipeline_model.predict_proba, + num_features=num_features, +) + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + +# -------------------------------------------------------------- # +# Extract features + weights +# -------------------------------------------------------------- # +lime_features, lime_weights = extract_explanation_details(exp) + +print("\nWeights:") +print(lime_weights) + +print("\nFeatures:") +print(lime_features) + +plot_explainer_comparison( + explanations={ + "LIME": (lime_weights, lime_features) + }, + title="LIME", +) + +plot_text_heatmap( + words=lime_features, + scores=lime_weights, +) + +"""### SHAP""" + +import shap + +# -------------------------------------------------------------- # +# Create SHAP text masker +# -------------------------------------------------------------- # +masker = shap.maskers.Text() + +# -------------------------------------------------------------- # +# Create SHAP explainer +# -------------------------------------------------------------- # +explainer = shap.Explainer( + pipeline_model.predict_proba, + masker=masker, +) + +# -------------------------------------------------------------- # +# Explain instance +# -------------------------------------------------------------- # +shap_exp = explainer([text]) + +# -------------------------------------------------------------- # +# Prediction details +# -------------------------------------------------------------- # +prediction_probs = pipeline_model.predict_proba([text])[0] + +predicted_class_index = prediction_probs.argmax() + +print("Input text:") +print(text) + +print("\nPrediction probabilities:") +print(prediction_probs) + +print( + "\nPredicted class:", + class_names[predicted_class_index], +) + +# -------------------------------------------------------------- # +# Extract SHAP features + weights +# -------------------------------------------------------------- # +shap_features, shap_weights = extract_shap_explanation_details( + shap_exp, + class_index=1, + top_k=num_features, +) + +print("\nWeights:") +print(shap_weights) + +print("\nFeatures:") +print(shap_features) + +plot_explainer_comparison( + explanations={ + "SHAP": (shap_weights, shap_features) + }, + title="SHAP", +) + +plot_text_heatmap( + words=shap_features, + scores=shap_weights, +) + +"""### Comparision together""" + +plot_explainer_comparison( + explanations={ + "SMILE": (smile_weights, smile_features), + "LIME": (lime_weights, lime_features), + "SHAP": (shap_weights, shap_features), + }, + title="Comparing SMILE, LIME, and SHAP", +) + From 0df58effb37e21c748089ca131602ba2c2a90a93 Mon Sep 17 00:00:00 2001 From: Hamed Daneshvar Date: Fri, 22 May 2026 02:55:05 +0330 Subject: [PATCH 2/2] refactor: refactor point cloud part --- .../Notebooks/SMILE_Point_Cloud_k2.ipynb | 14734 ++++++++++++++++ .../Notebooks/smile_point_cloud_k2.py | 3813 ++++ examples/Point Cloud Examples/pyproject.toml | 23 + .../Point Cloud Examples/requirements.txt | 18 + examples/Point Cloud Examples/uv.lock | 2514 +++ 5 files changed, 21102 insertions(+) create mode 100644 examples/Point Cloud Examples/Notebooks/SMILE_Point_Cloud_k2.ipynb create mode 100644 examples/Point Cloud Examples/Notebooks/smile_point_cloud_k2.py create mode 100644 examples/Point Cloud Examples/pyproject.toml create mode 100644 examples/Point Cloud Examples/requirements.txt create mode 100644 examples/Point Cloud Examples/uv.lock diff --git a/examples/Point Cloud Examples/Notebooks/SMILE_Point_Cloud_k2.ipynb b/examples/Point Cloud Examples/Notebooks/SMILE_Point_Cloud_k2.ipynb new file mode 100644 index 0000000..d829e4e --- /dev/null +++ b/examples/Point Cloud Examples/Notebooks/SMILE_Point_Cloud_k2.ipynb @@ -0,0 +1,14734 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "vqYR7jm77K7W" + }, + "source": [ + "## Install Libraies" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Rh4gQoPHvezv", + "outputId": "5aa79656-638c-4ddd-b268-eee380528442" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m63.7/63.7 kB\u001b[0m \u001b[31m5.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m79.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h" + ] + } + ], + "source": [ + "!pip install -q numpy pandas torch torchvision torch_geometric scipy plotly matplotlib seaborn scikit-learn shap" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DRaJAvH5vezr" + }, + "source": [ + "## Importing Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "k5chcHLJvezy" + }, + "outputs": [], + "source": [ + "import os\n", + "import time\n", + "import itertools\n", + "import warnings\n", + "import math, random\n", + "from pathlib import Path\n", + "from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, Union\n", + "\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "import torch\n", + "from torch.utils.data import Dataset, DataLoader\n", + "from torchvision import transforms, utils\n", + "from torch_geometric.io import read_off\n", + "\n", + "import scipy.spatial.distance\n", + "import plotly.graph_objects as go\n", + "import plotly.express as px\n", + "import matplotlib.pyplot as plt\n", + "from IPython.display import display, HTML\n", + "import seaborn as sns\n", + "from sklearn.metrics import confusion_matrix\n", + "\n", + "from sklearn.cluster import KMeans\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n", + "\n", + "warnings.filterwarnings('ignore')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0w9CKQ3NiRDv" + }, + "source": [ + "## Global Configuration\n", + "\n", + "Note: If you want to train model, you change the `TRAIN_MODEL` variable to `True`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "hH67_WfViQg8" + }, + "outputs": [], + "source": [ + "random.seed = 42\n", + "TRAIN_MODEL = False" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EieKl-7kow8X" + }, + "source": [ + "# Visualization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "YPHwWB5-ow8Y" + }, + "outputs": [], + "source": [ + "def generate_rotation_frames(\n", + " radius: float = 2.0,\n", + " height: float = 0.8,\n", + " num_steps: int = 100,\n", + ") -> List[Dict[str, Any]]:\n", + " \"\"\"Generates camera rotation frames for 3D animations.\n", + "\n", + " Args:\n", + " radius: Distance of the camera from the origin in the XY plane.\n", + " height: Z-axis position of the camera.\n", + " num_steps: Number of animation frames.\n", + "\n", + " Returns:\n", + " A list of Plotly animation frame dictionaries for a rotating view.\n", + " \"\"\"\n", + " angles = np.linspace(0, 2 * np.pi, num_steps)\n", + " frames = []\n", + "\n", + " for angle in angles:\n", + " frame = dict(\n", + " layout=dict(\n", + " scene=dict(\n", + " camera=dict(\n", + " eye=dict(\n", + " x=radius * np.cos(angle),\n", + " y=radius * np.sin(angle),\n", + " z=height,\n", + " )\n", + " )\n", + " )\n", + " )\n", + " )\n", + " frames.append(frame)\n", + "\n", + " return frames\n", + "\n", + "\n", + "def create_mesh_figure(\n", + " vertices: np.ndarray,\n", + " faces: np.ndarray,\n", + " opacity: float = 0.5,\n", + ") -> go.Figure:\n", + " \"\"\"Creates a 3D mesh visualization with a rotation animation.\n", + "\n", + " Args:\n", + " vertices: Array of vertices of shape (N, 3).\n", + " faces: Array of faces of shape (F, 3).\n", + " opacity: Transparency level of the mesh (0.0 to 1.0).\n", + "\n", + " Returns:\n", + " A Plotly figure containing the animated mesh.\n", + " \"\"\"\n", + " x, y, z = vertices.T\n", + " i, j, k = faces.T\n", + "\n", + " mesh = go.Mesh3d(\n", + " x=x,\n", + " y=y,\n", + " z=z,\n", + " i=i,\n", + " j=j,\n", + " k=k,\n", + " opacity=opacity,\n", + " )\n", + "\n", + " fig = go.Figure(\n", + " data=[mesh],\n", + " frames=generate_rotation_frames(),\n", + " layout=dict(\n", + " updatemenus=[\n", + " dict(\n", + " type=\"buttons\",\n", + " showactive=False,\n", + " buttons=[\n", + " dict(\n", + " label=\"Play\",\n", + " method=\"animate\",\n", + " args=[None],\n", + " )\n", + " ],\n", + " )\n", + " ]\n", + " ),\n", + " )\n", + "\n", + " return fig\n", + "\n", + "\n", + "def create_point_cloud_figure(\n", + " vertices: np.ndarray,\n", + " marker_size: int = 2,\n", + ") -> go.Figure:\n", + " \"\"\"Creates a 3D point cloud visualization with a rotation animation.\n", + "\n", + " Args:\n", + " vertices: Array of point coordinates of shape (N, 3).\n", + " marker_size: Size of each point marker.\n", + "\n", + " Returns:\n", + " A Plotly figure containing the animated point cloud.\n", + " \"\"\"\n", + " x, y, z = vertices.T\n", + "\n", + " scatter = go.Scatter3d(\n", + " x=x,\n", + " y=y,\n", + " z=z,\n", + " mode=\"markers\",\n", + " marker=dict(size=marker_size),\n", + " )\n", + "\n", + " fig = go.Figure(\n", + " data=[scatter],\n", + " frames=generate_rotation_frames(),\n", + " )\n", + "\n", + " return fig\n", + "\n", + "\n", + "def create_colored_point_cloud_figure(\n", + " vertices: np.ndarray,\n", + " importance: np.ndarray,\n", + " marker_size: int = 4,\n", + " title: str = \"Point Cloud\",\n", + " show_colorbar: bool = True,\n", + ") -> go.Figure:\n", + " \"\"\"Creates a colored 3D point cloud visualization with rotation.\n", + "\n", + " Args:\n", + " vertices: Array of point coordinates of shape (N, 3).\n", + " importance: Array of importance values per point of shape (N,).\n", + " marker_size: Size of each point marker.\n", + " title: Title of the figure.\n", + " show_colorbar: Whether to display a colorbar next to the plot.\n", + "\n", + " Returns:\n", + " A Plotly figure containing the animated and colored point cloud.\n", + " \"\"\"\n", + " x, y, z = vertices.T\n", + "\n", + " scatter = go.Scatter3d(\n", + " x=x,\n", + " y=y,\n", + " z=z,\n", + " mode=\"markers\",\n", + " name=\"Point Cloud\",\n", + " marker=dict(\n", + " size=marker_size,\n", + " color=importance,\n", + " colorscale=\"Viridis\",\n", + " colorbar=dict(title=\"Importance\") if show_colorbar else None,\n", + " line=dict(width=0),\n", + " ),\n", + " )\n", + "\n", + " fig = go.Figure(\n", + " data=[scatter],\n", + " frames=generate_rotation_frames(),\n", + " layout=dict(\n", + " title=title,\n", + " margin=dict(l=0, r=0, b=0, t=40),\n", + " scene=dict(\n", + " xaxis=dict(title=\"X\"),\n", + " yaxis=dict(title=\"Y\"),\n", + " zaxis=dict(title=\"Z\"),\n", + " ),\n", + " updatemenus=[\n", + " dict(\n", + " type=\"buttons\",\n", + " showactive=False,\n", + " buttons=[\n", + " dict(\n", + " label=\"Play\",\n", + " method=\"animate\",\n", + " args=[None],\n", + " )\n", + " ],\n", + " )\n", + " ],\n", + " ),\n", + " )\n", + "\n", + " return fig\n", + "\n", + "def show_persistent_figure(fig: go.Figure) -> None:\n", + " \"\"\"Displays a Plotly figure so it persists after reopening the notebook.\n", + "\n", + " This works by converting the plot to raw HTML and loading the Plotly JS\n", + " library via CDN.\n", + "\n", + " Args:\n", + " fig: The Plotly figure to display.\n", + " \"\"\"\n", + " html_bytes = fig.to_html(\n", + " include_plotlyjs=\"cdn\",\n", + " full_html=False,\n", + " auto_play=False,\n", + " )\n", + " display(HTML(html_bytes))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "r3MMkpTPow8Z" + }, + "source": [ + "# Loading Dataset, Train and Evalutaion model for Point Cloud" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3CTwUQsnvezz" + }, + "source": [ + "## Importing Dataset\n", + "In this notebook the modelnet40 has been used as the dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "2nu09x_IkaO-", + "outputId": "3bcce036-09ac-463d-93fb-cf9fb5bac11b" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading http://modelnet.cs.princeton.edu/ModelNet40.zip\n", + "Extracting data/ModelNet40/ModelNet40.zip\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Raw dataset ready at: data/ModelNet40/raw\n" + ] + } + ], + "source": [ + "import os\n", + "import os.path as osp\n", + "from torch_geometric.data import download_url, extract_zip\n", + "\n", + "root = 'data/ModelNet40'\n", + "url = 'http://modelnet.cs.princeton.edu/ModelNet40.zip'\n", + "\n", + "os.makedirs(root, exist_ok=True)\n", + "\n", + "# Download\n", + "path = download_url(url, root)\n", + "\n", + "# Extract\n", + "extract_zip(path, root)\n", + "os.unlink(path)\n", + "\n", + "# Rename like PyG does\n", + "folder = osp.join(root, 'ModelNet40')\n", + "raw_dir = osp.join(root, 'raw')\n", + "\n", + "if osp.exists(raw_dir):\n", + " import shutil\n", + " shutil.rmtree(raw_dir)\n", + "\n", + "os.rename(folder, raw_dir)\n", + "\n", + "print(\"Raw dataset ready at:\", raw_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "QtwPZ4Zfvez0", + "outputId": "fe46205a-fe97-4cfd-d3f5-9bd12c915cb6" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'airplane': 0,\n", + " 'bathtub': 1,\n", + " 'bed': 2,\n", + " 'bench': 3,\n", + " 'bookshelf': 4,\n", + " 'bottle': 5,\n", + " 'bowl': 6,\n", + " 'car': 7,\n", + " 'chair': 8,\n", + " 'cone': 9,\n", + " 'cup': 10,\n", + " 'curtain': 11,\n", + " 'desk': 12,\n", + " 'door': 13,\n", + " 'dresser': 14,\n", + " 'flower_pot': 15,\n", + " 'glass_box': 16,\n", + " 'guitar': 17,\n", + " 'keyboard': 18,\n", + " 'lamp': 19,\n", + " 'laptop': 20,\n", + " 'mantel': 21,\n", + " 'monitor': 22,\n", + " 'night_stand': 23,\n", + " 'person': 24,\n", + " 'piano': 25,\n", + " 'plant': 26,\n", + " 'radio': 27,\n", + " 'range_hood': 28,\n", + " 'sink': 29,\n", + " 'sofa': 30,\n", + " 'stairs': 31,\n", + " 'stool': 32,\n", + " 'table': 33,\n", + " 'tent': 34,\n", + " 'toilet': 35,\n", + " 'tv_stand': 36,\n", + " 'vase': 37,\n", + " 'wardrobe': 38,\n", + " 'xbox': 39}" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "path = Path(raw_dir)\n", + "folders = [dir for dir in sorted(os.listdir(path)) if os.path.isdir(path/dir)]\n", + "classes = {folder: i for i, folder in enumerate(folders)}\n", + "classes" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4aL_1HPPvez5" + }, + "source": [ + "### Read and visualize one of objects from dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "dmZtgaQSyfqB", + "outputId": "77d67879-ad08-4338-da67-19530532076f" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "90714" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data = read_off(path/\"airplane/train/airplane_0001.off\")\n", + "\n", + "vertices = data.pos.numpy()\n", + "faces = data.face.numpy().T # (F, 3)\n", + "\n", + "x, y, z = vertices.T\n", + "i, j, k = faces.T\n", + "len(x)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 467 + }, + "id": "Mv3AIZwt4Eom", + "outputId": "a89cecba-9c29-4bf9-97f0-e3910d87ce38" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Mesh visualization\n", + "fig_mesh = create_mesh_figure(vertices, faces)\n", + "show_persistent_figure(fig_mesh)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 467 + }, + "id": "xUYKbxGX4H4I", + "outputId": "6c53792c-b92a-4697-93bd-4fa88c03d1b9" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Point cloud visualization\n", + "fig_pc = create_point_cloud_figure(vertices)\n", + "show_persistent_figure(fig_mesh)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YFqzNs3xow8b" + }, + "source": [ + "## Sampling" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "0FAmMyjcow8b" + }, + "outputs": [], + "source": [ + "class PointSampler:\n", + " \"\"\"Sample points uniformly from a mesh surface using triangle areas.\"\"\"\n", + "\n", + " def __init__(self, output_size: int) -> None:\n", + " \"\"\"\n", + " Initialize the sampler.\n", + "\n", + " Args:\n", + " output_size (int): Number of points to sample.\n", + " \"\"\"\n", + " assert isinstance(output_size, int)\n", + " self.output_size = output_size\n", + "\n", + " def triangle_area(\n", + " self,\n", + " point1: np.ndarray,\n", + " point2: np.ndarray,\n", + " point3: np.ndarray,\n", + " ) -> float:\n", + " \"\"\"\n", + " Compute the area of a triangle defined by three points.\n", + "\n", + " Args:\n", + " point1 (np.ndarray): First vertex.\n", + " point2 (np.ndarray): Second vertex.\n", + " point3 (np.ndarray): Third vertex.\n", + "\n", + " Returns:\n", + " float: Triangle area.\n", + " \"\"\"\n", + " # Check if any input point coordinates are non-finite (NaN or Inf)\n", + " if not (np.all(np.isfinite(point1)) and np.all(np.isfinite(point2)) and np.all(np.isfinite(point3))):\n", + " return 0.0\n", + "\n", + " side_a = np.linalg.norm(point1 - point2)\n", + " side_b = np.linalg.norm(point2 - point3)\n", + " side_c = np.linalg.norm(point3 - point1)\n", + "\n", + " # Check if side lengths are non-finite or non-positive\n", + " if not (np.isfinite(side_a) and np.isfinite(side_b) and np.isfinite(side_c)) or \\\n", + " side_a <= 0 or side_b <= 0 or side_c <= 0:\n", + " return 0.0\n", + "\n", + " semi_perimeter = 0.5 * (side_a + side_b + side_c)\n", + "\n", + " # Heron's formula intermediate calculation\n", + " arg_sqrt = semi_perimeter * (\n", + " (semi_perimeter - side_a)\n", + " * (semi_perimeter - side_b)\n", + " * (semi_perimeter - side_c)\n", + " )\n", + "\n", + " # If arg_sqrt is negative due to floating point precision for degenerate triangles,\n", + " # or if it's NaN/Inf due to previous operations, treat area as 0.\n", + " if np.isnan(arg_sqrt) or np.isinf(arg_sqrt) or arg_sqrt < 0:\n", + " return 0.0\n", + "\n", + " return arg_sqrt ** 0.5\n", + "\n", + " def sample_point(\n", + " self,\n", + " point1: np.ndarray,\n", + " point2: np.ndarray,\n", + " point3: np.ndarray,\n", + " ) -> Tuple[float, float, float]:\n", + " \"\"\"\n", + " Sample a random point inside a triangle using barycentric coordinates.\n", + "\n", + " Args:\n", + " point1 (np.ndarray): First vertex.\n", + " point2 (np.ndarray): Second vertex.\n", + " point3 (np.ndarray): Third vertex.\n", + "\n", + " Returns:\n", + " Tuple[float, float, float]: Sampled 3D point.\n", + " \"\"\"\n", + " s, t = sorted([random.random(), random.random()])\n", + "\n", + " def interpolate(index: int) -> float:\n", + " return (\n", + " s * point1[index]\n", + " + (t - s) * point2[index]\n", + " + (1 - t) * point3[index]\n", + " )\n", + "\n", + " return (interpolate(0), interpolate(1), interpolate(2))\n", + "\n", + " def __call__(\n", + " self,\n", + " mesh: Tuple[np.ndarray, np.ndarray],\n", + " ) -> np.ndarray:\n", + " \"\"\"\n", + " Sample points from a mesh.\n", + "\n", + " Args:\n", + " mesh (Tuple[np.ndarray, np.ndarray]): Tuple of vertices and faces.\n", + "\n", + " Returns:\n", + " np.ndarray: Sampled point cloud of shape (output_size, 3).\n", + " \"\"\"\n", + " vertices, faces = mesh\n", + " vertices = np.array(vertices)\n", + "\n", + " areas = []\n", + " for idx in range(len(faces)):\n", + " face = faces[idx]\n", + " try:\n", + " # Ensure face indices are within bounds before accessing vertices\n", + " if np.any(face < 0) or np.any(face >= len(vertices)):\n", + " area_val = 0.0\n", + " else:\n", + " p1, p2, p3 = vertices[face[0]], vertices[face[1]], vertices[face[2]]\n", + " area_val = self.triangle_area(p1, p2, p3)\n", + " except IndexError: # Catch potential errors if face indices are malformed in other ways\n", + " area_val = 0.0\n", + " areas.append(area_val)\n", + "\n", + " areas = np.array(areas)\n", + "\n", + " # Replace any remaining NaN/inf with 0 as a safeguard, though triangle_area should now handle it\n", + " areas = np.nan_to_num(areas, nan=0.0, posinf=0.0, neginf=0.0)\n", + "\n", + " # If all areas are 0 (e.g., all triangles are degenerate), random.choices will fail.\n", + " # Assign uniform weights in such a case to allow sampling (from a degenerate mesh).\n", + " if np.sum(areas) == 0:\n", + " if len(areas) > 0:\n", + " areas = np.ones_like(areas)\n", + " else: # No faces at all\n", + " return np.zeros((self.output_size, 3)) # Return an empty point cloud\n", + "\n", + " # Sample indices of faces, not the faces directly\n", + " sampled_faces_indices = random.choices(\n", + " range(len(faces)),\n", + " weights=areas,\n", + " k=self.output_size,\n", + " )\n", + "\n", + " sampled_points = np.zeros((self.output_size, 3))\n", + "\n", + " for idx, face_list_idx in enumerate(sampled_faces_indices):\n", + " face = faces[face_list_idx]\n", + " # Access vertices using the face indices\n", + " p1, p2, p3 = vertices[face[0]], vertices[face[1]], vertices[face[2]]\n", + " sampled_points[idx] = self.sample_point(p1, p2, p3)\n", + "\n", + " return sampled_points" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gSwc1Odpow8b" + }, + "source": [ + "## Transformers" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "_4nWrtzcow8c" + }, + "outputs": [], + "source": [ + "class Normalize:\n", + " \"\"\"Normalize a point cloud to zero mean and unit radius.\"\"\"\n", + "\n", + " def __call__(self, point_cloud: np.ndarray) -> np.ndarray:\n", + " \"\"\"\n", + " Normalize the input point cloud.\n", + "\n", + " Args:\n", + " point_cloud (np.ndarray): Input array of shape (N, 3).\n", + "\n", + " Returns:\n", + " np.ndarray: Normalized point cloud.\n", + " \"\"\"\n", + " assert len(point_cloud.shape) == 2\n", + "\n", + " normalized = point_cloud - np.mean(point_cloud, axis=0)\n", + " normalized /= np.max(np.linalg.norm(normalized, axis=1))\n", + "\n", + " return normalized\n", + "\n", + "\n", + "class RandomRotationZ:\n", + " \"\"\"Apply a random rotation around the Z-axis.\"\"\"\n", + "\n", + " def __call__(self, point_cloud: np.ndarray) -> np.ndarray:\n", + " \"\"\"\n", + " Rotate the point cloud randomly around Z-axis.\n", + "\n", + " Args:\n", + " point_cloud (np.ndarray): Input array of shape (N, 3).\n", + "\n", + " Returns:\n", + " np.ndarray: Rotated point cloud.\n", + " \"\"\"\n", + " assert len(point_cloud.shape) == 2\n", + "\n", + " theta = random.random() * 2.0 * math.pi\n", + "\n", + " rotation_matrix = np.array(\n", + " [\n", + " [math.cos(theta), -math.sin(theta), 0],\n", + " [math.sin(theta), math.cos(theta), 0],\n", + " [0, 0, 1],\n", + " ]\n", + " )\n", + "\n", + " return rotation_matrix.dot(point_cloud.T).T\n", + "\n", + "\n", + "class RandomNoise:\n", + " \"\"\"Add Gaussian noise to a point cloud.\"\"\"\n", + "\n", + " def __call__(self, point_cloud: np.ndarray) -> np.ndarray:\n", + " \"\"\"\n", + " Add random noise to the point cloud.\n", + "\n", + " Args:\n", + " point_cloud (np.ndarray): Input array of shape (N, 3).\n", + "\n", + " Returns:\n", + " np.ndarray: Noisy point cloud.\n", + " \"\"\"\n", + " assert len(point_cloud.shape) == 2\n", + "\n", + " noise = np.random.normal(0, 0.02, point_cloud.shape)\n", + " return point_cloud + noise" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aftZk6Ckow8c" + }, + "source": [ + "### Visualize sampling and transformers with dataset sample object" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 467 + }, + "id": "4DEkY6lYow8c", + "outputId": "b0a78609-5673-41f9-845d-d86c16dbbd8b" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Sampling\n", + "point_cloud = PointSampler(3000)((vertices, faces))\n", + "figure = create_point_cloud_figure(point_cloud)\n", + "show_persistent_figure(figure)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 467 + }, + "id": "msZ3MZydow8c", + "outputId": "8a4d347d-d37c-4297-f2a5-ec2a584608b2" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Normalization\n", + "normalized_point_cloud = Normalize()(point_cloud)\n", + "figure = create_point_cloud_figure(normalized_point_cloud)\n", + "show_persistent_figure(figure)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 467 + }, + "id": "oma5niSuow8c", + "outputId": "1583cce0-0f6e-4714-dab3-1c0f34fb7876" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Augmentation\n", + "rotated_point_cloud = RandomRotationZ()(normalized_point_cloud)\n", + "noisy_point_cloud = RandomNoise()(rotated_point_cloud)\n", + "\n", + "figure = create_point_cloud_figure(noisy_point_cloud)\n", + "show_persistent_figure(figure)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Zko9fsABow8d" + }, + "source": [ + "## Tensor transforms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "oWThqCDdow8d" + }, + "outputs": [], + "source": [ + "class ToTensor:\n", + " \"\"\"Convert a NumPy point cloud to a PyTorch tensor.\"\"\"\n", + "\n", + " def __call__(self, point_cloud: np.ndarray) -> torch.Tensor:\n", + " \"\"\"\n", + " Convert input point cloud to tensor.\n", + "\n", + " Args:\n", + " point_cloud (np.ndarray): Input array of shape (N, 3).\n", + "\n", + " Returns:\n", + " torch.Tensor: Tensor representation of the point cloud.\n", + " \"\"\"\n", + " assert len(point_cloud.shape) == 2\n", + " return torch.from_numpy(point_cloud)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sS9LpFf_ow8d" + }, + "source": [ + "## Transform builders" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "UE-2xlJhow8d" + }, + "outputs": [], + "source": [ + "def default_transforms() -> transforms.Compose:\n", + " \"\"\"\n", + " Create default transformation pipeline.\n", + "\n", + " Returns:\n", + " transforms.Compose: Composed transform pipeline.\n", + " \"\"\"\n", + " return transforms.Compose(\n", + " [\n", + " PointSampler(1024),\n", + " Normalize(),\n", + " ToTensor(),\n", + " ]\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RCMd0eeVow8e" + }, + "source": [ + "## Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "BVcVdn0vow8e" + }, + "outputs": [], + "source": [ + "class PointCloudData(Dataset):\n", + " \"\"\"Custom Dataset for loading point cloud data from OFF files.\"\"\"\n", + "\n", + " def __init__(\n", + " self,\n", + " root_dir: Path,\n", + " valid: bool = False,\n", + " folder: str = \"train\",\n", + " transform=None,\n", + " ) -> None:\n", + " \"\"\"\n", + " Initialize dataset.\n", + "\n", + " Args:\n", + " root_dir (Path): Root directory of dataset.\n", + " valid (bool, optional): Whether to use validation transforms. Defaults to False.\n", + " folder (str, optional): Subfolder name (e.g., 'train', 'test'). Defaults to 'train'.\n", + " transform (optional): Transform pipeline. Defaults to default_transforms().\n", + " \"\"\"\n", + " self.root_dir = root_dir\n", + " self.valid = valid\n", + "\n", + " folders = [\n", + " directory\n", + " for directory in sorted(os.listdir(root_dir))\n", + " if os.path.isdir(root_dir / directory)\n", + " ]\n", + "\n", + " self.classes: Dict[str, int] = {\n", + " class_name: idx for idx, class_name in enumerate(folders)\n", + " }\n", + "\n", + " self.transforms = transform if not valid else default_transforms()\n", + "\n", + " self.files: List[Dict[str, Any]] = []\n", + "\n", + " for category in self.classes.keys():\n", + " category_dir = root_dir / Path(category) / folder\n", + "\n", + " for file_name in os.listdir(category_dir):\n", + " if file_name.endswith(\".off\"):\n", + " self.files.append(\n", + " {\n", + " \"pcd_path\": category_dir / file_name,\n", + " \"category\": category,\n", + " }\n", + " )\n", + "\n", + " def __len__(self) -> int:\n", + " \"\"\"Return number of samples.\"\"\"\n", + " return len(self.files)\n", + "\n", + " def _preprocess(self, file_path) -> Any:\n", + " \"\"\"\n", + " Load and preprocess a single OFF file.\n", + "\n", + " Args:\n", + " file_path: File path.\n", + "\n", + " Returns:\n", + " Any: Processed point cloud.\n", + " \"\"\"\n", + " data = read_off(file_path)\n", + " vertices = data.pos.numpy()\n", + " faces = data.face.numpy().T\n", + "\n", + " if self.transforms:\n", + " return self.transforms((vertices, faces))\n", + "\n", + " return vertices, faces\n", + "\n", + " def __getitem__(self, index: int) -> Dict[str, Any]:\n", + " \"\"\"\n", + " Get a dataset sample.\n", + "\n", + " Args:\n", + " index (int): Sample index.\n", + "\n", + " Returns:\n", + " Dict[str, Any]: Dictionary with pointcloud and category label.\n", + " \"\"\"\n", + " sample_info = self.files[index]\n", + " pointcloud_path = sample_info[\"pcd_path\"]\n", + " category_name = sample_info[\"category\"]\n", + "\n", + " point_cloud = self._preprocess(pointcloud_path)\n", + "\n", + " return {\n", + " \"pointcloud\": point_cloud,\n", + " \"category\": self.classes[category_name],\n", + " }" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OULjz7FVow8f" + }, + "source": [ + "## Training Transform Pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "tFPymi97ow8f" + }, + "outputs": [], + "source": [ + "def build_train_transforms() -> transforms.Compose:\n", + " \"\"\"\n", + " Create training transformation pipeline with data augmentation.\n", + "\n", + " Returns:\n", + " transforms.Compose: Composed transform pipeline for training.\n", + " \"\"\"\n", + " return transforms.Compose(\n", + " [\n", + " PointSampler(1024),\n", + " Normalize(),\n", + " RandomRotationZ(),\n", + " RandomNoise(),\n", + " ToTensor(),\n", + " ]\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dqDYMVhdve0C" + }, + "source": [ + "## Preparing the Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "APh2cqRbve0D" + }, + "outputs": [], + "source": [ + "train_transforms = build_train_transforms()\n", + "\n", + "train_dataset = PointCloudData(path, transform=train_transforms)\n", + "valid_dataset = PointCloudData(\n", + " path,\n", + " valid=True,\n", + " folder=\"test\",\n", + " transform=train_transforms,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uqkrjr6sow8g" + }, + "source": [ + "## Class Mapping" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "eM5-EOsAve0D", + "outputId": "b7acbbe7-571d-4984-ca32-650a9e6525b0" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{0: 'airplane',\n", + " 1: 'bathtub',\n", + " 2: 'bed',\n", + " 3: 'bench',\n", + " 4: 'bookshelf',\n", + " 5: 'bottle',\n", + " 6: 'bowl',\n", + " 7: 'car',\n", + " 8: 'chair',\n", + " 9: 'cone',\n", + " 10: 'cup',\n", + " 11: 'curtain',\n", + " 12: 'desk',\n", + " 13: 'door',\n", + " 14: 'dresser',\n", + " 15: 'flower_pot',\n", + " 16: 'glass_box',\n", + " 17: 'guitar',\n", + " 18: 'keyboard',\n", + " 19: 'lamp',\n", + " 20: 'laptop',\n", + " 21: 'mantel',\n", + " 22: 'monitor',\n", + " 23: 'night_stand',\n", + " 24: 'person',\n", + " 25: 'piano',\n", + " 26: 'plant',\n", + " 27: 'radio',\n", + " 28: 'range_hood',\n", + " 29: 'sink',\n", + " 30: 'sofa',\n", + " 31: 'stairs',\n", + " 32: 'stool',\n", + " 33: 'table',\n", + " 34: 'tent',\n", + " 35: 'toilet',\n", + " 36: 'tv_stand',\n", + " 37: 'vase',\n", + " 38: 'wardrobe',\n", + " 39: 'xbox'}" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "inverse_classes = {index: category for category, index in train_dataset.classes.items()}\n", + "inverse_classes" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2K1UnxY9ow8n" + }, + "source": [ + "## Dataset Inspection" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "05kijDBdve0E", + "outputId": "cab98772-c8cd-43d8-994d-3d1f2aa739f4" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train dataset size: 9843\n", + "Valid dataset size: 2468\n", + "Number of classes: 40\n", + "Sample pointcloud shape: torch.Size([1024, 3])\n", + "Class: airplane\n" + ] + } + ], + "source": [ + "print(\"Train dataset size:\", len(train_dataset))\n", + "print(\"Valid dataset size:\", len(valid_dataset))\n", + "print(\"Number of classes:\", len(train_dataset.classes))\n", + "\n", + "sample = train_dataset[0]\n", + "print(\"Sample pointcloud shape:\", sample[\"pointcloud\"].size())\n", + "print(\"Class:\", inverse_classes[sample[\"category\"]])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0xfrJf48ow8o" + }, + "source": [ + "## DataLoaders" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ohk8SVU3ve0E" + }, + "outputs": [], + "source": [ + "train_loader = DataLoader(\n", + " dataset=train_dataset,\n", + " batch_size=32,\n", + " shuffle=True,\n", + ")\n", + "\n", + "valid_loader = DataLoader(\n", + " dataset=valid_dataset,\n", + " batch_size=64,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "l2fVMuloow8o" + }, + "source": [ + "## Model: T-Net" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "cVVFlts1ow8o" + }, + "outputs": [], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "\n", + "\n", + "class TNet(nn.Module):\n", + " \"\"\"Transformation network used in PointNet.\"\"\"\n", + "\n", + " def __init__(self, k: int = 3) -> None:\n", + " \"\"\"\n", + " Initialize T-Net.\n", + "\n", + " Args:\n", + " k (int): Input feature dimension.\n", + " \"\"\"\n", + " super().__init__()\n", + " self.k = k\n", + "\n", + " self.conv1 = nn.Conv1d(k, 64, 1)\n", + " self.conv2 = nn.Conv1d(64, 128, 1)\n", + " self.conv3 = nn.Conv1d(128, 1024, 1)\n", + "\n", + " self.fc1 = nn.Linear(1024, 512)\n", + " self.fc2 = nn.Linear(512, 256)\n", + " self.fc3 = nn.Linear(256, k * k)\n", + "\n", + " self.bn1 = nn.BatchNorm1d(64)\n", + " self.bn2 = nn.BatchNorm1d(128)\n", + " self.bn3 = nn.BatchNorm1d(1024)\n", + " self.bn4 = nn.BatchNorm1d(512)\n", + " self.bn5 = nn.BatchNorm1d(256)\n", + "\n", + " def forward(self, inputs: torch.Tensor) -> torch.Tensor:\n", + " \"\"\"\n", + " Forward pass.\n", + "\n", + " Args:\n", + " inputs (torch.Tensor): Input tensor of shape (B, k, N).\n", + "\n", + " Returns:\n", + " torch.Tensor: Transformation matrix of shape (B, k, k).\n", + " \"\"\"\n", + " batch_size = inputs.size(0)\n", + "\n", + " x = F.relu(self.bn1(self.conv1(inputs)))\n", + " x = F.relu(self.bn2(self.conv2(x)))\n", + " x = F.relu(self.bn3(self.conv3(x)))\n", + "\n", + " x = nn.MaxPool1d(x.size(-1))(x)\n", + " x = nn.Flatten(1)(x)\n", + "\n", + " x = F.relu(self.bn4(self.fc1(x)))\n", + " x = F.relu(self.bn5(self.fc2(x)))\n", + "\n", + " identity = torch.eye(self.k, requires_grad=True).repeat(batch_size, 1, 1)\n", + " if inputs.is_cuda:\n", + " identity = identity.cuda()\n", + "\n", + " matrix = self.fc3(x).view(-1, self.k, self.k) + identity\n", + " return matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kpKV5bELow8o" + }, + "source": [ + "## Model: Transform Block" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "DKKWgANEow8p" + }, + "outputs": [], + "source": [ + "class Transform(nn.Module):\n", + " \"\"\"Feature transformation block used in PointNet.\"\"\"\n", + "\n", + " def __init__(self) -> None:\n", + " \"\"\"Initialize transform module.\"\"\"\n", + " super().__init__()\n", + "\n", + " self.input_transform = TNet(k=3)\n", + " self.feature_transform = TNet(k=64)\n", + "\n", + " self.conv1 = nn.Conv1d(3, 64, 1)\n", + " self.conv2 = nn.Conv1d(64, 128, 1)\n", + " self.conv3 = nn.Conv1d(128, 1024, 1)\n", + "\n", + " self.bn1 = nn.BatchNorm1d(64)\n", + " self.bn2 = nn.BatchNorm1d(128)\n", + " self.bn3 = nn.BatchNorm1d(1024)\n", + "\n", + " def forward(self, inputs: torch.Tensor):\n", + " \"\"\"\n", + " Forward pass.\n", + "\n", + " Args:\n", + " inputs (torch.Tensor): Input tensor of shape (B, 3, N).\n", + "\n", + " Returns:\n", + " Tuple[torch.Tensor, torch.Tensor, torch.Tensor]:\n", + " Features, input transform, feature transform.\n", + " \"\"\"\n", + " matrix3x3 = self.input_transform(inputs)\n", + "\n", + " x = torch.bmm(inputs.transpose(1, 2), matrix3x3).transpose(1, 2)\n", + " x = F.relu(self.bn1(self.conv1(x)))\n", + "\n", + " matrix64x64 = self.feature_transform(x)\n", + "\n", + " x = torch.bmm(x.transpose(1, 2), matrix64x64).transpose(1, 2)\n", + " x = F.relu(self.bn2(self.conv2(x)))\n", + " x = self.bn3(self.conv3(x))\n", + "\n", + " x = nn.MaxPool1d(x.size(-1))(x)\n", + " x = nn.Flatten(1)(x)\n", + "\n", + " return x, matrix3x3, matrix64x64" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Y-w1c3Qtow8p" + }, + "source": [ + "## Model: PointNet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "RJbE4M0zow8q" + }, + "outputs": [], + "source": [ + "class PointNet(nn.Module):\n", + " \"\"\"PointNet classification model.\"\"\"\n", + "\n", + " def __init__(self, num_classes: int = 40) -> None:\n", + " \"\"\"\n", + " Initialize PointNet.\n", + "\n", + " Args:\n", + " num_classes (int): Number of output classes.\n", + " \"\"\"\n", + " super().__init__()\n", + "\n", + " self.transform = Transform()\n", + "\n", + " self.fc1 = nn.Linear(1024, 512)\n", + " self.fc2 = nn.Linear(512, 256)\n", + " self.fc3 = nn.Linear(256, num_classes)\n", + "\n", + " self.bn1 = nn.BatchNorm1d(512)\n", + " self.bn2 = nn.BatchNorm1d(256)\n", + "\n", + " self.dropout = nn.Dropout(p=0.3)\n", + " self.log_softmax = nn.LogSoftmax(dim=1)\n", + "\n", + " def forward(self, inputs: torch.Tensor):\n", + " \"\"\"\n", + " Forward pass.\n", + "\n", + " Args:\n", + " inputs (torch.Tensor): Input tensor of shape (B, 3, N).\n", + "\n", + " Returns:\n", + " Tuple[torch.Tensor, torch.Tensor, torch.Tensor]:\n", + " Log probabilities and transformation matrices.\n", + " \"\"\"\n", + " x, matrix3x3, matrix64x64 = self.transform(inputs)\n", + "\n", + " x = F.relu(self.bn1(self.fc1(x)))\n", + " x = F.relu(self.bn2(self.dropout(self.fc2(x))))\n", + "\n", + " x = self.fc3(x)\n", + "\n", + " return self.log_softmax(x), matrix3x3, matrix64x64" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vtfxvLb0ow8q" + }, + "source": [ + "## Loss Function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "TNofi9Ydow8q" + }, + "outputs": [], + "source": [ + "def pointnet_loss(\n", + " outputs: torch.Tensor,\n", + " labels: torch.Tensor,\n", + " matrix3x3: torch.Tensor,\n", + " matrix64x64: torch.Tensor,\n", + " alpha: float = 1e-4,\n", + ") -> torch.Tensor:\n", + " \"\"\"\n", + " Compute PointNet loss with regularization.\n", + "\n", + " Args:\n", + " outputs (torch.Tensor): Model predictions.\n", + " labels (torch.Tensor): Ground truth labels.\n", + " matrix3x3 (torch.Tensor): Input transform matrix.\n", + " matrix64x64 (torch.Tensor): Feature transform matrix.\n", + " alpha (float): Regularization weight.\n", + "\n", + " Returns:\n", + " torch.Tensor: Loss value.\n", + " \"\"\"\n", + " criterion = nn.NLLLoss()\n", + " batch_size = outputs.size(0)\n", + "\n", + " identity3x3 = torch.eye(3, requires_grad=True).repeat(batch_size, 1, 1)\n", + " identity64x64 = torch.eye(64, requires_grad=True).repeat(batch_size, 1, 1)\n", + "\n", + " if outputs.is_cuda:\n", + " identity3x3 = identity3x3.cuda()\n", + " identity64x64 = identity64x64.cuda()\n", + "\n", + " diff3x3 = identity3x3 - torch.bmm(matrix3x3, matrix3x3.transpose(1, 2))\n", + " diff64x64 = identity64x64 - torch.bmm(matrix64x64, matrix64x64.transpose(1, 2))\n", + "\n", + " return criterion(outputs, labels) + alpha * (\n", + " torch.norm(diff3x3) + torch.norm(diff64x64)\n", + " ) / float(batch_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9WOMHnXLow8r" + }, + "source": [ + "## Device Setup" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "BAleiH4Kow8r", + "outputId": "9e7fd130-a2b9-4d67-c79f-2815edef004b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cpu\n" + ] + } + ], + "source": [ + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "print(device)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "N2ADrsE3ow8s" + }, + "source": [ + "## Model & Optimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "L3T-omK1ow8t" + }, + "outputs": [], + "source": [ + "model = PointNet().to(device)\n", + "\n", + "optimizer = torch.optim.Adam(model.parameters(), lr=0.0008)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LGZchLCIow8t" + }, + "source": [ + "## Training Loop" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "JIWwtacTow8t" + }, + "outputs": [], + "source": [ + "def train(\n", + " model: nn.Module,\n", + " train_loader,\n", + " val_loader=None,\n", + " epochs: int = 1,\n", + ") -> None:\n", + " \"\"\"\n", + " Train the model.\n", + "\n", + " Args:\n", + " model (nn.Module): Model to train.\n", + " train_loader: Training DataLoader.\n", + " val_loader: Validation DataLoader.\n", + " epochs (int): Number of epochs.\n", + " \"\"\"\n", + " for epoch in range(epochs):\n", + " model.train()\n", + " running_loss = 0.0\n", + "\n", + " for batch_idx, batch in enumerate(train_loader):\n", + " inputs = batch[\"pointcloud\"].to(device).float()\n", + " labels = batch[\"category\"].to(device)\n", + "\n", + " optimizer.zero_grad()\n", + "\n", + " outputs, m3x3, m64x64 = model(inputs.transpose(1, 2))\n", + " loss = pointnet_loss(outputs, labels, m3x3, m64x64)\n", + "\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " running_loss += loss.item()\n", + "\n", + " if batch_idx % 5 == 4:\n", + " print(\n", + " f\"[Epoch: {epoch+1}, Batch: {batch_idx+1}/{len(train_loader)}] \"\n", + " f\"loss: {running_loss / 5:.3f}\"\n", + " )\n", + " running_loss = 0.0\n", + "\n", + " # Validation\n", + " if val_loader:\n", + " model.eval()\n", + " correct, total = 0, 0\n", + "\n", + " with torch.no_grad():\n", + " for batch in val_loader:\n", + " inputs = batch[\"pointcloud\"].to(device).float()\n", + " labels = batch[\"category\"].to(device)\n", + "\n", + " outputs, _, _ = model(inputs.transpose(1, 2))\n", + " _, predicted = torch.max(outputs.data, 1)\n", + "\n", + " total += labels.size(0)\n", + " correct += (predicted == labels).sum().item()\n", + "\n", + " accuracy = 100.0 * correct / total\n", + " print(f\"Validation accuracy: {accuracy:.2f}%\")\n", + "\n", + " model_name = f\"save-{epoch + 1}.pth\"\n", + " torch.save(model.state_dict(), model_name)\n", + " print(f\"\\\"{model_name}\\\" saved!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "D3Xrf5ZIow8u" + }, + "source": [ + "## Run Training" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "kg1HoOH_ow8u" + }, + "outputs": [], + "source": [ + "if TRAIN_MODEL:\n", + " # Number of epochs\n", + " num_epochs = 3\n", + "\n", + " # Start training\n", + " train(\n", + " model=model,\n", + " train_loader=train_loader,\n", + " val_loader=valid_loader,\n", + " epochs=num_epochs,\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OvPMbp7Kve0I" + }, + "source": [ + "## Loading the pretrained model to save time" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "3bjnIi_YEWan" + }, + "outputs": [], + "source": [ + "import gdown\n", + "import os\n", + "\n", + "# Create the data directory if it doesn't exist\n", + "output_dir = \"data\"\n", + "os.makedirs(output_dir, exist_ok=True)\n", + "\n", + "# Google Drive file ID from the provided URL\n", + "file_id = \"1zLl0E9akEOneDGJSkFATdtox9COpbd1F\"\n", + "\n", + "# Output path for the downloaded file\n", + "output_path = os.path.join(output_dir, \"save.pth\")\n", + "\n", + "# Download the file using gdown\n", + "gdown.download(id=file_id, output=output_path, quiet=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ah5s3CBYve0I", + "outputId": "89fde080-8232-402e-92e5-8535d01ca01c" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PointNet(\n", + " (transform): Transform(\n", + " (input_transform): TNet(\n", + " (conv1): Conv1d(3, 64, kernel_size=(1,), stride=(1,))\n", + " (conv2): Conv1d(64, 128, kernel_size=(1,), stride=(1,))\n", + " (conv3): Conv1d(128, 1024, kernel_size=(1,), stride=(1,))\n", + " (fc1): Linear(in_features=1024, out_features=512, bias=True)\n", + " (fc2): Linear(in_features=512, out_features=256, bias=True)\n", + " (fc3): Linear(in_features=256, out_features=9, bias=True)\n", + " (bn1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (bn2): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (bn3): BatchNorm1d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (bn4): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (bn5): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " (feature_transform): TNet(\n", + " (conv1): Conv1d(64, 64, kernel_size=(1,), stride=(1,))\n", + " (conv2): Conv1d(64, 128, kernel_size=(1,), stride=(1,))\n", + " (conv3): Conv1d(128, 1024, kernel_size=(1,), stride=(1,))\n", + " (fc1): Linear(in_features=1024, out_features=512, bias=True)\n", + " (fc2): Linear(in_features=512, out_features=256, bias=True)\n", + " (fc3): Linear(in_features=256, out_features=4096, bias=True)\n", + " (bn1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (bn2): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (bn3): BatchNorm1d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (bn4): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (bn5): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " (conv1): Conv1d(3, 64, kernel_size=(1,), stride=(1,))\n", + " (conv2): Conv1d(64, 128, kernel_size=(1,), stride=(1,))\n", + " (conv3): Conv1d(128, 1024, kernel_size=(1,), stride=(1,))\n", + " (bn1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (bn2): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (bn3): BatchNorm1d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " (fc1): Linear(in_features=1024, out_features=512, bias=True)\n", + " (fc2): Linear(in_features=512, out_features=256, bias=True)\n", + " (fc3): Linear(in_features=256, out_features=40, bias=True)\n", + " (bn1): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (bn2): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (dropout): Dropout(p=0.3, inplace=False)\n", + " (log_softmax): LogSoftmax(dim=1)\n", + ")" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "if not TRAIN_MODEL:\n", + " model_path = \"./data/save.pth\"\n", + " # Load the pretrained model weights\n", + " model.load_state_dict(torch.load(model_path))\n", + "\n", + "# Move the model to the appropriate device (CPU or GPU)\n", + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "model.to(device)\n", + "model.eval()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Jh9TWQNove0I" + }, + "source": [ + "## Model Evaluation & Prediction Collection" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "cL-w1WaKow8v" + }, + "outputs": [], + "source": [ + "def collect_predictions(\n", + " model: torch.nn.Module,\n", + " data_loader,\n", + " device: torch.device,\n", + ") -> Tuple[torch.Tensor, List[int], List[int]]:\n", + " \"\"\"\n", + " Run inference on a dataset and collect predictions, labels, and inputs.\n", + "\n", + " Args:\n", + " model (torch.nn.Module): Trained model.\n", + " data_loader: DataLoader for evaluation.\n", + " device (torch.device): Computation device.\n", + "\n", + " Returns:\n", + " Tuple[torch.Tensor, List[int], List[int]]:\n", + " - All input point clouds (concatenated tensor)\n", + " - List of predicted labels\n", + " - List of ground truth labels\n", + " \"\"\"\n", + " model.eval()\n", + "\n", + " all_predictions: List[int] = []\n", + " all_labels: List[int] = []\n", + " all_inputs: List[torch.Tensor] = []\n", + "\n", + " with torch.no_grad():\n", + " for batch_idx, batch in enumerate(data_loader):\n", + " print(f\"Batch [{batch_idx + 1:4d} / {len(data_loader):4d}]\")\n", + "\n", + " inputs = batch[\"pointcloud\"].to(device).float()\n", + " labels = batch[\"category\"].to(device)\n", + "\n", + " outputs, _, _ = model(inputs.transpose(1, 2))\n", + " _, predictions = torch.max(outputs.data, 1)\n", + "\n", + " # Move to CPU before converting to numpy\n", + " all_predictions.extend(predictions.cpu().numpy().tolist())\n", + " all_labels.extend(labels.cpu().numpy().tolist())\n", + " all_inputs.append(inputs.cpu())\n", + "\n", + " all_inputs_tensor = torch.cat(all_inputs, dim=0)\n", + "\n", + " return all_inputs_tensor, all_predictions, all_labels" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YGad7iQwow8v" + }, + "source": [ + "## Run Evaluation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "lqkokN9How8w", + "outputId": "b3eefbae-8637-4855-f490-1e8c14e17f3d" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Batch [ 1 / 39]\n", + "Batch [ 2 / 39]\n", + "Batch [ 3 / 39]\n", + "Batch [ 4 / 39]\n", + "Batch [ 5 / 39]\n", + "Batch [ 6 / 39]\n", + "Batch [ 7 / 39]\n", + "Batch [ 8 / 39]\n", + "Batch [ 9 / 39]\n", + "Batch [ 10 / 39]\n", + "Batch [ 11 / 39]\n", + "Batch [ 12 / 39]\n", + "Batch [ 13 / 39]\n", + "Batch [ 14 / 39]\n", + "Batch [ 15 / 39]\n", + "Batch [ 16 / 39]\n", + "Batch [ 17 / 39]\n", + "Batch [ 18 / 39]\n", + "Batch [ 19 / 39]\n", + "Batch [ 20 / 39]\n", + "Batch [ 21 / 39]\n", + "Batch [ 22 / 39]\n", + "Batch [ 23 / 39]\n", + "Batch [ 24 / 39]\n", + "Batch [ 25 / 39]\n", + "Batch [ 26 / 39]\n", + "Batch [ 27 / 39]\n", + "Batch [ 28 / 39]\n", + "Batch [ 29 / 39]\n", + "Batch [ 30 / 39]\n", + "Batch [ 31 / 39]\n", + "Batch [ 32 / 39]\n", + "Batch [ 33 / 39]\n", + "Batch [ 34 / 39]\n", + "Batch [ 35 / 39]\n", + "Batch [ 36 / 39]\n", + "Batch [ 37 / 39]\n", + "Batch [ 38 / 39]\n", + "Batch [ 39 / 39]\n", + "All Inputs Shape: torch.Size([2468, 1024, 3])\n", + "All Labels Length: 2468\n" + ] + } + ], + "source": [ + "if TRAIN_MODEL:\n", + " all_inputs, all_preds, all_labels = collect_predictions(\n", + " model=model,\n", + " data_loader=valid_loader,\n", + " device=device,\n", + " )\n", + "\n", + " print(f\"All Inputs Shape: {all_inputs.shape}\")\n", + " print(f\"All Labels Length: {len(all_labels)}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fYyeFbfP7_o2" + }, + "source": [ + "### for safety save the data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "4b27NaBpRRHH" + }, + "outputs": [], + "source": [ + "if TRAIN_MODEL:\n", + " # Save\n", + " torch.save({\n", + " \"all_inputs\": all_inputs,\n", + " \"all_preds\": all_preds,\n", + " \"all_labels\": all_labels\n", + " }, \"all_data.pt\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "xjshndA67_o3" + }, + "outputs": [], + "source": [ + "if not TRAIN_MODEL:\n", + " import gdown\n", + " import os\n", + "\n", + " # Create the data directory if it doesn't exist\n", + " output_dir = \"data\"\n", + " os.makedirs(output_dir, exist_ok=True)\n", + "\n", + " # Google Drive file ID from the provided URL\n", + " file_id = \"1Kv98MSvAzx20QLoy8o9q14Tx7n681dn3\"\n", + "\n", + " # Output path for the downloaded file\n", + " output_path = os.path.join(output_dir, \"all_data.pt\")\n", + "\n", + " # Download the file using gdown\n", + " gdown.download(id=file_id, output=output_path, quiet=False)\n", + "\n", + "# Load\n", + "loaded = torch.load(output_path)\n", + "\n", + "loaded_all_inputs = loaded[\"all_inputs\"]\n", + "loaded_all_preds = loaded[\"all_preds\"]\n", + "loaded_all_labels = loaded[\"all_labels\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vZzAL0wU7_o3", + "outputId": "352e22ce-9d5a-435c-a41a-3aa97dcc61d4" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "True\n", + "True\n", + "True\n" + ] + } + ], + "source": [ + "if TRAIN_MODEL:\n", + " print(torch.equal(all_inputs, loaded_all_inputs))\n", + " assert torch.allclose(all_inputs, loaded_all_inputs, atol=1e-6), \"Tensor mismatch!\"\n", + "\n", + " print(all_inputs.shape == loaded_all_inputs.shape)\n", + " print(all_inputs.dtype == loaded_all_inputs.dtype)\n", + " print(all_inputs.device == loaded_all_inputs.device)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "IlMOy1SK7_o4", + "outputId": "9cbc4438-c41b-4bb0-afb2-1b340ae3d77b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "True\n", + "True\n", + "True\n" + ] + } + ], + "source": [ + "if TRAIN_MODEL:\n", + " print(loaded_all_preds == loaded_all_preds)\n", + " print(loaded_all_preds is loaded_all_preds)\n", + "\n", + " print(loaded_all_labels == loaded_all_labels)\n", + " print(loaded_all_labels is loaded_all_labels)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "_SYFU947f7kL" + }, + "outputs": [], + "source": [ + "all_inputs = loaded[\"all_inputs\"]\n", + "all_preds = loaded[\"all_preds\"]\n", + "all_labels = loaded[\"all_labels\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DYzwadQeow8w" + }, + "source": [ + "## Accuracy" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "lvmq0SQPow8w", + "outputId": "7483b4ca-1b10-46a7-8abe-3b501af3a334" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.6637\n" + ] + } + ], + "source": [ + "accuracy = sum(p == t for p, t in zip(all_preds, all_labels)) / len(all_labels)\n", + "print(f\"Accuracy: {accuracy:.4f}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-jvU7smdve0K" + }, + "source": [ + "## Confusion Matrix" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "x50tqPogve0K", + "outputId": "656ab53c-4529-43da-f041-c2084e61c716" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[100 0 0 ... 0 0 0]\n", + " [ 0 38 2 ... 0 0 0]\n", + " [ 1 1 53 ... 0 0 0]\n", + " ...\n", + " [ 0 1 0 ... 78 0 0]\n", + " [ 0 0 0 ... 1 4 1]\n", + " [ 0 0 0 ... 1 0 2]]\n" + ] + } + ], + "source": [ + "cm = confusion_matrix(all_labels, all_preds)\n", + "print(cm)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1SnHp3n7ow8x" + }, + "source": [ + "## Confusion Matrix Visualization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "yVyhSLP2ow8x" + }, + "outputs": [], + "source": [ + "def plot_confusion_matrix(\n", + " cm: np.ndarray,\n", + " class_names: List[str],\n", + " normalize: bool = False,\n", + " title: str = \"Confusion Matrix\",\n", + " cmap=plt.cm.Blues,\n", + ") -> None:\n", + " \"\"\"\n", + " Plot a confusion matrix.\n", + "\n", + " Args:\n", + " cm (np.ndarray): Confusion matrix.\n", + " class_names (List[str]): List of class names.\n", + " normalize (bool): Whether to normalize values.\n", + " title (str): Plot title.\n", + " cmap: Matplotlib colormap.\n", + " \"\"\"\n", + " if normalize:\n", + " cm = cm.astype(float) / cm.sum(axis=1)[:, np.newaxis]\n", + " print(\"Normalized confusion matrix\")\n", + " else:\n", + " print(\"Confusion matrix, without normalization\")\n", + "\n", + " plt.imshow(cm, interpolation=\"nearest\", cmap=cmap)\n", + " plt.title(title)\n", + " plt.colorbar()\n", + "\n", + " tick_marks = np.arange(len(class_names))\n", + " plt.xticks(tick_marks, class_names, rotation=45)\n", + " plt.yticks(tick_marks, class_names)\n", + "\n", + " value_format = \".2f\" if normalize else \"d\"\n", + " threshold = cm.max() / 2.0\n", + "\n", + " for row_idx, col_idx in itertools.product(\n", + " range(cm.shape[0]), range(cm.shape[1])\n", + " ):\n", + " plt.text(\n", + " col_idx,\n", + " row_idx,\n", + " format(cm[row_idx, col_idx], value_format),\n", + " horizontalalignment=\"center\",\n", + " color=\"white\" if cm[row_idx, col_idx] > threshold else \"black\",\n", + " )\n", + "\n", + " plt.tight_layout()\n", + " plt.ylabel(\"True label\")\n", + " plt.xlabel(\"Predicted label\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 933 + }, + "id": "r2fPyr1_ow8x", + "outputId": "7e037f81-aa3a-4041-fe26-64815cb6ea66" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Normalized confusion matrix\n" + ] + }, + { + "data": { + "image/png": "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nQAAAAAAAAAAAAAASuzlsuLZ9QfOJFP58sZ/96GpyszMoAY+rpSenq7KOyOLCneyAwAAAAAAAAAAAAAUE5LsAAAAAAAAAAAAAADFhCQ7AAAAAAAAAAAAAEAxWRf3gwAAAAAAAAAAAABQdBaiiP9BkZjKpsKd7AAAAAAAAAAAAAAAxYQkO8B95ObmYts8xLx582jnzp0mt51SUlKMHpOZjR4TANRh7ONdK+PLzZs31f4KoAE5OTlqfwUAKCHbtm2jrKwszf0ui99r89y4cUO1/QEA2oAkO0ABc+bMoZMnT5KlpSUuSB5g3Lhx9MEHH1D16tVNbv+2bNmS4uLijBo3NTWV1KRLwl24cIHMmVaSjWruU13cq1ev0pNA930yMjLoSWHx77/9vHLlilHjPa7EQf5fxq9du0ZPgnfeeYf+97///b+9+wDTpKrWNlwEFQMGDGDCiKJHEMXsUcxZEbMYMB8zCmZAVMw5R8RwFBVEURQx4DFgziJmRUHFgAEjY+r/ukvX/HvK7p7uL3X3zPt4tcN093xVtWuHtd619trdarmftcyxxx478zVwrXCve92rO+KII7q//vWvK30rq5bNaZ0dl+985ztLbrP6nbTv9Pje977X3fzmN+8e85jHbNJjnC1gHefLfvWrX+2/57+nTdt3//a3v/3H91aaO9zhDt2BBx64auzXtchqep8hrFYisodNZvKdhHH685//vHvTm97U3ehGN+p+9KMfrUqhfTUsboyTz372s92LXvSibscdd+yd9Und17SdjLvd7W59NiTB5utf/3o3C972trd1F7nIRVZU4CbCvfvd7+7uete7dt/61re6TZUSG1crk+zXnvVTn/pUd7vb3a4XmGc1N1RfesADHtCddtppM7nmxu7nqKOO6h2nX/ziFyt6L8ccc0z3zW9+s//vJz7xif0cWY7mtHnpS1/aPfCBD+z/e9y+UM74k570pO4Vr3hF94c//KFbac4444zuda97XXf44YeP7SBvrmKW55VEcOc737l78YtfvL6vrsR94Bvf+Eb305/+tFttO90e9rCHdR/4wAcmJsJtav2s1tkzzzxzxe5hLbTp8573vN6f+PSnP9232WL37Gd+xxpiLl/J51upnVj8iuOPP36q19ppp516e+Gwww7rHve4x81MaK9n5FMOg+GTbu8f/OAHva/DLhQwvOpVr9p94Qtf6KZN9eGyw85ylrN0H/nIR7oPfvCDq2a83uAGN+he8pKX9F+TFNrtflprO6BG1Te8409+8pPd+9///v7vq+XdhrCaiMgeJj5hl/H97W9/u1/oZQ1Mi7///e/rJ/eh0TLK4rHDDjv0mXJXvOIVuxve8IbdySefvKJCey3YhCxtuVpExHOf+9zdH//4x+6d73xn99a3vrW7ylWusj5TYlTqPRJziFI+v/3+JPC52223XXfiiSd2P/vZz7oHPehBUxfaZbBzGl7wghd0F7vYxbpZot9W+51yyindC1/4wu6+971vd4UrXGEm19cnOIxvfvOb+6DVNHnVq17V7bvvvt397ne/7hOf+ET3l7/8pVtJqt31NYaofkaQMH5HnU+e+cxn9s53+/nmBePR17TnqbqmOf3JT35yd5vb3KafM1eKup8f//jH/a6aXXbZpdt+++1X7H44bHbKXP/61+/HGRGTmMnRnAXVx8ZZJ9r5VimwN77xjX3W37bbbjux+xz1nqw1t7jFLfp2HUdob+0UNsTwZ7NgpWwKz233mcDvxz/+8X5NOOmkk1bkPt773vd2e+yxR782rAZxot7Jcccd193ylrfs9tlnnz7jfxwhufrXtOy2WfcjfYa4gv33378XKmdxDzUHsIW/+93v9vbhasySHbLbbrt117nOdbpHPOIR3QknnPAfQruyJZJ72v6iTc92trPNxNavezn11FP7jPvWz5hV3yph9l3veld3xzvesfcrph1422uvvfo1hN04C6G9nlHgjm1w9atfvd8NbH7BpN/1Wc961v6zBXj23nvv7g1veEN/zWmPFc9hXb7Tne7UPeQhD+mDGTe72c36+X01+K7ug61ojD3taU/r7elJlA+1ZgjM2iX9rGc9q58nVxP13o1x/ijbzi7LUfQNn2W88LVqN9xqeLchrDYisoeJYeKt7LeDDz64j6Lf6la36m584xv32XyTdKI+97nP9Ub21ltv3U/ujIl73vOevehzwAEHjJSFXvfHEDnooIO6nXfeub9/2cezFNpl6sl6cT9bbbVVb3Be97rX7UX/a17zmn3m6qwyI4eUs+m+ZCZYYGVOynQktI9rgBIjvUdOyT3ucY9eoJ3k4q2/4LznPW/3pS99qXdupim0f/GLX+y3JnIKiUOz6kP1PPptZRwQ/y54wQv2zsUs4DDd9KY37YNWBNn73Oc+faBhGjz+8Y/vxz2xVWDsJje5Sffc5z63D6SsFNrd2DX/yfi2g+Cxj31sX+pilPmE823Oe9SjHtUdeuih68cFB4FDXuNymrimuddz7b777r3ztpICh/vhLHBcb3/72/fO60pyvvOdr3fat9lmm14Q9rXrrrtOZb6er//I0PrhD3/YZ6+Nk6EEz/H5z3++77tXu9rVVk1WpXFu95Q1h1C83BJBrZ1CrDcu733ve/cZp5jFWl9b+KHv2hXynve85z/ucxrU59r9QmD40Ic+1NtnsxbaBdONXbtP2DfTnruWy+tf//o+2cLaQkAZRYQTwDB+7n73u/dJJ5OeB9p+JLB85JFH9mN2WgKl9fSQQw7pv8z9L3vZy3pRadolKMo+NE7McdbUK13pSt3DH/7wfifGxjLEVxI20H777dcHgAntbMISsKtsydOf/vR+Hfd9Nirxa9pzUCUouaa5Z8899+wFWXaa+8Ws/B73INjA9te3zEcXvehFp35dzyzLexZCewUVic+SbQiyMrzZhJP2P/iOF7/4xfs1UqILX1Y/rPc97bGi35gfrG38OLvDb33rW/9HQHvW6Mu1znj3fNdnP/vZ3Wtf+9qxyvodffTRvZ/Hv/KcBHbjyI6x1UC9dwEP9yfIQOOwu8G6tJz5uz5LEOfa1772+gDFap1/1wqs7nx1y2qDNcFcCBPm6U9/+tz5z3/+uf/7v/+b++Uvfzl33/ved26LLbaY++Y3vzmRzz/22GPndtppp7nnPOc5/d8/+9nPzm255ZZzD3/4w+fufOc7z13/+tefu+AFLzj3jW98o//5P/7xjyV97j//+c/1n7/XXnv1n+O+XeuHP/zhsj5rVNzDRS960bmdd9557ktf+tLc1772tblLXOISc89+9rPnPvCBD8xd97rX7e/nve9979y6devmZsmb3vSm/t5OP/30/u+f//zn+/Y597nPPXfb29527k9/+tNYn++Zttlmm/69Hnnkkev7zUknnTQ3SbTja1/72v6/f/3rX/fte81rXrNv60nz5je/eW733Xfv2+jUU0/tv/e3v/1tbpq88pWvnLvd7W4397vf/W799w455JC+LY3LE088cW7a6Lvbb7/9+nb+whe+0F+/xuwk+elPfzr3wAc+sO+Pxcte9rK57bbbbu75z3/+zMZt+2fd181vfvO517/+9XOnnHLK3DOf+cx+/O69995zv/nNb0a6L2PM52jL17zmNf33nvvc587d8pa37P/7r3/969y0udvd7tZf3xz129/+9j+ee9Y84AEP6O/nSle60vr7WQmqDU4++eS5//7v/+6/Lnaxi819/etf77//97//fSrt9L//+79zn/rUp+a+973vzb3uda+bu8xlLrN+jp7v/paCOep617te367W1GmPn6XyyEc+cm6PPfaYu9nNbjZ3qUtdam7bbbede8UrXrHBXLcYbRs84xnPmDvXuc41t++++/bzpXaz5hfTeub2Hh796EfPnfe855277GUvO3f2s5997iY3ucncCSecMPXxpC8WRx999NzFL37xufvf//7rbaZpY66+yEUu0q+NH/zgB+dWG/rETW96076fsSUvcIELzL373e9els2lf1n3H/KQh/Q2G9uJXfPnP/954vf72Mc+dm6HHXbo+5H+pB+9613vmpsGH//4x3ubaeutt557wxve0H9v0v11vvX0Yx/7WD9GXvCCF8x98YtfnHve857XP+eNbnSjifkWk6SdP97znvf0cxf79spXvvLc5z73ufXPp1+d5Sxn6X9+2mmn9d83D73lLW9Z/zvtn+My7Bf8HfMgm+nb3/52b6OZ9+93v/vN+yzTgg23//779/9tPmczPupRj5p78pOf3N/XJFioDY866qi5s571rP24n7RfVW3HF2YTvOQlL+n//pe//KW3x+uZp4E+9NKXvrS3xY2Tb33rW/O2xSTfb32uPn6Oc5yjn5e063xrz0ph3b3CFa7Q9/GrXe1qfX8/6KCDen9wufz85z+fu851rtOPH7BBvVfXWE2wEa1H5Td85CMf6Z+bP7Hc5y2MTe1Xfkf1o5X0B9YaZ5xxhujE3Ekn/3LulF+fma9fL60NtJd2036rmYjsYaIwHDisb3/72/u/MyDPd77zzb3qVa+amAjECCKsEEaJaPvtt98GC8V3v/vduTve8Y69YfHjH/94WZ/NkCfYc9w5goceeujcta997d6hn7bQXguTNtptt916B5RI+/jHP36D37vFLW6xIkL7Rz/60blrXOMavZNAJPzVr37VCwLf+c53eoeZ0LdcB7LaknhIqCcYlkDJkXvQgx408ed41rOe1d8vRw2e5ZKXvORUhHYGpbHgfTGwS/yapqHJkP7+97/f/3c5bdCnOeCMP6LvNCH83eAGN+j/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lu7Zz352d8IJJ3Rvfetbu/Oc5zzdy1/+8u5zn/tcd/rpp3fvf//7uy233HLi1/7KV77S3fve9+7+/Oc/d9e//vW7s53tbN073/nO7iMf+Ui32267Tfx6myPPe97zumOOOab7xCc+0Rm2W2yxRffNb36zu8c97tHtvPPO3dve9raVvsUQQpgq//znP9evYb/4xS/6NedSl7pU//ff//73/Rr3sIc9rLvTne7UffGLX+znyiOPPLK77GUvu/4z/vGPf3RbbbXVkq5XJpL5Fvvss0+/nh5wwAH9Nc5+9rN3n/rUp7rrXe963Rvf+MZ+/Xv4wx/ef/+II47o/93f//73buutt+7WEk9+8pO7i13sYn2bvuc97+me8pSndHe4wx16++IhD3lI/zuHHXZY38bPfe5zu3Od61z9917/+td3++67b/e1r32tu8xlLrPCTxEWs9ke8IAHdFe96lW7Rz/60d0Vr3jFmTXWcccd1933vvftrn3ta/dj5l73uld3yCGHdJe+9KW7H/7wh92d73zn7nznO1/3wQ9+sLdhf/zjH3cnnnhi9/3vf78fW8aSMfXlL3+5nw+uda1rjXU/Z555ZrfNNttM7PnCyvG6172ue8xjHtN94AMf6O3ib3zjG/2cZR7bb7/9+jkMv/3tb/s5i8+EtThHh7Ca+c1vftNd5zrX6b773e92z3jGM7onPvGJ63/2hz/8ofdfn/a0p/Vz/ne+853ufve7X3fooYeu/x3z/h//+Mfuv/7rv7q1QPnlf/nLX3r7D3vssUf/58c//vH+eW52s5v1a5+1lzbz6U9/unvHO97Rr3dh88O6xMb57imnd9ue+9wrfTtrhj/8/vfd5Xa8QHfGGWd0517F7TZ5tTWsGGUgWtB0PJM954Gjcpvb3KY3OokTnJJJc5WrXKU7/PDD+88//vjju0te8pLdl770pQjsE+RPf/pTLygVf/3rX3vH+PnPf3531FFHdd/+9rcnebkQQlh1TkwJ7AcffHDvsHDirnzlK3dvectbeqHk7ne/e7/2ENEJKMTeT37ykxt8znIEduuor//93//tv970pjd117jGNbpnPvOZfSDZvHzd6163e+xjH9vd5z736W5yk5t0P/vZz/r10L/zGatdvHnVq17Vt1MbVOAU7rTTTr0AytG96U1v2j9zCewcyaOPProP7p/znOdc/1m77LJL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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Class names (ordered)\n", + "class_names = list(train_dataset.classes.keys())\n", + "\n", + "# Normalized confusion matrix\n", + "plt.figure(figsize=(16, 16))\n", + "plot_confusion_matrix(\n", + " cm=cm,\n", + " class_names=class_names,\n", + " normalize=True,\n", + " title=\"Normalized Confusion Matrix\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 931 + }, + "id": "mTkTvFZ7ow8y", + "outputId": "af5e08e4-3337-4abb-a68f-cbfa85a490c7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Confusion matrix, without normalization\n" + ] + }, + { + "data": { + "image/png": "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377auHGjTcr7S0JCgv1bqFAhv8Uwo8hNYtst5ssM86uBt99++6Sk+1tvvaX27dvrvffeC8i+mOR/vnz5FBkZGZB4AAAAgNcwvQwAAIDHjR8/Xvv379crr7ySKeGernLlyrrvvvsyLh89elQPP/ywKlWqZJPJZoT1f/7zHx0+fDjT48z1V111lR0t37BhQ5v0NlPXvP766xn3MdOimGS/YUbUm+S4eVz6tCzp/z6eeYy53/E+++wzNW/e3CbuCxQooGrVqtl9+rc53c2XDC1atFD+/PntYzt06KANGzacMp758sHsk7mfmXv+9ttvtwnsrLr55pv18ccfa8+ePRnXrVq1yk4vY2470d9//60HHnhANWrUsGUy09O0a9dO69aty7jP4sWL1aBBA/tvsz/p09Skl9PM2W5+tbB69WpdfPHFNtmeXi8nzulupvgxbXRi+du0aaPChQvbEfUAAAAA/h1JdwAAAI8zU56YZHjTpk2zdP8777xTI0aMUN26dfX000/rkksu0bhx4+xo+ROZRHXnzp11+eWX68knn7TJW5O4NtPVGNdee619DuOmm26y87lPnDgxW/tvnssk903Sf8yYMTbONddco6VLl57xcZ9//rlNKMfHx9vE+oABA7Rs2TI7It0k6U9kRqjv27fPltX82yS2zbQuWWXKahLi77//fqZR7ueff76tyxP9+uuvdkFZU7annnrKfilh5r039Z2eAL/gggtsmY1evXrZ+jObSbCn27Vrl03Wm6lnTN1eeumlp9w/M3d/8eLFbfI9JSXFXvfiiy/aaWieffZZlS5dOstlBQAAwGmYwSNsylYdBCGmlwEAAPCwvXv36s8//7QjvLPCjLJ+7bXXbOL9pZdestfdfffdKlGihF0EdNGiRZmSuj/99JOWLFliR5MbJlkdGxuradOm2fvXrFnTjuC+//77beL51ltvzXYZzCh3M/+8GUVerFixLD/OJLGLFCli55M3f42OHTuqTp06GjlypC3n8cz15tcAxyezzeXHH388S/EKFixoE+gm0X7HHXcoNTVVM2bMUJ8+fU55fzPC/eeff1ZY2D/jZG677TabpDdxhw8frpiYGJtQN1+CNGnS5JT1t337dk2ZMsUuknsmZgS/eV7zRcRjjz1mR9+bkfamTs6mXQAAAACvYqQ7AACAx5Pu6QnhrPjoo4/sXzMq/HgD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KOdlakyMF7SnFqs2tNmzc6895Vs9oR+O/vgHq1df9ZQu8+bOsa07tcm79qVI9yoAaVXIA//mm28u97tGjRpV6ruIlPfR8kIIIYQQQgghhBBCCCFyi0T3DCC9DHncPeutt5499dRT7oAP0svA2LFjXc7LNmmcqr3RRhvZtGnTXPoYIuDTKVMIIYQQQgghhBBCCJFfoBwqT0P65Gtdac9hBiCMv/fee/btt9/arFmz7LjjjrOpU6faiSee6A5Rfe655+yCCy6w0047bYX53KF37962+eab25577mmvvPKK+963337b5Yr/4IMPSsv85ptvXHoZygxTyAghhBBCCCGEEEIIIYSoGkh0zwDyrNeoUcPWX399a9asmf3111/24osvusNQu3btasccc4wNGDDAzj333LS+j+h4/r5nz552+OGH2zrrrGP777+/ywfvD63417/+ZX369LHtttvOlfnII49kculCCCGEEEIIIYQQQghRcFx++eW28cYbu+wjzZs3dwHOn3/++TKfWbBggR1//PG26qqrWr169ZzmOn369MivRQepFskhDTpIVYj8QQepFiY6SFWI/KHYDr7UQarxUmztSQiRP+ggVREVOki1chrdGB2kWumDVLdK8yBVApYJZEZ4X7x4sZ1zzjn28ccf2yeffGKrrLKK+8yxxx5rw4cPt/vuu889jxNOOMFlKiFVeJQop7sQQgghhBBCCCGEEEKIKr1oEVK7dm33ChkxYsQyPyOsE/E+fvx4l2EE4f7uu++2hx9+2Hr16uU+c++997rzOt99913bbLPNLCoU/iCEEEIIIYQQQgghhBCiytK2bVsXme5fpJJZEYjs0KRJE/cv4jtpwjlf09OxY0dr166dvfPOO5FeryLdhRBCCCGEEEIIIYQQQlRZpk6dukx6mdQo91SWLl1qp5xyim255ZbWqVMn9960adOsVq1a1qhRo2U+y5ma/C5KJLoLIYQQQgghhBBCCCFELqj2v5dIj//VFYL7inK6h3BYKvncx4wZY0mg9DJCCCGEEEIIIYQQQgghCoITTjjBXnjhBXvjjTesTZs2pe+3bNnSFi1aZL///vsyn58+fbr7XZRIdBdCCCGEEEIIIYQQQgiR15SUlDjB/ZlnnrHXX3/d1lxzzWV+3717d1tppZVs5MiRpe99/vnn9v3339vmm28e6bUovYwQQgghhBBCCCGEEEKIvOb444+3hx9+2J577jmrX79+aZ52Dl6tW7eu+3fAgAF22mmnucNVSVdz4oknOsF9s802i/RaJLoLIYQQQgghhBBCCCGEyGtuu+029++22267zPv33nuvHXbYYe6/r7/+eqtevbr961//soULF9pOO+1kt956a+TXItFdxEb16joVIk5mzV1oSdC0fsWnQxcSi5csTaTcWjWV+asQWVqS9BWIOFiwaEkiFVunVo1Eyi0WatZIZhxemtBAUbOGbLY40fgvCsE+TWpcFPEy/YFDEqniroNH5LzMSZf2yXmZQohk0susiDp16tgtt9ziXnEi0V0IIYQQQgghhBBCCCFyQLX//U+kR77WlZarhRBCCCGEEEIIIYQQQoiIkOguhBBCCCGEEEIIIYQQQkSERHchhBBCCCGEEEIIIYQQIiIkuotyuf3WW2zdDmtYo3p1bOstNrX3x40ryDKTKjfuMt99e7QdfsBe1n39Na1tkzo2Yvjzyx0ucc1lF1n39dawDq0a2QH9drZvpnxlcVAsz/Waq66wbbbc1FZr2tDWbNvS9t+nn33xxeeWC4qljpMqM4lyh955m22xcTdr07yRe/XeZkt79eWXLBcUSx0nVWbI9ddcaY1XqWlnDzwt9rL0XK3g6njM6FG2d789rP0arW2V2tVt2HPPWtwkOdcVyzih8b8wn2tS5co+VXvKtzY8ctA29vmVfZZ7nd93Pff7i/bawF49s6dN+vcO9s55vezWQze0tZqtYnFRDPNO0uUKUahIdBdl8sTjj9mggafZ4HMvsHfGTbAuXbraHrvuZDNmzCioMpMqNxdl/jn/D1uvU2f791U3lPn724Zca/feeatddu1NNuzV0VZ35VXs4L13swULFliUFNNzHTv6LTvq/46110e9bc8Pf9n++usv23PXPjZ//nyLk2Kq42K619at29iFl1xmb739vr05dpz13HY7O2CffvbpJ5MtToqpjpO6V8+E8e/bfffcZRt06hJ7WXquhdmGmV86d+li1994s+WKpOa6YhonNP4X5nNNqlzZp2pP+daG9775bdvyktdLX4fd9b57f8RH092/k3+YbWc/8ZHtcu0YG3D3B1atWjW7+8geVj2GcxaLZd5JslwhCplqJYS7ioJlzpw51rBhQ5v+y2xr0KBB2n/Hqmb3HhvbDUP+duKWLl1qHdZs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kG255ZYVCu7w1FNP2fXXX2+PPvqobbDBBu4QiUmTJrnfPf3009a1a1c7+uij7aijjir9mwULFjhBf9CgQdagQQMbPny4HXLIIU5832STTUo/d//999tpp51m7733nr3zzjtuwYBr2mGHHdyq4l577WUtWrRwv589e3ZaKXMuv/xyt0iQLfvsu5/NmjnTLr7ofOdMdenazZ57YYS7nrhIosykys1Fmf+dON723WOn0p8vPvdM9+/eBxxs198y1I496XQ3iZ516vE2Z/bvtvFmW9h/nhgWeY7hYnquQ++83f278469lnn/tjvvtoMPPSy2coupjovpXklBcsyAw2zatJ+dmLVBpy5OcO+1/Q4WJ8VUx0ndaxLouRZmG54w/oNl5pyzzjzd/XvQIf3tzqH3FtRcV0zjhMb/wnyuSZUr+1TtKR/bMGllWjeua099sGxqmUV/LbUeaza2/lutbg3qruQi4Ukxc8Ct7zkRPmqKZd5JslwhCplqJYRmFxhEkXfr1q001/rEiRNto402sm+//dbatWvnBG3+Pffcc110eUVcd911dscdd9jHH39sK620Upk53RHDVySI77bbbtaxY0e75pprSq+RvK2jR48u/QyCfK9eveyKK66wV155xXbddVcXSd+qVSv3+xEjRtjOO+9c4UGqZUW6t23b1qb/MtstAIjCYVbKYTK5omn92lYsLF6SzEE8NWso81chksTBTlFvsxXLs2BR9DnY06FOrejT0IjkWRpE8+W03ATcgWKa65I62E9zQGEi+1QUAl0Hj8h5mZMu7ZPzMosJtKcWqzZ0AaPSniqup4YNG9o7n/xo9epLo0uXeXPn2Obrt8679lUU1i4C/Hrrreei3YHUMzNmzLB99tlnhX/LZ/7880+X3oVodgTvxYsXV/g3iOmXXHKJde7c2Zo0aWL16tWzl19+2b7//vtlPkd6mZDVVlvNXRd8+umnTiz3gjtsvvmKc2nVrl3bNcDwJYQQQgghhBBCCCGEECI3FIXoDgcddFCp6M6/ffr0cfnZVwTC9+eff2633nqry1N53HHHWc+ePe2vv/4q92+uvvpql+aG9DJvvPGGi7TfaaedbNGiZbc7pUbOV6tWzUXhCyGEEEIIIYQQQgghhMhPClJ051BSos1DDjzwQJciZvz48fbkk086ET5dENt33313d3jqm2++6fKvf/TRR+WWNXbsWOvbt68dfPDBLuc7UfLkma8MROZPnTrVfv7559L33n333Up9hxBCCCGEEEIIIYQQQojcUpCiO3nWOXyUHO6zZs1y0eO8t8UWW9iAAQOcSL7HHnuk9V333Xef3X333U6w//rrr+3BBx90Irw/gJXvHTVqlP3444+uLFh77bXt1Vdftbffftulifm///s/mz59eqXuoXfv3rbOOutY//793cGt5H4fPHhwBrUhhBBCCCGEEEIIIYSoElTTyypbB3lIQYruZ5xxhtWoUcPWX399a9asWWkudaLbEbD79evnhPN0aNSokd1111225ZZbuhzsr732mg0bNqw0Nc3FF1/sxP327du7soADWjm4lZQyHJjasmXLcg8+LY/q1au7/PHkk+eA1SOPPNIuvfTSSteFEEIIIYQQQgghhBBCiNxRraSkpCSH5YmETkae/kt+nfArVsysuQsTqaam9WtbsbB4STJnLNSsUZDroUXPosW5b0+1aqotxc2CRcummMsVdWrVSKRcES9LlyZjli9NwB0oprkuifEfNAcUJrJPRSHQdfCInJc56dI+OS+z2LSnFqs2tNmzpT2lo9G98+mPVq++NLp0mTd3jm2+Xuu8a1/FY+0KIYQQQgghhBBCCCGEEDFT9KL7Qw89ZPXq1SvztcEGG8Rd/0IIIYQQQgghhBBCCCEKiJpW5HCg6qabblrm71ZaaaWcX48QQgghhBBCCCGEEEKI/KXoRff69eu7lxBCCCGEEEIIIYQQQsRJtf/9T6RHvtZV0aeXEUIIIYQQQgghhBBCCCGiQqK7EEIIIYQQQgghhBBCCBEREt2FEEIIIYQQQgghhBBCiIgo+pzuIj6WLi3JefVWr56feZ4yockqtRIp95d5i3Je5qr1krnXmjW0Lhk38xYstlxTr04yU1+tmmpPhYiea/wUkz2RWLl5miczX0hqnFi0eGnOy9SYGD+yT0UhMOnSPjkvs/1Jz1gSTBnSL5FyhRDJIwVACCGEEEIIIYQQQgghhIgIRboLIYQQQgghhBBCCCFEDqhW7e+XSI98rStFugshhBBCCCGEEEIIIYQQESHRXQghhBBCCCGEEEIIIYSICInuQgghhBBCCCGEEEIIIURESHQX5XL7rbfYuh3WsEb16tjWW2xq748bF2ttjRk9yvbut4e1X6O1rVK7ug177tmCvdekykyi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EwvdTkyqXN2rnmshtKckmPThBJs5c4bL5960QW33Gjt6lN1x203uv4n4F0LkDxLdV5A7LBMYCDnYI1+pVauWbbhRd3vj9ZGl73E/b7wx0jbZbPOCKbPY7jUdSpYutUULF0b2fcX0XJMqV/eq51oI7SkJ1HfUd9Se1Hc0TmhMLHQ7Malyda96roXQnpKg57a9bOy4iTbqnfGlrw036mH77Heg+28WH4QQ+UNNy2NeeOEFO/jgg+2XX35xg8/EiRNtww03tEGDBtkVV1zhPnPkkUfaggUL7MYbb7QTTjjBRo0aZb/99pu1b9/ezjnnHDvggANKv2/bbbe1Tp06Wc2aNe3BBx+0zp072xtvvGEvvviinXLKKTZ16lTbbLPNrH///sulieH3DzzwgJ111ln2xRdf2FdffeVOJD755JNt2LBhtnDhQttmm21syJAhtvbaay/z988++6wNHDjQfT+fGTp0qLVt27b0988995xddNFF9sknn1irVq1c+YMHD3bXmQrl8ApPRs6Ek045zY46or91797Demy8id085Ab7Y/58O7T/4Rl9X1UtM6lyc1Hm/Hnz7LtvppT+/MP339knH02yRo2buNetN1xp2++0mzVv0dJ+/XWWPXjPHTZt2k+28x57WZQU03NNqlzdq55rvrenefPm2ZQpX5X+/O2339ikSROtSeMm1rZdu9jKVd9R31F7Ut/ROKExsdDtxKTK1b3queZ7e0rCPq1fv76tv0GnZd5beZWVrUmTVZd7vxBscSEKnbwW3bfeemubO3euffjhh9ajRw9766233NYjcq57eA8RHuG9e/fu7r8bNGhgw4cPt0MOOcSJ75tssknp5++//3479thjbezYse5nhPC99trLjj/+eDv66KPtgw8+sNNPP325a/njjz/syiuvdIL5qquuas2bN3eC/pdffmnPP/+8K5Oyd9llFyeer7TSSqV/d+mllzrBnhXc4447zvbff//S8kePHm2HHnqoE+u53ylTprjrgAsuuGC567j88sudQJ8t++y7n82aOdMuvuh8mz5tmnXp2s2ee2GEtWix7OElUZJEmUmVm4syP5o0wQ7q16f050vPH+T+3Wu/g+3fVw+xKV9+YU8/doD99usvToTvsmF3e+z5V22djutblBTTc02qXN2rnmu+t6cJ4z+wnXfsVfrzWWf+Pc8edEh/u3Po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59grLzxjA8//Z+EoaorpuSZVru5Vz1XtSX1H40RxjolJlat71XPN9/ZUTG04qXJ1r3qu+d6e5s2bZ1OmfFX687fffmOTJk20Jo2bWNt27QrqXkkp88Rjj9ijTzxj9evVt+n/yx/foGFDq1u3bmzlClHoSHTPkl122cWOOuooO+igg6xHjx62yiqr2OWXX176+wULFtgDDzzghHK46aabbNddd3VCO1Hy11xzjQ0aNMj2339/9/srr7zS3njjDbvhhhvslltucX+HIH/ooYe6gzNefPFF+/DDD61mzbIfHWVfdNFF2d6W7bPvfjZr5ky7+KLz3YDbpWs3e+6FEdaixbIHekRJEmUmVW4uypw8aYIdvs8upT9fddFZ7t+++xxkl91wh/vvF5970q1q77LnPhYXxfRckypX96rnqvakvqNxojjHxKTK1b3queZ7eyqmNpxUubpXPdd8b08Txn9gO+/Yq/Tns8483f170CH97c6h9xbUvQ6983b3b3i/cNudd9vBh0afhlaIYqFaic9bIjLmzz//tE6dOtnUqVNt/PjxLjIdLrzwQie4f/31P9HGpJZp1KiRvfnmmy6yvWHDhu6/t9lmm9LPnHrqqTZp0iR7/fXXS9878MAD7ZFHHrHbbrvNRbuXR1mR7qS2mf7LbGvQoIGecgHx9Yz5iZS7VvNVEilXCCGEEEIIIYTIhKVLk5G+qlevlvMyFy9ZmvMy0Z5aN2/sNC9pTxXXEzrgpK+nW/360ujSZe7cOdZ1rRZ5174U6R4BU6ZMsZ9++snl2vr2229LRfeo+OOPP5yYz4EaX375ZYWfJS88LyGEEEIIIYQQQgghhBC5RwepZsmiRYvs4IMPtv32288uueQSO/LII23GjBmlv//++++dIO959913rXr16i7/O6szrVq1srFjxy7znfy8/vrrl/58+umnu7956aWXXG73MAJeCCGEEEIIIYQQQgghRNVBke5ZMnjwYLe9ATG8Xr16Luf6EUccYS+88IL7fZ06dax///4udzvbSE466STbd999XT53GDhwoF1wwQXWvn1769atm9177702ceLE0oNWhw8f7g5Xfeedd2yjjTZyn+f7/vvf/1rjxo2zvXwhhBBCCCGEEEIIIYQQESLRPQvIxc6Bpxx86nMK/ec//7GuXbu63OvQoUMH22uvvdyBq7/++qvttttuduut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XXfddbkF7lxDW/bzDM8e3/WKK66wO++8M6s0gM8++6zz8/CvuE8Ed/oRO8qqAv65swDC9bHogMbB7gfmpcqM3/67WNTZfPPNSxcsqur4my9gdetllaqDvKREiIj597//XbLqqquWvPHGGyUzZswoOfzww0uqVatW8sknn0Ty/S+++GLJ2muvXXLllVe6n999992S6tWrl5xwwgkl++yzT0nPnj1LmjVrVvLxxx+73y9ZsiSt7126dGnp9/fr1899D9dNWV9//XWlvitTuIbWrVuXdOzYsWT8+PElkyZNKll99dVLrrjiipKXXnqpZMstt3TX8/zzz5csXLiwJJfcf//97tpmzZrlfh43bpyrnwYNGpTsvvvuJfPnz8/q+7mnOnXquOf6xBNPlLabyZMnl0QJ9XjnnXe6//7ll19c/W666aaurqPmgQceKOnevburo6lTp7r3/vrrr5I4ufXWW0v22GOPkt9//730vUsuucTVJf3yo48+Kokb2m6LFi1K6/n999935fs+GyU//vhjyVFHHeXao+emm24qadKkSck111yTs34b/uuva6eddiq5++67S77//vuSyy67zPXfAw88sOTXX3/N6LroY3wPdXnHHXe496666qqSnXfe2f33okWLSuJm//33d+UzRv3222/L3XeuOfLII931dOrUqfR6ksDXwTfffFOy1VZbuVebNm1K/vvf/7r3Fy9eHEs9/ec//ykZO3ZsyZdfflly1113lbRv3750jC7r+tKBMWrrrbd29cqcGnf/SZeTTjqpZJtttinZcccdS9Zcc82S+vXrl9xyyy3LjHUVEdbBpZdeWlKvXr2Sk08+2Y2X1Btzvieuew6v4dRTTy1p1KhRSYcOHUrq1q1b0rt375IxY8bE3p9oi55nn322pG3btiUDBgwotZnihrG6VatWbm58+eWXS6oatIkddtjBtTNsyaZNm5Y888wzlbK5aF/M+8cee6yz2bCdsGv++OOPyK934MCBJS1btnTtiPZEO3r66adL4uCtt95yNlPNmjVL7r33Xvde1O21rPn0zTffdH3k2muvLfnggw9Krr76anefvXr1isy3iJJw/Hjuuefc2IV927Vr15L33nuv9P5oVyuttJL7/c8//+zeZxx68MEHSz8T/pstqe0Cf4dxEJvps88+czYa4/4RRxxR5r3EBTbc6aef7v6b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43vSMH8RkEiKQ9KmIcAz3nDvgDaCfkKqM+qnojRqojCR6L5QorvIP1gdffrpp91qKc4uA7mPskMIwEnebrvt3IFnnqiEd6KucYqYSMLDVclNygRTyIem5hIOgCIn3J133um2nhOpS9Tajjvu6BY8eJ4IXESsYeiQb18IIXIJC7ucJ8ICMP8dB2U5JhyISloOcjojpnAN7PzyUVXMQ2PGjKn0vBcKOUR5k5+eXObhvOZTfHmRFDGTCFrKzpdUMmXVLfdOvXKIKPDfzEEInT5fvU8bFNYTdUEaB5E5cUa85TJ/fFlgKxIY4CHSj+AQzgZAkOF3fncMwgX9mu34tCsCDnwamBEjRrgzFLKJSI5zgUMkAwE/jFlEqyP0Iej5NkLednZBsdiCKE8KsjDtV5zpo4QoBrAhsA122GEHN7aSMsWnkGFeY0dcz549Xb/k8HXOoWOxlx2CIezaJxKc88nyERaQmbN8QCJ+OwGK3D+QRqZv375u0UEpZYpbdP/i+1klP/++SK/f06sD6ot6y8Uu6iipxv+ZKAj++usvW2mlleyKK66wMWPG2EMPPWQNGza0m2++2d577z2bNWuWDR8+3KpXrx552R9++KEdeuih9scff1jPnj2tdu3a9uSTT9prr71m3bp1i7y8YuTqq6+2YcOG2ahRo4xuW61aNfvkk0/soIMOso4dO9ojjzyS9CUKIUSsLF26tHQOmz59uptz1lxzTffznDlz3Bx3/PHH2957720ffPCBGyufeOIJ69ChQ+l3LFmyxGrUqJFWed5EYryF/v37u/l08ODBroy6deva2LFjbeutt7b77rvPzX8nnHCCe//xxx93f7d48WKrWbOm5RPnn3++tWnTxtXpc889ZxdeeKHttddezr449thj3WfuueceV8dXXXWV1atXz713991328knn2yTJk2y9u3bJ3wXoiKb7cgjj7SNNtrITj31VFt//fVzVlkjRoywww8/3DbffHPXZw455BC75JJLbK211rKvv/7a9tlnH2vcuLG9/PLLzob97rvv7KOPPrKvvvrK9S36En1qwoQJbjzYbLPNsrqeBQsWWJ06dSK7P5Ecd911l51xxhn20ksvObv4448/dmMW49hpp53mxjD47bff3JiFzwT5OEYLUZX59ddfbYsttrAvvvjCLr30Ujv77LNLfzd37lznv1588cVuzP/8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tBdffNGOP/54W2mllezss89e7rOLFi1y4nwUNGnSJJLvEUIIIYQQQohsUaS7EEIIIYSIjNq1a1vLli1t9dVXt2OPPdZ69+5tzz///DIpYS699FJr1aqVrbvuuu79qVOn2r777muNGjVy4nnfvn1dehTPkiVL7LTTTnO/X3XVVe3MM8+0kpKSZcpNTS+D6D9o0CBr27atuyai7u+++273vdttt537TOPGjV3EO9cFS5cutcsvv9zWXHNNq1u3rnXt2tWefPLJZcphIWGdddZxv+d7wutMF66L71h55ZVtrbXWsvPOO8/++uuv5T53xx13uOvnc9TP7Nmzl/n90KFDbb311rM6depYx44d7dZbb630tQghhBBCCCGiR6K7EEIIIYSIDcRpIto9I0eOtM8//9xeffVVe+GFF5zYvNNOO1n9+vVt9OjRNnbsWKtXr56LmPd/d+2119p9991n99xzj40ZM8Z+/fVXe+aZZyos99BDD7VHHnnEhgwZYp9++qkTsPleROynnnrKfYbr+Pnnn+3GG290PyO4P/DAA3b77bfb5MmT7dRTT7WDDz7Y3nrrrdLFgb322st23313lyv9yCOPtLPOOqvSdcK9cj+ffPKJK/uuu+6y66+/fpnPfPXVV/b444/bsGHDbMSIEfbhhx/acccdV/r7hx56yM4//3y3gMH9XXbZZU68v//++yt9PUIIIYQQQohoUXoZIYQQQggROUSiI7C//PLLduKJJ5a+v8oqq7gIbZ9W5sEHH3QR5rxH1DmQnoaodnKv77jjjnbDDTe49DQI3oAozveWxxdffOEEa4R9Iu2BiPLUVDTNmzd35fjIeITr1157zTbffPPSv0HkR7DfZptt7LbbbrP27du7RQAgUv+jjz6yK6+8slJ1c+6555b+9xprrGFnnHGGPfrooy6C37NgwQK3ANC6dWv380033WS77rqrK5udBBdccIH7b18nROcj4nOt/fv3r9T1CCGEEEKI3IHF+7fVK9IhX+tKorsQQgghhIgMoteJKCeCHTH9wAMPtAsvvLD09507d14mj/ukSZNcVDfR3yGIzlOmTHEpVYhG33TTTf8xYGvWtB49eiyXYsZDFHqNGjWcUJ4uXMMff/xhO+ywwzLvE22/4YYbuv8mojy8DvACfWV47LHHXAQ+9zdv3jx30GyDBg2W+Uy7du1KBXdfDvVJdD51xd8OGDDAjjrqqNLP8D0NGzas9PUIIYQQQgghokWiuxBCCCGEiAzynBMRjrBO3nYE8hAi3UMQnbt37+7SpaTSrFmzjFPaVBauA4YPH76M2A3khI+Kd955xw466CC76KKLXFodRHKi3H30fGWulbQ0qYsALDYIIYQQQgghkkWiuxBCCCGEiAxEdQ4tTZeNNtrIRX6T6iU12tuz2mqr2XvvvWc9e/YsjegeP368+9uyIJqeqHBysfv0MiE+0p4DWj3rr7++E9e///77ciPkObTUHwrreffdd60yvP322+6Q2cGDB5e+99133y33Oa7jp59+cgsXvpzq1au7lDYtWrRw73/99ddOwBdCCCGEEEJULXSQqhBCCCGESAxE46ZNm1rfvn3dQarffPONy+V+0kkn2Q8//OA+c/LJJ9sVV1xhzz77rH322WfuQNHff/+93O8kTzp5zY844gj3N/47yfMOiN7kjycVzsyZM13kOClbyK3O4akcRkr6lgkTJrhc6v5w0mOOOca+/PJLGzhwoEvz8vDDD7sDUSvD2muv7QR1otspgzQzZR0KW6dOHXcPpN+hXqiPfffd1+VzByLlOfiVvyeHPbnlyYV/3XXXVep6hBBCCCGEENEj0V0IIYQQQiTGyiuvbKNGjXI5zDkUlGhycpWT091Hvp9++ul2yCGHOBGa3OYI5P369avwe0lxs/feezuBvmPHji73+fz5893vSB+DaH3WWWe5qPETTjjBvX/JJZfYeeed58RsrqNPnz4u3QyHlALX+NRTTzkhv2vXru5AVw5frQx77LGHE/Yps1u3bi7ynTJTYbcA9bHLLru4w2S7dOlit956a+nvjzzySHf4LEI7kf1E57MA4K9VCCGEEEIIkRzVSso7gUoIIYQQQgghhBBCCCFE1syZM8ed5/PNT79Y/XLSKorlmTtnjq3ZalWbPXt2uekoqyKKdBdCCCGEEEIIIYQQQgghIkKiuxBCCCGEEEIIIYQQQggRERLdhRBCCCGEEEIIIYQQQoiIkOguhBBCCCGEEEIIIYQQQkSERHchhBBCCCGEEEIIIYQQIiJqRvVFQgghhBBCCCGEEEIIISqimvufSJf8rCtFugshhBBCCCGEEEIIIYQQESHRXQghhBBCCCGEEEIIIYSICInuQgghhBBCCCGEEEIIIURESHQXQgghhBBCCCGEEEII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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Non-normalized confusion matrix\n", + "plt.figure(figsize=(16, 16))\n", + "plot_confusion_matrix(\n", + " cm=cm,\n", + " class_names=class_names,\n", + " normalize=False,\n", + " title=\"Confusion Matrix\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "faRa36Qfow8y" + }, + "source": [ + "## Classification Report" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Gnkj0377ow8y", + "outputId": "67165758-4396-47fa-9223-6b555554161c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.93 1.00 0.96 100\n", + " 1 0.73 0.76 0.75 50\n", + " 2 0.93 0.53 0.68 100\n", + " 3 0.43 0.45 0.44 20\n", + " 4 0.38 0.90 0.54 100\n", + " 5 0.72 0.89 0.80 100\n", + " 6 0.88 0.70 0.78 20\n", + " 7 0.70 0.98 0.81 100\n", + " 8 0.93 0.75 0.83 100\n", + " 9 0.90 0.90 0.90 20\n", + " 10 0.10 0.05 0.07 20\n", + " 11 0.50 0.30 0.38 20\n", + " 12 0.37 0.62 0.46 86\n", + " 13 0.50 0.50 0.50 20\n", + " 14 0.53 0.34 0.41 86\n", + " 15 0.00 0.00 0.00 20\n", + " 16 0.66 0.61 0.63 100\n", + " 17 0.91 0.92 0.92 100\n", + " 18 0.75 0.75 0.75 20\n", + " 19 0.59 0.50 0.54 20\n", + " 20 0.77 1.00 0.87 20\n", + " 21 0.77 0.62 0.69 100\n", + " 22 0.63 0.83 0.72 100\n", + " 23 0.91 0.12 0.21 86\n", + " 24 0.58 0.55 0.56 20\n", + " 25 0.60 0.48 0.53 100\n", + " 26 0.72 0.72 0.72 100\n", + " 27 0.33 0.05 0.09 20\n", + " 28 0.97 0.64 0.77 100\n", + " 29 1.00 0.10 0.18 20\n", + " 30 0.63 0.90 0.74 100\n", + " 31 0.70 0.35 0.47 20\n", + " 32 0.55 0.60 0.57 20\n", + " 33 0.75 0.51 0.61 100\n", + " 34 0.38 0.15 0.21 20\n", + " 35 0.87 0.84 0.85 100\n", + " 36 0.54 0.73 0.62 100\n", + " 37 0.62 0.78 0.69 100\n", + " 38 0.44 0.20 0.28 20\n", + " 39 0.29 0.10 0.15 20\n", + "\n", + " accuracy 0.66 2468\n", + " macro avg 0.64 0.57 0.57 2468\n", + "weighted avg 0.69 0.66 0.65 2468\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.metrics import classification_report\n", + "\n", + "print(classification_report(all_labels, all_preds))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0I5ECoVjve0U" + }, + "source": [ + "# XAI" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "u8Tx7l9Low8z" + }, + "source": [ + "## Step 1: Input Point Cloud Sample" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "odhEiJh07_o8" + }, + "outputs": [], + "source": [ + "# Load\n", + "loaded = torch.load(\"all_data.pt\")\n", + "\n", + "all_inputs = loaded[\"all_inputs\"]\n", + "all_preds = loaded[\"all_preds\"]\n", + "all_labels = loaded[\"all_labels\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "g9yOeM1xow8z" + }, + "outputs": [], + "source": [ + "# Configuration\n", + "random_seed: int = 42\n", + "num_clusters: int = 32\n", + "specified_object_index: int = 1\n", + "num_perturbations: int = 500\n", + "removal_probability: float = 0.5\n", + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pTywi4nTow80" + }, + "source": [ + "### Select Sample from Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "SIL1mKHZow81", + "outputId": "07d52794-d59e-4164-b104-f79f8a24b38e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor([[-0.2134, 0.0201, -0.1540],\n", + " [-0.0944, -0.5360, 0.0550],\n", + " [ 0.0212, -0.1441, -0.0878],\n", + " ...,\n", + " [ 0.0020, 0.6882, 0.3358],\n", + " [ 0.0918, -0.1753, 0.0289],\n", + " [-0.1204, 0.5239, 0.0328]])\n", + "0\n" + ] + } + ], + "source": [ + "# Inputs collected from previous evaluation step\n", + "inputs = all_inputs\n", + "labels = all_labels\n", + "\n", + "print(inputs[specified_object_index])\n", + "print(labels[specified_object_index])\n", + "\n", + "sample_input = inputs[specified_object_index]\n", + "sample_label = labels[specified_object_index]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XUhGtTXtow81" + }, + "source": [ + "### Prediction Function (PointNet Inference)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "lebiglLOow82" + }, + "outputs": [], + "source": [ + "def predict_pointnet(\n", + " model: torch.nn.Module,\n", + " sample_input: torch.Tensor,\n", + " sample_label: int,\n", + ") -> Tuple[int, torch.Tensor, List[int]]:\n", + " \"\"\"\n", + " Perform inference on a single point cloud sample using PointNet.\n", + "\n", + " Args:\n", + " model (torch.nn.Module): Trained PointNet model.\n", + " sample_input (torch.Tensor): Input point cloud of shape (N, 3).\n", + " sample_label (int): Ground truth label (unused, for reference).\n", + "\n", + " Returns:\n", + " Tuple[int, torch.Tensor, List[int]]:\n", + " - Predicted class index\n", + " - Raw model output (log probabilities)\n", + " - Top-5 predicted class indices\n", + " \"\"\"\n", + " # Add batch dimension\n", + " if sample_input.ndim == 2:\n", + " input_batch = sample_input.unsqueeze(0).float()\n", + " else:\n", + " input_batch = sample_input\n", + "\n", + " model.eval()\n", + "\n", + " with torch.no_grad():\n", + " output, _, _ = model(input_batch.transpose(1, 2))\n", + "\n", + " _, predicted_class = torch.max(output.data, 1)\n", + "\n", + " top_values, top_indices = torch.topk(output.data, 5, dim=1)\n", + " top_classes = top_indices.cpu().numpy().flatten().tolist()\n", + "\n", + " return predicted_class.item(), output, top_classes" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Fv55BTLvow82" + }, + "source": [ + "### Run Prediction for Selected Sample" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "rL_0wAv3ow82", + "outputId": "5a273ebf-ad08-46f0-a28a-69f99b15d8e8" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Predicted Label: 0\n", + "Top-5 Predicted Classes: [0, 20, 29, 26, 17]\n" + ] + } + ], + "source": [ + "predicted_label, probabilities, top_pred_classes = predict_pointnet(\n", + " model=model,\n", + " sample_input=sample_input,\n", + " sample_label=sample_label,\n", + ")\n", + "\n", + "print(\"Predicted Label:\", predicted_label)\n", + "print(\"Top-5 Predicted Classes:\", top_pred_classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5lZ-ysi4ve0X" + }, + "source": [ + "## Step 2: Clustering (Farthest Point Sampling + KMeans)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CuSUB5_uow83" + }, + "source": [ + "### Farthest Point Sampling (FPS)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "3kGvJl4eow84" + }, + "outputs": [], + "source": [ + "def farthest_point_sampling(\n", + " points: np.ndarray,\n", + " num_centers: int,\n", + " random_seed: int = 42,\n", + ") -> np.ndarray:\n", + " \"\"\"\n", + " Select initial cluster centers using Farthest Point Sampling (FPS).\n", + "\n", + " Args:\n", + " points (np.ndarray): Input points of shape (N, D).\n", + " num_centers (int): Number of centers to sample.\n", + " random_seed (int): Random seed for reproducibility.\n", + "\n", + " Returns:\n", + " np.ndarray: Selected centers of shape (num_centers, D).\n", + " \"\"\"\n", + " num_points, dim = points.shape\n", + "\n", + " np.random.seed(random_seed)\n", + "\n", + " centers = np.zeros((num_centers, dim))\n", + " center_indices = np.zeros(num_centers, dtype=int)\n", + "\n", + " # Initialize first center randomly\n", + " center_indices[0] = np.random.randint(num_points)\n", + " centers[0] = points[center_indices[0]]\n", + "\n", + " distances = np.sum((points - centers[0]) ** 2, axis=1)\n", + "\n", + " for center_idx in range(1, num_centers):\n", + " center_indices[center_idx] = np.argmax(distances)\n", + " centers[center_idx] = points[center_indices[center_idx]]\n", + "\n", + " new_distances = np.sum((points - centers[center_idx]) ** 2, axis=1)\n", + " distances = np.minimum(distances, new_distances)\n", + "\n", + " return centers" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LBr-OVwXow84" + }, + "source": [ + "### KMeans with FPS Initialization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Z6l4GLc2ow84" + }, + "outputs": [], + "source": [ + "def kmeans_with_fps(\n", + " points: torch.Tensor,\n", + " num_clusters: int,\n", + " max_iters: int,\n", + " random_seed: int = 42,\n", + ") -> Tuple[np.ndarray, np.ndarray]:\n", + " \"\"\"\n", + " Perform KMeans clustering initialized with FPS centers.\n", + "\n", + " Args:\n", + " points (torch.Tensor): Input point cloud of shape (N, 3) or (1, N, 3).\n", + " num_clusters (int): Number of clusters.\n", + " max_iters (int): Maximum number of KMeans iterations.\n", + " random_seed (int): Random seed.\n", + "\n", + " Returns:\n", + " Tuple[np.ndarray, np.ndarray]:\n", + " - Cluster centers\n", + " - Cluster labels for each point\n", + " \"\"\"\n", + " # Handle batch dimension if present\n", + " if points.ndim == 3 and points.shape[0] == 1:\n", + " points = points[0]\n", + "\n", + " # Convert to NumPy\n", + " points_np = points.detach().cpu().numpy()\n", + "\n", + " # Initialize centers with FPS\n", + " initial_centers = farthest_point_sampling(\n", + " points_np, num_clusters, random_seed=random_seed\n", + " )\n", + "\n", + " # KMeans clustering\n", + " kmeans = KMeans(\n", + " n_clusters=num_clusters,\n", + " init=initial_centers,\n", + " max_iter=max_iters,\n", + " n_init=1,\n", + " random_state=random_seed,\n", + " )\n", + "\n", + " kmeans.fit(points_np)\n", + "\n", + " return kmeans.cluster_centers_, kmeans.labels_" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-1AgFUnSow85" + }, + "source": [ + "### Run Clustering" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "2d7KUcv9ow85", + "outputId": "6173c1f5-e215-41be-f0d1-86627959eb1c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of labels: 1024\n" + ] + } + ], + "source": [ + "cluster_centers, cluster_labels = kmeans_with_fps(\n", + " points=sample_input,\n", + " num_clusters=num_clusters,\n", + " max_iters=1000,\n", + " random_seed=random_seed,\n", + ")\n", + "\n", + "print(\"Number of labels:\", len(cluster_labels))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_tXFyGIgow85" + }, + "source": [ + "### Build Segments from Clusters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "It4jG010ow86" + }, + "outputs": [], + "source": [ + "sample_points_np = sample_input.detach().cpu().numpy()\n", + "\n", + "segments = [\n", + " sample_points_np[cluster_labels == cluster_idx]\n", + " for cluster_idx in range(num_clusters)\n", + "]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gJzlqTkQow86" + }, + "source": [ + "### Visualize Clusters (3D)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Ku5tj0wgow86" + }, + "outputs": [], + "source": [ + "def visualize_pointcloud_clusters(segments: List[np.ndarray]) -> go.Figure:\n", + " \"\"\"Visualizes clustered point cloud segments in 3D.\n", + "\n", + " Args:\n", + " segments: A list of NumPy arrays, where each array represents\n", + " a cluster of points of shape (N_i, 3).\n", + "\n", + " Returns:\n", + " A Plotly figure containing the clustered point clouds.\n", + " \"\"\"\n", + " plot_data = []\n", + "\n", + " for segment_idx, segment in enumerate(segments):\n", + " x_vals, y_vals, z_vals = segment[:, 0], segment[:, 1], segment[:, 2]\n", + "\n", + " # Extract RGB color from matplotlib's tab20 colormap\n", + " color = plt.get_cmap(\"tab20\")(segment_idx % 20)\n", + " color_rgba = (\n", + " f\"rgba({int(color[0] * 255)}, {int(color[1] * 255)}, \"\n", + " f\"{int(color[2] * 255)}, 1.0)\"\n", + " )\n", + "\n", + " scatter = go.Scatter3d(\n", + " x=x_vals,\n", + " y=y_vals,\n", + " z=z_vals,\n", + " mode=\"markers\",\n", + " marker=dict(size=2, color=color_rgba),\n", + " name=f\"Cluster {segment_idx}\",\n", + " )\n", + " plot_data.append(scatter)\n", + "\n", + " figure = go.Figure(data=plot_data)\n", + " return figure" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VyqbfMDGow86" + }, + "source": [ + "### Run Visualization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "_0A48tYPow87", + "outputId": "829da8ae-adf8-4221-b306-0626cc64418a" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "figure = visualize_pointcloud_clusters(segments)\n", + "show_persistent_figure(figure)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-EY8nhxkve0a" + }, + "source": [ + "## Step 3: Perturbation (Cluster-Based)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "49BtxCOGow87" + }, + "source": [ + "### Perturbation Function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "xpvnghniow87" + }, + "outputs": [], + "source": [ + "def perturb_point_cloud_by_clusters(\n", + " point_cloud: torch.Tensor,\n", + " cluster_labels: np.ndarray,\n", + " num_perturbations: int,\n", + " removal_probability: float = 0.5,\n", + " random_seed: int | None = None,\n", + ") -> Tuple[\n", + " List[torch.Tensor],\n", + " List[np.ndarray],\n", + " List[int],\n", + " np.ndarray,\n", + "]:\n", + " \"\"\"\n", + " Generate perturbed point clouds by randomly removing clusters.\n", + "\n", + " Args:\n", + " point_cloud (torch.Tensor): Input point cloud of shape (N, 3).\n", + " cluster_labels (np.ndarray): Cluster label per point.\n", + " num_perturbations (int): Number of perturbed samples.\n", + " removal_probability (float): Probability of removing a cluster.\n", + " random_seed (Optional[int]): Random seed.\n", + "\n", + " Returns:\n", + " Tuple:\n", + " - List of perturbed point clouds\n", + " - List of point-level masks\n", + " - All-ones mask (original sample)\n", + " - Cluster-level masks (num_perturbations, num_clusters)\n", + " \"\"\"\n", + " if random_seed is not None:\n", + " np.random.seed(random_seed)\n", + "\n", + " num_points = point_cloud.size(0)\n", + " unique_clusters = np.unique(cluster_labels)\n", + " num_clusters = len(unique_clusters)\n", + "\n", + " perturbed_clouds: List[torch.Tensor] = []\n", + " point_masks: List[np.ndarray] = []\n", + " cluster_masks = np.zeros((num_perturbations, num_clusters), dtype=int)\n", + "\n", + " print(f\"Number of perturbations: {num_perturbations}\")\n", + "\n", + " for perturb_idx in range(num_perturbations):\n", + " # Sample cluster mask (1 = keep, 0 = remove)\n", + " cluster_mask = np.random.binomial(\n", + " 1, 1 - removal_probability, size=num_clusters\n", + " )\n", + "\n", + " # Map cluster mask to each point\n", + " point_mask = np.array(\n", + " [cluster_mask[cluster_id] for cluster_id in cluster_labels]\n", + " )\n", + "\n", + " # Select points to keep\n", + " indices_to_keep = np.where(point_mask == 1)[0]\n", + " perturbed_cloud = point_cloud[indices_to_keep]\n", + "\n", + " perturbed_clouds.append(perturbed_cloud)\n", + " point_masks.append(point_mask)\n", + " cluster_masks[perturb_idx] = cluster_mask\n", + "\n", + " all_ones_mask = [1] * num_points\n", + "\n", + " return perturbed_clouds, point_masks, all_ones_mask, cluster_masks" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zw9se4LDow88" + }, + "source": [ + "### Generate Perturbations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ytAzc7m_ow88", + "outputId": "ae586ad1-2a08-4663-fe49-eb66d4eb7b20" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of perturbations: 500\n" + ] + } + ], + "source": [ + "perturbed_samples, point_masks, all_ones_mask, cluster_masks = (\n", + " perturb_point_cloud_by_clusters(\n", + " point_cloud=sample_input.squeeze(0),\n", + " cluster_labels=cluster_labels,\n", + " num_perturbations=num_perturbations,\n", + " removal_probability=removal_probability,\n", + " random_seed=random_seed,\n", + " )\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6nAY8LDzow88" + }, + "source": [ + "### Inspect a Sample Perturbation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "X8xwpRndow88", + "outputId": "106bf87e-820d-4611-b34e-07c3820180f7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Original Point Cloud\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Perturbed Point Cloud\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sample_perturbation = perturbed_samples[2]\n", + "\n", + "# Ensure correct format for visualization (3, N)\n", + "sample_perturbation = sample_perturbation.float()\n", + "\n", + "print(\"Original Point Cloud\")\n", + "figure = create_point_cloud_figure(sample_input)\n", + "show_persistent_figure(figure)\n", + "\n", + "print(\"\\n\\nPerturbed Point Cloud\")\n", + "figure = create_point_cloud_figure(sample_perturbation)\n", + "show_persistent_figure(figure)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QZDGDHOPve0d" + }, + "source": [ + "## Step 4: Distances" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0SWOePJMow89" + }, + "source": [ + "### Cosine Distance (Mask-Based)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "7Wgr-DZ8ow89" + }, + "outputs": [], + "source": [ + "from sklearn.metrics import pairwise_distances\n", + "\n", + "\n", + "def calculate_mask_cosine_distances(\n", + " sample_input: np.ndarray,\n", + " point_masks: List[np.ndarray],\n", + ") -> np.ndarray:\n", + " \"\"\"\n", + " Compute cosine distances between full-cluster mask and perturbed cluster masks.\n", + "\n", + " This function measures similarity in the interpretable (cluster mask) space,\n", + " where each mask represents which clusters are active (1) or removed (0).\n", + "\n", + " Args:\n", + " sample_input (np.ndarray):\n", + " Original point cloud used only to infer number of clusters/features.\n", + " point_masks (List[np.ndarray]):\n", + " List of binary masks for each perturbation.\n", + "\n", + " Returns:\n", + " np.ndarray:\n", + " Cosine distance between each perturbation mask and full mask.\n", + " \"\"\"\n", + " # Full mask: all clusters are active (baseline explanation state)\n", + " original_mask = np.ones(sample_input.shape[0])\n", + "\n", + " # Convert list of masks into matrix form (num_samples x num_clusters)\n", + " masks_np = np.array(point_masks)\n", + "\n", + " # Compute cosine distances in mask space\n", + " distances = pairwise_distances(\n", + " masks_np,\n", + " original_mask.reshape(1, -1),\n", + " metric=\"cosine\",\n", + " ).ravel()\n", + "\n", + " return distances" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YMfNzR1bow8-" + }, + "source": [ + "### Latent Cosine Distance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "kTf5mJXKow8-" + }, + "outputs": [], + "source": [ + "from sklearn.metrics import pairwise_distances\n", + "\n", + "\n", + "def calculate_latent_cosine_distance(\n", + " original_latent: Union[np.ndarray, torch.Tensor],\n", + " perturbed_latent: Union[np.ndarray, torch.Tensor],\n", + ") -> float:\n", + " \"\"\"\n", + " Compute cosine distance between original and perturbed latent representations.\n", + "\n", + " This measures how much the model's internal feature representation changes\n", + " between the original input and a perturbed version.\n", + "\n", + " Args:\n", + " original_latent (np.ndarray | torch.Tensor):\n", + " Latent vector of the original input with shape (D,) or (1, D).\n", + " perturbed_latent (np.ndarray | torch.Tensor):\n", + " Latent vector of the perturbed input with shape (D,) or (1, D).\n", + "\n", + " Returns:\n", + " float:\n", + " Cosine distance between the two latent vectors.\n", + " \"\"\"\n", + " # Convert torch tensors to numpy if needed\n", + " if isinstance(original_latent, torch.Tensor):\n", + " original_latent = original_latent.detach().cpu().numpy()\n", + " if isinstance(perturbed_latent, torch.Tensor):\n", + " perturbed_latent = perturbed_latent.detach().cpu().numpy()\n", + "\n", + " # Ensure correct shape: (1, D)\n", + " original_latent = original_latent.reshape(1, -1)\n", + " perturbed_latent = perturbed_latent.reshape(1, -1)\n", + "\n", + " # Compute cosine distance\n", + " distance = pairwise_distances(\n", + " perturbed_latent,\n", + " original_latent,\n", + " metric=\"cosine\",\n", + " ).ravel()[0]\n", + "\n", + " return float(distance)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6gRDtNO1ow8-" + }, + "source": [ + "### Wasserstein Distance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "oqwg1QiIow8_" + }, + "outputs": [], + "source": [ + "from scipy.stats import wasserstein_distance\n", + "\n", + "\n", + "def calculate_wasserstein_distance(\n", + " point_cloud1,\n", + " point_cloud2,\n", + " mode: Literal[\"spatial\", \"latent\"] = \"spatial\",\n", + ") -> float:\n", + " \"\"\"\n", + " Compute Wasserstein distance between two point clouds.\n", + "\n", + " Args:\n", + " point_cloud1: First point cloud (Tensor or ndarray).\n", + " point_cloud2: Second point cloud (Tensor or ndarray).\n", + " mode (str):\n", + " - \"spatial\": compute per-axis distance (x, y, z)\n", + " - \"latent\": compute on flattened representation\n", + "\n", + " Returns:\n", + " float: Wasserstein distance.\n", + " \"\"\"\n", + " # Convert to numpy safely\n", + " if isinstance(point_cloud1, torch.Tensor):\n", + " point_cloud1 = point_cloud1.detach().cpu().numpy()\n", + " if isinstance(point_cloud2, torch.Tensor):\n", + " point_cloud2 = point_cloud2.detach().cpu().numpy()\n", + "\n", + " if mode == \"spatial\":\n", + " x1, y1, z1 = point_cloud1[:, 0], point_cloud1[:, 1], point_cloud1[:, 2]\n", + " x2, y2, z2 = point_cloud2[:, 0], point_cloud2[:, 1], point_cloud2[:, 2]\n", + "\n", + " wd_x = wasserstein_distance(x1, x2)\n", + " wd_y = wasserstein_distance(y1, y2)\n", + " wd_z = wasserstein_distance(z1, z2)\n", + "\n", + " return wd_x + wd_y + wd_z\n", + "\n", + " elif mode == \"latent\":\n", + " return wasserstein_distance(\n", + " point_cloud1.flatten(),\n", + " point_cloud2.flatten(),\n", + " )\n", + "\n", + " else:\n", + " raise ValueError(\"mode must be either 'spatial' or 'latent'\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5e2ndpJ3ow8_" + }, + "source": [ + "### Anderson-Darling Distance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "vzv2fW0Mow8_" + }, + "outputs": [], + "source": [ + "from scipy.stats import anderson\n", + "\n", + "\n", + "def calculate_anderson_darling_distance(\n", + " original_cloud,\n", + " perturbed_cloud,\n", + ") -> float:\n", + " \"\"\"\n", + " Compute Anderson-Darling statistic between two point clouds.\n", + "\n", + " Args:\n", + " original_cloud: Original point cloud.\n", + " perturbed_cloud: Perturbed point cloud.\n", + "\n", + " Returns:\n", + " float: Anderson-Darling statistic.\n", + " \"\"\"\n", + " if isinstance(original_cloud, torch.Tensor):\n", + " original_cloud = original_cloud.detach().cpu().numpy()\n", + " if isinstance(perturbed_cloud, torch.Tensor):\n", + " perturbed_cloud = perturbed_cloud.detach().cpu().numpy()\n", + "\n", + " original_flat = original_cloud.flatten()\n", + " perturbed_flat = perturbed_cloud.flatten()\n", + "\n", + " statistic, _, _ = anderson(\n", + " np.concatenate([original_flat, perturbed_flat])\n", + " )\n", + "\n", + " return statistic" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FS1B28kFow9A" + }, + "source": [ + "### Kolmogorov-Smirnov Distance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "5_4YGYgrow9A" + }, + "outputs": [], + "source": [ + "from scipy.stats import ks_2samp\n", + "\n", + "\n", + "def calculate_ks_distance(\n", + " original_cloud,\n", + " perturbed_cloud,\n", + ") -> float:\n", + " \"\"\"\n", + " Compute Kolmogorov-Smirnov distance between two point clouds.\n", + "\n", + " Args:\n", + " original_cloud: Original point cloud.\n", + " perturbed_cloud: Perturbed point cloud.\n", + "\n", + " Returns:\n", + " float: KS statistic.\n", + " \"\"\"\n", + " if isinstance(original_cloud, torch.Tensor):\n", + " original_cloud = original_cloud.detach().cpu().numpy()\n", + " if isinstance(perturbed_cloud, torch.Tensor):\n", + " perturbed_cloud = perturbed_cloud.detach().cpu().numpy()\n", + "\n", + " original_flat = original_cloud.flatten()\n", + " perturbed_flat = perturbed_cloud.flatten()\n", + "\n", + " statistic, _ = ks_2samp(original_flat, perturbed_flat)\n", + "\n", + " return statistic" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MHuLgwp1ve0g" + }, + "source": [ + "## Step 5: Weights" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qQSzCUPyow9A" + }, + "source": [ + "### Kernel Weight Function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "zJqEUvz5ow9B" + }, + "outputs": [], + "source": [ + "def calculate_weights(\n", + " distances: np.ndarray,\n", + " kernel_width: float = 0.5,\n", + " epsilon: float = 0.0,\n", + ") -> np.ndarray:\n", + " \"\"\"\n", + " Compute weights from distances using an exponential kernel.\n", + "\n", + " Args:\n", + " distances (np.ndarray): Distance values.\n", + " kernel_width (float): Kernel width controlling decay.\n", + " epsilon (float): Small constant for numerical stability.\n", + "\n", + " Returns:\n", + " np.ndarray: Computed weights.\n", + " \"\"\"\n", + " distances = np.asarray(distances)\n", + "\n", + " weights = np.sqrt(\n", + " np.exp(-(distances ** 2) / (kernel_width ** 2))\n", + " ) + epsilon\n", + "\n", + " return weights" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "h9inuLrlow9B" + }, + "source": [ + "## Step 6: Probabilities" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-f1wRBGgow9B" + }, + "source": [ + "### Probability Extraction Function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "v0Lh-M-6ow9B" + }, + "outputs": [], + "source": [ + "def get_output_probabilities(\n", + " model: torch.nn.Module,\n", + " perturbed_samples: List[torch.Tensor],\n", + " device: torch.device,\n", + ") -> torch.Tensor:\n", + " \"\"\"\n", + " Compute output probabilities for perturbed samples.\n", + "\n", + " Args:\n", + " model (torch.nn.Module): Trained model.\n", + " perturbed_samples (List[torch.Tensor]): List of perturbed point clouds.\n", + " device (torch.device): Computation device.\n", + "\n", + " Returns:\n", + " torch.Tensor: Tensor of shape (num_samples, 1, num_classes).\n", + " \"\"\"\n", + " model.eval()\n", + "\n", + " probabilities_list: List[torch.Tensor] = []\n", + "\n", + " with torch.no_grad():\n", + " for sample in perturbed_samples:\n", + " input_batch = sample.unsqueeze(0).float().to(device)\n", + "\n", + " output, _, _ = model(input_batch.transpose(1, 2))\n", + " probabilities = torch.softmax(output, dim=1)\n", + "\n", + " probabilities_list.append(probabilities.cpu())\n", + "\n", + " output_tensor = torch.cat(probabilities_list).view(\n", + " len(perturbed_samples), 1, -1\n", + " )\n", + "\n", + " return output_tensor" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kYZmzn90ow9C" + }, + "source": [ + "## Step 7: Surrogate Model" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "U_oJnS4low9C" + }, + "source": [ + "### Build Surrogate Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "bGyHDpVDow9C" + }, + "outputs": [], + "source": [ + "from sklearn.linear_model import LinearRegression, BayesianRidge\n", + "\n", + "def build_surrogate_model(\n", + " model_type: Literal[\"linear\", \"bayesian\"] = \"linear\",\n", + "):\n", + " \"\"\"\n", + " Initialize surrogate model.\n", + "\n", + " Args:\n", + " model_type (str): Type of model (\"linear\" or \"bayesian\").\n", + "\n", + " Returns:\n", + " sklearn model instance.\n", + " \"\"\"\n", + " if model_type == \"linear\":\n", + " return LinearRegression()\n", + " elif model_type == \"bayesian\":\n", + " return BayesianRidge()\n", + " else:\n", + " raise ValueError(\"model_type must be 'linear' or 'bayesian'\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "JHL2I28-ow9D" + }, + "source": [ + "### Calculate Coefficients" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "6GCa-GJMow9E" + }, + "outputs": [], + "source": [ + "def calculate_surrogate_coefficients(\n", + " model_type: str,\n", + " cluster_masks: np.ndarray,\n", + " output_probabilities: torch.Tensor,\n", + " top_pred_classes: np.ndarray,\n", + " weights: np.ndarray,\n", + ") -> Tuple[np.ndarray, np.ndarray, np.ndarray]:\n", + " \"\"\"\n", + " Fit surrogate model and return coefficients and predictions.\n", + "\n", + " Args:\n", + " model_type (str): Surrogate model type.\n", + " cluster_masks (np.ndarray): Binary interpretable features.\n", + " output_probabilities (torch.Tensor): Model outputs.\n", + " top_pred_classes (np.ndarray): Top predicted classes.\n", + " weights (np.ndarray): Sample weights.\n", + "\n", + " Returns:\n", + " Tuple:\n", + " - coefficients\n", + " - y_true\n", + " - y_pred\n", + " \"\"\"\n", + " class_idx = top_pred_classes[0]\n", + "\n", + " probs_np = output_probabilities.detach().cpu().numpy().astype(np.float32)\n", + " y_true = probs_np[:, :, class_idx].ravel()\n", + "\n", + " surrogate_model = build_surrogate_model(model_type)\n", + "\n", + " surrogate_model.fit(\n", + " X=cluster_masks,\n", + " y=y_true,\n", + " sample_weight=weights,\n", + " )\n", + "\n", + " y_pred = surrogate_model.predict(cluster_masks).ravel()\n", + "\n", + " # Handle coef shape difference\n", + " coef = (\n", + " surrogate_model.coef_[0]\n", + " if model_type == \"linear\"\n", + " else surrogate_model.coef_\n", + " )\n", + "\n", + " return coef, y_true, y_pred" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gdSA7ODyow9F" + }, + "source": [ + "### Calculate Fidelity Metrics" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "o-2wZijXow9F" + }, + "outputs": [], + "source": [ + "def calculate_fidelity_metrics(\n", + " y_true: np.ndarray,\n", + " y_pred: np.ndarray,\n", + " weights: np.ndarray,\n", + " cluster_masks: np.ndarray,\n", + " model_name: str,\n", + " num_clusters: int,\n", + " kernel_width: float,\n", + " num_perturbations: int,\n", + ") -> Dict:\n", + " \"\"\"\n", + " Compute fidelity metrics for surrogate model.\n", + "\n", + " Returns:\n", + " Dict: Metrics dictionary.\n", + " \"\"\"\n", + " mse = mean_squared_error(y_true, y_pred, sample_weight=weights)\n", + " r2 = r2_score(y_true, y_pred, sample_weight=weights)\n", + " mae = mean_absolute_error(y_true, y_pred, sample_weight=weights)\n", + "\n", + " mean_loss = abs(np.mean(y_true) - np.mean(y_pred))\n", + " mean_l1 = np.mean(np.abs(y_true - y_pred))\n", + " mean_l2 = np.mean((y_true - y_pred) ** 2)\n", + "\n", + " weighted_l1 = np.sum(weights * np.abs(y_true - y_pred)) / len(y_true)\n", + " weighted_l2 = np.sum(weights * (y_true - y_pred) ** 2) / len(y_true)\n", + "\n", + " f_mean = np.average(y_true, weights=weights)\n", + " ss_tot = np.sum(weights * (y_true - f_mean) ** 2)\n", + " ss_res = np.sum(weights * (y_true - y_pred) ** 2)\n", + " weighted_r2 = 1 - ss_res / ss_tot\n", + "\n", + " n = len(y_true)\n", + " p = cluster_masks.shape[1]\n", + " weighted_adj_r2 = 1 - (1 - weighted_r2) * (n - 1) / (n - p - 1)\n", + "\n", + " return {\n", + " \"name\": model_name,\n", + " \"num_clusters\": num_clusters,\n", + " \"mse\": mse,\n", + " \"r2\": r2,\n", + " \"mae\": mae,\n", + " \"mean_loss\": mean_loss,\n", + " \"mean_l1\": mean_l1,\n", + " \"mean_l2\": mean_l2,\n", + " \"weighted_l1\": weighted_l1,\n", + " \"weighted_l2\": weighted_l2,\n", + " \"weighted_r2\": weighted_r2,\n", + " \"weighted_adj_r2\": weighted_adj_r2,\n", + " \"kernel_width\": kernel_width,\n", + " \"perturbation\": num_perturbations,\n", + " }" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sP25qAdSow9G" + }, + "source": [ + "### Print Fidelity Metrics" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "rLtcy0Eyow9G" + }, + "outputs": [], + "source": [ + "def print_fidelity_metrics(metrics: dict) -> None:\n", + " \"\"\"\n", + " Print fidelity metrics in a formatted way.\n", + "\n", + " Args:\n", + " metrics (dict): Metrics dictionary.\n", + " \"\"\"\n", + " print(\"-\" * 100)\n", + " print(\"Fidelity:\")\n", + " print(f\"Mean Squared Error (MSE): {metrics['mse']}\")\n", + " print(f\"R-squared (R²): {metrics['r2']}\")\n", + " print(f\"Mean Absolute Error (MAE): {metrics['mae']}\")\n", + " print(f\"Mean Loss (Lm): {metrics['mean_loss']}\")\n", + " print(f\"Mean L1 Loss: {metrics['mean_l1']}\")\n", + " print(f\"Mean L2 Loss: {metrics['mean_l2']}\")\n", + " print(f\"Weighted L1 Loss: {metrics['weighted_l1']}\")\n", + " print(f\"Weighted L2 Loss: {metrics['weighted_l2']}\")\n", + " print(f\"Weighted R-squared (R²ω): {metrics['weighted_r2']}\")\n", + " print(f\"Weighted Adjusted R-squared (Rˆ²ω): {metrics['weighted_adj_r2']}\")\n", + " print(\"-\" * 100)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BoRVAOvJow9H" + }, + "source": [ + "## Step 8: Unified Visualization Utilities" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "b8J4Ijjrow9H" + }, + "source": [ + "### Point Cloud Trace Builder" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "_ncQ_2_dow9H" + }, + "outputs": [], + "source": [ + "def create_point_cloud_trace(\n", + " xs: np.ndarray,\n", + " ys: np.ndarray,\n", + " zs: np.ndarray,\n", + " color: Any,\n", + " name: str,\n", + ") -> go.Scatter3d:\n", + " \"\"\"\n", + " Create a Plotly 3D scatter trace for point cloud visualization.\n", + "\n", + " Args:\n", + " xs (np.ndarray): X coordinates.\n", + " ys (np.ndarray): Y coordinates.\n", + " zs (np.ndarray): Z coordinates.\n", + " color (Any): Color array or single color.\n", + " name (str): Trace name.\n", + "\n", + " Returns:\n", + " go.Scatter3d: Plotly scatter trace.\n", + " \"\"\"\n", + " return go.Scatter3d(\n", + " x=xs,\n", + " y=ys,\n", + " z=zs,\n", + " mode=\"markers\",\n", + " marker=dict(\n", + " size=2,\n", + " color=color,\n", + " line=dict(width=2),\n", + " ),\n", + " name=name,\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rI8La_Jlow9H" + }, + "source": [ + "### Clean 3D Layout Builder" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "uhi52QSGow9H" + }, + "outputs": [], + "source": [ + "def create_clean_3d_layout(title: str = \"\") -> go.Layout:\n", + " \"\"\"\n", + " Create a minimal 3D Plotly layout without axes clutter.\n", + "\n", + " Args:\n", + " title (str): Plot title.\n", + "\n", + " Returns:\n", + " go.Layout: Configured layout.\n", + " \"\"\"\n", + " return go.Layout(\n", + " title=title,\n", + " scene=dict(\n", + " xaxis=dict(\n", + " title=\"\",\n", + " showticklabels=False,\n", + " showgrid=False,\n", + " showbackground=False,\n", + " ),\n", + " yaxis=dict(\n", + " title=\"\",\n", + " showticklabels=False,\n", + " showgrid=False,\n", + " showbackground=False,\n", + " ),\n", + " zaxis=dict(\n", + " title=\"\",\n", + " showticklabels=False,\n", + " showgrid=False,\n", + " showbackground=False,\n", + " ),\n", + " ),\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "hKGzIhU3ow9I" + }, + "source": [ + "### Explanation Point Cloud Visualizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "t8mjQ2hsow9I" + }, + "outputs": [], + "source": [ + "def visualize_explanation_pointcloud(\n", + " points: np.ndarray,\n", + " cluster_labels: np.ndarray,\n", + " important_clusters: np.ndarray,\n", + " base_color: str = \"blue\",\n", + " highlight_color: str = \"red\",\n", + ") -> go.Figure:\n", + " \"\"\"\n", + " Visualize explanation over point cloud by highlighting important clusters.\n", + "\n", + " Args:\n", + " points (np.ndarray): Point cloud of shape (N, 3).\n", + " cluster_labels (np.ndarray): Cluster index per point.\n", + " important_clusters (np.ndarray): Selected influential clusters.\n", + " base_color (str): Default color for points.\n", + " highlight_color (str): Color for important clusters.\n", + "\n", + " Returns:\n", + " go.Figure: Plotly figure.\n", + " \"\"\"\n", + " colors = np.full(cluster_labels.shape, base_color)\n", + "\n", + " for cluster_id in important_clusters:\n", + " colors[cluster_labels == cluster_id] = highlight_color\n", + "\n", + " trace = create_point_cloud_trace(\n", + " xs=points[:, 0],\n", + " ys=points[:, 1],\n", + " zs=points[:, 2],\n", + " color=colors,\n", + " name=\"Explanation Point Cloud\",\n", + " )\n", + "\n", + " fig = go.Figure(\n", + " data=[trace],\n", + " layout=create_clean_3d_layout(),\n", + " )\n", + "\n", + " return fig" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "INqSjjfOow9I" + }, + "source": [ + "## Step 9: Explainability Methods" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Swh-_cOMow9J" + }, + "source": [ + "### Model Name Builder (Reusable for LIME & SMILE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "1r7Uc8Aqow9J" + }, + "outputs": [], + "source": [ + "def build_explainer_model_name(\n", + " method: Literal[\"LIME\", \"SMILE\"],\n", + " surrogate_name: str,\n", + " clustering_mode: str,\n", + " distance_mode: str,\n", + " distance_metric: str = \"cosine\",\n", + ") -> str:\n", + " \"\"\"\n", + " Build a standardized model name for experiment comparison.\n", + "\n", + " Args:\n", + " method (str): Explainer method (\"LIME\" or \"SMILE\").\n", + " surrogate_name (str): Surrogate model name.\n", + " clustering_mode (str): \"kmeans\" or \"precomputed\".\n", + " distance_mode (str): \"mask\", \"spatial\", or \"latent\".\n", + " distance_metric (str): Distance metric used.\n", + "\n", + " Returns:\n", + " str: Formatted model name.\n", + " \"\"\"\n", + " distance_abbr = {\n", + " \"cosine\": \"COS\",\n", + " \"wasserstein\": \"WD\",\n", + " \"ks\": \"KS\",\n", + " \"anderson\": \"AD\",\n", + " }\n", + "\n", + " clustering_abbr = {\n", + " \"kmeans\": \"kmeans\",\n", + " \"precomputed\": \"noise\",\n", + " }\n", + "\n", + " dist_tag = distance_abbr.get(distance_metric, distance_metric.upper())\n", + " cluster_tag = clustering_abbr.get(clustering_mode, clustering_mode)\n", + "\n", + " return f\"{method}-{dist_tag}-{cluster_tag}-{distance_mode} ({surrogate_name})\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fwNQwNhgow9J" + }, + "source": [ + "### Unified LIME Method" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "6c-Md_9Sow9K" + }, + "outputs": [], + "source": [ + "def lime_explain(\n", + " sample_input: torch.Tensor,\n", + " sample_label: int,\n", + " model: torch.nn.Module,\n", + " num_clusters: int,\n", + " num_top_features: int,\n", + " num_perturbations: int,\n", + " device: torch.device,\n", + " kernel_width: float = 0.5,\n", + " epsilon: float = 0.0,\n", + " surrogate_model_type: Literal[\"linear\", \"bayesian\"] = \"linear\",\n", + " max_iters: int = 50,\n", + " random_seed: int = 42,\n", + " clustering_mode: Literal[\"kmeans\", \"precomputed\"] = \"kmeans\",\n", + " cluster_labels: Optional[np.ndarray] = None,\n", + " distance_mode: Literal[\"mask\", \"latent\"] = \"mask\",\n", + ") -> Tuple[np.ndarray, Dict[str, float], str]:\n", + " \"\"\"\n", + " Unified LIME explanation method for point cloud models.\n", + "\n", + " Supports:\n", + " - Standard LIME (k-means clustering + mask distance)\n", + " - Noise-based LIME (precomputed clusters)\n", + " - Latent-space LIME (distance in model feature space)\n", + "\n", + " Args:\n", + " sample_input (torch.Tensor): Input point cloud (N, 3).\n", + " sample_label (int): Ground truth label.\n", + " model (torch.nn.Module): Trained model.\n", + " num_clusters (int): Number of clusters.\n", + " num_top_features (int): Number of important clusters to return.\n", + " num_perturbations (int): Number of perturbations.\n", + " device (torch.device): Computation device.\n", + " kernel_width (float): Kernel width for weighting.\n", + " epsilon (float): Small constant for numerical stability.\n", + " surrogate_model_type (str): Type of surrogate model.\n", + " max_iters (int): Max iterations for clustering.\n", + " random_seed (int): Random seed.\n", + " clustering_mode (str):\n", + " \"kmeans\" => compute clusters\n", + " \"precomputed\" => use provided cluster_labels\n", + " cluster_labels (Optional[np.ndarray]):\n", + " Required if clustering_mode=\"precomputed\"\n", + " distance_mode (str):\n", + " \"mask\" => cosine distance in interpretable space\n", + " \"latent\" => cosine distance in latent space\n", + "\n", + " Returns:\n", + " Tuple[np.ndarray, Dict[str, float], str]:\n", + " Top important clusters, fidelity metrics, and experiment model name.\n", + " \"\"\"\n", + " # --------------------------------------------------\n", + " # Step 0: Print model name\n", + " # --------------------------------------------------\n", + "\n", + " surrogate_name = (\n", + " \"LinearRegression\" if surrogate_model_type == \"linear\"\n", + " else \"BayesianRidge\"\n", + " )\n", + "\n", + " model_name = build_explainer_model_name(\n", + " method=\"LIME\",\n", + " surrogate_name=surrogate_name,\n", + " clustering_mode=clustering_mode,\n", + " distance_mode=distance_mode,\n", + " distance_metric=\"cosine\",\n", + " )\n", + "\n", + " print(model_name)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 1: Prediction\n", + " # --------------------------------------------------\n", + " pred, probabilities, top_pred_classes = predict_pointnet(\n", + " model, sample_input, sample_label\n", + " )\n", + "\n", + " # sample_input = sample_input.unsqueeze(0).float()\n", + "\n", + " # Ensure correct shape: (1, N, 3)\n", + " if sample_input.ndim == 2:\n", + " sample_input = sample_input.unsqueeze(0)\n", + "\n", + " sample_input = sample_input.float()\n", + "\n", + " sample_numpy_array = sample_input.cpu().numpy().squeeze(0)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 2: Clustering\n", + " # --------------------------------------------------\n", + " if clustering_mode == \"kmeans\":\n", + " _, cluster_labels = kmeans_with_fps(\n", + " sample_input,\n", + " num_clusters,\n", + " max_iters=max_iters,\n", + " random_seed=random_seed,\n", + " )\n", + " elif clustering_mode == \"precomputed\":\n", + " if cluster_labels is None:\n", + " raise ValueError(\"cluster_labels must be provided for precomputed mode.\")\n", + " else:\n", + " raise ValueError(f\"Invalid clustering_mode: {clustering_mode}\")\n", + "\n", + " # --------------------------------------------------\n", + " # Step 3: Perturbation\n", + " # --------------------------------------------------\n", + " point_cloud = sample_input.squeeze(0) # (N, 3)\n", + "\n", + " assert point_cloud.ndim == 2, f\"Expected (N,3), got {point_cloud.shape}\"\n", + "\n", + " perturbed_samples, masks, _, cluster_masks = (\n", + " perturb_point_cloud_by_clusters(\n", + " point_cloud,\n", + " cluster_labels,\n", + " num_perturbations,\n", + " removal_probability,\n", + " random_seed,\n", + " )\n", + " )\n", + "\n", + " # --------------------------------------------------\n", + " # Step 4: Distance computation\n", + " # --------------------------------------------------\n", + " if distance_mode == \"mask\":\n", + " distances = calculate_mask_cosine_distances(\n", + " sample_input.squeeze(0).cpu().numpy(),\n", + " masks,\n", + " )\n", + "\n", + " elif distance_mode == \"latent\":\n", + " _, original_latent, _ = predict_pointnet(\n", + " model, sample_input.squeeze(0), sample_label\n", + " )\n", + " original_latent = original_latent.squeeze(0)\n", + "\n", + " distances = []\n", + " for perturbed_sample in perturbed_samples:\n", + " _, perturbed_latent, _ = predict_pointnet(\n", + " model, perturbed_sample, sample_label\n", + " )\n", + " perturbed_latent = perturbed_latent.squeeze(0)\n", + "\n", + " dist = calculate_latent_cosine_distance(\n", + " original_latent, perturbed_latent\n", + " )\n", + " distances.append(dist)\n", + "\n", + " else:\n", + " raise ValueError(f\"Invalid distance_mode: {distance_mode}\")\n", + "\n", + " # --------------------------------------------------\n", + " # Step 5: Weights\n", + " # --------------------------------------------------\n", + " weights = calculate_weights(distances, kernel_width, epsilon)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 6: Model probabilities\n", + " # --------------------------------------------------\n", + " output_probabilities = get_output_probabilities(\n", + " model, perturbed_samples, device\n", + " )\n", + "\n", + " # --------------------------------------------------\n", + " # Step 7: Surrogate model\n", + " # --------------------------------------------------\n", + " coefficients, y_true, y_pred = calculate_surrogate_coefficients(\n", + " model_type=surrogate_model_type,\n", + " cluster_masks=cluster_masks,\n", + " output_probabilities=output_probabilities,\n", + " top_pred_classes=top_pred_classes,\n", + " weights=weights,\n", + " )\n", + "\n", + " metrics = calculate_fidelity_metrics(\n", + " y_true=y_true,\n", + " y_pred=y_pred,\n", + " weights=weights,\n", + " cluster_masks=cluster_masks,\n", + " model_name=model_name,\n", + " num_clusters=num_clusters,\n", + " kernel_width=kernel_width,\n", + " num_perturbations=num_perturbations,\n", + " )\n", + "\n", + " print_fidelity_metrics(metrics)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 8: Feature selection\n", + " # --------------------------------------------------\n", + " top_features = np.argsort(coefficients)[-num_top_features:]\n", + "\n", + " # --------------------------------------------------\n", + " # Step 9: Visualization\n", + " # --------------------------------------------------\n", + " fig = visualize_explanation_pointcloud(\n", + " points=sample_numpy_array,\n", + " cluster_labels=cluster_labels,\n", + " important_clusters=top_features,\n", + " )\n", + " show_persistent_figure(fig)\n", + "\n", + " return top_features, metrics, model_name" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EwBVDWyTow9K" + }, + "source": [ + "### Unified SMILE Method" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "3iIHMs7eow9K" + }, + "outputs": [], + "source": [ + "def smile_explain(\n", + " sample_input: torch.Tensor,\n", + " sample_label: int,\n", + " model: torch.nn.Module,\n", + " num_clusters: int,\n", + " num_top_features: int,\n", + " num_perturbations: int,\n", + " device: torch.device,\n", + " kernel_width: float = 0.5,\n", + " epsilon: float = 0.0,\n", + " surrogate_model_type: Literal[\"linear\", \"bayesian\"] = \"linear\",\n", + " max_iters: int = 50,\n", + " random_seed: int = 42,\n", + " clustering_mode: Literal[\"kmeans\", \"precomputed\"] = \"kmeans\",\n", + " cluster_labels: Optional[np.ndarray] = None,\n", + " distance_metric: Literal[\"wasserstein\", \"ks\", \"anderson\"] = \"wasserstein\",\n", + " distance_mode: Literal[\"spatial\", \"latent\"] = \"spatial\",\n", + ") -> Tuple[np.ndarray, Dict[str, float], str]:\n", + " \"\"\"\n", + " Unified SMILE explanation method for point cloud models.\n", + "\n", + " Supports:\n", + " - Spatial distances (point cloud space)\n", + " - Latent distances (model feature space)\n", + " - Multiple statistical distances (Wasserstein, KS, Anderson-Darling)\n", + "\n", + " Args:\n", + " sample_input (torch.Tensor): Input point cloud (N, 3).\n", + " sample_label (int): Ground truth label.\n", + " model (torch.nn.Module): Trained model.\n", + " num_clusters (int): Number of clusters.\n", + " num_top_features (int): Number of important clusters.\n", + " num_perturbations (int): Number of perturbations.\n", + " device (torch.device): Computation device.\n", + " kernel_width (float): Kernel width.\n", + " epsilon (float): Numerical stability constant.\n", + " surrogate_model_type (str): Surrogate model type.\n", + " max_iters (int): Max clustering iterations.\n", + " random_seed (int): Random seed.\n", + " clustering_mode (str): \"kmeans\" or \"precomputed\".\n", + " cluster_labels (Optional[np.ndarray]): Required for precomputed mode.\n", + " distance_metric (str): \"wasserstein\", \"ks\", or \"anderson\".\n", + " distance_mode (str): \"spatial\" or \"latent\".\n", + "\n", + " Returns:\n", + " Tuple[np.ndarray, Dict[str, float], str]:\n", + " Top important clusters, fidelity metrics, and experiment model name.\n", + " \"\"\"\n", + "\n", + " # --------------------------------------------------\n", + " # Step 0: Print model name\n", + " # --------------------------------------------------\n", + "\n", + " surrogate_name = (\n", + " \"LinearRegression\" if surrogate_model_type == \"linear\"\n", + " else \"BayesianRidge\"\n", + " )\n", + "\n", + " model_name = build_explainer_model_name(\n", + " method=\"SMILE\",\n", + " surrogate_name=surrogate_name,\n", + " clustering_mode=clustering_mode,\n", + " distance_mode=distance_mode,\n", + " distance_metric=distance_metric,\n", + " )\n", + "\n", + " print(model_name)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 1: Prediction\n", + " # --------------------------------------------------\n", + " pred, probabilities, top_pred_classes = predict_pointnet(\n", + " model, sample_input, sample_label\n", + " )\n", + "\n", + " # sample_input = sample_input.unsqueeze(0).float()\n", + " # Ensure correct shape: (1, N, 3)\n", + " if sample_input.ndim == 2:\n", + " sample_input = sample_input.unsqueeze(0)\n", + "\n", + " sample_input = sample_input.float()\n", + "\n", + " sample_numpy_array = sample_input.cpu().numpy().squeeze(0)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 2: Clustering\n", + " # --------------------------------------------------\n", + " if clustering_mode == \"kmeans\":\n", + " _, cluster_labels = kmeans_with_fps(\n", + " sample_input,\n", + " num_clusters,\n", + " max_iters=max_iters,\n", + " random_seed=random_seed,\n", + " )\n", + " elif clustering_mode == \"precomputed\":\n", + " if cluster_labels is None:\n", + " raise ValueError(\"cluster_labels must be provided.\")\n", + " else:\n", + " raise ValueError(f\"Invalid clustering_mode: {clustering_mode}\")\n", + "\n", + " # --------------------------------------------------\n", + " # Step 3: Perturbation\n", + " # --------------------------------------------------\n", + " point_cloud = sample_input.squeeze(0) # (N, 3)\n", + "\n", + " assert point_cloud.ndim == 2, f\"Expected (N,3), got {point_cloud.shape}\"\n", + "\n", + " perturbed_samples, masks, _, cluster_masks = (\n", + " perturb_point_cloud_by_clusters(\n", + " point_cloud,\n", + " cluster_labels,\n", + " num_perturbations,\n", + " removal_probability,\n", + " random_seed,\n", + " )\n", + " )\n", + "\n", + " # --------------------------------------------------\n", + " # Step 4: Distance computation (SMILE core)\n", + " # --------------------------------------------------\n", + " distances: List[float] = []\n", + "\n", + " if distance_mode == \"spatial\":\n", + " original = sample_input.squeeze(0)\n", + "\n", + " for perturbed in perturbed_samples:\n", + " if distance_metric == \"wasserstein\":\n", + " dist = calculate_wasserstein_distance(original, perturbed)\n", + "\n", + " elif distance_metric == \"ks\":\n", + " dist = calculate_ks_distance(original, perturbed)\n", + "\n", + " elif distance_metric == \"anderson\":\n", + " dist = calculate_anderson_darling_distance(original, perturbed)\n", + "\n", + " else:\n", + " raise ValueError(f\"Invalid distance_metric: {distance_metric}\")\n", + "\n", + " distances.append(dist)\n", + "\n", + " elif distance_mode == \"latent\":\n", + " _, original_latent, _ = predict_pointnet(\n", + " model, sample_input.squeeze(0), sample_label\n", + " )\n", + " original_latent = original_latent.squeeze(0)\n", + "\n", + " for perturbed in perturbed_samples:\n", + " _, perturbed_latent, _ = predict_pointnet(\n", + " model, perturbed, sample_label\n", + " )\n", + " perturbed_latent = perturbed_latent.squeeze(0)\n", + "\n", + " if distance_metric == \"wasserstein\":\n", + " dist = calculate_wasserstein_distance(\n", + " original_latent, perturbed_latent, mode=\"latent\"\n", + " )\n", + "\n", + " elif distance_metric == \"ks\":\n", + " dist = calculate_ks_distance(\n", + " original_latent, perturbed_latent\n", + " )\n", + "\n", + " elif distance_metric == \"anderson\":\n", + " dist = calculate_anderson_darling_distance(\n", + " original_latent, perturbed_latent\n", + " )\n", + "\n", + " else:\n", + " raise ValueError(f\"Invalid distance_metric: {distance_metric}\")\n", + "\n", + " distances.append(dist)\n", + "\n", + " else:\n", + " raise ValueError(f\"Invalid distance_mode: {distance_mode}\")\n", + "\n", + " # --------------------------------------------------\n", + " # Step 5: Weights\n", + " # --------------------------------------------------\n", + " weights = calculate_weights(distances, kernel_width, epsilon)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 6: Probabilities\n", + " # --------------------------------------------------\n", + " output_probabilities = get_output_probabilities(\n", + " model, perturbed_samples, device\n", + " )\n", + "\n", + " # --------------------------------------------------\n", + " # Step 7: Surrogate model\n", + " # --------------------------------------------------\n", + " coefficients, y_true, y_pred = calculate_surrogate_coefficients(\n", + " model_type=surrogate_model_type,\n", + " cluster_masks=cluster_masks,\n", + " output_probabilities=output_probabilities,\n", + " top_pred_classes=top_pred_classes,\n", + " weights=weights,\n", + " )\n", + "\n", + " metrics = calculate_fidelity_metrics(\n", + " y_true=y_true,\n", + " y_pred=y_pred,\n", + " weights=weights,\n", + " cluster_masks=cluster_masks,\n", + " model_name=model_name,\n", + " num_clusters=num_clusters,\n", + " kernel_width=kernel_width,\n", + " num_perturbations=num_perturbations,\n", + " )\n", + "\n", + " print_fidelity_metrics(metrics)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 8: Feature selection\n", + " # --------------------------------------------------\n", + " top_features = np.argsort(coefficients)[-num_top_features:]\n", + "\n", + " # --------------------------------------------------\n", + " # Step 9: Visualization\n", + " # --------------------------------------------------\n", + " fig = visualize_explanation_pointcloud(\n", + " points=sample_numpy_array,\n", + " cluster_labels=cluster_labels,\n", + " important_clusters=top_features,\n", + " )\n", + " show_persistent_figure(fig)\n", + "\n", + " return top_features, metrics, model_name" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "o-JrN6717_pR" + }, + "source": [ + "### SHAP Method" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "iM3CoLL17_pR" + }, + "outputs": [], + "source": [ + "def shap_explain(\n", + " model: torch.nn.Module,\n", + " sample_input: np.ndarray,\n", + " device: torch.device,\n", + " marker_size: int = 4,\n", + " title: str = \"Point Cloud with SHAP Importance\",\n", + " use_summary_plot: bool = False,\n", + ") -> Tuple[np.ndarray, np.ndarray]:\n", + " \"\"\"Compute SHAP explanations for a PointNet model.\n", + "\n", + " Args:\n", + " model (torch.nn.Module): Trained PointNet model.\n", + " sample_input (np.ndarray): Input point cloud (N, 3).\n", + " device (torch.device): Device for computation.\n", + " marker_size (int): Marker size for visualization.\n", + " title (str): Plot title.\n", + " use_summary_plot (bool): Whether to show SHAP summary plot.\n", + "\n", + " Returns:\n", + " Tuple[np.ndarray, np.ndarray]:\n", + " - Normalized importance scores (N,)\n", + " - SHAP values array (N, 3)\n", + " \"\"\"\n", + " import shap\n", + "\n", + " class PointNetWrapper(torch.nn.Module):\n", + " \"\"\"Wrapper to make PointNet compatible with SHAP.\"\"\"\n", + "\n", + " def __init__(self, base_model: torch.nn.Module):\n", + " super().__init__()\n", + " self.base_model = base_model\n", + "\n", + " def forward(self, x: torch.Tensor) -> torch.Tensor:\n", + " output = self.base_model(x)\n", + " return output[0] if isinstance(output, tuple) else output\n", + "\n", + " # --------------------------------------------------\n", + " # Step 1: Prepare input\n", + " # --------------------------------------------------\n", + " model_wrapper = PointNetWrapper(model).to(device)\n", + "\n", + " input_tensor = torch.tensor(sample_input, dtype=torch.float32)\n", + " input_tensor = input_tensor.unsqueeze(0).to(device) # (1, N, 3)\n", + " input_tensor = input_tensor.transpose(1, 2) # (1, 3, N)\n", + "\n", + " background = input_tensor.clone().detach()\n", + "\n", + " # --------------------------------------------------\n", + " # Step 2: SHAP Explainer\n", + " # --------------------------------------------------\n", + " explainer = shap.DeepExplainer(model_wrapper, background)\n", + " shap_values = explainer.shap_values(input_tensor)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 3: Select predicted class\n", + " # --------------------------------------------------\n", + " with torch.no_grad():\n", + " output = model_wrapper(input_tensor)\n", + " pred_class = torch.argmax(output, dim=1).item()\n", + "\n", + " # SHAP returns list per class OR array with class dim\n", + " if isinstance(shap_values, list):\n", + " shap_array = shap_values[pred_class] # (1, 3, N)\n", + " else:\n", + " shap_array = shap_values[..., pred_class] # (1, 3, N)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 4: Reshape to (N, 3)\n", + " # --------------------------------------------------\n", + " if shap_array.ndim == 3:\n", + " shap_array = shap_array.squeeze(0) # (3, N)\n", + " shap_array = shap_array.transpose(1, 0) # (N, 3)\n", + " else:\n", + " raise ValueError(f\"Unexpected SHAP shape: {shap_array.shape}\")\n", + "\n", + " # --------------------------------------------------\n", + " # Step 5: Features\n", + " # --------------------------------------------------\n", + " features = input_tensor.squeeze(0).cpu().numpy().transpose(1, 0) # (N, 3)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 6: Optional summary plot\n", + " # --------------------------------------------------\n", + " if use_summary_plot:\n", + " shap.summary_plot(\n", + " shap_array,\n", + " features=features,\n", + " feature_names=[\"x\", \"y\", \"z\"],\n", + " )\n", + "\n", + " # --------------------------------------------------\n", + " # Step 7: Importance normalization\n", + " # --------------------------------------------------\n", + " importance = np.sum(np.abs(shap_array), axis=1)\n", + "\n", + " min_val = importance.min()\n", + " max_val = importance.max()\n", + "\n", + " if max_val - min_val > 0:\n", + " importance_norm = (importance - min_val) / (max_val - min_val)\n", + " else:\n", + " importance_norm = np.full_like(importance, 0.5)\n", + "\n", + " # --------------------------------------------------\n", + " # Step 8: Visualization\n", + " # --------------------------------------------------\n", + " fig = create_colored_point_cloud_figure(\n", + " vertices=features,\n", + " importance=importance_norm,\n", + " marker_size=marker_size,\n", + " title=title,\n", + " )\n", + " show_persistent_figure(fig)\n", + "\n", + " return importance_norm, shap_array" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "O4jhlkjmow9L" + }, + "source": [ + "## Step 10: Comparing Explanations and Plotting Comparison Results" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uRdO6Tslow9L" + }, + "source": [ + "### Helper: Run Single Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "xgN5dqjlow9L" + }, + "outputs": [], + "source": [ + "def run_experiment(\n", + " explain_fn: Callable[..., Tuple[np.ndarray, Dict[str, float], str]],\n", + " explain_kwargs: Dict[str, Any],\n", + " fidelity_scores: list,\n", + " running_times: list,\n", + " all_top_features: list,\n", + ") -> None:\n", + " \"\"\"Run a single explanation experiment and collect results.\n", + "\n", + " Args:\n", + " explain_fn (Callable): Explanation function (LIME or SMILE).\n", + " explain_kwargs (Dict[str, Any]): Arguments for the explain function.\n", + " fidelity_scores (list): List to store fidelity metrics.\n", + " running_times (list): List to store execution times.\n", + " all_top_features (list): List to store top features.\n", + " \"\"\"\n", + " start_time = time.time()\n", + "\n", + " results, metrics, model_name = explain_fn(**explain_kwargs)\n", + "\n", + " end_time = time.time()\n", + "\n", + " fidelity_scores.append(metrics)\n", + " all_top_features.append(results)\n", + "\n", + " running_time_dict = {\n", + " \"name\": model_name,\n", + " \"time\": end_time - start_time,\n", + " }\n", + "\n", + " print(running_time_dict)\n", + " running_times.append(running_time_dict)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "xXJdRvNmow9M" + }, + "source": [ + "### Helper: Plot Fidelity Comparison" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "JyBkX41Pow9M" + }, + "outputs": [], + "source": [ + "def plot_fidelity_comparison(\n", + " fidelity_scores: List[dict],\n", + " x_column: str,\n", + " model_filters: Optional[List[str]] = None,\n", + " figure_name: str = \"comparison\",\n", + ") -> None:\n", + " \"\"\"Plot fidelity metrics comparison for multiple explanation methods.\n", + "\n", + " Args:\n", + " fidelity_scores (List[dict]): List of fidelity metric dictionaries.\n", + " x_column (str): Column name for x-axis (e.g., \"kernel_width\").\n", + " model_filters (Optional[List[str]]): List of model name substrings to filter.\n", + " figure_name (str): Output SVG file name (without extension).\n", + " \"\"\"\n", + " fidelity_df = pd.DataFrame(fidelity_scores)\n", + "\n", + " if model_filters:\n", + " mask = fidelity_df[\"name\"].apply(\n", + " lambda x: any(f in x for f in model_filters)\n", + " )\n", + " fidelity_df = fidelity_df[mask]\n", + "\n", + " fig, axs = plt.subplots(3, 2, figsize=(10, 10))\n", + "\n", + " metrics_config = [\n", + " (\"mean_l1\", \"Mean L1\", True),\n", + " (\"mean_l2\", \"Mean L2\", True),\n", + " (\"weighted_l1\", \"Weighted L1\", True),\n", + " (\"weighted_l2\", \"Weighted L2\", True),\n", + " (\"mean_loss\", \"Mean Loss\", True),\n", + " (\"weighted_adj_r2\", \"Adjusted R2 Score\", False),\n", + " ]\n", + "\n", + " axes = axs.flatten()\n", + "\n", + " for ax, (metric, ylabel, use_log) in zip(axes, metrics_config):\n", + " sns.lineplot(\n", + " data=fidelity_df,\n", + " x=x_column,\n", + " y=metric,\n", + " hue=\"name\",\n", + " ax=ax,\n", + " )\n", + "\n", + " ax.set_ylabel(ylabel)\n", + " ax.set_xlabel(\"\" if metric != \"weighted_adj_r2\" else x_column)\n", + "\n", + " if use_log:\n", + " ax.set_yscale(\"log\")\n", + "\n", + " ax.grid(True, alpha=0.2)\n", + " ax.legend()\n", + "\n", + " plt.tight_layout()\n", + "\n", + " output_path = f\"./{figure_name}.svg\"\n", + " plt.savefig(output_path, format=\"svg\")\n", + "\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "82PtPactow9M" + }, + "source": [ + "### Helper: Plot Running Time Comparison" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ospxVERvow9M" + }, + "outputs": [], + "source": [ + "def plot_running_time_comparison(\n", + " linear_times: List[Dict[str, float]],\n", + " bayesian_times: List[Dict[str, float]],\n", + " x_column: str = \"name\",\n", + " figure_name: str = \"running_time_comparison\",\n", + " y_limits: Optional[tuple] = None,\n", + ") -> None:\n", + " \"\"\"Plot aggregated running time comparison for Linear and Bayesian models.\n", + "\n", + " This function aggregates running times by model name and plots both\n", + " LinearRegression and BayesianRidge results on the same axis for\n", + " easier visual comparison.\n", + "\n", + " Args:\n", + " linear_times (List[Dict[str, float]]): Running time records for linear model.\n", + " bayesian_times (List[Dict[str, float]]): Running time records for Bayesian model.\n", + " x_column (str): Column used for grouping on x-axis (default: \"name\").\n", + " figure_name (str): Output SVG file name (without extension).\n", + " y_limits (Optional[tuple]): Optional y-axis limits as (min, max).\n", + " \"\"\"\n", + "\n", + " # --- Convert to DataFrame ---\n", + " linear_df = pd.DataFrame(linear_times)\n", + " bayesian_df = pd.DataFrame(bayesian_times)\n", + "\n", + " # --- Aggregate ---\n", + " linear_df = linear_df.groupby(x_column, as_index=False)[\"time\"].mean()\n", + " bayesian_df = bayesian_df.groupby(x_column, as_index=False)[\"time\"].mean()\n", + "\n", + " # --- Plot ---\n", + " fig, ax = plt.subplots(figsize=(10, 6))\n", + "\n", + " sns.lineplot(\n", + " data=linear_df,\n", + " x=x_column,\n", + " y=\"time\",\n", + " ax=ax,\n", + " marker=\"o\",\n", + " label=\"Linear\",\n", + " )\n", + "\n", + " sns.lineplot(\n", + " data=bayesian_df,\n", + " x=x_column,\n", + " y=\"time\",\n", + " ax=ax,\n", + " marker=\"o\",\n", + " linestyle=\"dotted\",\n", + " label=\"Bayesian\",\n", + " )\n", + "\n", + " # --- Labels ---\n", + " ax.set_ylabel(\"Running Time (seconds)\")\n", + " ax.set_xlabel(\"Model\")\n", + "\n", + " # --- Optional limits ---\n", + " if y_limits is not None:\n", + " ax.set_ylim(*y_limits)\n", + "\n", + " # --- Improve readability ---\n", + " plt.xticks(rotation=45, ha=\"right\")\n", + "\n", + " # --- Layout ---\n", + " plt.grid(alpha=0.2)\n", + " plt.tight_layout()\n", + "\n", + " # --- Save ---\n", + " plt.savefig(f\"./{figure_name}.svg\", format=\"svg\")\n", + "\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6rdE8yowow9N" + }, + "source": [ + "### Helper: Plot Bar Comparison" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "-JRdq5Ckow9N" + }, + "outputs": [], + "source": [ + "def plot_bar_comparison(\n", + " left_df: pd.DataFrame,\n", + " right_df: pd.DataFrame,\n", + " metric: str = \"weighted_adj_r2\",\n", + " x_column: str = \"name\",\n", + " left_title: Optional[str] = \"LIME\",\n", + " right_title: Optional[str] = \"SMILE\",\n", + " figure_name: str = \"bar_comparison\",\n", + " rotate_xticks: bool = False,\n", + ") -> None:\n", + " \"\"\"Plot side-by-side bar comparison for two datasets.\n", + "\n", + " Args:\n", + " left_df (pd.DataFrame): First dataset (e.g., LIME results).\n", + " right_df (pd.DataFrame): Second dataset (e.g., SMILE results).\n", + " metric (str): Metric to plot on y-axis.\n", + " x_column (str): Column name for x-axis.\n", + " left_title (Optional[str]): Title for left subplot.\n", + " right_title (Optional[str]): Title for right subplot.\n", + " figure_name (str): Output SVG file name (without extension).\n", + " rotate_xticks (bool): Whether to rotate x-axis labels.\n", + " \"\"\"\n", + " fig, axes = plt.subplots(1, 2, figsize=(10, 5), sharey=True)\n", + "\n", + " # --- Left Plot ---\n", + " sns.barplot(\n", + " data=left_df,\n", + " x=x_column,\n", + " y=metric,\n", + " ax=axes[0],\n", + " )\n", + " axes[0].set_xlabel(\"Model\")\n", + " axes[0].set_ylabel(metric.replace(\"_\", \" \").title())\n", + " axes[0].set_title(left_title if left_title else \"\")\n", + " axes[0].grid(alpha=0.2)\n", + "\n", + " # --- Right Plot ---\n", + " sns.barplot(\n", + " data=right_df,\n", + " x=x_column,\n", + " y=metric,\n", + " ax=axes[1],\n", + " )\n", + " axes[1].set_xlabel(\"Model\")\n", + " axes[1].set_ylabel(\"\")\n", + " axes[1].set_title(right_title if right_title else \"\")\n", + " axes[1].grid(alpha=0.2)\n", + "\n", + " # --- Optional Tick Rotation ---\n", + " if rotate_xticks:\n", + " for ax in axes:\n", + " ax.set_xticklabels(ax.get_xticklabels(), rotation=45, ha=\"right\")\n", + "\n", + " # --- Layout ---\n", + " plt.tight_layout()\n", + "\n", + " output_path = f\"./{figure_name}.svg\"\n", + " plt.savefig(output_path, format=\"svg\")\n", + "\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9B-kj1A1ow9N" + }, + "source": [ + "### 1. Linear + Kernel Width Sweep (LIME & SMILE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "k6U1HHHoow9N", + "outputId": "15bb599f-ddee-43b7-abf6-50c12edda666" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# ====================================================================================================\n", + "Kernel Width = 0.1\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.014247065519615137\n", + "R-squared (R²): 0.5029806965691099\n", + "Mean Absolute Error (MAE): 0.08072298775899477\n", + "Mean Loss (Lm): 0.02253440585998301\n", + "Mean L1 Loss: 0.14185489500588275\n", + "Mean L2 Loss: 0.038399423537801\n", + "Weighted L1 Loss: 0.002949302647658455\n", + "Weighted L2 Loss: 0.0005205321213309816\n", + "Weighted R-squared (R²ω): 0.5029806965691099\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.486533315276671\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 42.380990505218506}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.022975533746190237\n", + "R-squared (R²): 0.5976961332460895\n", + "Mean Absolute Error (MAE): 0.11759929096290901\n", + "Mean Loss (Lm): 0.025643293484775564\n", + "Mean L1 Loss: 0.1334542881694388\n", + "Mean L2 Loss: 0.03173145478547376\n", + "Weighted L1 Loss: 0.046845589089124486\n", + "Weighted L2 Loss: 0.009152286584081602\n", + "Weighted R-squared (R²ω): 0.5976961332460895\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5843830787102827\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 47.09295129776001}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02978577150561701\n", + "R-squared (R²): 0.6133283233667477\n", + "Mean Absolute Error (MAE): 0.1365864102802241\n", + "Mean Loss (Lm): 4.2684905610101964e-09\n", + "Mean L1 Loss: 0.13658641028022414\n", + "Mean L2 Loss: 0.029785771505617013\n", + "Weighted L1 Loss: 1.3658641028022414e-09\n", + "Weighted L2 Loss: 2.9785771505617016e-10\n", + "Weighted R-squared (R²ω): 0.6133283233667477\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6005325698483774\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 51.18236017227173}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02842042394663321\n", + "R-squared (R²): 0.6046879066111273\n", + "Mean Absolute Error (MAE): 0.13281044336415104\n", + "Mean Loss (Lm): 0.005971911268953911\n", + "Mean L1 Loss: 0.13542171536081596\n", + "Mean L2 Loss: 0.02993249184519641\n", + "Weighted L1 Loss: 0.109179690099921\n", + "Weighted L2 Loss: 0.023363622621858888\n", + "Weighted R-squared (R²ω): 0.6046879066111273\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5916062240998099\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 45.1565203666687}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Kernel Width = 0.2\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.025000471622862355\n", + "R-squared (R²): 0.5712073916342477\n", + "Mean Absolute Error (MAE): 0.12113177719379925\n", + "Mean Loss (Lm): 0.007312733904832225\n", + "Mean L1 Loss: 0.13525574463595644\n", + "Mean L2 Loss: 0.03106162623223951\n", + "Weighted L1 Loss: 0.04282600484561243\n", + "Weighted L2 Loss: 0.00883888888338796\n", + "Weighted R-squared (R²ω): 0.5712073916342477\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5570177706748847\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 46.678372621536255}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02739438271502848\n", + "R-squared (R²): 0.6085974774029698\n", + "Mean Absolute Error (MAE): 0.1302038085555499\n", + "Mean Loss (Lm): 0.009280194128887587\n", + "Mean L1 Loss: 0.13496962664684684\n", + "Mean L2 Loss: 0.030050972567349295\n", + "Weighted L1 Loss: 0.09950256374857783\n", + "Weighted L2 Loss: 0.020934958375600245\n", + "Weighted R-squared (R²ω): 0.6085974774029698\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5956451705538437\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 39.63674807548523}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02978577150561701\n", + "R-squared (R²): 0.6133283233667477\n", + "Mean Absolute Error (MAE): 0.1365864102802241\n", + "Mean Loss (Lm): 4.2684905610101964e-09\n", + "Mean L1 Loss: 0.13658641028022414\n", + "Mean L2 Loss: 0.029785771505617013\n", + "Weighted L1 Loss: 1.3658641028022414e-09\n", + "Weighted L2 Loss: 2.9785771505617016e-10\n", + "Weighted R-squared (R²ω): 0.6133283233667477\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6005325698483774\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 39.02985167503357}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029426210823427938\n", + "R-squared (R²): 0.6107622826565439\n", + "Mean Absolute Error (MAE): 0.13558178436462448\n", + "Mean Loss (Lm): 0.0017535772466168442\n", + "Mean L1 Loss: 0.13621152972350592\n", + "Mean L2 Loss: 0.02979868501632189\n", + "Weighted L1 Loss: 0.12857035710114884\n", + "Weighted L2 Loss: 0.02790447442059891\n", + "Weighted R-squared (R²ω): 0.6107622826565439\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5978816136234615\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 69.03750276565552}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Kernel Width = 0.30000000000000004\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02757266699077711\n", + "R-squared (R²): 0.5917317313641819\n", + "Mean Absolute Error (MAE): 0.12946349542735927\n", + "Mean Loss (Lm): 0.0028453122977079026\n", + "Mean L1 Loss: 0.13544720116425518\n", + "Mean L2 Loss: 0.0301028465449276\n", + "Weighted L1 Loss: 0.0795089634644217\n", + "Weighted L2 Loss: 0.01693353145726262\n", + "Weighted R-squared (R²ω): 0.5917317313641819\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5782213026192531\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 37.269493103027344}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02863981336206796\n", + "R-squared (R²): 0.6110538215434529\n", + "Mean Absolute Error (MAE): 0.13357954605935446\n", + "Mean Loss (Lm): 0.004477334018504142\n", + "Mean L1 Loss: 0.1357455247080895\n", + "Mean L2 Loss: 0.029850075549339657\n", + "Weighted L1 Loss: 0.11796322309347526\n", + "Weighted L2 Loss: 0.025291631785332957\n", + "Weighted R-squared (R²ω): 0.6110538215434529\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5981828001260697\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 33.85884642601013}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02978577150561701\n", + "R-squared (R²): 0.6133283233667477\n", + "Mean Absolute Error (MAE): 0.1365864102802241\n", + "Mean Loss (Lm): 4.2684905610101964e-09\n", + "Mean L1 Loss: 0.13658641028022414\n", + "Mean L2 Loss: 0.029785771505617013\n", + "Weighted L1 Loss: 1.3658641028022414e-09\n", + "Weighted L2 Loss: 2.9785771505617016e-10\n", + "Weighted R-squared (R²ω): 0.6133283233667477\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6005325698483774\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 35.60950684547424}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029624954927202997\n", + "R-squared (R²): 0.6121474238438158\n", + "Mean Absolute Error (MAE): 0.13613100279382437\n", + "Mean Loss (Lm): 0.0008048491093564092\n", + "Mean L1 Loss: 0.13640620656100608\n", + "Mean L2 Loss: 0.029788514389602852\n", + "Weighted L1 Loss: 0.13290088145924028\n", + "Weighted L2 Loss: 0.028922012930284194\n", + "Weighted R-squared (R²ω): 0.6121474238438158\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5993125919544695\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 39.77525234222412}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Kernel Width = 0.4\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.028530370508403558\n", + "R-squared (R²): 0.600452431288646\n", + "Mean Absolute Error (MAE): 0.1325289929329093\n", + "Mean Loss (Lm): 0.0014353695366642327\n", + "Mean L1 Loss: 0.13579128744936747\n", + "Mean L2 Loss: 0.029894872996772983\n", + "Weighted L1 Loss: 0.10018378900967298\n", + "Weighted L2 Loss: 0.02156720998271418\n", + "Weighted R-squared (R²ω): 0.600452431288646\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5872305882702765\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 33.459293603897095}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029124322743962205\n", + "R-squared (R²): 0.6119990812605032\n", + "Mean Absolute Error (MAE): 0.1348587447437006\n", + "Mean Loss (Lm): 0.0025924976540938616\n", + "Mean L1 Loss: 0.1360810621191021\n", + "Mean L2 Loss: 0.029807740887567966\n", + "Weighted L1 Loss: 0.1256158798186011\n", + "Weighted L2 Loss: 0.02712821799251248\n", + "Weighted R-squared (R²ω): 0.6119990812605032\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5991593404128672\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 33.63047218322754}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02978577150561701\n", + "R-squared (R²): 0.6133283233667477\n", + "Mean Absolute Error (MAE): 0.1365864102802241\n", + "Mean Loss (Lm): 4.2684905610101964e-09\n", + "Mean L1 Loss: 0.13658641028022414\n", + "Mean L2 Loss: 0.029785771505617013\n", + "Weighted L1 Loss: 1.3658641028022414e-09\n", + "Weighted L2 Loss: 2.9785771505617016e-10\n", + "Weighted R-squared (R²ω): 0.6133283233667477\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6005325698483774\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 36.45902490615845}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029695153080151325\n", + "R-squared (R²): 0.6126557103661052\n", + "Mean Absolute Error (MAE): 0.13632994577597313\n", + "Mean Loss (Lm): 0.0004579169979034292\n", + "Mean L1 Loss: 0.1364836284518974\n", + "Mean L2 Loss: 0.02978666234818061\n", + "Weighted L1 Loss: 0.1344892723405159\n", + "Weighted L2 Loss: 0.029294220774887372\n", + "Weighted R-squared (R²ω): 0.6126557103661052\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5998376987132773\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 40.27200651168823}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Kernel Width = 0.5\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.028980544431911857\n", + "R-squared (R²): 0.6048517664000352\n", + "Mean Absolute Error (MAE): 0.133978646917081\n", + "Mean Loss (Lm): 0.0008570199921975608\n", + "Mean L1 Loss: 0.13602503738326907\n", + "Mean L2 Loss: 0.029832243363311535\n", + "Weighted L1 Loss: 0.1118200439479455\n", + "Weighted L2 Loss: 0.024187479322860847\n", + "Weighted R-squared (R²ω): 0.6048517664000352\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5917755063429526\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 33.895798206329346}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029357479402836693\n", + "R-squared (R²): 0.612460295976508\n", + "Mean Absolute Error (MAE): 0.1354657482190234\n", + "Mean Loss (Lm): 0.0016814990289715226\n", + "Mean L1 Loss: 0.1362481306698352\n", + "Mean L2 Loss: 0.029795102936379436\n", + "Weighted L1 Loss: 0.12940502140311674\n", + "Weighted L2 Loss: 0.028044028106081417\n", + "Weighted R-squared (R²ω): 0.612460295976508\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5996358176634244\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 34.75326633453369}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02978577150561701\n", + "R-squared (R²): 0.6133283233667477\n", + "Mean Absolute Error (MAE): 0.1365864102802241\n", + "Mean Loss (Lm): 4.2684905610101964e-09\n", + "Mean L1 Loss: 0.13658641028022414\n", + "Mean L2 Loss: 0.029785771505617013\n", + "Weighted L1 Loss: 1.3658641028022414e-09\n", + "Weighted L2 Loss: 2.9785771505617016e-10\n", + "Weighted R-squared (R²ω): 0.6133283233667477\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6005325698483774\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 36.13307237625122}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02972773384897857\n", + "R-squared (R²): 0.6128953270526714\n", + "Mean Absolute Error (MAE): 0.13642213837620643\n", + "Mean Loss (Lm): 0.00029462401830593343\n", + "Mean L1 Loss: 0.13652013498303642\n", + "Mean L2 Loss: 0.029786140881430775\n", + "Weighted L1 Loss: 0.13523693128812042\n", + "Weighted L2 Loss: 0.029469465496862718\n", + "Weighted R-squared (R²ω): 0.6128953270526714\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6000852448041558\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 39.28102207183838}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Kernel Width = 0.6\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029226229260355344\n", + "R-squared (R²): 0.6073489697612703\n", + "Mean Absolute Error (MAE): 0.1347742544468617\n", + "Mean Loss (Lm): 0.0005693170331760866\n", + "Mean L1 Loss: 0.13617738510497582\n", + "Mean L2 Loss: 0.029808665385784652\n", + "Weighted L1 Loss: 0.11879378260475325\n", + "Weighted L2 Loss: 0.025760812696465088\n", + "Weighted R-squared (R²ω): 0.6073489697612703\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.594355347250785\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 34.41389274597168}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.0294864868359375\n", + "R-squared (R²): 0.612718455839641\n", + "Mean Absolute Error (MAE): 0.13580452288676303\n", + "Mean Loss (Lm): 0.0011761763255160318\n", + "Mean L1 Loss: 0.13634765787673775\n", + "Mean L2 Loss: 0.029790362146196788\n", + "Weighted L1 Loss: 0.13153884061339274\n", + "Weighted L2 Loss: 0.02856030277721581\n", + "Weighted R-squared (R²ω): 0.612718455839641\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5999025205623593\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 34.38121151924133}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02978577150561701\n", + "R-squared (R²): 0.6133283233667477\n", + "Mean Absolute Error (MAE): 0.1365864102802241\n", + "Mean Loss (Lm): 4.2684905610101964e-09\n", + "Mean L1 Loss: 0.13658641028022414\n", + "Mean L2 Loss: 0.029785771505617013\n", + "Weighted L1 Loss: 1.3658641028022414e-09\n", + "Weighted L2 Loss: 2.9785771505617016e-10\n", + "Weighted R-squared (R²ω): 0.6133283233667477\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6005325698483774\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 35.6873037815094}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02974545281648279\n", + "R-squared (R²): 0.6130266701249762\n", + "Mean Absolute Error (MAE): 0.13647225710391295\n", + "Mean Loss (Lm): 0.0002051915844829555\n", + "Mean L1 Loss: 0.1365401687830751\n", + "Mean L2 Loss: 0.02978595083071001\n", + "Weighted L1 Loss: 0.13564646181809822\n", + "Weighted L2 Loss: 0.02956546272009586\n", + "Weighted R-squared (R²ω): 0.6130266701249762\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6002209342862992\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 39.432414531707764}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Kernel Width = 0.7000000000000001\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029374607957050696\n", + "R-squared (R²): 0.6088932320873094\n", + "Mean Absolute Error (MAE): 0.13525444132254716\n", + "Mean Loss (Lm): 0.000406148540815332\n", + "Mean L1 Loss: 0.13627690579515384\n", + "Mean L2 Loss: 0.02979828895659503\n", + "Weighted L1 Loss: 0.12323987009748964\n", + "Weighted L2 Loss: 0.026765279079882846\n", + "Weighted R-squared (R²ω): 0.6088932320873094\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.595950712363208\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 33.58255982398987}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029565069677539475\n", + "R-squared (R²): 0.6128769803631957\n", + "Mean Absolute Error (MAE): 0.13601043315525105\n", + "Mean Loss (Lm): 0.0008678934643983061\n", + "Mean L1 Loss: 0.13640933635464916\n", + "Mean L2 Loss: 0.029788279512469186\n", + "Weighted L1 Loss: 0.13285078437780046\n", + "Weighted L2 Loss: 0.02887824562959862\n", + "Weighted R-squared (R²ω): 0.6128769803631957\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.600066290985349\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 34.80994248390198}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02978577150561701\n", + "R-squared (R²): 0.6133283233667477\n", + "Mean Absolute Error (MAE): 0.1365864102802241\n", + "Mean Loss (Lm): 4.2684905610101964e-09\n", + "Mean L1 Loss: 0.13658641028022414\n", + "Mean L2 Loss: 0.029785771505617013\n", + "Weighted L1 Loss: 1.3658641028022414e-09\n", + "Weighted L2 Loss: 2.9785771505617016e-10\n", + "Weighted R-squared (R²ω): 0.6133283233667477\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6005325698483774\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 39.223511934280396}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02975614333847618\n", + "R-squared (R²): 0.6131062723487112\n", + "Mean Absolute Error (MAE): 0.13650255755627536\n", + "Mean Loss (Lm): 0.00015101647716075917\n", + "Mean L1 Loss: 0.13655238764378055\n", + "Mean L2 Loss: 0.029785868692124903\n", + "Weighted L1 Loss: 0.1358946319652802\n", + "Weighted L2 Loss: 0.029623621857936724\n", + "Weighted R-squared (R²ω): 0.6131062723487112\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6003031707097854\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 45.65368962287903}\n", + "\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "max_iters = 50\n", + "num_clusters = 32\n", + "num_perturbations = 1000\n", + "kernel_range = np.arange(0.1, 0.71, 0.1)\n", + "num_top_features = round(0.2 * num_clusters)\n", + "fidelity_scores: List[float] = []\n", + "running_times: List[float] = []\n", + "all_top_features: List = []\n", + "\n", + "for kernel_width in kernel_range:\n", + "\n", + " print(\"#\", \"=\" * 100)\n", + " print(f\"Kernel Width = {kernel_width}\")\n", + " print(\"#\", \"=\" * 100, end=\"\\n\\n\\n\")\n", + "\n", + " common_kwargs = dict(\n", + " sample_input=sample_input,\n", + " sample_label=sample_label,\n", + " model=model,\n", + " num_clusters=num_clusters,\n", + " num_top_features=num_top_features,\n", + " num_perturbations=num_perturbations,\n", + " device=device,\n", + " kernel_width=kernel_width,\n", + " surrogate_model_type=\"linear\",\n", + " max_iters=max_iters,\n", + " random_seed=random_seed,\n", + " clustering_mode=\"kmeans\",\n", + " cluster_labels=None,\n", + " )\n", + "\n", + " # LIME\n", + " run_experiment(\n", + " lime_explain,\n", + " {**common_kwargs, \"epsilon\": 0, \"distance_mode\": \"mask\"},\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - Wasserstein\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 0,\n", + " \"distance_metric\": \"wasserstein\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - Anderson (special epsilon)\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 1e-8,\n", + " \"distance_metric\": \"anderson\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - KS\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 0,\n", + " \"distance_metric\": \"ks\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "XkU-bxsBow9O", + "outputId": "53fdeffd-7743-4561-db6e-03d8c3ee06db" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namenum_clustersmser2maemean_lossmean_l1mean_l2weighted_l1weighted_l2weighted_r2weighted_adj_r2kernel_widthperturbation
0LIME-COS-kmeans-mask (LinearRegression)320.0142470.5029810.0807232.253441e-020.1418550.0383992.949303e-035.205321e-040.5029810.4865330.11000
1SMILE-WD-kmeans-spatial (LinearRegression)320.0229760.5976960.1175992.564329e-020.1334540.0317314.684559e-029.152287e-030.5976960.5843830.11000
2SMILE-AD-kmeans-spatial (LinearRegression)320.0297860.6133280.1365864.268491e-090.1365860.0297861.365864e-092.978577e-100.6133280.6005330.11000
3SMILE-KS-kmeans-spatial (LinearRegression)320.0284200.6046880.1328105.971911e-030.1354220.0299321.091797e-012.336362e-020.6046880.5916060.11000
4LIME-COS-kmeans-mask (LinearRegression)320.0250000.5712070.1211327.312734e-030.1352560.0310624.282600e-028.838889e-030.5712070.5570180.21000
5SMILE-WD-kmeans-spatial (LinearRegression)320.0273940.6085970.1302049.280194e-030.1349700.0300519.950256e-022.093496e-020.6085970.5956450.21000
6SMILE-AD-kmeans-spatial (LinearRegression)320.0297860.6133280.1365864.268491e-090.1365860.0297861.365864e-092.978577e-100.6133280.6005330.21000
7SMILE-KS-kmeans-spatial (LinearRegression)320.0294260.6107620.1355821.753577e-030.1362120.0297991.285704e-012.790447e-020.6107620.5978820.21000
8LIME-COS-kmeans-mask (LinearRegression)320.0275730.5917320.1294632.845312e-030.1354470.0301037.950896e-021.693353e-020.5917320.5782210.31000
9SMILE-WD-kmeans-spatial (LinearRegression)320.0286400.6110540.1335804.477334e-030.1357460.0298501.179632e-012.529163e-020.6110540.5981830.31000
10SMILE-AD-kmeans-spatial (LinearRegression)320.0297860.6133280.1365864.268491e-090.1365860.0297861.365864e-092.978577e-100.6133280.6005330.31000
11SMILE-KS-kmeans-spatial (LinearRegression)320.0296250.6121470.1361318.048491e-040.1364060.0297891.329009e-012.892201e-020.6121470.5993130.31000
12LIME-COS-kmeans-mask (LinearRegression)320.0285300.6004520.1325291.435370e-030.1357910.0298951.001838e-012.156721e-020.6004520.5872310.41000
13SMILE-WD-kmeans-spatial (LinearRegression)320.0291240.6119990.1348592.592498e-030.1360810.0298081.256159e-012.712822e-020.6119990.5991590.41000
14SMILE-AD-kmeans-spatial (LinearRegression)320.0297860.6133280.1365864.268491e-090.1365860.0297861.365864e-092.978577e-100.6133280.6005330.41000
15SMILE-KS-kmeans-spatial (LinearRegression)320.0296950.6126560.1363304.579170e-040.1364840.0297871.344893e-012.929422e-020.6126560.5998380.41000
16LIME-COS-kmeans-mask (LinearRegression)320.0289810.6048520.1339798.570200e-040.1360250.0298321.118200e-012.418748e-020.6048520.5917760.51000
17SMILE-WD-kmeans-spatial (LinearRegression)320.0293570.6124600.1354661.681499e-030.1362480.0297951.294050e-012.804403e-020.6124600.5996360.51000
18SMILE-AD-kmeans-spatial (LinearRegression)320.0297860.6133280.1365864.268491e-090.1365860.0297861.365864e-092.978577e-100.6133280.6005330.51000
19SMILE-KS-kmeans-spatial (LinearRegression)320.0297280.6128950.1364222.946240e-040.1365200.0297861.352369e-012.946947e-020.6128950.6000850.51000
20LIME-COS-kmeans-mask (LinearRegression)320.0292260.6073490.1347745.693170e-040.1361770.0298091.187938e-012.576081e-020.6073490.5943550.61000
21SMILE-WD-kmeans-spatial (LinearRegression)320.0294860.6127180.1358051.176176e-030.1363480.0297901.315388e-012.856030e-020.6127180.5999030.61000
22SMILE-AD-kmeans-spatial (LinearRegression)320.0297860.6133280.1365864.268491e-090.1365860.0297861.365864e-092.978577e-100.6133280.6005330.61000
23SMILE-KS-kmeans-spatial (LinearRegression)320.0297450.6130270.1364722.051916e-040.1365400.0297861.356465e-012.956546e-020.6130270.6002210.61000
24LIME-COS-kmeans-mask (LinearRegression)320.0293750.6088930.1352544.061485e-040.1362770.0297981.232399e-012.676528e-020.6088930.5959510.71000
25SMILE-WD-kmeans-spatial (LinearRegression)320.0295650.6128770.1360108.678935e-040.1364090.0297881.328508e-012.887825e-020.6128770.6000660.71000
26SMILE-AD-kmeans-spatial (LinearRegression)320.0297860.6133280.1365864.268491e-090.1365860.0297861.365864e-092.978577e-100.6133280.6005330.71000
27SMILE-KS-kmeans-spatial (LinearRegression)320.0297560.6131060.1365031.510165e-040.1365520.0297861.358946e-012.962362e-020.6131060.6003030.71000
\n", + "
" + ], + "text/plain": [ + " name num_clusters mse \\\n", + "0 LIME-COS-kmeans-mask (LinearRegression) 32 0.014247 \n", + "1 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.022976 \n", + "2 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.029786 \n", + "3 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.028420 \n", + "4 LIME-COS-kmeans-mask (LinearRegression) 32 0.025000 \n", + "5 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.027394 \n", + "6 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.029786 \n", + "7 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.029426 \n", + "8 LIME-COS-kmeans-mask (LinearRegression) 32 0.027573 \n", + "9 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.028640 \n", + "10 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.029786 \n", + "11 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.029625 \n", + "12 LIME-COS-kmeans-mask (LinearRegression) 32 0.028530 \n", + "13 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.029124 \n", + "14 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.029786 \n", + "15 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.029695 \n", + "16 LIME-COS-kmeans-mask (LinearRegression) 32 0.028981 \n", + "17 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.029357 \n", + "18 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.029786 \n", + "19 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.029728 \n", + "20 LIME-COS-kmeans-mask (LinearRegression) 32 0.029226 \n", + "21 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.029486 \n", + "22 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.029786 \n", + "23 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.029745 \n", + "24 LIME-COS-kmeans-mask (LinearRegression) 32 0.029375 \n", + "25 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.029565 \n", + "26 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.029786 \n", + "27 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.029756 \n", + "\n", + " r2 mae mean_loss mean_l1 mean_l2 weighted_l1 \\\n", + "0 0.502981 0.080723 2.253441e-02 0.141855 0.038399 2.949303e-03 \n", + "1 0.597696 0.117599 2.564329e-02 0.133454 0.031731 4.684559e-02 \n", + "2 0.613328 0.136586 4.268491e-09 0.136586 0.029786 1.365864e-09 \n", + "3 0.604688 0.132810 5.971911e-03 0.135422 0.029932 1.091797e-01 \n", + "4 0.571207 0.121132 7.312734e-03 0.135256 0.031062 4.282600e-02 \n", + "5 0.608597 0.130204 9.280194e-03 0.134970 0.030051 9.950256e-02 \n", + "6 0.613328 0.136586 4.268491e-09 0.136586 0.029786 1.365864e-09 \n", + "7 0.610762 0.135582 1.753577e-03 0.136212 0.029799 1.285704e-01 \n", + "8 0.591732 0.129463 2.845312e-03 0.135447 0.030103 7.950896e-02 \n", + "9 0.611054 0.133580 4.477334e-03 0.135746 0.029850 1.179632e-01 \n", + "10 0.613328 0.136586 4.268491e-09 0.136586 0.029786 1.365864e-09 \n", + "11 0.612147 0.136131 8.048491e-04 0.136406 0.029789 1.329009e-01 \n", + "12 0.600452 0.132529 1.435370e-03 0.135791 0.029895 1.001838e-01 \n", + "13 0.611999 0.134859 2.592498e-03 0.136081 0.029808 1.256159e-01 \n", + "14 0.613328 0.136586 4.268491e-09 0.136586 0.029786 1.365864e-09 \n", + "15 0.612656 0.136330 4.579170e-04 0.136484 0.029787 1.344893e-01 \n", + "16 0.604852 0.133979 8.570200e-04 0.136025 0.029832 1.118200e-01 \n", + "17 0.612460 0.135466 1.681499e-03 0.136248 0.029795 1.294050e-01 \n", + "18 0.613328 0.136586 4.268491e-09 0.136586 0.029786 1.365864e-09 \n", + "19 0.612895 0.136422 2.946240e-04 0.136520 0.029786 1.352369e-01 \n", + "20 0.607349 0.134774 5.693170e-04 0.136177 0.029809 1.187938e-01 \n", + "21 0.612718 0.135805 1.176176e-03 0.136348 0.029790 1.315388e-01 \n", + "22 0.613328 0.136586 4.268491e-09 0.136586 0.029786 1.365864e-09 \n", + "23 0.613027 0.136472 2.051916e-04 0.136540 0.029786 1.356465e-01 \n", + "24 0.608893 0.135254 4.061485e-04 0.136277 0.029798 1.232399e-01 \n", + "25 0.612877 0.136010 8.678935e-04 0.136409 0.029788 1.328508e-01 \n", + "26 0.613328 0.136586 4.268491e-09 0.136586 0.029786 1.365864e-09 \n", + "27 0.613106 0.136503 1.510165e-04 0.136552 0.029786 1.358946e-01 \n", + "\n", + " weighted_l2 weighted_r2 weighted_adj_r2 kernel_width perturbation \n", + "0 5.205321e-04 0.502981 0.486533 0.1 1000 \n", + "1 9.152287e-03 0.597696 0.584383 0.1 1000 \n", + "2 2.978577e-10 0.613328 0.600533 0.1 1000 \n", + "3 2.336362e-02 0.604688 0.591606 0.1 1000 \n", + "4 8.838889e-03 0.571207 0.557018 0.2 1000 \n", + "5 2.093496e-02 0.608597 0.595645 0.2 1000 \n", + "6 2.978577e-10 0.613328 0.600533 0.2 1000 \n", + "7 2.790447e-02 0.610762 0.597882 0.2 1000 \n", + "8 1.693353e-02 0.591732 0.578221 0.3 1000 \n", + "9 2.529163e-02 0.611054 0.598183 0.3 1000 \n", + "10 2.978577e-10 0.613328 0.600533 0.3 1000 \n", + "11 2.892201e-02 0.612147 0.599313 0.3 1000 \n", + "12 2.156721e-02 0.600452 0.587231 0.4 1000 \n", + "13 2.712822e-02 0.611999 0.599159 0.4 1000 \n", + "14 2.978577e-10 0.613328 0.600533 0.4 1000 \n", + "15 2.929422e-02 0.612656 0.599838 0.4 1000 \n", + "16 2.418748e-02 0.604852 0.591776 0.5 1000 \n", + "17 2.804403e-02 0.612460 0.599636 0.5 1000 \n", + "18 2.978577e-10 0.613328 0.600533 0.5 1000 \n", + "19 2.946947e-02 0.612895 0.600085 0.5 1000 \n", + "20 2.576081e-02 0.607349 0.594355 0.6 1000 \n", + "21 2.856030e-02 0.612718 0.599903 0.6 1000 \n", + "22 2.978577e-10 0.613328 0.600533 0.6 1000 \n", + "23 2.956546e-02 0.613027 0.600221 0.6 1000 \n", + "24 2.676528e-02 0.608893 0.595951 0.7 1000 \n", + "25 2.887825e-02 0.612877 0.600066 0.7 1000 \n", + "26 2.978577e-10 0.613328 0.600533 0.7 1000 \n", + "27 2.962362e-02 0.613106 0.600303 0.7 1000 " + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fidelity_scores_df = pd.DataFrame(fidelity_scores)\n", + "fidelity_scores_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 927 + }, + "id": "wHJh-3MEow9O", + "outputId": "ff0270fe-d42c-4cf7-be6f-6652cad04098" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nametime
0LIME-COS-kmeans-mask (LinearRegression)42.380991
1SMILE-WD-kmeans-spatial (LinearRegression)47.092951
2SMILE-AD-kmeans-spatial (LinearRegression)51.182360
3SMILE-KS-kmeans-spatial (LinearRegression)45.156520
4LIME-COS-kmeans-mask (LinearRegression)46.678373
5SMILE-WD-kmeans-spatial (LinearRegression)39.636748
6SMILE-AD-kmeans-spatial (LinearRegression)39.029852
7SMILE-KS-kmeans-spatial (LinearRegression)69.037503
8LIME-COS-kmeans-mask (LinearRegression)37.269493
9SMILE-WD-kmeans-spatial (LinearRegression)33.858846
10SMILE-AD-kmeans-spatial (LinearRegression)35.609507
11SMILE-KS-kmeans-spatial (LinearRegression)39.775252
12LIME-COS-kmeans-mask (LinearRegression)33.459294
13SMILE-WD-kmeans-spatial (LinearRegression)33.630472
14SMILE-AD-kmeans-spatial (LinearRegression)36.459025
15SMILE-KS-kmeans-spatial (LinearRegression)40.272007
16LIME-COS-kmeans-mask (LinearRegression)33.895798
17SMILE-WD-kmeans-spatial (LinearRegression)34.753266
18SMILE-AD-kmeans-spatial (LinearRegression)36.133072
19SMILE-KS-kmeans-spatial (LinearRegression)39.281022
20LIME-COS-kmeans-mask (LinearRegression)34.413893
21SMILE-WD-kmeans-spatial (LinearRegression)34.381212
22SMILE-AD-kmeans-spatial (LinearRegression)35.687304
23SMILE-KS-kmeans-spatial (LinearRegression)39.432415
24LIME-COS-kmeans-mask (LinearRegression)33.582560
25SMILE-WD-kmeans-spatial (LinearRegression)34.809942
26SMILE-AD-kmeans-spatial (LinearRegression)39.223512
27SMILE-KS-kmeans-spatial (LinearRegression)45.653690
\n", + "
" + ], + "text/plain": [ + " name time\n", + "0 LIME-COS-kmeans-mask (LinearRegression) 42.380991\n", + "1 SMILE-WD-kmeans-spatial (LinearRegression) 47.092951\n", + "2 SMILE-AD-kmeans-spatial (LinearRegression) 51.182360\n", + "3 SMILE-KS-kmeans-spatial (LinearRegression) 45.156520\n", + "4 LIME-COS-kmeans-mask (LinearRegression) 46.678373\n", + "5 SMILE-WD-kmeans-spatial (LinearRegression) 39.636748\n", + "6 SMILE-AD-kmeans-spatial (LinearRegression) 39.029852\n", + "7 SMILE-KS-kmeans-spatial (LinearRegression) 69.037503\n", + "8 LIME-COS-kmeans-mask (LinearRegression) 37.269493\n", + "9 SMILE-WD-kmeans-spatial (LinearRegression) 33.858846\n", + "10 SMILE-AD-kmeans-spatial (LinearRegression) 35.609507\n", + "11 SMILE-KS-kmeans-spatial (LinearRegression) 39.775252\n", + "12 LIME-COS-kmeans-mask (LinearRegression) 33.459294\n", + "13 SMILE-WD-kmeans-spatial (LinearRegression) 33.630472\n", + "14 SMILE-AD-kmeans-spatial (LinearRegression) 36.459025\n", + "15 SMILE-KS-kmeans-spatial (LinearRegression) 40.272007\n", + "16 LIME-COS-kmeans-mask (LinearRegression) 33.895798\n", + "17 SMILE-WD-kmeans-spatial (LinearRegression) 34.753266\n", + "18 SMILE-AD-kmeans-spatial (LinearRegression) 36.133072\n", + "19 SMILE-KS-kmeans-spatial (LinearRegression) 39.281022\n", + "20 LIME-COS-kmeans-mask (LinearRegression) 34.413893\n", + "21 SMILE-WD-kmeans-spatial (LinearRegression) 34.381212\n", + "22 SMILE-AD-kmeans-spatial (LinearRegression) 35.687304\n", + "23 SMILE-KS-kmeans-spatial (LinearRegression) 39.432415\n", + "24 LIME-COS-kmeans-mask (LinearRegression) 33.582560\n", + "25 SMILE-WD-kmeans-spatial (LinearRegression) 34.809942\n", + "26 SMILE-AD-kmeans-spatial (LinearRegression) 39.223512\n", + "27 SMILE-KS-kmeans-spatial (LinearRegression) 45.653690" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "running_times_df = pd.DataFrame(running_times)\n", + "running_times_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 874 + }, + "id": "s8c5fEOnow9O", + "outputId": "f51c71ac-0cd0-44a4-ff70-c4a71a553ad6" + }, + "outputs": [ + { + "data": { + "image/png": "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/UDP3SxZsgR/dCclJcVJS0vzWoKx7777OhdccIH5/5lnnnGOOOII8/+hhx7qvPLKK+b/4cOHOwceeKDnM5MnTzb7ysrKqrS9zz//3Lw3Y8aMgPscMmSIM2rUKOfpp582x/z99997vT9ixAhzrKWlpZ7Xevfu7QwePNgpLi42562kpMQc21tvvWXef/311806vGcpLCw05+PLL7/02w62n5GR4Xz88cee12j7Lbfc4nmek5NjXuO44Oijj3bOPvtsJ1SCrW/77IEHHjDt5tiKioqczp07Ow8++GDAbV566aXOiSee6HW+jj32WL/bnjVrVo224+aDDz5w4uLivM6xuz+DHePMmTPN5+zY+eabbzzrfPrpp+Y1e80PHTrUue+++7y2Q/926NAhYNsmTJjgtGrVyvOc64ht/vHHH17r3X777U5sbKwZO1yrrMMyevRozzpcm+PHj/f63N133+0MHDjQ/P/cc8+ZfdFe229jxozxOt/2OLnWLQUFBU5qaqozdepUr22fe+65zmmnnVbleLn88sudgw46qNL5t7A/+ghoD99HjF/3eebY16xZ43WdcS1ZTj75ZGfYsGHmf3tsHAOfc1+PQb+zXWRnZ5t28ahEL5HoR8YTvxm+4/fiN351ul3/ifPENwucaCXQsTUG9NiiE+23ptt32RH83a3foDwlMhTnidzX0fM0TkT68c8X1d8k5c39DY5mIrKr+4WbVokkpoUcI33kkUcayw3WTixKDz30kLGG4ULphvWwpmJtxa07ktZoXDBxtcYl013IHbdWXFw9h3bTTWYhjhtrlXVH5Tng9szzs88+2zyef/75Ie3f1uFm35wLd/IjLIvW6ow7K1ZrLMd77713pe0Qx4rV0W3J5zULx4crqrV8kwRr4cKFxiLtpqCgwFjcYO3atXLLLbeY4+FzuCpjtbQuvxYshxZchylob/eD2zp9jUv4oYcealxjrQWYY7WWO9xusTgGW9/itvRjncXiizXS8swzz5hxQjvxGMDCjltxuNR0O3wGF2X3uKou7nOMWzFwjknWR18yLtwWaPqKvqS/cAfHuop1d968ecZCjNu3+33AyuzejwW3diy7rP/GG28Yd+zLL7/cY8llvOCV4R7zbJ9wAMAazHbx0rDjHautP9zWe8Yn7SO8wA39QLI+CDZe+B7hs7QfD4SjjjrKrOMPxg9u4+68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VIvE+DhJio+TwpJSySkslWYpKqSVyEOSMBt9olEo0QUuzyyN2W1dUeo6TvrdX8uFtKIoilL/qPpRqk2Gx727WM+ioiiKotQiAyvqSf+9Kluy8/R3V1EUpb5RIa1UG5vsZGthiVoLFUVRFKUWIbFnjzZppjrl9CVqlVYURalvVEgr1SYtKd64ahaVlJlFURRFUZTat0qre7eiKEr9o0JaqTbUkqamNOQUavZuRVEURamTetIaJ60oilLvqJBWIpK9e6uWwVIURVGUWmVA93KL9Py1W2X91kI924qiKPWICmklMgnHCkukrCK7sqIoiqIokadlWqL06ZBp/p++WOOkFUVR6hMV0kqNSE6Ik/jYWCOi84tK9WzWoO7wlVdeqeevFlm6dKmJ6f/jjz9C/szIkSPluOOOq3K94cOHh1wjuTrtUKoH53nSpEkRPX0DBgyQ9957T7tEqdd60jBV3bsVRVHqFRXSSo1vVNNDdO9ev369XHzxxdK1a1dJSkqS9u3by2GHHSY///yzV91gtvn2229X+vzOO+9s3nv11Ve91n/88ccDPvcnYGJjYyUhIcE88pxl+vTpVR7rW2+9ZWrhXnrppZXe+/777z3bYrvNmjWTvn37mjq6q1evrnLbSmTxJ4C7dOli+mKXXXaJ6L5mz54tn332mVxxxRUhTYzUVjuqyx133OEZu4xv2nfBBRfIpk2bJNrhPP/f//1fRLd5yy23yA033CBlZZpgUakfBlUkHFOLtKIoSv2iQlqpMeke9+7gdS1PPPFEmTVrlowbN04WLFggH330kREcGzd6u6dxIz927Fiv1xC6a9askbS0tBq39+uvv5bly5fLqlWrzI02y5577lnl515++WUjjBHUBQUFfteZP3++2e7MmTPl+uuvl2+++cYIpr/++qvG7VZqBiKRyZv4+PLxGimeeuopOfnkkyU9Pb1e2xEupaWlHjHIJBXXwX///WeuvS+++MJMetUmjuNISUntJinkPDNpF0kQ5lu3bpXPP/88ottVlFDp372lxMaILNmQK6s25+uJUxRFqSdUSCsRi5POKyqVklL/VprNmzfLjz/+KA8++KAceOCB0q1bN+nfv7/ceOONcswxx3ite8YZZ8gPP/xgxK7llVdeMa9HQny0atXK3GC7FyzUwViyZIlMnTrVWKJ69eol77//vt/12rZta7bHOqeeeqqxtrdp0yZsUfLpp58aq/abb77pZWHFfbhdu3bSvHlzueuuu4wQufbaa6Vly5bSuXPnShMQnMNTTjnFrM86xx57rLHMWxD8hxxyiLRu3drsb8iQIfL77797bQNL5UsvvSTHH3+8pKamSs+ePc0kiCUrK8v0DceZkpJi3vdth5tg61uvATwSBg0aJMnJyWYigvHgFoDnnnuubL/99ubzvXv3lieeeMLLwspkzYcffuixtOIx4OtSXdV2QoFtTJw4UY4++uiQP+PbDtqGF8N3330ne++9tznHHDuTMm44nn79+plz0r17d7nzzju9hOjo0aNl1113NZNNTEZdcsklkpOT43kfTw7GAX230047GYGJcAauK8Ztp06d5OCDDzYTA0w4uWEM9OnTx+x/xx13lGeffdbrfa6PPfbYw7y/1157GZdq3+PkOQKUiSv2/9NPPxkxf//993v6YffddzfnNJTxUlRUJJdddpl06NDB7JfvFbYVyLWbCa2DDjrIbIfvASzv7nNkr7NHHnnEbJN18EApLi72mgg54ogj/HrNKEpdkJmcILt2bm7+1+zdiqIo9YcK6UYAlp284jzPkl+SL4VlhebR/Xq4SyifZ98JcbEmVjpYGSysdSzc1BYWBs80ilDE5RsxBHl5efLOO+/IOeecI/UFN+5HHnmkEZtnnnmmsU6HAjfsF110kRHU69atC+kz48ePl9NOO82IaASEBaGFtXvKlClGNN1+++1y1FFHSYsWLWTGjBlmPywrVqww63Pzz3nMyMgwkxi0gT44/PDDjQABLGsjRowwggarPyIFkcDrbhBtCPI///zTvE+7rOvvrbfeKnPnzjUC6Z9//pHnnnvOCPNAhLI+kwNXX3218WAYOHCgEarWcwHhxaTBhAkTzHZuu+02uemmm+Tdd981719zzTWmrRyn9ThAmPpS1XZCgfORnZ1thGNN4bwg4H799VcjbN3jnf4766yzZNSoUaatL7zwghHG9957r2cdxPiTTz4pc+bMMdcO4wUPCjdcS0xmIYpZj4kff0L/yy+/lMTERM9rjEXOD/ujz5jQob32Gt2yZYvpI4Q8EzF333238cjwB5NRDzzwgNnObrvtZoTva6+9Js8//7xp01VXXWWuMTt5Emy8cLxMDNBnTDzQTsI7/JGbm2uuB64XJpDodzxGEOJuJk+eLIsWLTKPHB/n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zjlH/vvvP6/tUXLs4osvlq5du0pSUpIRYYcddpj8/PPP1ThrSn1z4403yuWXXy4ZGRnm+ffff2/Glb/Sc/DEE094jcv6xn0tZGZmyt577y0ffvihRDvXXHONfPvttxHd5uGHH27qPr/55psSjaiQVuqFHdtnSOv0JMkvLpXflmVpLyiKoihKLZGeFHrCsS5dusjYsWO9Xps+fbop/5WWllZp/bvuuktWr17ttSCCgjF8+HAjkI899liZPHmysQrfeuutRmx89dVXHhE9YMAA+eabb0yN7oULFxqBzyPCZPHixZ7tnXjiiTJr1iwZN26cLFiwQD766CM54IADGm3d6sYMkySffPKJmQQKlWbNmlXL8h1pioqKPP9zDXEt/Prrr7LvvvvKSSedJH/99Ved7b82YNLLX9WCmkJfP/nkkxKNqJBW6gVm6fb3uHdv0F5QFEVRlFoiLYw46TPOOEN++OEHWb58uee1V155xbweH1+5aipWQyzA7sWf4La8++67xvr01ltvyU033WREMZZtRPV3330nBx54oFnv5ptvllWrVhkh/X//93/G2rz//vvLl19+aSxYl156qVkPK+WPP/4oDz74oPks1uv+/fsbq+YxxxwT8jminA7W7h133NFj8eZe5YUXXpCjjjrKZAHu06ePTJs2zYh5hDrHiUhatGiR17aYEOjXr58ph9a9e3e58847paRk2yTG6NGjZddddzWfZ+LikksukZycnEou0Rwr+0TAYLlDmFmw0nKcbIN1aceyZcuqdH++7777pF27duYzTILQrmuvvVZatmwpnTt3rjSJwnns3bu3OX6OhQkPdybk2bNnm/POOMD6uueeexrx6A88B/A8OP7446WwsDDg+Nh9992lU6dOQXrL/7FZ6JsrrrhCrrvuOnNcjEnckt0wbi644AJTHol2H3TQQeZYLPQpY5JzxflnnDIW3TBu7777bjnrrLPMNtiehfPLfnv16mXW4TwzaWTh+jrllFPMerSRfRFuYGF9joH3Ea/XX3+9jBgxotJxXnbZZWZSqnXr1sYLA/7++28zZukT2s/E1YYN2+61J06caMYfZaLY9sEHHyy5ublVjitf1+6ysjIzhhg3eILwHq7avuET77//vhkjjCH6lmvIzdFHH23GjO91FA2okFbq3b1bE44piqIo0QRiNK+oxGspKKn8Wm0s1UkYlpIQJ3GxMaaeNJ5gweDGmxtyrLuAq/U777xjRGYkQEQjzBAOvnDTjXWRG3Ssz4h3xIjXsaSkGOGJyMRqjchhmTRpUkBxVhV87uSTTzaWcUQ5ot1ihRLvIbJPP/10ufDCC43A5Oaf/hg1apRnfT7P+rw2d+5cI8QRxvfee69nndjYWGOBmzNnjjnPTCAg+txw3h955BF5/fXXZcqUKUbc41prRRaCasiQIfLnn38aYYKIqypTMfthcoLtIeZvv/12I7hatGghM2bMkIsuusgc24oVKzyfQYwhrjkWXKhffPFFeeyxxzzv00cIqZkzZ8pvv/0mN9xwg5no8AXhOHjwYNlll12MkEN4+YPzh9iuKZxXxCDH9dBDDxnB9/XXX3veR8Qi7D/77DPTbiY+hg4dasYUMLFxxBFHGFdmvB2YyEDw+YYV0EeIQ9ZhksEX+urll182/xOeAExEcI1xbjleQhDsZIm1KjMxxLXCuef9LVu2mDHu7zjZLuvgucEEAceBqKVPELZr1641xwtMxpx22mnmev7nn3+McD7hhBPMOA53XD3xxBPy6KOPmnPA+hwTk1f//vuv13pMijF2uYaYWGD/7oklrje+dzgXUYejNDqys7P5lTWP1aWsrMzJysoyj7XF+q0FTrfrPzHLui0FTl1RF8dWX+ixRSfab0233yLxfa3UPvn5+c7cuXPNI+QWFnt+v+p6Yd+hMmLECOfYY481/y9Zn+PMXp7lrN1SfgzQrVs357HHHqv0fNKkSU6PHj3M2B43bpzTt29f836zZs2csWPHeq2fmJjopKWleS1TpkzxagfbKS4uNo99+vRxjjnmmKDtXrNmjbku3G1z8/7775v3Z8yYYZ5PnDjRadGihZOcnOwMGjTIufHGG53Zs2cH3ceSJUvMNn788Udn6NChzn777eds3rzZax3ev+WWWzzPp02bZl57+eWXPa+NHz/e7Nd+D7Ct++67z2s7r7/+utOhQ4eAbZkwYYLTqlUrz3POMftZuHCh57VnnnnGadeunfl/48aN5v3vv//eCWcs0F+lpaWe13r37u0MHjzY87ykpMT031tvvVWp3ywPP/yws+eee3qeZ2RkOK+++qrffXIcjJl58+Y5Xbp0ca644ooqvy93331356677vJ6bfLkyeZ4+b6tapzDkCFDTH+62XvvvZ3rr7/e/E+fZ2ZmOjk5OV7tYcy/8MILAdu28847O0899ZTnOefzuOOOq7QebWVMcC5jY2PN8+222870mx0PnHv3vgsLC52UlBTnyy+/NM/pa861u2+6du1a6TjttWm5++67nUMPPdSr35YvX27aMH/+fOe3334z/y9durRSu6saV7fffrvpH0vHjh2de++9t9J5vuSSS7yusZdeesnz/pw5c8xr//zzj9fnOI477rjDCQV/47Kq7+za+t1Vi7RSbxAjvXPHTPP/zwvVvVtRFEVRaov05IqEYwVVx0kfeeSRxiKH5RK37mDWaNyCsTS5F2tRJEEZljYsb1g+IRyLeqjrEiONpZXYaKx6WNmwMNoEVFhareWaxQ3WMdxaic3GGu7Lbrvt5vkfqxngFut+raCgwFgMAfdgrJ/u/Z1//vnGEmgTqeEijNUQ92XODa63xHO7E63hBtujRw/P8w4dOsi6devM/7gC486MBRArKZZB6/aNxdS9b1y5LfQH1nB3293HEhcXZ1x97X6sq/V+++1nPAPY3i233OJllf3f//4n5513nnEPJsmcr3tufn6+sURj9aSdVVnNWR+X+Jri7jff80cfMb45fs6/PVdLlizxtJ/3saLiWo+LM+9jwfW1SAeynmO151r4/PPPZaeddpKXXnrJ9JvdP+EB7n3zHuOI/WdnZxsrMi7W7r7Bbd4X39fYNi7ktNluH08KYNtYzxl79DteGHgYZGVlVTmufGG8r1q1yrh+u+E55ylQX9AP4B5j1tPEPf6jhcrBLopShwzu2UbmrNoiU/5dL8f1DT0eRlEURVHqC1yl595VHo9o42tnz/5Tdt99N3PDWx0QjWyHzwcTG+y7JvWk84pKpcxxTEmsQBALjbjD9RfX2A8++CDgusRm7rDDDn7fw20WN1aOzbq14to5b968oG1t06aNEQK+N+QWXuccufeL+DrkkEPMgost4o72IwwQttYt2hfcd9944w3jxkqcrC9uN2XbL/5es+V7EGDERCMcfaGNxI0yqUCWcdy9ES8//fSTnHvuucatFwHtuw+7H/fEAi6/xNDiuovrPQIX12WEnbuklxVvgbbp7zV7LJwT3NSJjWWCgokGXO5x57XwHu7un376qRGNnHPWIQ4acOFGZJNAjEmXqmKfGU9W2NWEYMdFHyHomNDwvd5s0jLGC+cTt2XGGUKPhGG+Cb0C5QNg4oHPsdBX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tfLYY495xC333px7hA33zRzfhAkTzHPOAYII4cOkwTXXXGOMWFu2bPEILtrpayCqajuhwHnMzs42Arim4C7M+Ucw0v/nnHOO6Weg/8466yx58sknzQQlCZZpK2AsA8Q57zM+Fy9ebIQ0+sEteLm2mNxCFHPM/sYjQv/LL78048PChM5tt91mDISELOBpgr5AtDN+ONf0EWOHdemrq6++2u9xoj8QqkwGMBmL8H3jjTeMRkELMb7PPPNMcx6Y2Ak2Xp588kkzMcDYJ4SEiSP3hJyvAdJeD0wgcT2ed955Roi7wza4thkDPLKvYcOGmQkCjtey9957m2uh3nEaEDTngw8+COszJSUlzltvveUkJiY6c+bM8bx+7733Ot26dXPmz59vnv/xxx9O27ZtnTfeeMPvdlauXOn06NHDOf30053S0lJn4cKFTseOHZ0LL7yw2m0vLCx04uLiKr1+1llnOcccc0xYxzl58mTnxBNPDLrO008/7fTp08fp1auXaU92drZTXcrKypysrCzzWNd8+fdqp9v1nzgHPDy5VrZfn8dW2+ixRSfab0233/ierun3tVL75OfnO3PnzjWPhsIcx7k9s34W9h0iEydOdFq0aOEkJyc7gwYNcm688UZn9uzZnvez84qcjp27ODfceb8zadIkcx/EeB43bpzTt29fs06zZs2csWPHej7DvdVjjz0W8LmbJUuWmPGdkpLipKWleS3B2HfffZ0LLrjA/P/MM884RxxxhPn/0EMPdV555RXz//Dhw50DDzzQ6z6JfXFN+vL555+b92bMmBFwn0OGDHFGjRpl7qU45u+//97r/REjRphj5R7R0rt3b2fw4MFOcXGxOW/ck3Js3JfC66+/btZxf0dwb8j5+PLLL/22g+1nZGQ4H3/8sec12n7LLbd4nufk5JjXOC44+uijnbPPPtsJlWDr2z574IEHTLs5tqKiIqdz587Ogw8+GHCbl156qdd9Kufr2GOP9bvtWbNm1Wg7brjH5l7b93vY9mewY5w5c6b5nB0733zzjWedTz/91Lxmr/mhQ4c69913n9d26N8OHToEbNuECROcVq1aeZ5zHbFNNImb22+/3YmNjTVjh2vVRFyIOKNHj/asw7U5fvx4r8/dfffdzsCBA83/zz33nNkX7bX9NmbMGK/zbY+Ta91SUFDgpKamOlOnTvXa9rnnnuuc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fHMMTIB+9913csEFF5gJIia86mL/tUFiYqKZpIs0JLfec8895eGHH26wCa5jw5kFyszMNF/EP/zwg+n4E044odKiKPXh3q0JxxRFaYrob7MSCNwsseI++OCDcuCBB5oSpv379zdW3GOOOcZr3TPOOMPc2y1fvtzz2iuvvGJej4+Pl8S4cktyUWmZVMd2hmjmRtu9YKEOhfHjx5v7y4ceesgjouGjjz6Sm266SY444ghjFeWG+/LLLw+5troFi1eHDh3kzz//NM/Z1j333GOsYenp6ea8sS+s+8cee6x5bbfddpNff/3Vazs//fSTDB482Ag3JiauuOIKyc3N9bz/+uuvy1577SUZGRnm+E8//XRZt25dJfdYJjpYLzU11Vj65s+f71ln9uzZpi/ZBvfkHLNvO9wEW9+6PWPN7dmzp7GQ4q3gHgOLFi0y5572ctx77723fPPNN14W1mXLlslVV13lsbS6t+3eDueuXbt2frcTCr/99pvZzpFHHhnyZ3zbYT0d6Ass24xLcj9t3brVs05ZWZmxEvM+fbn77rvLxIkTPe8Tznruued63u/du7c88cQTXvsdOXKkHHfccXLvvfdKx44dzToW+pXzybhCKDKWmGiyILCvueYa6dSpk5nE2meffczYcPPiiy+aMca2jj/+eBk9enSl46SvX3rpJdNO+tZ+J5x33nnGe4PxcNBBB5kxEsp4oZ+PPvpoadGihWkX3iqfffZZQNfu9957z6yDJwzX1KOPPup1DLx23333meuV/eE1M2bMGK91+Dzn74MPPpCot0jzhWIvEKVxY1ymivMkvyRfEooTGnS/990uVeLiimXxhixZuH6jdGyeEtLxRcOxVQc9tuhE+y26+y3Tyay37xL9ba6/vnfy8z3Py8gVU1AgZXl5EhMXV+1tsh0+H2w8xaSkhDTeECwsCKUBAwaYG9pAIHAQUViub7nlFuM2/c477xhx/dprr0lsbIykJsRJblFJnbqhkpX+f//7n0fUu0GMcCOP0ONGPFw4DsTuJ598YiYciL21PPbYY+Ym/9ZbbzX/Dx8+3Ihabvqxjl1//fXm2pszZ45ZH4H3f//3f0aA01ZE92WXXWYWLP1QXFwsd999txFVCGiOC8FlxYjl5ptvNqIDsYPVnX1aV3zOQd++feW5554z1v0//vgj6IREVevTz4g9+hirIh4ueCXY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+Wj4zdq5a2t549fVMvnfzXLx0ORGdWzhoMcWnWi/RS9OA/o+qXchnZuba8QlrssnnHBCSJ/p3LmzPPDAA9KzZ09zMnF5PvbYY2XWrFlGVENWVpbsu+++cuCBBxohTUzTv//+Ky1atPC7zZ9//tmIW98fx7lz50qrVq2kXbt21Wr7O++8I//73//k+eefl3322Ucef/xxOeyww2T+/PnStm15io499tjDzHD78tVXX0nHjh1DOidNkZKNGyXrrbdNDLSNf45NTZXEY46T0zZ2k7XpreTg3rtIaiP70W40GM+A5dvEMsvqP0Wy//O/enJzKW3RXeKad5KYKHet5ntrc16xLM/Kk/825cnyTXmydF22bC0Wj0DGlTorryjshFtklcZa7G0lrrAUGytyuTA266QlSUpiw8zarShKw2ZQj1bmcdbyLMkrKpHUxHq/pVQURalT6v1bDyuyryW5Ko4++miv5/fee6+xUE+fPt0jpB988EHp0qWLsUBbiG8K5Gd/6aWXGmH+9ttvexKFIHYPOuggI4Svu+66arV99OjRcv7558vZZ59tniOoP/30U3nllVfkhhtuMK/98ccfYR1/U4es2xvHjZMtH31cKf65+cknSVxmpjR/fIqsWbNVfl64QY7eXScjGkRyrw0LyoWyEc0VjwUBanI37yrSfjeR9rtue8zsJDlbtjTohFy+btYrN+cbobxiU7lgLhfN+UY4k606FDjUlqkVYthah71cqK0Vufw5ccb1PUOrKErjp2vLVOnUPMV8z/26NEv279WmvpukKIrStIR0TSFOacKECcY6PHDgQM/rH330kbH8nnzyyfLDDz9Ip06d5JJLLjGi1hcC0T/77DPZf//95ayzzpLXX39dlixZYkQ0rtr+RHQo4OqF2/eNN97ota+DDz5Ypk2bJpEGF3IW39itxgAWvNyfpxr37dyffvK8nrzbbtJq5AjJIP45fttwHtyztcxbs1WmLFivQrquKdgisnaOSzD/aeKbpbR80sOL2HiRNju6RDPLLuXu2b40MBdh6hyvzyn0WJTdIpn/124tqLLJbTOSzM1o5xYp0jo1Vjq1yiy3GLuEMu7UcbEqjBVFaVgwYTewRyuZ+NsKmbpoowppRVGaHFErpP/66y8jnCk1QWIP4pN32mknz/uLFy82VmqsyTfddJPMnDlTrrjiChO/NGLEiErb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BgmxMXLT2S3k23vPlqFdG6sYpR+v3qWmy3r+m78lK7cg1EkkhNgEKtIW4OKLL5bq1avLpZdeKrYi46DI2xeKrJ0rEh0nctGrIr3/j5G5CSGEkHChSp1iZfrYLkso06BO1UR56tKO8umoM6Rbs+qSnVcok775S/o8t1g+WbNLDIPzTxNCygcVaQtwxx13yNtvvy224sAmR2Tu7b+KJKSJXDNX5OQrQ50qQgghhNhEmQbtG6bJBzf1lJeu7CwNqyXJrvRsuf393+SyKUvljx3poU4eIcTCUJG2AL169ZKqVauKbdj6s8ibfUUObxGp1kTkxq9FTjgr1KkihBBCSGnKdO2TLKdMY/z0BR0byKJ7zpa7zz1RkuJiZMXWw3Lhyz/KfXPWyL5j2aFOIiHEgoRckV6yZIkMGjRIGjRooD508+fPL/WcV199VTp27Cipqalq6dmzp3zxxRdej3/yySfVte+8886QpP3ll1+WZs2aSWJiovTo0UOWLVsmEcvvH4i8PVgk67BIwy4iNy4Sqd061KkihBBCiD/KNAKQWVCZBolxMXJ7n1Zq/PRFJzcQeHfPWblDej+zWF5dvFly8jl+mhBiIUU6IyNDOnXqpJRNf2nUqJFSjleuXCkrVqyQc845RwYPHixr164tcezy5cvltddeU4q3L3766SfJy8srsX3dunWyd+/egNM+e/Zsufvuu2XcuHGyatUqdXy/fv1k3759zmNOPvlkad++fYll165dYhsgrb5/WmTuCJGCXJE2F4oM+8whlAkhhBBiDSyuTIP6aUky+fLOMveW06RT42qSkVsgTy3cIOdOXCJfrt3D8dOEEGso0v3795fHHntMBdTyF1iBBwwYIK1atZITTzxRHn/8calSpYr88ssvLscdP35crrrqKpk6daoK1uWNwsJCufXWW+XKK6+UgoLi3siNGzcqJX3GjBkBp33ixIkyYsQIGT58uLRt21amTJkiycnJMm3aNOcxq1evlj///LPEAku3LcjPFfn4VpHvHnesn3abyGUzROKTQ50yQgghhESgMg1OaVJd5t18mjx3WSepUzVBth3KlJveWSlXvfGrbNhzNNTJI4SEOSFXpMsLFN9Zs2Yp6zBcvM1AOR44cKD07dvX5zWio6Pl888/l99++02uvfZapVhv3rxZKdEXXXSR3H///QGlLTc3V1nNzffHvbC+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B8DcuXNl4sSJ7u8IZ0A8T5kyRc466yzZuXOn3HHHHbJt2zYzZ/TUqVNrBCALNjpWS1EURVEURVEUpelRIR0ARxxxRJ3RsCdPnmxSc6IWaUVRFEVRFEVRlKZHhXQEYVuky8vLGz2tCh0F/D4Sg41p3sITLbfwRMutduzntM4nHd7Y5afvXf/XR9sU4YeWW3gSyeUWjPwF870bY+nbO+LYvHmzdOvWraVPQ1EURaknmzZtkq5du+r1ClP0vasoihJ9710V0hEIUcK3bt0q6enpAfdE0VuDGKeSBToXdaiieQtPtNzCEy232qEvOy8vTzp37iyxsTqRRrii793a0edAeKLlFp5EcrkFI3/BfO+qa3cEQqUIlmWDChqJNyFo3sITLbfwRMvNPzr/cPij7936oc+B8ETLLTyJ5HJrbP6C9d7V7m9FURRFURRFURRFaQAqpBVFURRFURRFURSlAaiQVnySlJQkd955p/mMNDRv4YmWW3ii5aYoeq/ocyA80XILTyK53EItfxpsTFEURVEURVEURVEagFqkFUVRFEVRFEVRFKUBqJBWFEVRFEVRFEVRlAagQlpRFEVRFEVRFEVRGoAKaUVRFEVRFEVRFEVpACqko5inn35aevbsKcnJyTJu3DiZPXu2322XLl0qZ5xxhtk+JiZGHn/8cYmUvL3wwgty6KGHSps2bUw6+uija90+nPL2/vvvy+jRo6V169aSlpYmBx54oLz++usSCXlz8tZbb5l6edppp0kk5G3KlCkmP87E7yKl3Pbt2yfXXHONdOrUyUTd7Nevn3z++ecS7nk74ogjapQb6aSTTmrWc1ZCF33vutD3buig710X+t4NHZ4Op/eupUQlb731lpWYmGi9/PLL1tKlS63LL7/cat26tbV9+3af28+ePdv6y1/+Yr355ptWx44drccee8yKlLydc8451tNPP2398ssv1vLly62LLrrIyszMtDZv3myFe96+++476/3337eWLVtmrVmzxnr88cetuLg4a+rUqVa4581m/fr1VpcuXaxDDz3UOvXUU61QpKF5e+WVV6yMjAwrJyfHnbZt22ZFQt5KSkqs0aNHWyeeeKL1448/mvKbNm2atWDBAivc87Z7926PMluyZIm53yhPRdH3bjX63g0N9L1bjb53Q4O3wuy9q0I6Shk7dqx1zTXXuL9XVFRYnTt3th588ME6f9ujR4+QFtKNyRuUl5db6enp1quvvmpFWt5gxIgR1m233WZFQt4oq4MOOsh68cUXrQsvvDBkhXRD88YLgM6ccKCheXvmmWesXr16WaWlpVao09j7jeckz5L8/PwmPEslXND3rn/0vdsy6Hu3Gn3vhgZjw+y9q67dUUhpaanMmzfPuDDbxMbGmu8zZsyQaM9bYWGhlJWVSdu2bSWS8kbH2TfffCMrV66Uww47TCIhb/fcc49kZ2fLpZdeKqFKoHnLz8+XHj16SLdu3eTUU081wysiIW8ff/yxTJgwwbh2d+jQQYYMGSIPPPCAVFRUSKQ9S1566SU5++yzzbAKJbrR927t6Hu3+dH3bk30vduylIbhe1eFdBSya9cu02ilEeuE79u2bZNoz9tNN90knTt39riRwzlvubm50qpVK0lMTDRjRp588kk55phjJNzz9uOPP5oHJmPtQplA8ta/f395+eWX5aOPPpJ///vfUllZKQcddJBs3rxZwj1v69atk3fffdf8jnHRt99+u/z973+X++67TyLpWcKYriVLlshll13WhGephAv63q0dfe82P/re9UTfuy3PrjB878Y325EUJQx46KGHTOCqadOmhXRwp4aQnp4uCxYsMD2tWKT/9Kc/Sa9evUyAhnAlLy9Pzj//fCOis7KyJNLAYkuyQUQPHDhQnnvuObn33nslnKFTAC+C559/XuLi4mTUqFGyZcsWeeSRR+TOO++USIFOnqFDh8rYsWNb+lQUJaTR9254oO/d8EXfu02HCukoBOFBA3b79u0ey/nesWNHida8Pfroo+aF/vXXX8uwYcMkUvKGW0yfPn3M/0TtXr58uTz44IMhJaQbmre1a9fKhg0b5JRTTvF4UUB8fLxxX+/du7dEyv2WkJAgI0aMkDVr1kgoEUjeiNRNfvidDZ0E9Dbj1oXnRLiXW0FBgemQY+iBojS2PoU6+t6tib53WxZ973qi792mQ127oxAaqliBsE46RQjfnVawaMrbww8/bCx9U6dONdNFRXK58ZuSkhIJ57wNGDBAFi9ebCztdpo0aZJMnDjR/M+44kgqN1ydyC8vw1AikLwdfPDBpkPA7viAVatWmbyFiohubLm988475h4777zzmuFMlXBA37s10fduy6Lv3drR927zkxiO791mCWmmhGR4+aSkJGvKlClmaqQrrrjChJe3p9g5//zzrZtvvtljyhqmhyJ16tTJTIXF/6tXr7bCPW8PPfSQCbX/7rvveoTQz8vLs8I9bw888ID11VdfWWvXrjXbP/roo1Z8fLz1wgsvWOGeN29COWp3Q/N29913W19++aUpt3nz5llnn322lZycbKaCCPe8bdy40UTUnDx5srVy5Urr008/tbKzs6377rvPipQ6ecghh1hnnXVWC5yxEsroe1ffu6GGvnf1vRtqvBVm710V0lHMk08+aXXv3t2ISMLNz5w5073u8MMPN8LEhrle6XfxTmwX7nljOi9febvzzjutcM/b//3f/1l9+vQxIqxNmzbWhAkTzEMqVGlI3sJJSDc0b3/84x/d23bo0MHMuTx//nwrUsrt559/tsaNG2delkyFdf/995vpbyIhbytWrDDPDzqwFKUx9Unfu6GDvnd9o+/dlkPfu6Hx3o3hT/PawBVFURRFURRFURQlfNEx0oqiKIqiKIqiKIrSAFRIK4qiKIqiKIqiKEoDUCGtKIqiKIqiKIqiKA1AhbSiKIqiKIqiKIqiNAAV0oqiKIqiKIqiKIrSAFRIK4qiKIqiKIqiKEoDUCGtKIqiKIqiKIqiKA1AhbSiKIqiKIqiKIqiNAAV0oqiKIqiKIqiKIrSAFRIK4qiKIqiKIqiKEoDUCGtKIqiKIqiKIqiKA1AhbSiKIqiKIqiKIqiNAAV0oqiKIqiKIqiKIrSAFRIK4qiKIqiKIqiKEoDUCGtKIqiKIqiKIqiKA1AhbSiKIqiKIqiKIqiNID4hmyshAeVlZWydetWSU9Pl5iYmJY+HUVRFMUPlmVJXl6edO7cWWJjtW87XNH3rqIoSvS9d1VIRyCI6G7durX0aSiKoij1ZNOmTdK1a1e9XmGKvncVRVGi772rQjoCwRJtV5CMjIyAe2tyc3MlMzMz4qzamrfwRMstPNFyq539+/ebjk/7ua2EJ/rerR19DoQnWm7hSSSXWzDyF8z3rgrpCOLpp582qaKiwnxHRDdGSJP4faTdhJq38ETLLTzRcqsfkfacjTbs8tP3rm/0ORCeaLmFJ5FcbsHMXzCujQ7IiiCuueYaWbZsmcyZM6elT0VRFEVRFEVRFCViUSGtKIqiKIqiKIqiKA1AhXQEgVv3oEGDZMyYMS19KoqiKIqiKIqiKBGLCukIQl27FUVRFEVRFEVRmh4V0oqiKIqiKIqiKIrSAFRIK4qiKIqiKIqiKEoDUCGtKIqiKErYxQTp2bOnJCcny7hx42T27Nm1br9v3z4z/KlTp06SlJQk/fr1k88//7xR+1QURVGiGxXSEYQGG1MURVEinbffflv+9Kc/yZ133inz58+X4cOHy3HHHSc7duzwuX1paakcc8wxsmHDBnn33Xdl5cqV8sILL0iXLl0C3qeiKIqixFjMaK1EFPv375fMzEzJzc01k5U3mJI8seZNkbxOh0h6zwMjbjJ3qjzXhmukeQsftNzCEy23Jn5eRyFYi5md4qmnnjLfKysrpVu3bnLttdfKzTffXGP7Z599Vh555BFZsWKFJCQkBGWfwS5H7pPCskKzH34fie8mzVv4oeUWnkRyuTnz16FtB4mNjW3R9258o36tRCZrvpGYr24TqpaV1U+k/wki/U8U6TpGJDaupc9OURRFiVKwLs+bN09uueUW9zIaUkcffbTMmDHD528+/vhjmTBhgnHt/uijj6R9+/ZyzjnnyE033SRxcXEB7TPYFJUXyfg3xzfLsRQlJLAsQeLFVorEWiIxlut/8+lMjmX2Ns71zmXu/937tercr0ni+3+IdX56b+vvt772UXVc13fLc19+jl/rvqR+5+Pcxsb53b2dj22d+7B/53ebKjyP67r+vtd57sN8Otf52M65j58GxcpNT86WtMQ0aUlUSCs1KEtIl33ZEyRr1xyJ2bVKhPTTEyKp7UT6HucS1r2PFElqpVdPURRFaTZ27dolFRUV0qFDB4/lfMfi7It169bJt99+K+eee64ZF71mzRq5+uqrpayszLhyB7LPkpISk5wWDttSEoijnzoHKjYxliVxFSLxFSJxla7P+ErP7/Z613Krerm9fdW6mvuxau7H8Rvv/cRVbe8hZL3ErHOZh1h1ils/IlhRAmV5nhUSz1sV0koNfrSGysUbr5WshGL5Q5cNcnzCL9J55/cSU7hbZOEbrhSXKHLAYS5R3e8EkczqsWaKoiiKEirgpp2dnS3PP/+8sUCPGjVKtmzZYty9EdKB8OCDD8rdd99dYzmugoE27L488UspKCiQtLS0iHPHJH/hljdTjqWlYuUXiFVQlfKdn/muz/wCKcvPdzWoKypEyspEysvFKi93fZaVi1SUi5RVL3MtZ7sKkfIysfjkO9tVVLZ01kOLKpOkqTbu5LJm+1zuNmeKxLhNtPxfbc6s3qbanOqulo7lnsuq/8fS6l7m+LTPyfdyz+N5Lq/+XY1jOtZ7bu88b2+zsNe+fax3f3jfjjVM0H629fg/pjp5f4+JrbrufDoKq2p9jMdvq07cva1xD6rejitfte1v+06Q0oJSKS8ql4Zid3wGAxXSSg2KSiuke9tU2bhH5N4NA+ReGSAZiWfLpT12yKTkRdJj1zSJ3bteZM3XrvTZn0U6DXcJaoQ1/4fJi1JRFEUJH7KysowY3r59u8dyvnfs2NHnb4jUzdhofmczcOBA2bZtm3HrDmSfuIETnMzZMGNMNePuAh1zl2llSm58BMfvaMa8GUtVcbFU5uVLRX6eVOblSWV+vlTw6V6WL5X5eVLBp3N9fvU2iN/6UtZUmUFExMdLDOP74+MkhhRnf8ZITFysiPlEbIjExLkEpNEisZUSE4Op2PUZIxUSE1MuMeJKYj7LJKayVGJjKoyZ2PU7x6cPIWsLVFOSbCM+1jm/iz8xW71fX8I4kKpixcaLxCaIxCWI8L/55LvX8tgEqbD4mugatsiFsz/JvBFwfpa5l9vbOLf1/p/fxdWxzBRaA87D+en1f2ysWBIreQWFkp6eITHuY9qi1r64VefhsQ6Hccd2ftc5fheGsVeC+QxSIa3U4MShneT4wR1k5qqtMn1dnny2OEc27y2Sx1Z3kMfkGElLPE7O7V0iv221SPrs/VFiN88WyVnoStMfEknvLNL/eNe46p6HiiQk61VWFEVRGk1iYqKxKH/zzTdy2mmnuS3OfJ88ebLP3xx88MHyxhtvmO3swDSrVq0yApv9QUP3yRRaJF8NtMY00uzfR5qQbkjejAguKnIJ3CoRbP9fQwizLt/+9FxmLL/BOXGJTUuT2PR0iWvVynzGpreSuFauz9hWraS0skxSUpKqhGelI7mEq0uwVkiMVeYSsVaJ63+r1PV/Jd+LRfisLJaYiiJ3kvJCs23zESPCuNOEFLESUqQyJkFiE5Ikxi1IvQVqHYK1XtsF73f1vXeoZ/kRGniW8edWbq7ERGLegvCsVCGt+J3+isRYr8ZCJRvUsZVM6N9Fbj5hgCzanGsE9WeLcmTLviJ5fnmCPC+jpFXSOPlNv0Q5u/UKGbD/R4lb951I3laRuS+7UkKaSJ8jXdbqfseJpGVp6SmKoigBgyX4wgsvlNGjR8vYsWPl8ccfN27DF198sVl/wQUXmKmtcL+GP/zhDyYa9/XXX2+icK9evVoeeOABue666+q9TyVwKvILpHD+PClct07Ky8uN5dfbGmyLYbcIDkI7xhAba4SuhwBO8xbD6RJnBHHVMta1qlqGNqvMlZiC7SL7c0TyHGn/GpG8bWLlb5OYynKRwmaoJVgBE1KNyHV9Ov5PdC73sZ7PKoHsuZ3XsvikakujZUleldhUT0NFqYlapCMIIpKS7LDuwQJRPbxba5NuOWGALNi0zwhqhHVObrG8vrhcXpfukp58gZw44Ho5J/tXGZL/k8Stnup62Sz/xJXo5ew2rioK+AkiRASP0J4yRVEUpWk466yzZOfOnXLHHXcY9+wDDzxQpk6d6g4WtnHjRo8pUXC5/vLLL+WGG26QYcOGGZGNqCZqd333qdSfyuJiKfrlFymYNUsKZ86SosWLAxPGiGCHFbimNbgWAVz1f2xaqm/rU3mpSP42L3G8XGR3jsgG+/s2kdL8Ok/T3rsVEysx3qLUiFtbsNYlbp3beS2z90N8Gm03KUrIoPNIRyDBmB+tPuMPKist+WXTPvl00Vb5fHGObN9fHcE0IzlejhvUQc7qtldGFM2QuFVfiGxb5LmDtr1c7t+I6m7jXe45zYDOaxueaLmFJ1putaPzSEcGzfXeDUWs0lIjlt3C+ZdfXIG0HCR07SqxBxwgSW3auASvT+FbtaxKNMek+hHBtVFZKVK0R2T/VpcQxkOuhiU5R6RwV/33mZQpktFJJL2ja+ganxlVn+mdxUrvKLllcZLZNltiApjTNpQJ1zpZHzRv0Vt2+3UeaSUUiI2NkVE92ph0+0mDZN7GvcZSjajekVci78zfIu/MF2mdOlqOG3SynD7OktGls12W6vXfi+xZJzLjKVdKbi3S91iXqO5zlEhy8CzqiqIoiqIEB6uiQoqXLZPCWbOkYOYsKZw3z4xpdhKfnS2p48dJ2rjxkjpunCR06dx4QVaSXy2O+TRi2SGOzbockcp6jifGumvEMCK5k4c49hDLdc1TS3Tv3Fy1FCtKFKKu3UrQRPWYnm1Nuv3kQTJ3wx7j+v354m2yK79E3p67Sd6eK9ImtYccP+ROmXRGhoytXOgS1aumunqQF//XlQgq0fMQl7W63/EibXpoKSmKoihKC2BVVkrJ6tVSOHOmFMyaLYVz5pixzE7i2rQxgjlt/Djzmdizp4dgrnVKsIoykfztDnHsy5K8TaSkAVPWpLV3COROPi3JktpWxa+ihCEVlZaUlIfGNHEqpEOQTZs2yfnnny87duyQ+Ph4uf322+XMM8+UcCEuNkbG9Wpn0p2nDJbZ6xHVW+WLxdtkd0GpvDl7k7w5W6RtWqocP+RqOfn0u2RcwjqJW/2FyMovRHatElk3zZW++KtI9uCqcdUninQe4ZoKQFEURVGUoIPoLV2/QQpnVQnnWbOkYu9ej21wv04dO1bSxo2V1HHjJalvn9rdmrcukMT1s0TKc6uFsS2WC3ZWz1tbF4npVYK4SiT7EsutOojEu6KxK4oSmhSXVcj+4jLZX1QmuUV8lptP1/9l1f8X2/+Xm+WkvJJyOX9MZ7nn9DYtnQ0V0qEI4pmIoQQ7IegJ03KceOKJkpZWh3tRiIrqCb3bmXRXlaj+dHGOTF2yTfYUlMobszaalNUqUU4Y8js56cTrZUz6XpelGlG98WeRHUtd6YdHXS9Ion8jqg843BWAQ1EURVGUgCndvMUlnHHVnjVLynfs8FjPeOXUUaNcFuex4yR50EAzl3Gd45XxOPvpCYnZNFNqfVvjiWZEsdPV2odYTkrXUlaUEOlwKyitcIncQqfgdYldt0Au9i2QG2tRRkyHAmqRDkGY25IEHTt2lKysLNmzZ09YCmkn8XGxclCfLJPumTRYZq6rslQvwf27VF6f+atJ7dOT5MQhR8hJR5wjo9tbErv2axGCla3+2uX+Nf81V4pPEel1hMtajQt4ukZXVRRFUZS6KNu+QwpnM8Z5phTOmi1lmzd7rI9JTJSUESPcrtopQ4aYZfWivERk0dsiPz/p8jCj0R2XKOVdxkt8ux4SY9yrvcRyapZ6mylKC7hIG9HrIYKrha/TIuwUx7ZArqispyeJHxj9kZGcIBkp8ZKZkuBOLDOfVclzXbxJVmlzzDdXNyqkA+D777+XRx55RObNmyc5OTnywQcfyGmnneaxDfM5sw0W5eHDh8uTTz5p5qZsKByDeaGZviOSQFQf0jfLpHtOHSI/r90tny3aKl8u3S4780rk1Rm/mtQhI0lOGDJETh5zjIw8LU1iN/7kslSvnCqSu9ElsEnQZbRI/+Nd1ursQTr2SVEURVHQtnv3GsFcMGumiaxdun6910s5XlKGDq0KEDZOUg48UGKTkxt27YpzRea+LDLzWdfUUnbE6zGXiIy9UgoqU3Q+YkVpIsorKk2g3237i2VbbpFs3JErpbLTYRn27SLdWBLiYtyi1ymCXctqCmT3dikJkp4Ub2IsBRa1u1hCARXSAVBQUGDE8SWXXCKnn356jfVvv/22/OlPf5Jnn31Wxo0bZ9y0jzvuOFm5cqVkZ2ebbXDbLi+vWYG/+uor6dy5s/kfK/QFF1wgL7zwgkQyCXGxcni/9ibdd1ql/LR2l4n+/eXSbWZKrSk/bzCpY0aynDi0k5w07FYZcdzfJHbnsipR/bnI1vkiW+a60rf3ibTuXh2srMfBOl5KURRFiRoq8vKkcM5ct7t2ycqVnhvExEjyoEEu4Tx+vKSOHCmxgXq9ESBs5r9E5k4RKa0KQsZ45QlXi4y8UCQ5ozqytaIoDSavuEy2G4HsEsqu/4s9/t+ZX2Jus0BITYzzYQn2bSXOTPUUy8kJsRE3NVpD0HmkG3sBY2JqWKQRz2PGjJGnnnrKfK+srDQW5WuvvVZuvvnmeu23pKREjjnmGLn88stN4LG6tiU550fjePv27Qvr+SxLyivkpzVYqnPkf8u2e/Scdc5MlhOGdpKTh3WS4V0zJQaX71Vfiqz6XGTddIkpr+6pspIyRPoc7RLVfY8RK7l1i+etqQiFcmsqNG/hiZZb7fC8bt3a9UwK9HmttDwtPY90ZWGhFM7/xS2ci5cudY1RdpDUt6+kjh/vctcePVriMhs5zeSO5S737UX/rZ5yqv1AkYOvExnyW48ObH0OhCdabk1vRWZoo8uKXCWKEcdVItn+n7HI9SE+Nkay05OkQ0aytEmJlfaZaQ7rcLVrtHMZojgxPryC+Fo6j3TkUlpaatyxb7nlFvey2NhYOfroo2XGjBn1riAXXXSRHHnkkXWKaHjwwQfl7rvvrrGcF3KtU07UcQ75+fnm/5YUZKM6JcmoTj3l5qO6y4z1++SrFbtk2uo9sjW3WF76cb1JnTKS5NiBWXLsgKNk0AmnGhEdv/FHSVj3P0lY/43EFu4SWfq+SVZMnFR0GSMxHcZKQfdxUtFxeEQFLwmVcmsKNG/hiZZb3QJMURpKZWmpFC1YYNy0C2bNkqJFi0TKPOdPZgoq95RUY8dKfLt2jb/QtCk2zjABxEwgMRs8vw6+XqTPMTrWWVFEJL+kvFoce1mPbcHMUMb6DjNOT443npkdM5ONUOb/DpmuT9f/SZKVlmRcpSO5AyTUUNfuILNr1y4zprlDB8/AV3xfsWJFvfbx008/GffwYcOGyYcffmiWvf766zJ06FCf2yPacSX3tkhzAzWmZxxC6Sac1K6NTBp9gJSUVcj01bvk80U58vXy7ZKzv0RenbXFpG5tUuSkYZ3kpKHHyOARZ0iMWGJtme9yAV/1hcTsWCYJm2dK680zReYx4UaMSPZA1/jqrlUpq79IbB3RSEOUUCy3YKF5C0+03Gon0u5TpWmwysuleMkSY21mnHPR/F/EcniiQXznTpI2rsriPG6cJHTsGLwTqKxwDaNCQG+eU7UwRmTgySIHXS/SbUzwjqUoIQwBtnbll9QQx55CucQI6frObmNbkT2Ecmb1Mj7TklSyhSJaKiHIIYccYtzB60tSUpJJBDgjIeTtBlpjGmn270OtoZecGC/HDe5oEvPQTVu5Qz5dlCPfLN8hm/YWybPT15nUo12qnGTGVPeTQUeNlpij7xDZu0GslVOlbN1PkrBjgcTs2yiyY5kr/fJa9TyVXUZWCesxLpHdqr2EC6FabsFA8xaeaLnVfm0UxRurokKKV6xwBwgrmjPXuG87iWufJWljx7nHOSd07Rr8+lRWLLLoLZcL9+41VQdOEjnwHJEJk0Wy+mjhKRFDAVZkH67Vrv9LzP+MRa5vtGqCadlWY1scV//vWt6uVZIR00p4okI6yDBVVVxcnGzfvt1jOd+Zyqopueaaa0yyx2pFA8kJcXL8kE4mFZVWyHcrd5gx1d+s2C6/7i6Uf01ba9IBWWlVorqT9B97hRQOONt1jQp2imye6+phJ2G9JljK+umuZNO6h0tU26njUA1gpiiKogTNc6Nk9WopmD5d8hYuksI5c6TSKzgXY5qxNKeOG2uEc2KvXk3XEVO0V2TOSyKznhMpqJpTOpkI3JeLjLtSpJUrcKqihBs78opleU6eLNuaK8u37JXdRRXGgoxIrm8Ua3RvdrrtWp3kw83aJZZbqRU54lEhHWQSExNl1KhR8s0337gDkGFd5vvkyZOlKfG2SEcbKYlxJqo3qbC0XL5d4RLVfK7fVSBPfbfGpF7t0+SI3q3lmKFdZXTPLEkYcKIIyXZfI4DKFltczxXZuVJk36+utOTd6h75TsOqhPVol9WaSOFqXVIURVEaSN4XX8iWP/3ZYxlRtFPHjHFPSZXUv7/ExDZxUKDczSIz/iUyb4pIWYFrWUZXkQnXiIw8P6JiiiiRDYG8aPsty9nvSlv3GwGNW3ZtIH6ZetU5Ftn7/yy1IitVqJAOAII5rVlT5eIkIuvXr5cFCxZI27ZtpXv37ma88oUXXiijR482c0cz/RVTZl188cXSlESjRdofqYnxcvKwzibhqvONEdVb5buVO2XdzgKTXp65xTwwD+7TTg7vly2H928vXVqniHQc4kqjLqqeGxNLtdNyXbSn+n+btOxqYU3qPFIkqVWLXQNFURQlPEgZPVpikpMlYdgwyTzkYCOckwcPlpj4ZmqmbV8q8tM/XZ3FlVVWuezBrgBiQ04XiUtonvNQlACnh1qxLa9KLLuE88pteVJSXnOYJPaOXllpMrBThvTITJADOrSWjpkp7jHJ6cla15X6o0I6AObOnSsTJ050f7cDfSGep0yZImeddZbs3LlT7rjjDtm2bZuZM3rq1Kk1ApAFm2i3SPuDAA2Thnc2iYftt8t3yFdLtsjMDbmyu6BUvly63STom93KNad1//Yypmdb4zpu3Nl6T3QlIKDX3vWewnrbYpf728rPXAliYkWyB1VbrBHZWf00oqmiKIriQUJ2tvSbNVP2FxU1X7BI3mUbfnQFEFvzv+rlPQ8VOfiPIn2OUi8rJeSGQDBrC4LZKZo37vGMH+CcHxnBPLBTugzqlGk++3dMN8YWjWytBAOdRzoCaex8lpXFxbJ7yhSJOexwaTdwQMQFw7EfnunpGbIsJ0+mr9oh01bulPkb93pMQ8Ak8xN6Ya1uL0f0z5aeWWn+d1pWJJKzyDHWep5I7qaa2zGndZdRnoHM0toFPW+RGrVb8xZ+aLk1/fzDSsvT0vNINwiGMC3/xCWgt86v7vgdOMk1BzTvqCCjz4HwpCXLraS8QtbsyHeJ5pwq0bx1v+wv9j2OuVNmsgwyojlDBnV2ffZom2qmg/KF1snwxdJ5pJVQJv+772TX40+IPP6E5I8eLa1PO1XSjztO4tIja2wUD9ehXTNNmnxkX8ktLJOf1u6S6St3yvRVO02URlzBSfLJMhMF3Fir+7WXCb3bmR5NNwkpIt3HuZLN/hzHWOt5rgZLyX6Rdd+5kk3bXtUWawR2hyEayExRFEUJLnT4LnjDFYEbryqITxY58FzXGOh2vfWKKy3C3oJSD7HM/4joch/RseNjY6RPdisjlhHOtnhuk5bYIueuRDfq2h1BBMu1O651a0kdP14KZ82SorlzTdp2732SftSRknnqqZJ28MHNN26rGclMTXAHK6O3a+X2PLeonrNhj4kC/tqMX01KjIuVMQe0kSOqxlbjEl6jtzajk0jGKSIDT3F9ryh3TbNlW6z53LVKZM86V1r83+qGTafhjvHWY0QyuqiLnaIoitJwCvdUReB+VqRwl2tZShuRsVe4onCH0fSOSnhTWWnJr3sKPdyy+czJLfa5fWZKgtst22VlTjciOik+rtnPXVF8oa7dEUiwXMz2rFol1vTpkvvRx1K6dq17XVxWlmSedKIR1UkDB4adC3EgLiEELJuxdrdMq3ID37y3qIZLkcsFvL0c1CdLMuobrIIpRoyorhLWpOJ9Nbdr1bFaVJM6HyiSWNPVXF2VwhMtt+gtN3XtjgxC0rV7768iM/8lMv81kbKqMaSZ3UUOmiwy4jyf75CmQp9x4Uljyo0pSVds83TLJiBYYalvYw9efwM7utyyjZW5c4Z0zkxusjam1snwxQoh124V0hFIsF/oULx0meR+9JHs//RTqdi7171dUt++knnaqZJx8smS0MTB1ELlBuT3TKmApZqEwHZGhoyLjZFR3dsYSzXimheCvzE6PnYusnutwyWcQGZLRCyvF09MnEiHQdXjrPls10esmBgdRxyG6As9PFEhrYSkkCZex89E4H6/+t3RcagrgNig00Timt+jTJ9x4Ul9yo1tduSVOKaYcoln2kk0abxJio+VAR3T3WOZaSMRAKy5o2VrnQxfLBXSSlO7dq9atapJXuhWWZnk//ijsVLnf/utWKWlrhUxMZI2YYIR1elHHy2xqakSqgT74VlcViGz1u+pcgPfIWt3Vs29WQXzDR7WL8uI6kP7tpe2DR3HU1ookrOwWlgTLTxva83tkjPF6jJaStoOkKSuwySm/QBXlPDE0C2LhqAvvfBEy6121CIdGbS4kEaxrJ/uCiC29tvq5b2OcE1h1Wtiiw4P0udAeOJdbmUVlWb6UKdbNuKZGVB8QfvHbWHulC6DO2dIz3ZpEh/XxPOh1wOtk+GLpUJaiYQXesX+/bJ/6lQjqovmzXMvj0lNlYxjjjGiOnXsWImJC62xLE398Ny0p1C+X73TuID/vGaXFDjcmDjcsK6t3W7gw7u2NhbsBpO7xWG1niuydYFIuae7edURRVp3F2nfvyoNcCUEdnJ4RQjWl154ouVWOyqkI4MWE9LE3lj+kUtA0+FqR+Ae/BuRg65zDQMKAfQ5EJ6s2rZfvlmyWdbvK5PlOXkmdkypj7mZacb0at/KFfyrKmI2wjk7PVlCFa2T4YulQlqJtBd66caNkvvxJ5L78cdStnGje3l8x46SecrJrvHUffpItD08eeHM+3WvcQGftnKHGR/kHUjj0L4uazUpOyPAl05Fmcj2pWJtniOlmxZI4v51ErNzpUjhbv+/Se/sENcOoZ3aVkIRfemFJ1putaNCOjJo9vcunkoL/uOKwL3vV9ey+BSRkee7InC36SmhhD4Hwofd+SXy8cKt8t78zbJky/4a61slxRuRPNARMRvX7OSE0DKa1IXWyfDFUiGthKtrd31+V/TLAtd46i++kMr91Q/h5MGDjaDOOOlEiW8XvLmTw+nhuX1/sXts9Q+rdtaYD5EXEpZqRPWoHm0koYHuTzXyVrBLBEG9c0X1J5HC83L87yStfbXV2i2yB4i0ylbXwCZCX+jhiY6RVppdSBfsFpnzgsis50SK9riWpbQVGXelKwJ3Wsu9W2tDn3GhDXM2f7t8hxHPeNPZ004lxMXI2B6ZMrJnlnHLpo3SrY3/uZnDCa2T4YulQlqJ6LFaVVSWlEj+NKJ+fyT5338vUl4lGuPipNWhhxrX71YTJ0psUpJE48OzvKJSFm7OlekrdxhhvWhLrkdgDnp9D+rdTo7on23GWHdtkxq8vBXtcwlqt8CuSrnV3gQ1SG7t5SJe9dlMU3OFSrk1BZq38ESFtNJs7929G0RmPC0y//XqYTyte4gcdK1rHugQj4Whz7jQLJNfNu2T9+Ztlk8X5UhuUZl73fCumXL6yK5y8rBOEldepO/dMCOS77dQE9KRNxmwEjIgkDOOO9ak8j17ZP/nXxhRXbx4seRPm2ZSbHq6ZBx/vBHVKSNHRuQN7w+CbWB1Jv3p2P7GnerHNbvcc1cTvOOrZdtNAuZOtF3Axx7QtnFuVCmtRbqNdSUnJfkuge0hsle4GnFMy7Vplis5SWzlZb2uSjTyYsPL1UtRFCWk2PqLyE//FFn2oYhVNTa103BXALGBp7ZIBG4lvNm8t1A+mL9F3v9li4msbdMxI1l+M7KLnD6ii/TtkO4QLL7iryiKAvoEVpqF+LZtpe1555pUsnatCVCW+8knUp6TI/veecekhG7dJPOUUyTz1EmS2KNH1JVMu1ZJcuqBXUyqrLRk6db9Jgo4onr+xn2yZke+SS/9uF6SE2JlQq92LmHdP1t6tksNTidEUiuRLiNdyUlZscjuNTVdxFlWmi+ydb4rOYlPFsnqK5LlZcFue4BIXPNOc6EoihI24JpE5G0CiBGJ26b3US4BfcBhLTrMRgk/8kvK5fPFOfL+/M0yc92e6j71hDg5YUhHOWNUVxnfq11gwU8VJYrReaQjkFBx7a7zGJWVUjh7jrFS5335pVQWFrrXpYwYYQQ11uq41q0l2l1ecLn6yWGt3ra/2GN997apVdbqLBnYLl46Z7drnrwR5GzPupou4ojsihLfv4lNEGnXu6aLeLs+IvFJEVVu9UXzFp6oa7cS1PduRZkUzvmPpP7ygsRsX+JaGBMnMuQMkYOvc80FHaboM675qai0TLsB8Tx16TYpLnN5NPD6pCMe121EdFqSf5uallt4EsnlFmqu3SqkI4hQCDYWKIjovG++NaK64OefRSqrHvgJCWYctRlPfcghEpPYwDmYI/ABw/mv2p7vtlbPXr9HyiqqB1eTo97ZrWRYl0wZ1jVThnZtbYKENGtEzcoKlzu4t4v4zlUiZZ7zbFefeKxImwNquoibubDTwr7cakPzFp6okFaC1jBb+51YH18rMbmbXN8TUkVGXigy4WrXFIZhjj7jmo9V2/NM0LAPf9ki2/dXd2j3ap8mZ4zsKqeN6CJdWqfUa19abuFJJJcbqJBWmpRwsUj7o2zHDtn/6WeS++GHUrJqlXs5lumMk04yojp5yJCAzyvSHjAFJeUyY+1udzTwjXuqLfs2uGv165BuxPXQri6BPaBjhiTGNywqeKOhg2T/FoewdliyS3L9/651d7Gy+ktJendJ6tBPYpjapU0PVwMzMU3CnUirk040b7Wj019FBo0uxx3LRf41XipT2knM+KskZsxlITsVYSDoc6B5pqx6f/4WWbwl12OKzUnDOxvXbQKINfT9ouUWnkRyuYEKaaVJCXch7aR4xQrJ/fAjyf3sU6nYucu9PPGAA8xUWpmTTpGEzp3DMm9NAXlbt3Wn/LrfksVb9suizftMZPBd+TXdrBPjYmVAp3QZ2iVThndtbQR23+xWJghaC5y4SP72mi7ifC+sLne/03UR2MwIa+dnT5HMrmExHjvS66TmzT8qpCODoLx3V34hue1GSGa7DvocCCNa6hlXPWXVFpm2cod7yqr42BiZOCDbWJ8nDmgvSfGBe6Pp8zs8ieRyAxXSSpMSSULafT7l5VIwY4YR1Xlffy1WSbUwTB03TjInTZL0446VuFatwi5vwcRX3liGe9fCzftk8eZcM80WAntfYfVUFzYEMRvcOdOIa6zWw7q2ll5ZaS07Z2TVXNjWzhVSkrNckoq2SQxu43s31m7Ftt3FM7r6ENlVn606iMS2QMdBlNfJSEFdu5VIfu8GE81bcKesYtzzJws9p6zinY14PmV4Z2mblhi042mdDD8iudxCTUhr1G4lLIiJjzdzT5Mq8vMl78uvzHjqwtmzpXDWLJO23XuvpB99tLFUp00Yb36jEFgkRjpmJkvHzI5y3OCO7ofQ5r1FsghhvXmf+VyyJVfySspl3q97TXLOZ80Y6+HdWrsFNsHNmu3hnJblSj0OkuLcXEnKzKyOWFu0V2TvryL7fvX9ScAz5sY282P/UHPfRBbHPdynRbuHSEobrUKKoihKi09ZxZhnXLfX1TFllaIozYcqDSXswOrc+ozTTSrbskVyP/nUiOrS9etl/6efmhTXPksyTz7FNZ66f/+WPuWQAxHcrW2qSScN62SWMeXW+t0FLqt1lcBesjXXTJsxa/0ek5zjrkwgMyOsW5v/O2UmN3/PJ0KX1PlA3+OxcRf3J7L3bxYpL66eN9sXSZkuQe10F3eL7e4iCfUL2KIoiqIoDYF37xeLc0zgMF9TVhF1e0JvnbJKUVoSFdJKWJPQpYtkXXWltLvyCilevNi4fu///HMznnrPK6+YlNS/v7FSZ5x8kiRkZ7f0KYcsuG/3bt/KJKJ6QnlFpazdWeDhFr58637jTvbD6l0m2WS1SnKIa5fAbp+e1JIZEsno5Erdx/ueuosIuf4s2gU7Xa7j2xa5ki9wDbeFtYfI7iGS0UUkTh+xiqIoSv2nrPp5LVNWbZGpS7ZJUVmFex1TVhE07PghHY2nmKIoLY/eiRE6/VW0gSU0ZdgwkzrcfJPk//CDazz1tGlSsnKl7Hj4Ydnx6KOSdvDBkjHpFKkcOVIEF2GlVgg81r9jukm/G93NLCstrzTTazjdwlduzzMBzb5dscMkG6zUJphZlVs4qU2Qxm41GoKQte3lSr4oLRDZt9E1jZcvsV2a57J4kzbPrvn72HiXmHa6ijO9l/0/QdIicOySojQHvOseeeQR2bZtmwwfPlyefPJJGTt2rM9tp0yZIhdffLHHsqSkJCkuLnZ/z8/Pl5tvvlk+/PBD2b17txxwwAFy3XXXyVVXXdXkeVGU1dvz5F1fU1ZlpRnxfOqBnaVrm1S9UIoSYqiQjiCuueYak+xB9NEKc02nH3WUSRX79sn+qVONqC5asEAKfvjBJKyV+/r3l9RRoyR11EhJGTlSEjp0aOlTDwuYMmtIl0yTzhnnmt+0uKxCluXs93ALX7MzX3Jyi036atl29+8ZX22m4KpyCx/SJUPSk0MwsjbTamUPdCVfUcbN+OwNVcLaS2xj6a4odX0n+YJ5Yu3x2a27S1Jytkh2b5GMzi4renonkfgWtOgrSojy9ttvy5/+9Cd59tlnZdy4cfL444/LcccdJytXrpRsP15HBJRhvY33MBT29+2338q///1v6dmzp3z11Vdy9dVXS+fOnWXSpElNnicl+qhryqrTR3aRA7u1jshgUYoSKaiQViIa5p5uc/bZJpVu2CC5H38iuZ9+ImUbN0nJ8uUm7f33v91u4ghqW1gn9ekjMSEQ0TkcSE6Ik5Hd25jknN966VbXFFyIaxoK63cVmHmuSZ8tynFv26t9mmsKriq3cCKHpyQGPmVHk0PDhjleSV1G+h6fnZdT04ptC+/9W0XKCt1zadNM8jnaOjWryj29i0tYG5Hd2fP/pAy1bCtRxT/+8Q+5/PLL3VZmBPVnn30mL7/8srEq+w262NEVbNEXP//8s1x44YVyxBFHmO9XXHGFPPfcczJ79mwV0kpQp6z6bsUOeXeevymrupjPxkxZpShK86FCWokaEnv2lPbXXStZ106WPatXS/zqNVL0yy9SOH+elKxYaQKXkfZ/8onZPjYjQ1JGHCipI1ziOnnoUIlNTm7pbIQNaUnxMvaAtibZ5BaWmQBmTrfwLfuKZN3OApM++GWL2Y7Ztvp1cM1xPaxba2O97t+x7qnNQgY6YDK7uFKPg2quLyea+Ga3sLb2/iplO9dJQvFOiUGAI7SxaDOHNmnbYv/HSkirEtsI7M5ewrvqf9zIY7VhpoQ/paWlMm/ePLnlllvcy2JjY+Xoo4+WGTNm+P0drts9evSQyspKGTlypDzwwAMyePBg9/qDDjpIPv74Y7nkkkuMFXratGmyatUqeeyxx3zur6SkxCQbPMHsGRFIgWD/NtDfhzLRnDeWLzBTVm2RTxZ5TVnVJdNE3T5lWCdp16raAylUrlM0l1s4E8l5C0b+gnldVEgrUUlcdrZk9O0rmSedaL5X5BdI0cIFUjRvvhT+Ml+KFi6Syv37pWD69yYZEhIkZdAgScEdfOQIY7WOb1stEpW6yUxNkIP7ZJnkdG8jiJnTLXxHXoms2JZn0jvzNrsuf1yMHNAuVfp1zJBeJihamgmMdkBWmhHtYQUu2+16uxJYlhRWzYlorN085Av3iORtdYlqkhHYW0T251T/X5wrUlYgsnuNK/kjJk4kvWNNa7ZbeFct1yjkSoiza9cuEwekg9dQHL6vWLHC52/69+9vrNXDhg0z84Y++uijRjgvXbpUunbtarZhjDVWaL7Hx8cbcf7CCy/IYYcd5nOfDz74oNx99901lrP/xjTuEPwQae680Zi3nNwS+XTpDvl0yQ75dU/1ePz2rRLl5CHt5aTB2dKnfdW454piyc2t3iZUiMZyiwQiOW/ByJ/d8RkMwqz1GR3s27fP9K6Xl5ebdP311xs3NqXpiGuVJq0OPtgksMrLpXjFSimaP08K582XovnzpXznTilauNCkPS9XW7lTRo2U1JEud3C+R+JDqymhF35i/2yTbLbvL/awWvO5t7BMVu0oMMkbgpr1qhLWBGfpnd3KiO1OGckmGnnYQR1Ka+dKHYf6346AaHnbHALbW3hvdQVDsyqqtnFZ/P3CVGLe1mxvl3K20TquhBETJkwwyQYRPXDgQOO6fe+997qF9MyZM41VGsv1999/b2KOYJ3mfewNFnHGVTsbZt26dTOdYYzHDgRbgLOPSHuPREveCkorTLRtrM8z1u32mLLquMEdzLjng3pnSVyYvJeipdw0b9FVdjFBrMsqpEOQ9PR08xJPTU2VgoICGTJkiJx++unSrl27lj61qCEmPl5Shgw2qe0FF5ibtmzzZiOojbD+Zb6UrF5jxl2bsdfvvW9+F9e2raSMHCGpI11W6+RBg0zwM6VhdMhIlmMGkVxWJ67/5r2F8su67ZJTYJmx1mt35ht38N0Fpe6gZj+tqW64QHJCrPTKalUtsh2fqYkR8PgjIJrTsu2LinKRgh21W7b5v7zIFUCNtH2J//3Fp1QFQ+vs36WcacF06i+lCcjKypK4uDjZvr06gCHwvbYx0E4SEhJkxIgRsmaNy4ujqKhIbr31Vvnggw/kpJNOMsuwXi9YsMBYr30JaaJ+k3w10BrTSLN/H2kN+0jOG1NWzdyQK1+u3CBfLt1eY8oqxPMJQzuF7ZRVkVpuoHmLzrKLUSEd2dBIQEQDY7AieZxDuMBNl9itm0nMSQ1EBC9cUOUOPn++mce6Ys8eyf/6G5PM75KSJGXo0Gp38BEjJC5Aa0W0X3+m/kjv07ZGD+S+wlIz1/W6nfmOz3z5dXehFJdVmmjiJF9WbG9xzWfHcLVi+wNBa1uU/cHzpXhfldj2Y9kmFe1xCe4961zJHzGxLjFdZdlOSWon0qarSHoHkbRskVZVif8TNO6AUn8SExNl1KhR8s0338hpp51mljHume+TJ0+u1z5wDV+8eLGceKJraE9ZWZlJuHN7v4vZt6L4gw7ey16da4Yh2TDciKBhp43oolNWKUqEE57dYy0M1mLmryTgSU5OjunFtl/ogcxx6c+9+/DDD5fVq1eb/dALr4ReRPD0I44wCSpLS6V4yVJjrbbdwY3YnjvXJGMrjYmRpL59XVbrUaMkZcRISejSOSJ7epuL1qmJMqoHqTpiOJRVVMqmPYWuQGa78mXtjqrPnQWyx2HF/nHNLo/f4YJ3gO0e7viMGCu2L6h/uGyTOlQHYKpBWVGVsPayZruFd45I/jaRynLX+rwcidkqUuskXkQdJxgawrtV+5pC23yyHtHtM7a5EmXgUk2E7dGjR5v3KtNf4b1lR/G+4IILpEuXLmYcM9xzzz0yfvx46dOnj3m38k799ddf5bLLLjPrccXmfXvjjTdKSkqKce2ePn26vPbaayZCuKL4giFHl0yZK7vyS6RVUpycdmAXOX1UVxmhU1YpStQQoa3CpoUXNuKY6J64XAcyx+WBBx5oxj97w9yVjMlq3bq1LFy40LircYzf/va3NYKrKKFFbGKisTqT2l16qfEiKF2/3u0OTnTwsl83SsmqVSbte+tt87v4Dh2q3cFHjZSkfv2Ma7nSOBLiYs04aZKI572zt6DULaptF/F1VVZs3PL8WbE7m7HYrkBnrk+XJRvrdlR0hiBk2/ZyJX9UVogU7HRbs63cLVKya4Mkle+XGJbn73Al3M2JTF6y35X2rK37+G7R7UtoI8RVdEcDZ511luzcuVPuuOMO01nN+3Tq1Knud+TGjRs9rMt79+41cUbYtk2bNsaizXRXgwYNcm/z1ltvmXHP5557ruzZs8eI6fvvv1+uuuqqFsmjEtp8vWy7XPvmL+Z9MaBjujxxen/p1y07Ot4DiqK4ibHUZ7hR8ND0tkgjnseMGSNPPfWU+Y5rGEFIrr32Wr9zXNbG1VdfLUceeaQR0/WdhoPj0fPemKAnRB+N1CAMLZW38l27pGj+L67I4LiDL1su4tWhEpuaKskHHuiODJ4ybJjEpqXVa/9abo3DtmIbF/FdLnG9rkpsE+zMH6mJLiu2sWA73MRZVp/5sKOy3HAnL8kVyUdcb3eJb6fIJpl1rv9jEN0NOa5TdNtCu4YIr7KAB2jpDka58bym45T9BPq8VloeypF60JhyjMrnQBjy6s8b5O5PlgpTQB/Wr7089fsDpbKkMCLyFsnl5o3mLXrLbn8Qntc2avYKkTkunWCFZow0QccoZFzJ//CHP/jdXqfhCKNpARISRMaNlWQS51JcLKVLl0npwoVStmiRlC5eLJUFBVL4888mGeLiJKFvX0kYPkwSh7lSXPv2UTflQXPlrV2iSLsuyTK2CyVUHeBvX1GZbNhd5Ep7qj837yuWwtIKWbp1v0nedMpIkh5tU+SAdinms2e7FDmgbYpkpye68xG95RYjkpAt0oZU604kpmS/xBTukpjCnRLr/Cywv+9yL0d0xzTA0m0lpktlapZYqVmuz7T2Vd+rP806hHh89ZjuYJRbMKfhUBSlaYOK3f/Zcnn5p/Xm+9ljusm9pw2R+NgYya22ZSiKEkWokA6BOS69YewW81naQcawZA8d6n8KHJ2GI4ynPGDeYOrKkRNd51ZRISVr1pgAZvZY6/KcHClbscKkwrf/a7ZL6NrVWKtxBSeAWWLv3hITGxtaeQsyLZ03iqpHR5HDfVixN9pWbNtNnKjiO/KN+M7ZX2LSzA37alix7bHXWK47pMZIvy6pJjhN+1ZJERPwLHjl1lpEutfngGLZlm5j1bat3LZ1e7tjHaK7RGJK8ySuNE9k3/q6d5+Y7rBqt5eUhExJHHKqxPStGdm5PkTafaookUhRaYVc/9Yv8tUyV7T4vx7fX/5weG9z/6pjp6JELyqkQxCCpzDtRn2xp+EgwBkJIQ86DUf4TXlgpt0aMMAkOfccs6wsJ8dEBTfRwX/5RUpWrjRTcZH2f/yx2SY2M1NSDzzQzGldccABUjF8uMS3bx9y+YvEckuMj5M+2ekmeUNQMzuKuO0izuevewqNFXvJ1v0mVbPatc+4WOncOlm6tEmRLq1TjLjm0/7OmOz4OM8Iw6FMs5abM3Ba+361b2uilec6RLZTeO+o6XZeJbplT57b0m08S7IOkJh+xwR4uqFTlxVFqcnOvBK57LW5snDTPvNsfvR3w2XS8FpmQVAUJWpQIR2Cc1wGyjXXXGOS7fuvRAYJnTpJ5kknmQQV+flStGChFM2fJ4Xzf5GihQulMjdX8qdPNwn2VEUVT+rTRxL79jGfSX36SlLfPhLftm0L5yh6aJuWKG3T2sronp7XvLTcZcX2mLJr+37Zll8q23KLpbSiUjbsLjTJF3GxMWaaLpfIrhbYfCK6EeFJ8XWPzY56jOhu7UpZfWu/HGZM934PoW3l75CS3RslqceEqL+UihKJrNmRLxdPmS2b9hRJ69QEeeGC0TLG63muKEr0okI6BOe4DBRvi7QSmcS1aiWtDjnYJLDKyqR4xYrq6ODLlknFli0eU295/L5tW5ew7usS1i6R3ccIb6V5SIyPlT7ZrUzyDpxRXmkZMb1lX5Fs2Vskm/cWyZZ9heY7/2/dVyRlFZZr/b4imb3B9zHapye5RLYtsG3LdtWytCR9/DdYdCdnupItui1LinNzJUk7LhUl4pi5brdc8dpc2V9cLj3apcorF42pmgVCURTFhbakAoDgMmvWrHF/X79+vXHFbtu2rXTv3r3OOS6bCrVIRycxCQmSMnSoSW0uuMAIsvSkJClbv96Mty5Zvabqc7VxB6/Ys0cKZ882yUlc+6xqy7UR2lUCWyMJN/u0Xd3apprki8pKS3bmlxhRvXlvoZfgdv3PlCy4I5J+2eg5NtumTWqCX9fxbm1SJSMlXt2OFUWJSj74ZbP89d1FptNyZPfWxhLdrlVSS5+WoighhgrpAJg7d65MnOgKDgUIZ0A8T5kypc45LpsKtUgrNrHJyZI8aJBJTioLC6Vk7TqXsF6z2nyWrl4jZVu3SsXOXVJImjHT4zfMc21brW1xnYjAbqU98y0BQcg6ZCSbNKpHzVDXWLeZqsuI7CpxvdlDaBcaCwvbkJZs8R01ulVSvF/Xcf7PalUddVxRFCUS4Pn55Ldr5B//W2W+nzi0o/zjdwdKcoIOlVEUpSY6j3QEovNZ1o7OHViTivwCKV1rW66rPteskfJt2/xex/jOnWpasHv3NvNgNwVabsFjf3GZS2S7hbanZXt3Qd1zNifFxzos2jWt2gh9xnJruTXffJZKy6Hv3doJh+cAMzDc+v5ieWfeZvP9ysN6yU3HD6hzBoVwyFugaN7Ck0guN9B5pBVFCSniWqVJyvDhJjmpyMtzi+rSKvdwhHb5zp1SvjXHpILvf/D4TUKXLtXCum9fY71O6tVLYlNSmjlXij8ykhMko1OCDOyU4XeqF3sMtrdlm/+35xVLSXmla6qvnQU+98Hcqp2IPN46Rdqnxku3rPQqS3qSZGckS3Z6kmSnJ5vx4oqiKC0JnYtX/3u+/Lhml6Cb7z51iJw/vocWiqIotaKu3RGEunYrwSYuPV1SR4wwyUlFbm4N6zUiu2L3binbssUkO4K4ISZGErp183QRR2QfcIDEJum4s1AjJTHOIxiaN0QdJyAaInuzj6BoOfuKTdA0It2SXOzwG9kcUe0W2enVYtteltUqyYwdVxRFCTY8sy5+Zbas2p4vqYlx8vQ5I2XigGy90Iqi1IkK6QhCg40pzUUc81aPGmWSk/K9e11Wa7cF2yWyK/bulbKNG03K//bb6h/Exkpi9+5GWBvLte0qfkBPiUlM1AINUbAid2+XapIvKiot2b7fFXl8M9N8bd8n+0tFduSVmOXb95fIjrxiE8iHubZJK7bl+T0enmntjOB2CWsEdraX8GYZ24TT/NqKorQsS7bkysVT5pjAjHTovXzRGBnSRacPVRSlfqiQVhQlaMS3aSPxY8dK2tixHsvLd+92ieoqkW0n5r8u3bDBJPnf19U/iIuTxB49XFN0VVmwE3v3FqtNzeBaSujB2OjOrVNMGt2jjeTmtqoxVosxTvsKy4ybOMIagb2D5BTbVd+xbu/KLzVpWY7/4+KSifU6G2GdXi22ndZu1rVLSzLnqChK9PLN8u1y7Zu/SGFphfTvkC6vXDzGPLMURVHqiwrpCEJdu5VQJb5dO5PSxo/zEFKMtTaWa9t6XSW0K/PzpXTdOpPyvvyyekexsbK7UydJ6NpVErp1lcSu3cz/id343k3i2rSJyMAakQjl1CYt0aQBHf1vx3RfewpLZQdiO88ltt3CO6/E/Z0pwbCEm2V5JbJEfEcjB0R0+1YI7CRp77Bou13KqwR329TEOgMNKYoSfrw+Y4Pc+fFSqbREDu2bJU+fO9LEjlAURWkIKqQjCHXtVsJNSCVkZ5uUdtBBngJ7+3bH+OvqabqYvssegy2zZtXYJxHDXSK7myTyaQvubt1MEDSmBVPCC4QsVmbSIPEf1RoRvbsAYe1yG7fFttOyzfddVYJ72/5ik0Ry/e6TgGkmKJrDsl39nf8TJUXKJCPD0g6celBaWirr16+X3r17S3y8Nj+U5oeOuQe/WC4v/LDefD9rdDe57zdDNAaDoigBoW8yRVFCT2B37GhSq0MPcS+vrKyUvevWSfL+/VK+ebOUbtokZZu3SNmmTVK6ebMR32ae7FWrTPJFfPv2LpGNBdvLms26mFgdXxuuYGU2rtvpdJb4H+NYXlFppvdyjtW2xXb1shIjynEp35pbbFJtXH1Eb/nr8QOaIFeRQWFhoVx77bXy6quvmu+rVq2SXr16mWVdunSRm2++uaVPUYkCissq5Ia3F8gXS1zTOt54XH9z76oXk6IogaJCOoJQ124lkqGxE5eVJam9e0vMyJE11leWlrqs1bbI3rTZ9f/mzUZs4y5upu3auVOK5s+vuf/ERGO1drqMu63ZXbtKXCvfEayV8IJgZC437uQ655TFel3TjdzTtZxAaVipFf/ccsstsnDhQpk2bZocf/zx7uVHH3203HXXXSqklSaHe/ny1+bKLxv3SWJcrDxy5jA59cAueuUVRWkUKqQjCHXtVqKZ2MRESTrgAJO8wV3cBDYz4npT1afj/61bxSotldL1603yNTNyXOvWXtbsLi6RTerYUWLUVTWiYLqtTpkpJvmDerVrz15ple7f5VwR+fDDD+Xtt9+W8ePHe1j/Bg8eLGvXrtVLpDQpa3fmy8WvzJGNewolMyVBnj9/lIzr1U6vuqIojUaFtKIo0WHNbt1aUkhDh9RYb5WXS9m27VXC2tNlnE+m76rYt8+k4sWLax4gLk4SCILmIwCasWa3bq3ugxEsuJMT4lr6NEKanTt3SnZ2zXl5CwoK9L5QmpRZ63bLFa/Pk9yiMuneNtVE5u7dXr2LFEUJDiqkFUWJerAmJ2Jh7tpF0saPr3E9KvILpGzLZoe4xmW82n0ca7bLwr1ZCmVmjd/HpqVVW7O7OF3GCYLWWefMViKa0aNHy2effWbGRINtlX7xxRdlwoQJLXx2SqTy0YItcuM7i6S0olIO7NZaXrxwtAlaqCiKEixUSCuKotRBXKs0ievfX5L796+xzqqslPKdu3xbs+0gaAUFUrJihUk+H8QdOkhMhw6Szxjtjh0lvkN21WcHSejQwRUILUGnZlHCkwceeEBOOOEEWbZsmZSXl8sTTzxh/v/5559l+vTpLX16SoTBkIt/TVsrj3y50nw/fnBHefzsA9VzRFGUoKNCOoLQYGOK0vwQ6TsB4dshW1JHjaqxvrKkxBUEzZc1myBohYVGbMv27VK2aJGfg8RIfFaWEdbxHRHXVSK7YweJ79DRHJvvsSn+x/MqSktxyCGHmGBjDz74oAwdOlS++uorGTlypMyYMcN8V5RgQZDA2z5YIm/P3WS+X37oAXLLCQN1PnhFUZoEFdIRhAYbU5TQIzYpSZJ69TLJl+WEcdelGzdK7po1kpiXb0R1+fZtZsw2/5ft2CFSVuaOOC5Llvg9Vlxmpl+xbVu5Y9PTdVyq0myUlZXJlVdeKbfffru88MILeuWVJiOvuEyu/s98+WH1LomNEblr0mC5YEJPveKKojQZKqQVRVFaCMaKxrdpY4KRlfboIZmZmTVELq7jFXv2SJkR2NulbNs2Kd++Q8q3batetn27WIWFUpGba5K/ebTNMVNTJSE7W+KZqxvRbQtvXMmzXcI7rm1bnVNbCQoJCQny3nvvGSGtKE3F1n1FcsmUObJiW56kJMTJU+eMkKMGdtALrihKk6JCWlEUJcRdx41bd1YW8wX53MZM75WXVyW0qyzaiGwikW+vFt6IbAR36YYNJvklIUES2rd3iW0s2tk1xbaO21bqy2mnnWamwLrhhhv0oilBZ8mWXCOimde9fXqSvHzhGBnaNVOvtKIoTY4KaUVRlEiY3isjw6Skvn39bldZVCTlO3bUKrbLd+0yruTMrU0q8n9QictqV+1Cbizb9njtKgFOELXk5KbKthIm9O3bV+655x756aefZNSoUZKWluax/rrrrmuxc1PCm+9W7JBr3pgvhaUV0q9DK3nl4rHSpbXGilAUpXlQIa0oihIlEIwssUcPk/xhMR57164qF3LbndwW3lUu5VXjtit27jKptnHbsZkZEpuVJblYtass6/FZ7cxnXDvH/23aSEyczsccibz00kvSunVrmTdvnknenUAqpJVA+PfMX+WOj5ZIpSVycJ928sx5oyQjWWc3UBSl+VAhrSiKorhhmq2ETp1M8ocZt713b02xbUS2beV2jduuzN1vUvnadbVf5dhYMzY7vp1LWCOw4/hEbLfns+o7ort1ax3DHUasX7++pU9BiSAqKy3529QV8tz3rmfKb0d1lQd+M1QS42Nb+tQURYkyVEhHEDr9laIozTZuG8Hbrl3t47bz86UsJ0dy16+XpKJiqdi9S8p37Zby3bukYlfV/7t2GVEuiHP+37VLSla65n/1S1ycxLdt6xbW5lzaY+FGhLd3WLzbuUS3VwA3peWgXoCWiRIIxWUV8uf/LpTPFueY738+pp9MPrKP1idFUVoEFdIRhE5/pShKSI3bTk+X2FatJCk722dEchurvFzK9+yRit0uYY3ANqJ75y4pr1pmf2e6MKmocE8HVlLXicTHu0V/nLFs+3Avr7J4x2ZkaIO8iXjttdfkkUcekdWrV5vv/fr1kxtvvFHOP//8pjqkEmHszi+Ry1+bK/M37pOEuBh5+LfD5Dcjurb0aSmKEsWokFYURVFalJj4eDMlF6kuzBjuPXtc4tq2ahuxvVMqqizctviuzM0VQaRXuZ/XeR4JCVXu5FUiu0ps+3Ivp4NAqR//+Mc/zPRXkydPloMPPtgs+/HHH+Wqq66SXbt2aTRvpU7W7cyXi6fMkV93F0pGcrw8f8FoGd+rnV45RVFaFBXSYU5FRYWUlZV5LCstLZUePXqYz+Li4oDd7+zfR5oLnuYtPNFyC0+apNywbmdmSnzv3rW+xCpLS40F25327pWKvfuknM99e6Viz1738sqCAvObCp6hu3eLkFbWLrpjCZCWkSElp5wsmcce63ce5bgoD6L25JNPyjPPPCMXXHCBe9mkSZNk8ODBctddd6mQVmplzoY9xhK9r7BMurZJkSkXj5E+2el61RRFaXFUSIdx43Tbtm2yDzdHLyorK+XZZ5+V7du3y86dOwM+BvvZTWMyAtG8hSdabuFJi5dbQoJI+/au5IcYxu5WVhq3ccvXZ2WlWBUVrm2qxvna7ExPlz21BNQiYnXHjh0jrlOyvuTk5MhBBx1UYznLWKco/vhk4VYzJrq0olKGd2stL14w2swVrSiKEgqokA5hCgsLZeDAgXLmmWfKo48+6rHOFtHZ2dmSmprq0UDDSl1UVCQ9e/YM2BKCUGc//D7SGn+at/BEyy08icRyQ1gzrhthXVlWJnHJyRKbmFhzO8syz/EdTBcmIp1qiYQeyfTp00f++9//yq233uqx/O233zZzTCuKr3vn2enrTHRuOG5wB3n8rBGSkhjd3h2KooQWKqRDmPvvv1/Gjx9fYzmNUltEtyNqro/1kJycrEI6Shr2Npq38ETLLXLLLSUlxXwipnlmR6Ob99133y1nnXWWfP/99+4x0j/99JN88803RmAripOyikozP/SbszeZ75cecoDceuJAiYuNrPe1oijhj066F6IQ2XTFihVywgkn1Fhnj4nGEq0oiqKENvaz2jueRbRwxhlnyKxZsyQrK0s+/PBDk/h/9uzZ8pvf/Cbg6R7xuqLDeNy4cWZf/pgyZYrp6HAmfufN8uXLzdhtIsynpaXJmDFjZOPGjQGdnxIYecVlcumrc42IRjffdcoguf3kQSqiFUUJSVRIBwC96qeccop07tzZvJBpFDTmJe+Lv/zlL/Lggw/Wuk2kWVMVRVEiEX1Wi4waNUr+/e9/y7x580zi/xEjRgR0PXEJ/9Of/iR33nmnzJ8/X4YPHy7HHXec24XeFxkZGWY8tp1+/fVXj/Vr166VQw45RAYMGCDTpk2TRYsWmUjjvgS30jTk5BbJmc/OkO9X7ZSUhDh57vzRctHBB+jlVhQlZFHX7gAoKCgwL+5LLrlETj/9dL8veQJ+IaIff/xx85JfuXKlce2DAw88UMrLy2v89quvvpI5c+aYOTZJP//8cyCnqCiKoighweeff25c2nkPOvnyyy9NIDpfnld1Tad1+eWXy8UXX2y+86797LPP5OWXX5abb77Zb2cGAd/88X//939y4oknysMPP+xe1rt37wadlxI4S7fmyiVT5sj2/SWS1SpJXr5otAzr2lovqaIoIY0K6QDgpV/bi78+L/kFCxb4/f3MmTPlrbfeknfeeUfy8/ONOyC96XfccYfP7WmIMFbPe4w0y5zLAyUY+whVQiVvGzZskF69ehnrCp0skZS3piCQvOHeecMNN8jevXsb9Ds6wI444ghZtWqVpKfXPeUK9z0xDD744AMJBC23+sG0SR999JH88ssvEiymTp0qt9xyi7GYxsbGBq3c7HW+nsmRXN42vPceeuihGsvJO+saIqSZSo3yoZxsKKujjz5aZsyY4fd3vEuZFpL35ciRI+WBBx4w028By3hH//WvfzVinzp1wAEHmGOcdtppPvdXUlJiks3+/fvdeQq0TO3fRmKdqC1v01fulGvemC8FpRXSN7uVEdFd26SGzXWI1nILdzRv0Vt2VhDrswrpIBPoS94JLt22WzeN/yVLlvgV0XYE761bt9ZYbgvqQKFxEUyw4Ofm5sp7773nN7LrtddeK9dff737O+53uAASqMYJHgHLli2TF198US688EKP7X0FbaOB5C9v3FDs55VXXjH7jI+PN5aIc845x3SI2OMb9+zZI/fdd59pvOMayBi/Y4891pRN9+7d3ftjyjEa+V988YWZgqxNmzYybNgwY/GwA+34Kys+Q63cQonG5M3+bUOvL/fyNddcY+oBv50+fbq5nylnpjXy5u9//7s7CFUg5xdsmMfYho4APF2InsxY0OaiKfJGp8jVV1/d6PvFyTHHHGPceV9//XU577zzgpY3zpHt8vLyPMSXU4BFesyPQYMG1ViOG/WaNWsatK9du3aZ69mhQweP5Xwnrogv+vfvbzqyeQ7zDmIWDKbeWrp0qXTt2tW4hCO0Efs84//2t7+ZThU8zr777js5/PDDa+yTdzRB1Lxh/41p3HEekTgcwF/e3l2wTR78cq1UWCJje2TKo78ZIOmxZeY6hgvRWG6RgOYtestufxDfuyqkg0wgL/nGgrua83gcn/FduNI1NkJsMCPM0qFAha9tn2zjXN+tWzd57bXXjKh1WuzpPCAYjPf2NGwQv04QD76OaS87//zz5f333zdC96mnnpL27dvLwoUL5YknnjBWYiwSiGjGzyUmJsozzzxjLBlYkWl0T5gwwbjgsy0g+ulQoROEZYhpotNipfSXd3t5MMrMub9IJNC82RbGhvyeQENYqp588kn375z78bWvtm3bBnR+DT23uqAOUl8BEXH88cebl8e//vUvU0fp8Bs6dGjQjlfb8ZuiThIQqim46KKLTIwLu4OuPtSVN9ZTb3gWeY+5jbTGqb+yWrdunYkb4gQRzXO8qeEZTbJBRDO15HPPPSf33nuvuzPk1FNPNR00gGcQz3U8ynwJaTrYGMJlw73F+4q84kEWCLYAZx+RVi+881ZZackjX600U1zBGSO7yAO/GSqJ8eEXuieayi2S0LxFb9nFBLEuh98TK8qgUec9h7Q3tpjcvXu3iTqKCyp4RyltSHLSmP342mdt672/n3vuucYCuHnzZvdyLMcsx3LsvT0NGOZqdaZWrVr5zRvu8//5z3/kzTffNEJ67NixxqUP8fztt9/KkUceaX5z2223Gav/119/bcbR4SJI44oxflj8Jk+ebLajF/2HH34wFg1+S8ORcfJYAGmk1XV97P9p2F166aWmsbdp0yazjHJ+/vnn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wz3hhLrMtWbdySefrJcsgpi+cqfkFZdLx4xkGduzbUufjqIoStNjRTHLly+3+vbta4UbRUVF1rJly8ynoSTfsu7MaJnEsevJu+++a7Vp08ZKTk62DjroIOuWW26xFi5c6LFNjx49rMcee8z68MMPrd69e1uVlZXWq6++ao0YMcKsz8zMtF555ZUa2/v77mT9+vWofislJcVKS0vzSLVx8MEHW1dccYX5/+mnn7ZOPPFE8/+xxx5rvfzyy+b/888/35o4caL7N99995051t69e2vs74svvjDrZs2a5feYhx9+uHX99ddbTz31lMnztGnTPNZfeOGFJq8VFRXuZf3797cOPfRQq6yszFy38vJyk7c333zTrH/99dfNNqyzKSkpMdfjyy+/9Hke7D89Pd365JNP3Ms499tuu839PT8/3ywjX3DKKadYF198sVVfatveLrOHHnrInDd5Ky0ttbp27Wr97W9/87vPa665xjrjjDM8rtepp57qc9+//PJLo/bj5IMPPrDi4uI8rrGzPGvL45w5c8zv7Lrz9ddfu7f57LPPzDL7nj/qqKOsBx54wGM/lG+nTp38nts777xjtWvXzv2d+4h9LliwwGO7O++804qNjTV1h3uVbUj/+Mc/3Ntwb77xxhsev7v33nutCRMmmP+feeYZcyzO1y63559/3uN62/nkXrcpLi62UlNTrZ9//tlj35deeqn1+9//vs76cu2111pHHnlkjetvw/EoI+B8eB5Rf53Xmbxv27bN4z7jXrI588wzrbPOOsv8b+eNPPA75/1Y6zPbQW5urjkvPiONv/71r+Y56Quu26RJk6yYmBgrEghGOVKfeGf4q7+hzuQ35ls9bvrUuveTpRGXt9rQvIUnWm7RW3a5QXzvRoVF2h9YRrE0KM03RhoLKhYjrIO4duKa6m3dgZNOOsm4WGJtxa07mNZoXDCx8jHnt9PkAACTO0lEQVReGzdT29UUt1bbck6yoy4zjtt24+aT74Dbs3N5faPP2sF1cDPFiuU8pu26DbizYo3DpZZjecM4VqyOTku+M2AVLqe4otqWb4JgrVmzxlik7ePh3l1cXOy+D7Zv3y6XX365sUTj2p2RkWHKwXb5tcFyaIPrMNvZx8FtnWuMWy8WUFx8bXCBtY/N+de1vY3T0o9FC4uvMzo9EfhxD8bdl30///zzNc65PjR2P3gr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7K/3tb7wwgutU0891e/6Hj16WI899liN7x9++KHVu3dvc/+/+uqr1ogRI6yysjIrMzPTeuWVVzy2T0xMNHXCmb7//nu/xxw4cKApr9qgLlAeznNz8v7775v1s2bNMt/fffddq02bNqZeHHTQQdYtt9xiLVy4sNZjrF+/3uyDcz3yyCOtQw45xNq3b5/HNqy/7bbb3N9nzJhhlr300kvuZW+++aY5rs1RRx1lPfDAAx77ef31161OnTr5PZd33nnHateunfs715jjrFmzxr3s6aeftjp06GD+3717t1k/bdq0WvNI+VFufFIXKK+Kigr3+v79+1uHHnqo+3t5ebkpP/Lkj0ceecQaNWqU+3t6erq5l31BPqgzK1assLp162Zdd911dbZLhw8fbt1zzz0ey7777juTX9q1/vLmrOeHH364KU8nY8aMMc8s+OGHH6yMjAyruLjYYxvq/HPPPef33AYPHmw9+eST7u9cz9NOO63GdpwrdYJrGRsba7737NnTlJtdH7j2zmvBsyolJcU861hOWT/88MMeZdO9e/ca+eTedHLvvfdaxx57rMeyTZs2mXNYuXKleYby/4YNG2qcd1316s477zTlY9O5c2fr/vvvr3Gdr776ao977MUXX3Sv57nNssWLF3vkn3zcddddVn3gWsyZM8d8+sLXM9sfapFWFEVRFKVJwJX0oYcekr59+xoLDtZCrHdYRliOm2ZDwZ0RCwYuorj5YaXAamIHIMPig9XEhnmhccHE5RYLEZYZxsfi8gpbtmwxrrRY0dif08WY7SKNzNSmD49z0kknGYsclkvcuu2pynxx4403mjJ0JtuiyLhm22KMazI0JOJufbc944wzjKWVeoBVDysbFkYsqYCl1T4PkhOsY7hVY+H2NQYUF1gbu446x7myjHH0duR3xnpj/XQej/pLncbKDHhNYP0keBpWScaM43prrwfcbnGltqE+Y0EFxgTjIYAFECsplkH7nuH+sY/LvrlPbSgP53zonLszLwy7wJvDPo497zvu63gGsE9c7p1WWWINMNc8kfc5Fm7vToqKiowlGqsn51mX1ZztGzobgC+c5eZ9/Sgj6jd5dZYTQezs82c9VlSeO0QeZz0WXG+LtD/rOVZ77gUs3jyrCIZmj+Xm+AxNoXzsY7OOesTxcTvHiozXj7Ns8ObxxnsZ+/7uu+888oUnBbBv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E4sXL7ZrHkQrouONFhtLI7RqtxBCiFQAKwDxhWwicazPLTBFnmeyM6rYxcaEqAjg2u1f4Kwighv26NGjrYs3FlzCAHB3j3ccfHnDKvPhXiG2PZCQTiO0arcQQgghHGvdImM5mWnnviqECE+zZs3swne67hOLXLuFEEIIIdKMgsIis/Fft+7acusWQoi4IyEthBBCCJFmsMCYZzxTLVNu3UIIkQgkpIUQQggh0titWwghRPyRkBZCCCGESCPyC4rMpjzn1p1V3tkRQoi0REI6Sd+zyYvr3VatWjXzxhtvlHe2hBBCCJFC1ujqWRkmK0NDPSGESARatTtJ37M5a9Ys+/fGjRvNLrvsYrp3717e2RJCCCFECrA2d6v9X27dQgiRODRNmeS89dZbplu3bqZ69erlnRUhhBBCJDl5+YUmd2uhqWQqmVparXu7cfjhh5sBAwZsvxNWQBYvXmxf5+SMTdFw3nnnRfW++nPOOcfcc889CcuHKB3Uc7y9cjt37mw+/fTTuKQlIV0KPv/8c3PCCSeYJk2ahG3gJ554wlqSq1atajp16mS+/vrrUjXQq6++anr37l2q3wohhBCigrp1Z1cxmVXKNsz7888/zSWXXGJ23nlnk52dbRo1amSOPvpoM3Xq1MAxjHUYC40dO3ab3++9995236hRo4odP2TIkLCfQwmWUNuXX34Z8jcHHnigufjii4t999RTT22TDyeyDj30UPv35MmTA2lXrlzZ1K5d27Rr187897//NcuXL4+6zkR8CCWAeTcybbHPPvvEtZq///57895775krr7wy8F3Xrl3DTowkKh+l5fbbbw/03SpVqtjrlWvg77//NqnO8uXLzbHHHhvXNG+++Wbz+OOPm6KiojKnJSFdCjZt2mT23XdfK5ZD8corr5hrrrnGDBw40MyYMcMey4Nn1apVgWOIfeYCDN7++OOPwDHr168306ZNM8cdd1xpsimEEEKICoTneWbdZrdad9kXGevVq5eZOXOmGT16tJk/f771kkNg/PXXX9sIi5EjRxb7DqG7YsWKuHjUffzxx3ZA7d/at28f1jKMKPYzadIkm8fg7/l8xBFHbLNODWOxb775xtxwww323IzPfvzxxzKXQ5QNRCKTORkZ8Y1MHTp0qDnttNNMjRo1yjUfsVJYWBgQg0xacV389ttvZsSIEebDDz80l156acLvNwUF/yxqmCioZybx4gnCHC33/vvvlzktCelSNsBdd91lTj755JD7H374YXPhhRea//znP2avvfayM6E5OTm2YztwB5k9e/Y2G1Zux5tvvmmOOuooa9WORF5enhXd/s11cG2qA/UB9QH1geTuA0LEiy35RWZLQaG1TNWuVrZB/tq1a80XX3xh7r//fitOmzdvbjp27Ghuuukmc+KJJxY79qyzzjKfffaZWbp0aeA7xjx8Hw+xscMOO9gBtX/LzAz9Wi/yihhGxDvI24033lhMSC9atMgsWbLEHu+nQYMGNv3dd9/d9OnTx1rfd9xxR2uZj4V3333XWrVfeumlYhZW3IcbNmxo6tSpY+68804rRK6//npTr14907Rp020mJKjT008/3R7PMT179rSWegeCn3V06tevb8/XpUsXa8TxQ3947rnn7LiV8ehuu+1mJ0Uca9assW1FOVnglv3B+fAT6XjnRYCHAi60jGGZiKAN/AKwX79+Ztddd7W/Z22gRx99tJiFlckbxsHO0krbBbtUl5RONJDG+PHjradptATnw3kzfPLJJ6ZDhw62jik7/dAP5dl///1tnbRo0cLccccdxYQo+qFNmzZ28omJH4QwayU58KigH9B26AsEJsIZuM7otzvttJM58sgj7STYRx99VOz89IHWrVvb8++5557mySefLLYf4x2GPvZTDjxuQ5UTAcpEVnZ2tpkyZYoV8/fee2+gHTAgUqfR9JetW7eayy+/3DRu3Niel/sMaTmCPX+Z0CLktWbNmrbP9+/fv1gduets8ODBNk3uHZdddpnJz/9ngtFNhBx88MHW67esaLGxOEOH+O677+yDxoGLEJ16+vTpMaVFA9NBSoIOx8UYzLp160o9SON3rmPSidMJlS01UbulJmq3yLiJT1HB4Nmcv3nb7woLGeXx4C1VsuvW55pK+VtNraqZpkpBbuiDMnOiSh/rHBuDWNylI1mFEIZ43iF+br31VrN582brnYd4ev755832hAEyIhsr9BlnnGHmzp1rcnNzreDCwoyAZsDPfgbuBx10UMT0GPjjJnv11Vdbz0KEdkm8/PLL9jf8f/zxxwe+Jy4TsUyIIAKdPCFeDjvsMPPVV1/ZOrvooousMOY4Bv/UK3lkUgOxhCHnmGOOMT/88IPJysoyGzZsMH379rVWVe63Dz30kPVk/OWXX6zYcDBO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Jf5u+PDhVhgjqMNNivz888+2rXl16A033GDPhWD68ccfy5xvUTYQiVyvGRkZca3KoUOHmlNPPdXUqFGjXPMRK4WFhQExyCQV18Fvv/1mr72JEyfaSa9Ewr2yoOCfe0+iaNSokZ20iycI8w0bNpj333/fxBsJ6TRCi40JIYRIZ7Zu3Wq+++4763rtwJrI5+nTp4f93caNG03z5s2t4EMsz5kzJ7Bv0aJFVvD508Q6ict4uDTz8vLM+vXri21uoBlqi7TPf4wj0nFrc/+xRlfPzjAZlSuVmG5ptzVr1pgvvvjCur8inrFKH3DAAdayc8IJJxTL95lnnmk+++wzO6h33yNi+T6U+IilbqBevXp28sO/kW6k3/36669m2rRpVhzvvvvu1rUzVNo77rijTW+33XYzvXv3NlOmTLHfIUpKype/3d59913bb1588UX7vbOw3n333Tb9OnXqmDvuuMPk5+eb6667zpapadOmdgLIny51ePrpp9vjOYb+Sh91+wlj6N69u6lfv749X5cuXew14U+DiaNnn33WnHzyyXaSibK9+eabgf1YLs866yxbTkIZ2B+cD3/Z6AvhjidvnI/Jis6dO9uwCSYisPi7dBBf559/vtl1113t7/fYYw87eeX2413CZA15dJbWSZMmBdJmMieadPx5DtdupDF+/Hjbh/3HRvpNcD7IG5+ZdOnQoYOtY8r+008/FfsdE3H777+/rZMWLVpYSzLt7/Y/9NBDpk2bNnayiXsTfQ7B5/YjkOkH1AuThghMvGnYR/+nXzVp0sR069bNTgx89NFHxergueeeM61bt7bn33PPPa1O8OcPz5L99tvP7qccr7/+eshyYr1n4orzc09A0N9zzz2BdsAraNy4cVH1L+6deIgQRsN5uS+Tlr/vkg/3+YcffjBHHHGETWeHHXawk6jczx3uOnvwwQdtmhxz6aWX2meFS4NnBGIar5lQ99uyUL5TKyKu0DHZeKBzcxVCCCHSidWrV9tBnN+iDHxmEBsKBtsM4rA0r1u3zgwePNgOehHTCBlEtEsjOE23L5h7773XiqJgSD94kMaADisS+WYDjtlSuK2FlOMY9EVixbpcs6Ww0NTJyDYb82IfEFatUtUOVkuCgSsWOwa1COhIViIGzEcddZR14b755pvN5s2bzauvvmo++eQT88ILL9hy+d0qXX2E++xw3/nr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p07m66+/jull8bzsnJe4c44jjzzStGzZsjRZFUIIIUSKu3VjjZZbtxBCJBcS0qVg06ZNZt9997ViORSvvPKKXWZ94MCBZsaMGfbYo48+2qxatSpwDO/a22effbbZ/vjjD/uus3feece+m+/3338306ZNs+JdCCGEEBWDwiLPbNjy72rd1bRatxBCJBty7S4Fxx57rN3C8fDDD5sLL7zQvtQcnnrqKfPuu++aESNGmBtvvNF+N2vWrLC/HzdunGnVqpWpV6+e/dyjRw8bI33YYYeFPD4vL89ujvXr19v/WaCstIuUud+m4yJnKltqonZLTdRuJdePEKFYvyXfFHmeyc6oYqpmyq1bCCGSDQnpOLN161a7ONhNN90U+K5y5crWPXv69OlRpdGsWTNrhSZGOjMz00yePNn0798/7PH33nuvueOOO7b5ft26dWUS0hs3brR/p5s7mcqWmqjdUhO1W2TcxKcQwcitOzlhTPT666+bk046qbyzkraMGjXKDBgwwKxduzbq3xBOyW/YIo3ReRvO888/bw466KCE5EPEDjrn8MMPtx65derUMfFg9erVtq3xDG7atKlJFBLScYaGKywsNA0bNiz2PZ9/+umnqNI48MADzXHHHWfatWtnRXi3bt3MiSeeGPZ4RDuu5M8++6zdOP+CBQtM7dq1Ta1atUpVDifASSMdhTSobKmF2i01UbtFJt3uryI+FBQWmY3/unXz2qvyfIvI//73P+tVt3LlSlO3bl0brsZ3Bx98cEDALFmyxIwZM8b06dOn2O95jefcuXOtR94555wTUvBEEkCEuO26664h84ZxgvFSKG6//Xa7fo3f+++LL76w69ucd9559hWjubm5ZtCgQebVV1+1YXQ1a9a0A2/GUz179ixDrYlYCNX+vXv3tuPgeIOHKP2pc+fOgWcT4+xwEyOJykdp6dq1q/nss8/s39nZ2XYtJbxf8XZN5WdJ586dzfLly+24PF7Ur1/fnHvuuTbMdvjw4SZRSEgnKXfffbfdooGLie3aa6+1GxYOJxLLcmG536fyxRkOlS01UbulJmq3yHUjRDDrcvONZzxTLbN83bp79eplrXijR482LVq0sGL6k08+MX/99dc2nnQjR44sJqQJSVuxYoWpXr16mfPx8ccfW1HuZ4cddoj690wEnHbaaVZwMAkAF198sfnqq6/M0KFDrYCm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ud2SrXxabEwIIYQQQgghhIgBWaSFEEIIIYQQQogYkJAWQgghhBBCCCFiQEJaCCGEEEIIIYSIAQnpCswTTzxhdtllF1O1alXTqVMn8/XXX4c9ds6cOaZXr172+EqVKpkhQ4aYdCnbs88+aw499FBTt25dux155JERjy9vYinbhAkTTIcOHUydOnVM9erVzX777WdeeOEFkw5l8zN27FjbL0866SSTDmUbNWqULY9/43fp0m5r1641l112mWncuLFdLGT33Xc37733nkn1snXt2nWbdmPr0aPHds2zSF703P0HPXeTBz13/0HP3eThiVR67nqiQjJ27FgvKyvLGzFihDdnzhzvwgsv9OrUqeOtXLky5PFff/21d91113ljxozxGjVq5D3yyCNeupTtzDPP9J544glv5syZ3rx587zzzjvPq127trds2TIv1cs2adIkb8KECd7cuXO9BQsWeEOGDPGqVKniTZw40Uv1sjkWLVrk7bTTTt6hhx7q9ezZ00tGYi3byJEjvVq1annLly8PbCtWrPDSoWx5eXlehw4dvOOOO86bMmWKbb/Jkyd7s2bN8lK9bH/99VexNps9e7a93mhPIfTc/X/03E0O9Nz9f/TcTQ7GpthzV0K6gtKxY0fvsssuC3wuLCz0mjRp4t17770l/rZ58+ZJLaTLUjYoKCjwatas6Y0ePdpLt7JBu3btvFtvvdVLh7LRVp07d/aee+45r2/fvkkrpGMtGw8AJnNSgVjLNmzYMK9Fixbe1q1bvWSnrNcb90nuJRs3bkxgLkWqoOduePTcLR/03P1/9NxNDjqm2HNXrt0VkK1bt5rvvvvOujA7KleubD9Pnz7dVPSybd682eTn55t69eqZdCobE2effPKJ+fnnn81hhx1m0qFsd955p2nQoIHp16+fSVZKW7aNGzea5s2bm2bNmpmePXva8Ip0KNtbb71lDjroIOva3bBhQ7PPPvuYe+65xxQWFpp0u5cMHz7c9OnTx4ZViIqNnruR0XN3+6Pn7rbouVu+bE3B566EdAVk9erVdtDKINYPn1esWGEqetluuOEG06RJk2IXciqXbd26daZGjRomKyvLxowMHTrUdO/e3aR62aZMmWJvmMTaJTOlKdsee+xhRowYYd58803z4osvmqKiItO5c2ezbNkyk+pl+/XXX8348ePt74iLvu2228xDDz1k7rrrLpNO9xJiumbPnm0uuOCCBOZSpAp67kZGz93tj567xdFzt/xZnYLP3YztdiYhUoD77rvPLlw1efLkpF7cKRZq1qxpZs2aZWdasUhfc801pkWLFnaBhlRlw4YN5pxzzrEiun79+ibdwGLL5kBEt27d2jz99NNm0KBBJpVhUgAvgmeeecZUqVLFtG/f3vz+++/mwQcfNAMHDjTpApM8bdq0MR07dizvrAiR1Oi5mxrouZu66LmbOCSkKyAIDwawK1euLPY9nxs1amQqatkGDx5sH+gff/yxadu2rUmXsuEW06pVK/s3q3bPmzfP3HvvvUklpGMt28KFC83ixYvNCSecUOxBARkZGdZ9vWXLliZdrrfMzEzTrl07s2DBApNMlKZsrNRNefidg0kCZptx68JzItXbbdOmTXZCjtADIcran5IdPXe3Rc/d8kXP3eLouZs45NpdAWGgihUI66RfhPDZbwWrSGV74IEHrKVv4sSJ9nVR6dxu/CYvL8+kctn23HNP8+OPP1pLu9tOPPFEc/jhh9u/iStOp3bD1Yny8jBMJkpTtoMPPthOCLiJD5g/f74tW7KI6LK227hx4+w1dvbZZ2+HnIpUQM/dbdFzt3zRczcyeu5uf7JS8bm7XZY0E0m5vHx2drY3atQo+2qk/v372+Xl3St2zjnnHO/GG28s9soaXg/F1rhxY/sqLP7+5ZdfvFQv23333WeX2h8/fnyxJfQ3bNjgpXrZ7rnnHu/DDz/0Fi5caI8fPHiwl5GR4T377LNeqpctmGRetTvWst1xxx3eBx98YNvtu+++8/r06eNVrVrVvgoi1cv222+/2RU1L7/8cu/nn3/23nnnHa9BgwbeXXfd5aVLnzzkkEO83r17l0OORTKj566eu8mGnrt67iYbY1PsuSshXYEZOnSot/POO1sRyXLzX375ZWBfly5drDBx8K5X5l2CN45L9bLxOq9QZRs4cKCX6mW75ZZbvFatWlkRVrduXe+ggw6yN6lkJZaypZKQjrVsAwYMCBzbsGFD+87lGTNmeOnSbtOmTfM6depkH5a8Cuvuu++2r79Jh7L99NNP9v7BBJYQZelPeu4mD3ruhkbP3fJDz93keO5W4p/tawMXQgghhBBCCCFSF8VICyGEEEIIIYQQMSAhLYQQQgghhBBCxICEtBBCCCGEEEIIEQMS0kIIIYQQQgghRAxISAshhBBCCCGEEDEgIS2EEEIIIYQQQkhICyGEEEIIIYQQiUEWaSGEEEIIIYQQIgYkpIUQQgghhNhOdO3a1QwYMCDp6nuXXXYxQ4YMiXu65513njnppJPKXCejRo0yderUiXPuhCg9EtJCCCGEEEKIhPDoo49aEZwMol6IeJIR19SEEEIIIYQQ24WtW7earKyspK7t2rVrl3cWhEgIskgLIYQQQghRTrz77rtWbL700ktm6dKl5vTTT7cuzPXq1TM9e/Y0ixcv3sZN+u677zZNmjQxe+yxh91fqVIlM2HCBHP44YebnJwcs++++5rp06cXO8+UKVPMoYceaqpVq2aaNWtmrrzySrNp06aY83vdddeZ448/PvAZyzHnnzhxYuC7Vq1ameeee65Ynh2c89xzzzU1atQwjRs3Ng899NA2bt5LliwxV199tU2Xzc8HH3xgWrdubX9/zDHHmOXLl8dcBiHigYS0EEIIIYQQ5cDLL79szjjjDCuiEdBHH320qVmzpvniiy/M1KlTA2IRy7Pjk08+MT///LP56KOPzDvvvBP4/pZbbrEid9asWWb33Xe36RYUFNh9CxcutOn06tXL/PDDD+aVV16xwvryyy+POc9dunSxvy0sLLSfP/vsM1O/fn0zefJk+/n333+350MQh+L666+3v3nzzTfNhx9+aH83Y8aMwH4mBJo2bWruvPNOK5L9Qnnz5s1m8ODB5oUXXjCff/65+e2332yZhSgP5NothBBCCCHEduaJJ56w4vftt9+24vTFF180RUVF1pLrrLAjR4601mnE5lFHHWW/q169uj3GuXQ7izWCskePHvbvO+64w+y9995mwYIFZs899zT33nuvOeusswILeu22227mscces+cdNmyYqVq1atT5xqq9YcMGM3PmTNO+fXsraBHHb7zxht1PXnfaaSdrlQ5m48aNZvjw4bas3bp1s9+NHj3aCmcHlvgqVarYCYVGjRoV+31+fr556qmnTMuWLe1nJgIQ3EKUBxLSQgghhBBCbEfGjx9vVq1aZa3OBxxwgP3u+++/t8IXAelny5Yt1sLraNOmTci46LZt2wb+xmUaOAdCmrSxRGP5dnieZ4X7okWLrKt0tCDscR1HMJMPtv79+5uBAwdaoYy1GYEeCsqBdb1Tp07FhDMu6tGA27oT0a6clFGI8kBCWgghhBBCiO1Iu3btrDvziBEjTIcOHawFGhGKhdcvdh077rhj4G8s0qHIzMwM/O0s2ghlIO2LLrrIxkUHs/POO8ecf9y2EdLZ2dlWNCOGEeO4fCOkr732WpMI/GV05WRCQIjyQEJaCCGEEEKI7QhWVRbZQpDixvz444+b/fff38YuN2jQwNSqVSuu5yPtuXPnhnS3Lg2IZyYBMjIybOw1UJYxY8aY+fPnh42PptyI4a+++iog4NesWWN/47diY+V2MdhCJCtabEwIIYQQQojtDAuCTZo0ybz22ms2dpkYZhbtYqVuFhvD5RqrL1bkZcuWlelcN9xwg5k2bZqNKWYxsl9++cUu9lWaxcbgsMMOs3HSLHbmRDP/Y03H3ZqyhYLF0/r162djqj/99FMze/Zsu6p35cqVt3mPNLHXLFy2evXqUuVRiEQji7QQQgghhBDlALHBCEpnmUY8InpPOeUUK1RZtItFucpqoSZ+GpdrFjdjsTDcobEO9+7du1Tp1a1b18Zqr1y50sZgO3GNK3m4+GjHgw8+aF3NTzjhBBsPjhv4unXrih3DAmK4opPHvLw8uW+LpKSSp8ACIYQQQgghhBAiauTaLYQQQgghhBBCxICEtBBCCCGEEMJCnDOxzKE23k0thPgHuXYLIYQQQgghLMRmE/scClbcbt68uWpKCAlpIYQQQgghhBAiNuTaLYQQQgghhBBCxICEtBBCCCGEEEIIEQMS0kIIIYQQQgghRAxISAshhBBCCCGEEDEgIS2EEEIIIYQQQsSAhLQQQgghhBBCCBEDEtJCCCGEEEIIIUQMSEgLIYQQQgghhBAmev4POf8NQCxtGtMAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_fidelity_comparison(\n", + " fidelity_scores=fidelity_scores,\n", + " x_column=\"kernel_width\",\n", + " model_filters=[\"LIME\", \"SMILE\"],\n", + " figure_name=\"kernel_width_full_comparison\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qdWm3fbPow9O" + }, + "source": [ + "### 2. Linear + Num Perturbations Sweep" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "10CVLKXlow9P", + "outputId": "78ba1054-2d9e-400a-88d0-3f2d34423059" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# ====================================================================================================\n", + "Number of Perturbations = 150\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 150\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.024213903556376353\n", + "R-squared (R²): 0.6996648381843715\n", + "Mean Absolute Error (MAE): 0.12158675961155307\n", + "Mean Loss (Lm): 0.00019642532407171398\n", + "Mean L1 Loss: 0.12158828047682381\n", + "Mean L2 Loss: 0.024212570882860537\n", + "Weighted L1 Loss: 0.10167536581843213\n", + "Weighted L2 Loss: 0.020248565796574344\n", + "Weighted R-squared (R²ω): 0.6996648381843715\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6175218879441997\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 6.342877388000488}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 150\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.023943448591185586\n", + "R-squared (R²): 0.7108033346639961\n", + "Mean Absolute Error (MAE): 0.12095859599790397\n", + "Mean Loss (Lm): 0.001120025761360277\n", + "Mean L1 Loss: 0.12140064380572747\n", + "Mean L2 Loss: 0.024197386552516544\n", + "Weighted L1 Loss: 0.11540543395397815\n", + "Weighted L2 Loss: 0.022844214189361303\n", + "Weighted R-squared (R²ω): 0.7108033346639961\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6317068108114139\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 5.8537702560424805}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 150\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02419012209677429\n", + "R-squared (R²): 0.7106053712382776\n", + "Mean Absolute Error (MAE): 0.12141585782737498\n", + "Mean Loss (Lm): 3.4893551936754363e-08\n", + "Mean L1 Loss: 0.12141585782737496\n", + "Mean L2 Loss: 0.024190122096774288\n", + "Weighted L1 Loss: 1.2141585782737497e-09\n", + "Weighted L2 Loss: 2.419012209677429e-10\n", + "Weighted R-squared (R²ω): 0.7106053712382776\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6314547035427638\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 5.848457336425781}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 150\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.024151979584414708\n", + "R-squared (R²): 0.71047000815953\n", + "Mean Absolute Error (MAE): 0.1212735587850692\n", + "Mean Loss (Lm): 0.00010528393226150179\n", + "Mean L1 Loss: 0.12139094821169377\n", + "Mean L2 Loss: 0.02419059303537225\n", + "Weighted L1 Loss: 0.12022026272098553\n", + "Weighted L2 Loss: 0.02394221263034042\n", + "Weighted R-squared (R²ω): 0.71047000815953\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.631282318083504\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 6.332751512527466}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of Perturbations = 300\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 300\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.025368450681282264\n", + "R-squared (R²): 0.6896313122277304\n", + "Mean Absolute Error (MAE): 0.12745854326835235\n", + "Mean Loss (Lm): 0.0007784446743518414\n", + "Mean L1 Loss: 0.12832372995395783\n", + "Mean L2 Loss: 0.025615935163200924\n", + "Weighted L1 Loss: 0.10596356908297705\n", + "Weighted L2 Loss: 0.02109024242207549\n", + "Weighted R-squared (R²ω): 0.6896313122277304\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6524335668767468\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 10.681477069854736}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 300\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02538590905849923\n", + "R-squared (R²): 0.7002738409850633\n", + "Mean Absolute Error (MAE): 0.12802057546305556\n", + "Mean Loss (Lm): 0.0010103485722244843\n", + "Mean L1 Loss: 0.12836061512464184\n", + "Mean L2 Loss: 0.025575250376162113\n", + "Weighted L1 Loss: 0.12226568879208566\n", + "Weighted L2 Loss: 0.024244740702219103\n", + "Weighted R-squared (R²ω): 0.7002738409850633\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6643516046986289\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 10.517607927322388}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 300\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02557057349370136\n", + "R-squared (R²): 0.7007466277991916\n", + "Mean Absolute Error (MAE): 0.12846049282953467\n", + "Mean Loss (Lm): 2.3754937017450573e-08\n", + "Mean L1 Loss: 0.12846049282953467\n", + "Mean L2 Loss: 0.02557057349370136\n", + "Weighted L1 Loss: 1.2846049282953467e-09\n", + "Weighted L2 Loss: 2.5570573493701357e-10\n", + "Weighted R-squared (R²ω): 0.7007466277991916\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6648810551009674\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 10.830534219741821}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 300\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.025538414642312764\n", + "R-squared (R²): 0.7004402817554045\n", + "Mean Absolute Error (MAE): 0.1283460751024501\n", + "Mean Loss (Lm): 0.00022272065728590196\n", + "Mean L1 Loss: 0.12842914754733928\n", + "Mean L2 Loss: 0.025570955898614176\n", + "Weighted L1 Loss: 0.12723335366155444\n", + "Weighted L2 Loss: 0.025317004353635823\n", + "Weighted R-squared (R²ω): 0.7004402817554045\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6645379934264642\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 12.524030447006226}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of Perturbations = 450\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 450\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.027975815011992526\n", + "R-squared (R²): 0.6424405718484643\n", + "Mean Absolute Error (MAE): 0.13212828693896406\n", + "Mean Loss (Lm): 0.0006992726274361871\n", + "Mean L1 Loss: 0.1333137230390247\n", + "Mean L2 Loss: 0.02844672937853571\n", + "Weighted L1 Loss: 0.10979246776765114\n", + "Weighted L2 Loss: 0.023246602518935545\n", + "Weighted R-squared (R²ω): 0.6424405718484643\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6150019586569795\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 19.43531560897827}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 450\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.028066644198654494\n", + "R-squared (R²): 0.6524379611060014\n", + "Mean Absolute Error (MAE): 0.13291215430683043\n", + "Mean Loss (Lm): 0.0013712683833468908\n", + "Mean L1 Loss: 0.13346141641779585\n", + "Mean L2 Loss: 0.028410981823013073\n", + "Weighted L1 Loss: 0.12699703973145718\n", + "Weighted L2 Loss: 0.026817567941881004\n", + "Weighted R-squared (R²ω): 0.6524379611060014\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6257665336608984\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 24.059741973876953}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 450\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02840421849289254\n", + "R-squared (R²): 0.6528786059591647\n", + "Mean Absolute Error (MAE): 0.1336267503727863\n", + "Mean Loss (Lm): 5.5227432738114146e-08\n", + "Mean L1 Loss: 0.1336267503727863\n", + "Mean L2 Loss: 0.028404218492892538\n", + "Weighted L1 Loss: 1.336267503727863e-09\n", + "Weighted L2 Loss: 2.8404218492892543e-10\n", + "Weighted R-squared (R²ω): 0.6528786059591647\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6262409929872061\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 19.527328491210938}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 450\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.028367055208419856\n", + "R-squared (R²): 0.6525262529137913\n", + "Mean Absolute Error (MAE): 0.1335202029934078\n", + "Mean Loss (Lm): 0.00024434663462091777\n", + "Mean L1 Loss: 0.1335834774511131\n", + "Mean L2 Loss: 0.028404488158192513\n", + "Weighted L1 Loss: 0.13240311834625254\n", + "Weighted L2 Loss: 0.028129724818352252\n", + "Weighted R-squared (R²ω): 0.6525262529137913\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6258616008592142\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 18.370970010757446}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of Perturbations = 600\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 600\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02955011854302283\n", + "R-squared (R²): 0.6211779431180995\n", + "Mean Absolute Error (MAE): 0.13704456083168648\n", + "Mean Loss (Lm): 0.0007249890066117759\n", + "Mean L1 Loss: 0.13863887610662048\n", + "Mean L2 Loss: 0.030251720522393763\n", + "Weighted L1 Loss: 0.11440454092977594\n", + "Weighted L2 Loss: 0.02466838323110837\n", + "Weighted R-squared (R²ω): 0.6211779431180995\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5997982150401087\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 21.128009796142578}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 600\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029807212438646202\n", + "R-squared (R²): 0.628271428184558\n", + "Mean Absolute Error (MAE): 0.13812463815577314\n", + "Mean Loss (Lm): 0.0016921883173588448\n", + "Mean L1 Loss: 0.138826968274852\n", + "Mean L2 Loss: 0.030214175944543495\n", + "Weighted L1 Loss: 0.131969736734926\n", + "Weighted L2 Loss: 0.028478988476291173\n", + "Weighted R-squared (R²ω): 0.628271428184558\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6072920378880956\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 22.57311224937439}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 600\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.030205697938582306\n", + "R-squared (R²): 0.6290363565476782\n", + "Mean Absolute Error (MAE): 0.13909877981788396\n", + "Mean Loss (Lm): 2.095281270708682e-08\n", + "Mean L1 Loss: 0.13909877981788396\n", + "Mean L2 Loss: 0.030205697938582302\n", + "Weighted L1 Loss: 1.3909877981788396e-09\n", + "Weighted L2 Loss: 3.02056979385823e-10\n", + "Weighted R-squared (R²ω): 0.6290363565476782\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.608100136811392\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 22.252095937728882}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 600\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.03015640904171731\n", + "R-squared (R²): 0.6285736998330276\n", + "Mean Absolute Error (MAE): 0.13894980362738035\n", + "Mean Loss (Lm): 0.0003051474214240679\n", + "Mean L1 Loss: 0.1390351714649696\n", + "Mean L2 Loss: 0.03020609095534842\n", + "Weighted L1 Loss: 0.13776374278421372\n", + "Weighted L2 Loss: 0.029898997120281177\n", + "Weighted R-squared (R²ω): 0.6285736998330276\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6076113689594065\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 23.36139154434204}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of Perturbations = 750\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 750\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.0277298605147563\n", + "R-squared (R²): 0.6198775983255111\n", + "Mean Absolute Error (MAE): 0.1310580509779222\n", + "Mean Loss (Lm): 0.0007032721157184119\n", + "Mean L1 Loss: 0.13281529362644495\n", + "Mean L2 Loss: 0.02846404845154072\n", + "Weighted L1 Loss: 0.10963853959144186\n", + "Weighted L2 Loss: 0.023197822546776815\n", + "Weighted R-squared (R²ω): 0.6198775983255111\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6029125817933164\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 26.990455865859985}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 750\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02806053430423206\n", + "R-squared (R²): 0.6279512996806187\n", + "Mean Absolute Error (MAE): 0.13247491290178573\n", + "Mean Loss (Lm): 0.0014697176692414216\n", + "Mean L1 Loss: 0.1331142118872683\n", + "Mean L2 Loss: 0.028426648781887717\n", + "Weighted L1 Loss: 0.12665907339813387\n", + "Weighted L2 Loss: 0.026828636427679985\n", + "Weighted R-squared (R²ω): 0.6279512996806187\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6113466157054162\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 27.884588956832886}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 750\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02841993170942461\n", + "R-squared (R²): 0.6287291500180368\n", + "Mean Absolute Error (MAE): 0.13341236376727925\n", + "Mean Loss (Lm): 2.728991910228018e-08\n", + "Mean L1 Loss: 0.1334123637672792\n", + "Mean L2 Loss: 0.028419931709424598\n", + "Weighted L1 Loss: 1.334123637672792e-09\n", + "Weighted L2 Loss: 2.84199317094246e-10\n", + "Weighted R-squared (R²ω): 0.6287291500180368\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.612159181818005\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 29.417195320129395}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 750\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.028373829343474113\n", + "R-squared (R²): 0.6282449730866271\n", + "Mean Absolute Error (MAE): 0.1332810194760303\n", + "Mean Loss (Lm): 0.00023841135499513832\n", + "Mean L1 Loss: 0.13335400313139073\n", + "Mean L2 Loss: 0.028420236563292997\n", + "Weighted L1 Loss: 0.13215040214176244\n", + "Weighted L2 Loss: 0.028133135331517973\n", + "Weighted R-squared (R²ω): 0.6282449730866271\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6116533958743148\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 31.711852550506592}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of Perturbations = 900\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 900\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.028768081435508235\n", + "R-squared (R²): 0.6095765461133829\n", + "Mean Absolute Error (MAE): 0.1336829370491153\n", + "Mean Loss (Lm): 0.0008003907012678058\n", + "Mean L1 Loss: 0.1354903337136929\n", + "Mean L2 Loss: 0.029543576673786338\n", + "Weighted L1 Loss: 0.11160391095534307\n", + "Weighted L2 Loss: 0.024016755389694416\n", + "Weighted R-squared (R²ω): 0.6095765461133829\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5951664532363681\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 33.025728940963745}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 900\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02906775363007703\n", + "R-squared (R²): 0.6173159590707686\n", + "Mean Absolute Error (MAE): 0.13495402039238125\n", + "Mean Loss (Lm): 0.0015948383168895575\n", + "Mean L1 Loss: 0.13572867238115968\n", + "Mean L2 Loss: 0.02950636072049117\n", + "Weighted L1 Loss: 0.12894792132046265\n", + "Weighted L2 Loss: 0.02777409963153176\n", + "Weighted R-squared (R²ω): 0.6173159590707686\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6031915192671522\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 35.44986033439636}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 900\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029498145146405273\n", + "R-squared (R²): 0.6178968403068925\n", + "Mean Absolute Error (MAE): 0.1360800293443675\n", + "Mean Loss (Lm): 7.600756934955655e-08\n", + "Mean L1 Loss: 0.1360800293443675\n", + "Mean L2 Loss: 0.029498145146405277\n", + "Weighted L1 Loss: 1.360800293443675e-09\n", + "Weighted L2 Loss: 2.9498145146405276e-10\n", + "Weighted R-squared (R²ω): 0.6178968403068925\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6037938401798113\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 38.780616998672485}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 900\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029438129143735572\n", + "R-squared (R²): 0.6174663021086841\n", + "Mean Absolute Error (MAE): 0.13590598439071522\n", + "Mean Loss (Lm): 0.0002872493593941705\n", + "Mean L1 Loss: 0.1360063536427821\n", + "Mean L2 Loss: 0.029498487995025875\n", + "Weighted L1 Loss: 0.13473231214251744\n", + "Weighted L2 Loss: 0.02918390402355591\n", + "Weighted R-squared (R²ω): 0.6174663021086841\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6033474112983934\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 37.32163596153259}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of Perturbations = 1050\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1050\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.028971762712805164\n", + "R-squared (R²): 0.6124589068705466\n", + "Mean Absolute Error (MAE): 0.13455575913753476\n", + "Mean Loss (Lm): 0.0009028200427017019\n", + "Mean L1 Loss: 0.13651999034059803\n", + "Mean L2 Loss: 0.02979925605941979\n", + "Weighted L1 Loss: 0.11236738775217373\n", + "Weighted L2 Loss: 0.024194291760386046\n", + "Weighted R-squared (R²ω): 0.6124589068705466\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6002648901742413\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 36.59212398529053}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1050\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02934257265617343\n", + "R-squared (R²): 0.6201683220884251\n", + "Mean Absolute Error (MAE): 0.1359914372815911\n", + "Mean Loss (Lm): 0.0016648154559761874\n", + "Mean L1 Loss: 0.13673050133080988\n", + "Mean L2 Loss: 0.029758547779780733\n", + "Weighted L1 Loss: 0.12992409720473186\n", + "Weighted L2 Loss: 0.028033436062033946\n", + "Weighted R-squared (R²ω): 0.6201683220884251\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6082168828621022\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 37.79828190803528}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1050\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029749355520426294\n", + "R-squared (R²): 0.6212289061593689\n", + "Mean Absolute Error (MAE): 0.13701540143943053\n", + "Mean Loss (Lm): 5.8051781492984844e-08\n", + "Mean L1 Loss: 0.13701540143943053\n", + "Mean L2 Loss: 0.029749355520426297\n", + "Weighted L1 Loss: 1.3701540143943055e-09\n", + "Weighted L2 Loss: 2.9749355520426294e-10\n", + "Weighted R-squared (R²ω): 0.6212289061593689\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6093108383099095\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 38.91474652290344}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1050\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029694615934115674\n", + "R-squared (R²): 0.6207559810831846\n", + "Mean Absolute Error (MAE): 0.13686894333520092\n", + "Mean Loss (Lm): 0.0002956927677377763\n", + "Mean L1 Loss: 0.13696209490339334\n", + "Mean L2 Loss: 0.0297497180872584\n", + "Weighted L1 Loss: 0.13568422901876304\n", + "Weighted L2 Loss: 0.029437584384364363\n", + "Weighted R-squared (R²ω): 0.6207559810831846\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6088230326020263\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 45.37184929847717}\n", + "\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "max_iters = 50\n", + "num_clusters = 32\n", + "kernel_width = 0.5\n", + "perturbation_range = range(150, 1050 + 1, 150)\n", + "num_top_features = round(0.2 * num_clusters)\n", + "fidelity_scores: List[float] = []\n", + "running_times: List[float] = []\n", + "all_top_features: List = []\n", + "\n", + "for num_perturbations in perturbation_range:\n", + "\n", + " print(\"#\", \"=\" * 100)\n", + " print(f\"Number of Perturbations = {num_perturbations}\")\n", + " print(\"#\", \"=\" * 100, end=\"\\n\\n\\n\")\n", + "\n", + " common_kwargs = dict(\n", + " sample_input=sample_input,\n", + " sample_label=sample_label,\n", + " model=model,\n", + " num_clusters=num_clusters,\n", + " num_top_features=num_top_features,\n", + " num_perturbations=num_perturbations,\n", + " device=device,\n", + " kernel_width=kernel_width,\n", + " surrogate_model_type=\"linear\",\n", + " max_iters=max_iters,\n", + " random_seed=random_seed,\n", + " clustering_mode=\"kmeans\",\n", + " cluster_labels=None,\n", + " )\n", + "\n", + " # LIME\n", + " run_experiment(\n", + " lime_explain,\n", + " {**common_kwargs, \"epsilon\": 0, \"distance_mode\": \"mask\"},\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - Wasserstein\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 0,\n", + " \"distance_metric\": \"wasserstein\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - Anderson (special epsilon)\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 1e-8,\n", + " \"distance_metric\": \"anderson\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - KS\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 0,\n", + " \"distance_metric\": \"ks\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "yl4aygVaow9P", + "outputId": "85be8f2c-2bb2-417f-9fb1-1fe645a03e29" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namenum_clustersmser2maemean_lossmean_l1mean_l2weighted_l1weighted_l2weighted_r2weighted_adj_r2kernel_widthperturbation
0LIME-COS-kmeans-mask (LinearRegression)320.0242140.6996650.1215871.964253e-040.1215880.0242131.016754e-012.024857e-020.6996650.6175220.5150
1SMILE-WD-kmeans-spatial (LinearRegression)320.0239430.7108030.1209591.120026e-030.1214010.0241971.154054e-012.284421e-020.7108030.6317070.5150
2SMILE-AD-kmeans-spatial (LinearRegression)320.0241900.7106050.1214163.489355e-080.1214160.0241901.214159e-092.419012e-100.7106050.6314550.5150
3SMILE-KS-kmeans-spatial (LinearRegression)320.0241520.7104700.1212741.052839e-040.1213910.0241911.202203e-012.394221e-020.7104700.6312820.5150
4LIME-COS-kmeans-mask (LinearRegression)320.0253680.6896310.1274597.784447e-040.1283240.0256161.059636e-012.109024e-020.6896310.6524340.5300
5SMILE-WD-kmeans-spatial (LinearRegression)320.0253860.7002740.1280211.010349e-030.1283610.0255751.222657e-012.424474e-020.7002740.6643520.5300
6SMILE-AD-kmeans-spatial (LinearRegression)320.0255710.7007470.1284602.375494e-080.1284600.0255711.284605e-092.557057e-100.7007470.6648810.5300
7SMILE-KS-kmeans-spatial (LinearRegression)320.0255380.7004400.1283462.227207e-040.1284290.0255711.272334e-012.531700e-020.7004400.6645380.5300
8LIME-COS-kmeans-mask (LinearRegression)320.0279760.6424410.1321286.992726e-040.1333140.0284471.097925e-012.324660e-020.6424410.6150020.5450
9SMILE-WD-kmeans-spatial (LinearRegression)320.0280670.6524380.1329121.371268e-030.1334610.0284111.269970e-012.681757e-020.6524380.6257670.5450
10SMILE-AD-kmeans-spatial (LinearRegression)320.0284040.6528790.1336275.522743e-080.1336270.0284041.336268e-092.840422e-100.6528790.6262410.5450
11SMILE-KS-kmeans-spatial (LinearRegression)320.0283670.6525260.1335202.443466e-040.1335830.0284041.324031e-012.812972e-020.6525260.6258620.5450
12LIME-COS-kmeans-mask (LinearRegression)320.0295500.6211780.1370457.249890e-040.1386390.0302521.144045e-012.466838e-020.6211780.5997980.5600
13SMILE-WD-kmeans-spatial (LinearRegression)320.0298070.6282710.1381251.692188e-030.1388270.0302141.319697e-012.847899e-020.6282710.6072920.5600
14SMILE-AD-kmeans-spatial (LinearRegression)320.0302060.6290360.1390992.095281e-080.1390990.0302061.390988e-093.020570e-100.6290360.6081000.5600
15SMILE-KS-kmeans-spatial (LinearRegression)320.0301560.6285740.1389503.051474e-040.1390350.0302061.377637e-012.989900e-020.6285740.6076110.5600
16LIME-COS-kmeans-mask (LinearRegression)320.0277300.6198780.1310587.032721e-040.1328150.0284641.096385e-012.319782e-020.6198780.6029130.5750
17SMILE-WD-kmeans-spatial (LinearRegression)320.0280610.6279510.1324751.469718e-030.1331140.0284271.266591e-012.682864e-020.6279510.6113470.5750
18SMILE-AD-kmeans-spatial (LinearRegression)320.0284200.6287290.1334122.728992e-080.1334120.0284201.334124e-092.841993e-100.6287290.6121590.5750
19SMILE-KS-kmeans-spatial (LinearRegression)320.0283740.6282450.1332812.384114e-040.1333540.0284201.321504e-012.813314e-020.6282450.6116530.5750
20LIME-COS-kmeans-mask (LinearRegression)320.0287680.6095770.1336838.003907e-040.1354900.0295441.116039e-012.401676e-020.6095770.5951660.5900
21SMILE-WD-kmeans-spatial (LinearRegression)320.0290680.6173160.1349541.594838e-030.1357290.0295061.289479e-012.777410e-020.6173160.6031920.5900
22SMILE-AD-kmeans-spatial (LinearRegression)320.0294980.6178970.1360807.600757e-080.1360800.0294981.360800e-092.949815e-100.6178970.6037940.5900
23SMILE-KS-kmeans-spatial (LinearRegression)320.0294380.6174660.1359062.872494e-040.1360060.0294981.347323e-012.918390e-020.6174660.6033470.5900
24LIME-COS-kmeans-mask (LinearRegression)320.0289720.6124590.1345569.028200e-040.1365200.0297991.123674e-012.419429e-020.6124590.6002650.51050
25SMILE-WD-kmeans-spatial (LinearRegression)320.0293430.6201680.1359911.664815e-030.1367310.0297591.299241e-012.803344e-020.6201680.6082170.51050
26SMILE-AD-kmeans-spatial (LinearRegression)320.0297490.6212290.1370155.805178e-080.1370150.0297491.370154e-092.974936e-100.6212290.6093110.51050
27SMILE-KS-kmeans-spatial (LinearRegression)320.0296950.6207560.1368692.956928e-040.1369620.0297501.356842e-012.943758e-020.6207560.6088230.51050
\n", + "
" + ], + "text/plain": [ + " name num_clusters mse \\\n", + "0 LIME-COS-kmeans-mask (LinearRegression) 32 0.024214 \n", + "1 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.023943 \n", + "2 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.024190 \n", + "3 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.024152 \n", + "4 LIME-COS-kmeans-mask (LinearRegression) 32 0.025368 \n", + "5 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.025386 \n", + "6 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.025571 \n", + "7 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.025538 \n", + "8 LIME-COS-kmeans-mask (LinearRegression) 32 0.027976 \n", + "9 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.028067 \n", + "10 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.028404 \n", + "11 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.028367 \n", + "12 LIME-COS-kmeans-mask (LinearRegression) 32 0.029550 \n", + "13 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.029807 \n", + "14 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.030206 \n", + "15 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.030156 \n", + "16 LIME-COS-kmeans-mask (LinearRegression) 32 0.027730 \n", + "17 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.028061 \n", + "18 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.028420 \n", + "19 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.028374 \n", + "20 LIME-COS-kmeans-mask (LinearRegression) 32 0.028768 \n", + "21 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.029068 \n", + "22 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.029498 \n", + "23 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.029438 \n", + "24 LIME-COS-kmeans-mask (LinearRegression) 32 0.028972 \n", + "25 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.029343 \n", + "26 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.029749 \n", + "27 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.029695 \n", + "\n", + " r2 mae mean_loss mean_l1 mean_l2 weighted_l1 \\\n", + "0 0.699665 0.121587 1.964253e-04 0.121588 0.024213 1.016754e-01 \n", + "1 0.710803 0.120959 1.120026e-03 0.121401 0.024197 1.154054e-01 \n", + "2 0.710605 0.121416 3.489355e-08 0.121416 0.024190 1.214159e-09 \n", + "3 0.710470 0.121274 1.052839e-04 0.121391 0.024191 1.202203e-01 \n", + "4 0.689631 0.127459 7.784447e-04 0.128324 0.025616 1.059636e-01 \n", + "5 0.700274 0.128021 1.010349e-03 0.128361 0.025575 1.222657e-01 \n", + "6 0.700747 0.128460 2.375494e-08 0.128460 0.025571 1.284605e-09 \n", + "7 0.700440 0.128346 2.227207e-04 0.128429 0.025571 1.272334e-01 \n", + "8 0.642441 0.132128 6.992726e-04 0.133314 0.028447 1.097925e-01 \n", + "9 0.652438 0.132912 1.371268e-03 0.133461 0.028411 1.269970e-01 \n", + "10 0.652879 0.133627 5.522743e-08 0.133627 0.028404 1.336268e-09 \n", + "11 0.652526 0.133520 2.443466e-04 0.133583 0.028404 1.324031e-01 \n", + "12 0.621178 0.137045 7.249890e-04 0.138639 0.030252 1.144045e-01 \n", + "13 0.628271 0.138125 1.692188e-03 0.138827 0.030214 1.319697e-01 \n", + "14 0.629036 0.139099 2.095281e-08 0.139099 0.030206 1.390988e-09 \n", + "15 0.628574 0.138950 3.051474e-04 0.139035 0.030206 1.377637e-01 \n", + "16 0.619878 0.131058 7.032721e-04 0.132815 0.028464 1.096385e-01 \n", + "17 0.627951 0.132475 1.469718e-03 0.133114 0.028427 1.266591e-01 \n", + "18 0.628729 0.133412 2.728992e-08 0.133412 0.028420 1.334124e-09 \n", + "19 0.628245 0.133281 2.384114e-04 0.133354 0.028420 1.321504e-01 \n", + "20 0.609577 0.133683 8.003907e-04 0.135490 0.029544 1.116039e-01 \n", + "21 0.617316 0.134954 1.594838e-03 0.135729 0.029506 1.289479e-01 \n", + "22 0.617897 0.136080 7.600757e-08 0.136080 0.029498 1.360800e-09 \n", + "23 0.617466 0.135906 2.872494e-04 0.136006 0.029498 1.347323e-01 \n", + "24 0.612459 0.134556 9.028200e-04 0.136520 0.029799 1.123674e-01 \n", + "25 0.620168 0.135991 1.664815e-03 0.136731 0.029759 1.299241e-01 \n", + "26 0.621229 0.137015 5.805178e-08 0.137015 0.029749 1.370154e-09 \n", + "27 0.620756 0.136869 2.956928e-04 0.136962 0.029750 1.356842e-01 \n", + "\n", + " weighted_l2 weighted_r2 weighted_adj_r2 kernel_width perturbation \n", + "0 2.024857e-02 0.699665 0.617522 0.5 150 \n", + "1 2.284421e-02 0.710803 0.631707 0.5 150 \n", + "2 2.419012e-10 0.710605 0.631455 0.5 150 \n", + "3 2.394221e-02 0.710470 0.631282 0.5 150 \n", + "4 2.109024e-02 0.689631 0.652434 0.5 300 \n", + "5 2.424474e-02 0.700274 0.664352 0.5 300 \n", + "6 2.557057e-10 0.700747 0.664881 0.5 300 \n", + "7 2.531700e-02 0.700440 0.664538 0.5 300 \n", + "8 2.324660e-02 0.642441 0.615002 0.5 450 \n", + "9 2.681757e-02 0.652438 0.625767 0.5 450 \n", + "10 2.840422e-10 0.652879 0.626241 0.5 450 \n", + "11 2.812972e-02 0.652526 0.625862 0.5 450 \n", + "12 2.466838e-02 0.621178 0.599798 0.5 600 \n", + "13 2.847899e-02 0.628271 0.607292 0.5 600 \n", + "14 3.020570e-10 0.629036 0.608100 0.5 600 \n", + "15 2.989900e-02 0.628574 0.607611 0.5 600 \n", + "16 2.319782e-02 0.619878 0.602913 0.5 750 \n", + "17 2.682864e-02 0.627951 0.611347 0.5 750 \n", + "18 2.841993e-10 0.628729 0.612159 0.5 750 \n", + "19 2.813314e-02 0.628245 0.611653 0.5 750 \n", + "20 2.401676e-02 0.609577 0.595166 0.5 900 \n", + "21 2.777410e-02 0.617316 0.603192 0.5 900 \n", + "22 2.949815e-10 0.617897 0.603794 0.5 900 \n", + "23 2.918390e-02 0.617466 0.603347 0.5 900 \n", + "24 2.419429e-02 0.612459 0.600265 0.5 1050 \n", + "25 2.803344e-02 0.620168 0.608217 0.5 1050 \n", + "26 2.974936e-10 0.621229 0.609311 0.5 1050 \n", + "27 2.943758e-02 0.620756 0.608823 0.5 1050 " + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fidelity_scores_df = pd.DataFrame(fidelity_scores)\n", + "fidelity_scores_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 927 + }, + "id": "JbXTqAYfow9P", + "outputId": "b34d8086-b3a8-4f3d-ee2f-f15eaeae34c2" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nametime
0LIME-COS-kmeans-mask (LinearRegression)6.342877
1SMILE-WD-kmeans-spatial (LinearRegression)5.853770
2SMILE-AD-kmeans-spatial (LinearRegression)5.848457
3SMILE-KS-kmeans-spatial (LinearRegression)6.332752
4LIME-COS-kmeans-mask (LinearRegression)10.681477
5SMILE-WD-kmeans-spatial (LinearRegression)10.517608
6SMILE-AD-kmeans-spatial (LinearRegression)10.830534
7SMILE-KS-kmeans-spatial (LinearRegression)12.524030
8LIME-COS-kmeans-mask (LinearRegression)19.435316
9SMILE-WD-kmeans-spatial (LinearRegression)24.059742
10SMILE-AD-kmeans-spatial (LinearRegression)19.527328
11SMILE-KS-kmeans-spatial (LinearRegression)18.370970
12LIME-COS-kmeans-mask (LinearRegression)21.128010
13SMILE-WD-kmeans-spatial (LinearRegression)22.573112
14SMILE-AD-kmeans-spatial (LinearRegression)22.252096
15SMILE-KS-kmeans-spatial (LinearRegression)23.361392
16LIME-COS-kmeans-mask (LinearRegression)26.990456
17SMILE-WD-kmeans-spatial (LinearRegression)27.884589
18SMILE-AD-kmeans-spatial (LinearRegression)29.417195
19SMILE-KS-kmeans-spatial (LinearRegression)31.711853
20LIME-COS-kmeans-mask (LinearRegression)33.025729
21SMILE-WD-kmeans-spatial (LinearRegression)35.449860
22SMILE-AD-kmeans-spatial (LinearRegression)38.780617
23SMILE-KS-kmeans-spatial (LinearRegression)37.321636
24LIME-COS-kmeans-mask (LinearRegression)36.592124
25SMILE-WD-kmeans-spatial (LinearRegression)37.798282
26SMILE-AD-kmeans-spatial (LinearRegression)38.914747
27SMILE-KS-kmeans-spatial (LinearRegression)45.371849
\n", + "
" + ], + "text/plain": [ + " name time\n", + "0 LIME-COS-kmeans-mask (LinearRegression) 6.342877\n", + "1 SMILE-WD-kmeans-spatial (LinearRegression) 5.853770\n", + "2 SMILE-AD-kmeans-spatial (LinearRegression) 5.848457\n", + "3 SMILE-KS-kmeans-spatial (LinearRegression) 6.332752\n", + "4 LIME-COS-kmeans-mask (LinearRegression) 10.681477\n", + "5 SMILE-WD-kmeans-spatial (LinearRegression) 10.517608\n", + "6 SMILE-AD-kmeans-spatial (LinearRegression) 10.830534\n", + "7 SMILE-KS-kmeans-spatial (LinearRegression) 12.524030\n", + "8 LIME-COS-kmeans-mask (LinearRegression) 19.435316\n", + "9 SMILE-WD-kmeans-spatial (LinearRegression) 24.059742\n", + "10 SMILE-AD-kmeans-spatial (LinearRegression) 19.527328\n", + "11 SMILE-KS-kmeans-spatial (LinearRegression) 18.370970\n", + "12 LIME-COS-kmeans-mask (LinearRegression) 21.128010\n", + "13 SMILE-WD-kmeans-spatial (LinearRegression) 22.573112\n", + "14 SMILE-AD-kmeans-spatial (LinearRegression) 22.252096\n", + "15 SMILE-KS-kmeans-spatial (LinearRegression) 23.361392\n", + "16 LIME-COS-kmeans-mask (LinearRegression) 26.990456\n", + "17 SMILE-WD-kmeans-spatial (LinearRegression) 27.884589\n", + "18 SMILE-AD-kmeans-spatial (LinearRegression) 29.417195\n", + "19 SMILE-KS-kmeans-spatial (LinearRegression) 31.711853\n", + "20 LIME-COS-kmeans-mask (LinearRegression) 33.025729\n", + "21 SMILE-WD-kmeans-spatial (LinearRegression) 35.449860\n", + "22 SMILE-AD-kmeans-spatial (LinearRegression) 38.780617\n", + "23 SMILE-KS-kmeans-spatial (LinearRegression) 37.321636\n", + "24 LIME-COS-kmeans-mask (LinearRegression) 36.592124\n", + "25 SMILE-WD-kmeans-spatial (LinearRegression) 37.798282\n", + "26 SMILE-AD-kmeans-spatial (LinearRegression) 38.914747\n", + "27 SMILE-KS-kmeans-spatial (LinearRegression) 45.371849" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "running_times_df = pd.DataFrame(running_times)\n", + "running_times_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 864 + }, + "id": "_PqlRwYNow9Q", + "outputId": "f2052fba-8b7c-43a6-8668-cc7d1886345d" + }, + "outputs": [ + { + "data": { + "image/png": "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n/ndt29fIwAjIGB1u+uuu8y79ttvv5m+NsLgGWecYYR18oqAPmjQILPgQQAZGRny0EMPGQEMYZv7QjizgosFRQICCoLR9ddfb65phwOgBGndurW89NJLkpCQIIsXL85XeVFQep4zgiHPGGslnjIIofZ6BF1GqcF9oXx56623jOCFIgAh6cMPPzRCKYY9LLjBsOfhWghhXM99nlBAgYQ7dlGetRueFe8Ez3379u1mZicUU+QNELjffPNNo8BEGUHdYNplO3wBobx+/foyadIko0zCu4L7pz7iWWJBeYLg6haovfUPRc2KFSvMdSzUGYJf461sBU7qFkOEScezoV489thjRnmG8oJ66mX16tVG8OUZ8ewBbxEUBV988YVROLzyyivStWtX44KPJTm/+jJw4EBjMac8ELrJI9+XYAoSyhXhHxd/yoi6xTV4lyzUc96Ju+++2yg2sPZTxm4lBYoenj2KjoOOo0Q9vXv3dqpWrepccMEFIR+TkpKCatv8jSTZ2dnO9u3bzd+DzaLVs5z5LZs5y5o2c366qrmTsnefUxKJZBlFC1pGWj6lpQ6VlG+zEl5SU1OdZcuWmb+QtWePaYsisXDtUJk8ebJTrVo1JykpyenYsaMzbNgwZ8mSJX5pGjVq5IwePdqZOnWq06RJE/NOTZgwwWndurXZX6VKFWfcuHF50gdbd7NmzRrzfiQnJzsVKlTwW/Lj/vvvd8qWLWuOfe2118y2DSmpztZVvzp7ly51tq/61fnuu++c+vXrO2XKlHHatm3r3Hzzzc7s2bMLLBPOOWnSJOfSSy91jj76aOfvv/8295yRkWH+cj+XX365L/1///1njrnvvvt82+bMmWO2sQ8GDBjgXHvttX7X+f777534+HhfnfEyf/58c45du3aZ9RkzZpj1b775xpfms88+M9vsOSpVquSMHz/eCZX80vNMOfdPP/3k27Z8+XKzbe7cuX5p3eVzzDHHOM8991y+z59zU2/yI5TzuBkyZIjTpUuXPNvJ75QpU4Leozsf1Kvy5cs7O3fu9G274447nPbt25vf+/btM/t//PFHv/PwfC+55JKgeRs4cKDp09sy6tevn1O7dm0nLS3NL91pp51m6iv1n7/knXfzhx9+MPvXrVvnJCQkOP/884/fcV27djXvLvTp08c566yz/PZfdtllee6T82/atMmvPlauXNnc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Rx55xM/NE8veb7/9ZsoZZQMCohvKHXdNpvaZNWuWUQTYYEcIZAhfTPnzyy+/GCEGga+giM1cB0UG50Pwv//++41CAeFq7ty5cv3115t7+/vvv33HIEyTf+4FN27GbbrHfvKMELqYH3jhwoUydOhQoxTxgpDJ3MC4wCL0IaQFgvJDMD9QKFcER+7rf//7nxEOGbtqQeBFCfD555+bfKMkYbwsdQpQgpx55pnGY+Lnn382Sg+EQ+/QBp4RgiRpUEh44VkxJRNYKzRKC94xypb7ZRiEVaxgrQaUSLwrKEHYj8Xczl3svU/OSxo8QlAmoEDAckn9RAjG84P7BRQ3l1xyiXmfGXuLkH3++eebeuytVz/++KNcffXVQesV9eHJJ580ZUB67glF16pVq/zSoUCj7vIOoYTg+m4lFO8b3x3KQlGU4iMr25Gp386SY5blDNsqd0E30/4oiqKUCBwlJklJSUGaNX+9pKamOsuWLTN/YU9ahtPork8jsnDtUPhv/e/O5eec45zdpbOTuWd7wDSNGjVyRo8enWd96tSpTpMmTZzs7GxnwoQJTuvWrc3+KlWqOOPGjfNLX7ZsWadChQp+y6xZs4Lm6+ijj3bOOeecfPO+YcMG8yzceXPzwQcfmP0//fSTWZ88ebJTrVo1JykpyenYsaMzbNgwZ8mSJfleY80aE1HG+f77752uXbs6J598srNjxw6/NOy/9957fetz5swx21577TXftnfeecdc18K5Ro4c6XeeiRMnOnXr1g2al0mTJjk1atTwrVPGXGf16tW+bS+88IJTu3Zt83vr1q1m/8yZM4Oek2eXkZFh/kK/fv3M88rKyvKladq0qXPKKaf41jMzM83z456C8fjjjztt2rTxrVeqVMkZP358wLTcB3VmxYoVToMGDZybbrrJl59gtGrVynnwwQf9ts2YMcPc7/btgesx93buuef61k877TTzPN2ccMIJzl133WV+88wrV67s7N692y8/1PlXXnklaN6OOeYY57nnnvOtU569e/fOk468Uicoy/j4eLPeuHFj89xsfaDs3ddOS0tzkpOTnS+//NKs86wpa/ezadiwYZ77tO+m5aGHHnK6d+/ut239+vUmDytXrnQWLlxofq9duzZPvr31yluH7r//fvN8LPXq1XMeeeSRPOV84403+r1jr776qm//b7/9ZrYtX77c7zju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pgxc+pg0+lsktaxI9ScfknpNjot01hRFUSKCWrqViJCSmiEVUjfnWLkTRJJqq5U73PM6Y0lSwsfatWtNZz6UsZwW3EtxdS0I3E9HjhwZtnwoRSNYZOsDgbG9WGdjhUGDBsmnn34qM2bMkPr16xfq2KpVq8pRRx0lq1evDpqGgGnXXnutiUa+d+9eueWWWw4ov0ztxfhwbyA21kMZax4LpGVmyQ1vzJP+S++TZiscyYoTSRvaV44+5cJIZ01RFCViqNCtHHSyHUc2peyQytbKXaW8SPyBO11s3rxZbrjhBmPZKFeunOkAEVEWNz4LU7zQUSawTqCouOzDfdGd/umnnw66HkjYCbQQobcg3nnnHdOZw+oTKNIv4wY5F3+rVKkirVu3NuMSieCrHFwCCctM98OzyM89tigsWbLEjE296aabQlKihCsfRcU9zRP1m/whBBG1OdqhnPMLuFUU7r77bnn++edLtRXUejshcE+ZMsUoGQ477LBCn2P37t1mnLad7zqQK3jXrl3l6KOPlg8//FCmT59uXLpvv/32Iue7bNmy0qZNG3MuC8+K9Q4dOkisw3Md+sFS6frzMGm9MM1s+7fvidLh0rsjnTVFUZSIokK3ctDZtiddKqdukXhHJCtRpEytwlk3gnHBBReYoDkTJkyQ33//XT7++GMjnGzdutUvHZ3+cePG+W1DKGY8XoUKFQ44H998843flDYsdNIKArdHhGiE73379gVMQ+RdppxhbN9dd91lroVwFWwsoHLwQKBE0UN05eLkueeek4suukgqVqwY0XwUFsa9WsHRTvNE0CvePcbkoiALd+c/MzMnSGO4oJxR8BUnCPFMWfXFF19IaQbl4ptvvilvv/22maub7y9LamrOHM4oHhCY3SAso4BEwfnjjz/KeeedZ+r7JZdckuf81D3KEvdzBG3eB4KRMT0ZdXD06NH5CvN4ilhvEcaO89sGbSPy+dixY01bs3z5clOXeWY2mnks8/y3q6XW7BHS4cecdnd150Ol+93+7a2iKEosokK3clDJynZk687tUik1pzNeplolkbgDr4Y7duyQ77//Xh577DHp3Lmz6Wi1a9dOhg0bJuecc45fWiLe0nFbv369bxtTvbC9OASVGjVqmM64eylTpky+x9CpoxPJ1DG4S2KVCQRT6nA+0lx88cXGil+rVq1CCzBMb4O1/K23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qHDg7vC4+yPAu6lRo0bIxxO9njH6RK8fPny4Kd8bb7zRBL977rnnTN3jnrCAeu9NOfjwTbHfleKCZ86378EHH4xoPooC7yAKRWBmBu4hLS3NKEDxFEKZhHLsYFw/HHDucHgi8c1HCfvoo48W+7kVpSBmrNgku965TrrMyZla9c9eTeWsQaO14BRFUYoLJ8LMmDEDs0eepV+/fmb//fff7zRq1MiXPlBalnHjxhUqTZ8+fZy6des6ZcuWdQ499FCzvnr16qD5/Oqrr5zU1NQ82xctWuSsX7++yPcHzz33nNOwYUOTl3bt2jk//fSTE25SUlJMPvjrhftctmxZwPsNxM7UdOeX9ZudlGVLnb1Llzq7//o95HxkZ2c7GRkZ5u+BsH37dnM/M2fOzDcddWno0KFOuXLlnL/++su3/ZprrnEGDx7sVKlSxa+ekH706NFB192sWbPG5OHnn38uVN6p461atTK/33rrLVMPqBMWysabr1AhP1OmTPGtDx8+3KlTp46zZMkS3/089NBDTt++fZ0KFSqYevjRRx85mzZtcs455xyzrUWLFs78+fP9zvv99987J598spOUlOTUr1/flN3u3bt9+9944w2nTZs2TsWKFZ3atWs7l1xyibNx48Y878U333xj0iUnJzsdOnRwVqxY4UuzePFip1OnTuYclSpVco4//vg8+XCX0YIFC4Kmp+woQ8riiCOOMM+/e/fufnWA9597PuSQQ8x9t23b1vn66699+0877bQ877H73KGep6B6BOQ7Pj7e2blzZ77P0403H7Ze8Sy4XuXKlc13zn3OrKwsZ+TIkU7jxo3Ns2zZsqUzadIk3/7MzEznqquu8u0/6qijnKefftrvunzLzj33XOfhhx8231TS2vIaMmSIX1qeyXnnnedb37dvn3Pbbbc59erVc8qXL2++f9QNN2PGjDF1jDrSu3dv58knnwx4n2PHjjXXjouL830TBgwY4NSsWdPUh86dO5s6lV/9mjNnjqlLa9eudc4++2ynatWqJl/Nmzd3PvvsM7+6y/ktkydPNml4dynrJ554wu8e2PbII484/fv3N9dr0KCB88orr+R5hocddpi5X54/ZR8qhf1mK9FJfu32gbD8vxRnxK19nUUtmjnLmjZzPr60g/k2BIN3hPp/oO12aUbLSMtH61DsvGcpIX6b40uCCyJ9Se9iXXxx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9D2LGCXlW7R7924566yzZMGCBVKxYsUC0+NSHo0W7lGjRsmHH34oK1askOTkZOnYsaOZl75p06YhHf/oo4/KsGHDZMiQIcZiXJzMmjVLHn/8cVm4cKH8999/MmXKFOndu7dfmhdeeMGkwUrdqlUrM4d8u3btinQ9roOHQ4MGDYrpDhRFUZSShgrdSr7QmQtnh46OblpamiQlJanQrWWk9Ujfs4hRUr5F6enpsm7dOilbtqzJS2nlu+++k4EDB8oJJ5wgmZmZcvfdd0v37t1l2bJlBVp758+fL6+88ooZC50fP/zwgxGEvWPduUaNGjWkdu3aAY/bs2ePEaSvuuoqOf/88/Psf++99+TWW2+Vl19+Wdq3b2+E/h49esjKlSuNohpwG+e+vHz11VdSr1493zrW7SuuuELGjh2b770oiqIo0Y0K3YqiKIqiHFSmTZvmtz5+/HgjsGL1PfXUU/P1BLjsssuMkPrwww/n66aPUH/kkUfKu+++61MeIxh36dLFCM133nlnwGN79uxplmA89dRTcs0110j//v3NOsL3Z599Jq+//roMHTrUbFu8eHEBJSBGyYMFnWOw9AcDqzqLHe+vKIqiRB86kFZRFEVRlIiSkpJi/lavXj3fdAjSuN9369Yt33SMh//888/l559/NpZkhPA//vjDCNwIusEE7lA8EVAMuK/PtVifM2dOoTwrrrzySpOfvn37FnjPWOex8CuKoijRiVq6FUVRFEWJGAjEN998s5x00kly7LHHBk2HxXrRokUhC5+4cX/77bdyyimnyKWXXmqEYoTjl156qch5JcgdFmevazrrjE8PFVzfcVPHRX7q1Klm28SJE6VFixZFzpuiKIpSclGhO0ZByw47d+6MeD7IA2ModcowLSOtR/qexfq3yH6T7Tc6FsCS++uvv8rs2bPzndeaoGlff/11oca6N2zY0Aizp512mhx++OHy2muvlYi25uSTTzbKhsKg7Xb0UFK+JyUVLR8to1hst1XojlGI0gsaLVVRFKVkfqOrVKkipZ1BgwbJp59+aiKG169fP2g6XLqZwvL444/3bcPizHHPP/+8GR8dKOjnxo0b5dprr5VevXoZC/ktt9xiIo0XFab24jqc13udcE/bpu22oihK9LbbKnTHKLjdYTmI9PQ4aIcQ/MlL5cqVI5aPkoyWkZaR1qHYec/s1GXuCNelEe5z8ODBZjqumTNnymGHHZZv+q5du8rSpUv9thHIrFmzZnLXXXcFFLhxBee4o48+WiZNmiS///67dOrUScqVKydPPPFEkfJNVPk2bdrI9OnTfdOIYbFmHQVCONF2O3ooKd+TkoqWj5ZRLLbbKnTHKAR+yc+qcLDhZdGGSctI65G+Z5GmJHyLYsHCjUv522+/LR999JFR/jLftb135u3Geo1AjjALpPGO92ZqMab+CjQOHEGYCOSNGjUyY6cTExOlefPmxj2d4GWHHnqosXoHi5C+evVq3/qaNWtMNHKCvOGuTuTzfv36Sdu2bc2UZEwZxjRjNpp5uNB2O/ooCd+TkoyWj5ZRLLXbKnQriqIoinJQscHMsDy7GTdunInqjZWaaOMHIqCOHDnSBFHDOm1h/u1vvvlGatWqFfTYBQsWSOfOnX3rCNmAoM3UZn369JHNmzfL8OHDjbKAObmZAi3YvN+KoiiKEufEUrQWpUS6hqAdYrqYSGupSipaRlpGWof0PVOUkoK2SVpGWof0PSsJ7IwyGULn6VYiCmPr7r//fvNX0TLSeqTvmX6LFKVko+22lpHWIX3PSgLlokyGUEu3oiiKoiiKoiiKooQJtXQriqIoiqIoiqIoSphQoVtRFEVRFEVRFEVRwoQK3YqiKIqiKIqiKIoSJlToVhRFURRFURRFUZQwoUK3oiiKoiiKoiiKooQJFbqVYmfUqFFywgknSKVKleSQQw6R3r17y8qVK/3S7Nu3TwYOHCg1atSQihUrygUXXCAbN270S/PXX3/JWWedJeXLlzfnueOOOyQzM7NUPrFHH31U4uLi5Oabb/Zti/Uy+ueff+Tyyy8395+cnCwtWrSQBQsW+PY7jiPDhw+XunXrmv3dunWTVatW+Z1j27Ztctlll5n5G6tWrSoDBgyQ3bt3S2kgKytL7rvvPjnssMPM/Tdp0kQeeughUy6xWkazZs2SXr16Sb169cz7NHXqVL/9xVUev/zyi5xyyimSlJQkDRo0kP/9738H5f4UJVxou104tM0OjLbb+aPtdoy3246iFDM9evRwxo0b5/z666/O4sWLnTPPPNNp2LChs3v3bl+a66+/3mnQoIEzffp0Z8GCBc6JJ57odOzY0bc/MzPTOfbYY51u3bo5P//8s/P55587NWvWdIYNG1bqnte8efOcxo0bOy1btnSGDBni2x7LZbRt2zanUaNGzpVXXunMnTvX+fPPP50vv/zSWb16tS/No48+6lSpUsWZOnWqs2TJEuecc85xDjvsMCc1NdWX5owzznBatWrl/PTTT87333/vHHHEEc4ll1zilAYeeeQRp0aNGs6nn37qrFmzxpk0aZJTsWJF55lnnonZMuIduOeee5wPP/wQzYMzZcoUv/3FUR4pKSlO7dq1ncsuu8x849555x0nOTnZeeWVVw7qvSpKcaLtduhomx0YbbcLRtvt2G63VehWws6mTZvMi/Tdd9+Z9R07djhlypQxQoJl+fLlJs2cOXN8L2F8fLyzYcMGX5qXXnrJqVy5spOWllZqntquXbucI4880vn666+d0047zSd0x3oZ3XXXXc7JJ58cdH92drZTp04d5/HHH/dto8zKlStnPqawbNkyU17z58/3pfniiy+cuLg4559//nGinbPOOsu56qqr/Ladf/75plGBWC8jb+NdXOXx4osvOtWqVfN7x6ivTZs2PUh3pijhR9vtwGibHRxttwtG2+3YbrfVvVwJOykpKeZv9erVzd+FCxdKRkaGcRGxNGvWTBo2bChz5swx6/zFnbh27dq+ND169JCdO3fKb7/9VmqeGu7juIe7ywJivYw+/vhjadu2rVx00UXGbb5169YyduxY3/41a9bIhg0b/MqnSpUq0r59e7/ywc2I81hIHx8fL3PnzpVop2PHjjJ9+nT5/fffzfqSJUtk9uzZ0rNnT7OuZeRPcZUHaU499VQpW7as33vHEJrt27eH9ZkrysFC2+3AaJsdHG23C0bb7dhutxMP2pWUmCQ7O9uMUz7ppJPk2GOPNdt4gaj4vCRuEB7ZZ9O4hUm73+4rDbz77ruyaNEimT9/fp59sV5Gf/75p7z00kty6623yt13323K6KabbjJl0q9fP9/9Bbp/d/kgsLtJTEw0yp9oLx8YOnSoUbCgjElISDBjxR555BEzrgm0jPwprvLgL+Poveew+6pVq1bMT1pRDi7abgdG2+z80Xa7YLTdju12W4VuJexa4V9//dVY4JT9rF+/XoYMGSJff/21Ceqg5O30obUcOXKkWcfSTT16+eWXjdCtiLz//vvy1ltvydtvvy3HHHOMLF682Ci4CEaiZaQoirbbxYe22QWj7XbBaLsd26h7uRI2Bg0aJJ9++qnMmDFD6tev79tep04dSU9Plx07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Y8cO8/v66693KlSo4Pz3339+afbu3esceuihzhlnnGHWt2/fbs5X2Hq0Zs0ac9yiRYucjIwMs/Tv399p2rSps27dOpOG/S+//LJz1llnOcnJyU6zZs2cH3/80Vm1apVz2mmnOeXLl3c6dOjgrF692u/c3Fvr1q1NOR522GHOAw88YM5vefLJJ51jjz3WHF+/fn3nhhtucHbt2uXbTxlT1tOmTTPXpBx69Ojh/Pvvv740M2bMcE444QRzDtJ27NjRWbt2bb514dxzz3UeeeQR55BDDjHHjBgxwuTr9ttvd6pVq2bK9fXXX/c77s4773SOPPJIc//cy7333uukp6f79i9evNjp1KmTU7FiRadSpUrO8ccfb+q++z4smzZtctq0aeP07t3b2bdvX8B8Pv74407btm39tnGvPAuedX73ZuHZUF/vuOMOc1+1a9d27r//fr9jONeAAQOcmjVrmnx37tzZ3IuFZ8q7Q1lR/uTp66+/9jsH9f/BBx90+vbta85BPoC8TpkyxZdu586dZtszzzzj28b7ddFFF5nyIY9cizpp4bnYd6569ermOVxxxRV57nPgwIHOkCFDnBo1apjnAEuXLjXvB/km/5dffrmzefNm33GTJk0y9S8pKcmcu2vXruZbXFC9ogxbtWrlO09WVpapQ9SbsmXLmn3u7719xz744AOTN+pQy5YtzTvkhveNdN73KBzf7JSUFHMt/sY6I0eOdHr27Bl0P9+luDgz82nUEa3ttv2W8f4Hare1zRbn559/NmVDG3LllVdqm61tdpHbbP5Sl7TNDt5mt2jRwvnhhx+ccLbZxdVux7ylm7FhuCIEA8spbmzRhpnMPT0z32VfZsFpirKE2zOgdu3axjXbRpXH3fu9994rtqndcElp2rSpsaQE8nzAasnQA6zal112mXEVd5OcnCw33nijfPnll8YajvWNZerUqZKWllakPHHc//3f/xmL+/fff+8XROihhx6SK664wuzDMnTppZfKddddZ9ypsBLxPAYNGuRLz/GkHzJkiJmG55VXXjGuz4888ogvTXx8vLHs/fbbb6acv/32W7nzzjv98kS5P/HEEzJx4kSZNWuW0SbjKgSZmZlmDDPvzi+//CJz5syRa6+9tsDoj1yH+Ys531NPPSX333+/nH322VKtWjWZO3euXH/99ebe/v77b98xuHhjteU6uP+P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E/QcCG5ApP/9999m4vZAcD3uiM82Gjvr4iUSdLykI57RPNI80jKU+M+ZPb6/968+49GvnxVFURSlvVHR3cQpp5wiH3zwgRx//PHGXdtfpNS2oqamxridT5w40bMuNTVVRo8eLbNnzw67EULDo6CgwHxGcGdlZQXcHxf2JUuWNFsfD1Oh+TaglEZGjRplvCXooNE8ik45+v3332WTTTaRuXPnhh2QCe+VkpISefnll4PuN3bsWNl88809nWhtnY5I0TLUSEZGhrz00kty4IEHtlke7bTTTmZubn9eTf7gvcu5SktLpbq62mvb2rVrW5SGjkx71s/xiEYvT5x5nXl/47moRAfqSmbqId5DuHXliSeeKMXFxTJlypSg+/F+oc6+/PLLo5IOpWXwvvc3RLc17LDDDnLxxRfLoYceKu2KoxiKioqcjz/+OCq5QTa/+uqrnu+LFy826z799FOv/S6++GJn++23D+uYv/32m7P11lubZfTo0c5nn33mVFZWBty/vr7eqaurc5YuXep8//33znfffefMnTvXqa2tdRoaGmK2LFu2zDn11FOdvn37OpmZmU7Pnj2dvfbay/noo488+/Tv39/k1zPPPNPs94MGDTLbJk+e7LX/pEmTAn53LwsXLjS/97dwf0Kl/+mnn3ZSU1OdM844o9m2GTNmeI6VkpLiFBYWOttss41z0UUXmTIQ6ti77babM2HCBPM51vcpEZZQeTR27FjnwAMPbPabJUuWODU1NWGfx99xfJevv/7a6dKli7N27Vq/99Nf2iNNR1vnj3u58sorPWWX8t2nTx/nlFNOcVauXBnz+9zahXzmXdnaPHIvr7/+ujNgwADzjg1n/4qKCmfevHnmr++24uJik+8lJSWtqHU6FtGsn2MFZZAyEKze9oXyRb3N31ixfPly57TTTmtWZ7vvj62zn3322Wa/t3X2o48+6rX/HXfcEfC7m0WLFgWss2fPnh0y/bQjeKedeeaZzbbNnDnTb51N24z3Rih4x5977rnms/t9ojQnnPyxda0b247lt+Hi7zi+fPPNN6bOLi0t9Xs/fWlJOiIlkjJ01VVXNauzx48f76xatcpJdJYuXepUVVX53dbS5+yNN94wdTbaqC3e2dTX4dTbqe0r8eOXzp07S5cuXSRR2GijjeTbb781yxtvvBEywAyW9LS0NOnVq5dsueWWMmjQ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Ma6RXnrGnlMh2wo2mOs93gV4GxC0iAYIHVkEpkMM847gfRGsvDDunDylMiVPCIrHOH6eZ3/PA54zHJO/DK3gmhBEkQ71IX8DucQp8V8/c2z3MB9fKFcc2wp7xDfeGFg0Kd/g+2y7obORdypeVUDj1Nd7yBc7hZ/FdhqyLpQnXTSgnqTeIw949nimbJ1NHAR3mmwaGU/Je48629/2QN///vtvYxjwrbPtPtSheCSEU2fzTuedT3sjUJ1NB4o9Nu8BOsdtnU2dyfnotAyV72ynHiFgGp3l/ups32P4u592He9RW2fzzg1WZ/NOpM5mPXV2qDx2rwv0Tg10vcH2t7+hzqYectfZlB2bR7bO9q1r7e+532xneJSts+02ex6Oz/3lXRDoOIHy3e2dRp3NO9w3tgll17ccUr/4psP3u/t8dh2enHi68A7wV2fTYUOdTXwc9qPOw0AT6Dz+rs29niGJ1Nm8O6mzmcXl3HPPNfWovzqbGD22zsZz0F1n+7s2+xkPHmIaUWdb41O4dbbjOM3qbGLoUGf7u988D+46m/vDOHjqbDozfct7sPzhfuNlG+671N+1+ztXqIMojuMccsghzn333dcsL+6//36zDe6++25nyy23jLv8CjZheyDq6uqcuXPnmr+xgsnuL730UmfIkCFOUVGRk5ub6wwcOND5v//7P6eiosKzX//+/Z077rgj4HH47aOPPhpwf75T1H2XJ5980lm0aJHfbSzPPvus3/NttdVWzplnnul32/PPP+9kZmY6K1ascGbOnOk5VkpKilNQUOAMHjzYufjii52lS5eGzJ/ddtvNOffcc52GhgantrbW+fHHH50ePXo4F1xwgdk+duxY58ADD/T7Gze++cG5TzjhBKdbt25OVlaWs9FGGznjx493SkpKzPavvvrKGTZsmJOdne1ssskmzosvvtjsGFzTq6++GvA+XHfddc7mm2/u5OTkOF26dDHpXLhwYcBrDba/vUfPPPOMs/3225v8HTRokDNjxgzP7yn7XBNp6NSpk3PGGWc4l112mclvy/Lly50999zTyc/PN8fj/thjf/31154yeeKJJwY9jr989+V///ufs8MOOzS7N/7KGdfumw5bdtasWeP5PdtYx76WadOmOTvuuKPJt8LCQpM/Dz74oGf7pEmTnPXWW89s32uvvZzHH3/c67jcL67Vl6uuusrrmi08E5SZP//803x/+umnnW222cbck86dOzu77rqr88orr3j2/+STT5ytt97abB86dKi5h5x/wYIFAa8TKPN33nmneR9kZGQ43bt3d8aMGeN88MEHIcsL10+a8vLyTJ6MGjXKlOlAZfe7775z9thjD1PeOdYpp5zilJaWBr3fPGPcT8vff/9t0vnXX385rX1n8xySRvs8Ku1fP/uWkerqaictLa3ZO493zgEHHBDWMXmHUy5Xr17t1NfXm/fMl19+GbTeXrx4samnfRfeUxyvvZeysjLnkksuaVZnX3755c7atWs9+1Ff3HbbbQGPw28ffvjhgPsHqrMfe+wx55dffglYZz/11FN+z0e5OP300/1u453E+4l68f33329WZ/P+uvDCC82zHSp/eP+dc845nu/ffPONqbPPO+888/3444835SXYb/zlB+c+7rjjvOrsk08+2Vm1apXZ/vnnn5v3q62zn3vuuWbH4JpeeumlgPfhmmuu8Xqnks6ff/454LUG29/eI9pY2223nafOfu+997zKkrvOPu2000zZIr/tPkuWLHFGjx7tqbO5P/bYPAfhHsdfvvsu99xzjzN8+PBm98ZfOePafdNhyw5tP/t7trGOfe26qVOnOiNGjPDU2eQP7za7/dZbb/WqsydPnux1XO4X1+qb/iuuuMLrmu3CM0GZoX7k+xNPPGHqdltn77LLLqaNZ/enjqWNy/Ztt93W3EPO/8MPPwS8Tpaamhrn9ttv96qzST/ttFDl5b777jNpsnX2yJEjTZkOVHapz3fffXdPnT1u3DjThgh2v3nGuJ/2+++//27SSXsq3Pcf7QLyYdmyZeZ87uWPP/4Iq95Oaapgkh47rtbX7YOgPlirGGeImym9Rrg1xBNYUW3U7GDTbrmx7uX0LMXSTY3iR1ps1GlF88gXxjlRtimvgdy1460cYSXB1QnXMHcAuFgRL/lDLAEsHfSCx9vY59bkEVYBrAXWKtGadzaWKnr4yaNAQ0CSjfaun7n/7jHdTC2IpRo3RvfzjEWRgGLhxnwgzgC/oaxh6cKVMli9bS3dWHOwtPIZKxHXHGv3cvusKJpH/upsPM4Y2x5siFU8lSHqbLwyGDYYD3V2vOQRdTYehcXFxXFXZ7cmjyKts229TdnGa9JfvY2nTah6W93Lm2DcwBtvvGHcI9ywzo4poDL3jfqcaMSTe7midFSonHB5a8lY+I4EeUDjC8GCGx0VHe6p8Vp5txTc2uwMFUrb01HqZ7cLu+14CYYNloarJYvtLKdTIJadZ25bTTx0csYjyZxH9nqDldN4yx+GP1BfMYQiHtITqzzyrbMZOkOdHemQznjPo549exqX+Eh+E6xch3scFd1NMNaCMWFMpG7HjDEuhOi4jN0CxtUGCxKQKI1DFlt5K4oSHXznVE9GiJNgp0VkzBZjKt3TpXQUqLyVjls/M+YTSwpjfd3wHTEcbbSzXFGij9bZWmdHGxXdTRAghQh8BBuwAa5wD8V1zM4lpw0rRWl/cOXRUTCJCa60LIqSyPUzMx8QBGj69Okel3Ncv/kerWk/FSVR0To7cdE6O7qo6Hax0047mUVRFEVRlOSpnxkXzhhxC67fjCPHfZ0ZAhg+QMRcIpBjbSciNS7t7TGNqHqoKYqiJD5JLboZ+G4HvPM5GB0loI26qSmKoijxTnvXz0ydwxRPFjtGH6HNvLAEPSOgmR0uQYAopimKdGo5RVEUJTlJatHduXNnM88jvchEnfM3EB63Vtbb+TETHe0xVxRFUeKd9q6fGc8ZahgLruSxcCfXznJFUZTEJ6lF94wZMzyRTwnQoiiKoihK7NH6eR3aWa4oipL4JLXodkc6TfSo5IqiKIrSUdD6eR1q6VYURUl8GieBVAwfffSRHHfccSYa6uLFi826J598Uj7++GPNIUVRFEWJEclcP2Pp3nLLLWXzzTePdVIURVGUFqKiu4mXX35ZxowZIzk5OfLVV19JdXW1WV9SUiI33nhjS/NXUSKGMYpTpkzRnIsiBEZinGik06AQsTgYNTU1MmDAAPn000+jlg4lcmbNmmWeq+Li4jbLvpUrVxox9Pfff+stiTJaPyvxjNbZ0Ufr7ORiVgets1V0N3H99dfL/fffLw899JBkZGR4MogpShDhHclN7YcffpD58+dLPEA02LPOOkv69+8vWVlZ0qtXL9P58cknn3iJHR6+5557rtnvt9hiC7ONF3IgcRRMLP3+++/m9/6Wzz77LGC6r776ahO91tcSg4A677zzTECeiooKmThxomy88caSnZ0t3bt3Ny6Tr732WsT5pLQcf/efSMQ///xzm2cr75ANN9zQM3dwqAZZtNLRmmBStvxTZjfddFO56aabEn6edO4HQbmKiora7JjdunWTE044Qa666qo2O6aS3PVzItTb1NlnnHGGbLTRRuYdoXW20tZonR0+WmcnVp2d1GO63fz000+y6667NltPI60te1piTbwFZDnssMOMVwGiGXG6bNkymT59uqxatcprv759+8qjjz4qRx11lGcdopipW/Ly8lqdjvfff98IeDddu3YN+/dTp06Vww8/XC677DIzpQycfvrpMmfOHLnnnntk0KBB5pqwgPpem9L+4NHC0pYgTO+991659tprY5qOloCFPjMz03weP368uQaeS4JZnXrqqaYziYZ2e5w/GnBsxEFbwxzNQ4cOlVtvvdUTlFNpe5Klfk6EevvQQw81z+vkyZONVw8dAlpnK9FG62xvtM5OzDpbLd1N0CD79ddfm2UQ48Xo0VXaHhpLWIexpDE/Ktbu7bff3liHDzjgAK99jz32WPnggw/kr7/+8qyj0md9enrr+44Q2JQB9+K2qATjmWeekUMOOURuueUWj+CG119/XS6//HLZZ599TM8tD/o555wj48aNiyht9MrR6fDdd9+Z7xwLyw89dvn5+SbfOBcWiAMPPNCs23rrrc28s75leZdddjGVF8ebMGGClJeXe7YzPnLYsGFSUFBgrv+YY44xDSpfdx8aWOyXm5trLIg0iC3ffvutuZccg7lzuWbfdLgJtr91J8NKvMkmmxirCl4Q7jLw22+/mWsmvexL+aEDxd0L/Mcff8j555/vseC6j+17HObcJf+22247r+OEw5dffmmOs++++4b9G990WA8K7gX3GVFBR1Npaalnn4aGBvPMYFHnXg4ePFheeuklz3Ya5ieffLJn+8CBA+Wuu+7yOu+JJ54oBx10kNxwww3Su3dvs4+F+0p+Uq6ooChL7733nmc7Yvyiiy6S9ddf33R4DR8+3JQNN1gkKWMc6+CDD5ZJkyb5vc6HH37YpJN7a98Jp5xyivEKoTyMHDnSlJFwygv3ef/99zdTTZEuOtHeeuutgK5quCyzDx425PXtt9/udQ2sY2gRzyvn69evnzz44INe+/B78u/VV18N634rLUPr5/iqs2+++WbzbtU6O3CdzXtB62yts0HrbK2zLSq6m8C6c+655xrLJI2zJUuWyNNPP20al9G08EQLrG4NFRVBF6mqCrlPS5ZwXVERNyy4W9sx9IFADCG4Hn/8cfMd1+3nn38+YgHb1vz3v/81woQOAN/5W2ko0uh3C6ZIIB8R6QgwprRD/FjuuOMO41qJ1QORd/zxxxsRTqAh3C3xGuC7vReIwX/961/GSkFDgLxDhLvTXFtbK9ddd50RNghdXO8RZ778+9//NgIFsUOHh/se0AnSp08fmTt3rhGhWP6DdV6E2p/7jDB84oknzJADGn1ub4eysjLTqYFA5hiUEYTXn3/+aba/8sor5vhYbnEvZvGHPQ4dCuQpeeU+TjjQGMUdG4HWGrhX5P+bb75pFjqbaORaENzkB+62P/74o+lQ4L6zn63gueYXX3xR5s2bZzqCuGd8d8O10mGCoOY8vlB2uKYFCxZ4WaEpM7NnzzbDPShLeHiQX7/88ovZzn3Cy4P36TfffCN77rmnuYe+0MmJ8OUesR9wLDp63n77bVMett12Wxk1apSsXr06ZHlhmArvkQ8//FC+//57+c9//mPeL/7gt0cccYQpS+xLJwD5ZN8vFso5HUyUiTPPPNPUBe5OJqCjh3xSokdHq59bWmdHq96OtM7m/aR1duA6m/cz7yGts7XObmmdjcHmhRde8CpfWmcf4VVnX3HFFV5DSxOiznYUQ0NDg3P99dc7eXl5TkpKilmys7Od//u//4vbHFq4cKGz++67OyNHjnTef/99p6yszLOtvrzcmTdws5gsnDtcXnzxRadz584mr3fccUdn4sSJzrfffuu1T//+/Z077rjDmTJlirPxxhube/X44487Q4YMMduLioqcRx99tNn+gb67WbRoEa0NJycnx9x79xKMq666ysnMzDS/feSRR/zu88EHHzh9+vRxMjIynGHDhjnnnXee8/HHH4fME45JvhxzzDHO5ptv7vz1119ObW2tuW57Pccdd5xn/6VLl5rfXHHFFZ51s2fPNuvYBieffLJz6qmnep3no48+clJTU53Kykq/6Zg7d645Rmlpqfk+c+ZM852yZpk6dapZZ49RUFDgPPbYY064BNufe8qxP/vsM8+6+fPnm3Vz5szx2pe8sXm0xRZbOPfcc0/Q+8+xKTfBCOc4bs4991zzLPpCel999dWA1+hOB+UqNzfXWbt2rWfdxRdf7AwfPtx8rqqqMts//fRTr+Nwf48++uiAaTvzzDOdQw45xFOGxo4d6/Ts2dOprq722m+33XYz5ZXyz1/SzrP5ySefmO1//PGHk5aW5ixevNjrd6NGjTLPLhx55JHOvvvu67X92GOPbXad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fN68eTJ37txYJ0VRFEVR4p5u3bpJWlqaLFu2zGs933v16hX18+usI4qiKImPim5FURRFUZQAZGZmytChQ2X69OmedQ0NDeb7iBEjNN8URVGUkKh7uaIoiqIoSQ3BeBgvbVm0aJGJRk60cebWZmz12LFjZdiwYbL99tubKcOYZsxGM48mGgBVURQl8VHRnWTomG5FURRF8eaLL76QPfbYw/MdkQ0I7ccee0yOPPJIWbFihVx55ZXyzz//mDm5p02b1iy4mqIoiqL4Q0V3kqE95oqiKIrize677x5yGq6zzz7bLO2NdpYriqIkPjqmW1EURVEUJU7RAKiKoiiJj4puRVEURVGUOEWjlyuKoiQ+KroVRVEURVHiFLV0K4qiJD4quhVFURRFURRFURQlSqjoTjLUTU1RFEVREgettxVFURIfFd1JhrqpKYqiKErioPW2oihK4qOiW1EURVEURVEURVGihIpuRVEURVEURVEURYkSKroTmDvuuEO22GILGTRokEyYMEEcx4l1khRFURRFaUN0TLeiKErio6I7QVmxYoXce++98uWXX8r3339v/n722WexTpaiKIqiKG2IjulWFEVJfNJjnQCl5dTV1UlVVZX5XFtbKz169NDsVBRFURRFURRFiSPU0h0lPvzwQ9l///2ld+/ekpKSIlOmTPHrMrbBBhtIdna2DB8+XD7//POwj9+9e3e56KKLpF+/fuYco0ePlo033riNr0JRFEVRFEVRFEVpDSq6o0R5ebkMHjzYCGt/PP/883LBBRfIVVddJV999ZXZd8yYMbJ8+XLPPttss41sueWWzZYlS5bImjVr5M0335Tff/9dFi9eLJ9++qkR+oqiKIqiKIqiKEr8oO7lUWLvvfc2SyAmTZok48ePl5NOOsl8v//++2Xq1KkyefJkueyyy8y6b775JuDvX3zxRRkwYIB06dLFfN93333NmO5dd93V7/7V1dVmsaxdu9b8JfhaLAOw2fNrEDjNIy1H+pzFknh5F8X6/IqiKIqitD0qumNATU2NCXw2ceJEz7rU1FTjIj579uywjtG3b19j3WZMd0ZGhsyaNUtOPfXUgPvfdNNNcs011zRbX1JSEnPRXVZWZj7jhq9oHmk50ucsmd9FtkNUUSx4zLHU19drpiiKoiQoKrpjwMqVK03l2bNnT6/1fF+wYEFYx9hhhx1kn332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u+yyi2RnZ0vfvn3llltuaZfrU5RoofV2ZGid7R+tt4Oj9XaS19tMGaYobcmYMWOcRx991Pnhhx+cb775xtlnn32cfv36OWVlZZ59Tj/9dKdv377O9OnTnS+++MLZYYcdnB133NGzva6uztlyyy2d0aNHO19//bXz1ltvOd26dXMmTpzY4W7W559/7mywwQbO1ltv7Zx77rme9cmcR6tXr3b69+/vnHjiic6cOXOchQsXOu+8847z66+/eva5+eabnaKiImfKlCnOt99+6xxwwAHOhhtu6FRWVnr2+de//uUMHjzY+eyzz5yPPvrIGTBggHP00Uc7HYEbbrjB6dq1q/Pmm286ixYtcl588UUnPz/fueuuu5I2j3gG/v3vfzuvvPIKPQ/Oq6++6rW9LfKjpKTE6dmzp3Psscead9yzzz7r5OTkOA888EC7XquitCVab4eP1tn+0Xo7NFpvJ3e9raJbiTrLly83D9IHH3xgvhcXFzsZGRlGJFjmz59v9pk9e7bnIUxNTXX++ecfzz733XefU1hY6FRXV3eYu1ZaWupssskmznvvvefstttuHtGd7Hl06aWXOjvvvHPA7Q0NDU6vXr2cW2+91bOOPMvKyjIvU5g3b57Jr7lz53r2efvtt52UlBRn8eLFTqKz7777OuPGjfNad8ghh5hKBZI9j3wr77bKj//9739O586dvZ4xyuvAgQPb6coUJfpove0frbMDo/V2aLTeTu56W93LlahTUlJi/nbp0sX8/fLLL6W2tta4iFg222wz6devn8yePdt85y/uxD179vTsM2bMGFm7dq38+OOPHeau4T6Oe7g7LyDZ8+j111+XYcOGyeGHH27c5ocMGSIPPfSQZ/uiRYvkn3/+8cqfoqIiGT58uFf+4GbEcSzsn5qaKnPmzJFEZ8cdd5Tp06fLzz//bL5/++238vHHH8vee+9tvmseedNW+cE+u+66q2RmZno9dwyhWbNmTVTvuaK0F1pv+0fr7MBovR0arbeTu95Ob7czKUlJQ0ODGae80047yZZbbmnW8QBR8HlI3CAe2Wb3cYtJu91u6wg899xz8tVXX8ncuXObbUv2PFq4cKHcd999csEFF8jll19u8mjChAkmT8aOHeu5Pn/X784fBLub9PR00/mT6PkDl112melgoTMmLS3NjBW74YYbzLgm0Dzypq3yg7+Mo/c9ht3WuXPnNr7TitK+aL3tH62zg6P1dmi03k7ueltFtxL1XuEffvjBWOCUdfz1119y7rnnynvvvWeCOijNG330Wt54443mO5ZuytH9999vRLci8sILL8jTTz8tzzzzjGyxxRbyzTffmA4ugpFoHimKovV226F1dmi03g6N1tvJjbqXK1Hj7LPPljfffFNmzpwpffr08azv1auX1NTUSHFxsdf+ROZmm93HN1K3/W73SWRwH1++fLlsu+22pkeO5YMPPpC7777bfKYHLpnziCiVgwYN8lq3+eabm2jt7uvzd/3u/CGP3RDZnSiXiZ4/QKR6es2POuooM8zg+OOPl/PPP99EIQbNI2/aKj868nOnKFpv+0fr7NBovR0arbeTu95W0a20OcRCoOJ+9dVXZcaMGc1cOoYOHSoZGRlmPKqFcRUIqhEjRpjv/P3++++9HiSswkwH4CvGEpFRo0aZ68M6aRcsu7gG28/JnEcMR/CdZo6xy/379zefKVO8KN35g6s143fc+UOnBY0lC+WR3njGAyU6FRUVZsySG9zMuT7QPPKmrfKDfZjihJgL7udu4MCB6lquJCxabwdH6+zQaL0dGq23k7zebtewbUpScMYZZ5jw/rNmzXKWLl3qWSoqKrymw2IasRkzZpjpsEaMGGEW3+mw9tprLzPt2LRp05zu3bt3iOmwAuGOXp7secSULOnp6WZ6jV9++cV5+umnndzcXOepp57ymkaiU6dOzmuvveZ89913zoEHHuh3GokhQ4aYacc+/vhjEyk+UafD8mXs2LHO+uuv75kyjOk2mDLukksuSdo8IrIw0+exUL1NmjTJfP7jjz/aLD+InMrUI8cff7yZeuS5554zZVOnDFMSGa23I0frbG+03g6N1tvJXW+r6FbavlCJ+F2Yu9vCw3LmmWeaEP4U/IMPPtgIcze///67s/fee5u59BATF154oVNbW9th75hvBZ7sefTGG2+YTgWmhthss82cBx980Gs7U0lcccUV5kXKPqNGjXJ++uknr31WrVplXrzMX81UaieddJJ5wXcE1q5da8oLHTPZ2dnORhttZOa6dE+JkWx5NHPmTL/vHho6bZkfzBXKlHYcg44PGgWKkshovR05Wmc3R+vt4Gi9ndz1dgr/tZ9dXVEURVEURVEURVGSBx3TrSiKoiiKoiiKoihRQkW3oiiKoiiKoiiK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/9FHH20EN2LDwlRzWNERoJMmTTLR7umcwQOCzh7Oc9ppp8nff/9t9kcokK902NABQhq4J//617+MWAEsdkxPi/ihIwhBg6BgvRsEHuKdiPhsJ13W/fiKK64wBhrEFEMsmO4OER+IcPanI+HCCy80454ZQ4sQsh4SiDQ6GF588UVzHLxM6Lh64YUXzPaLLrrIpJXrtJ4NiFhfQh0nHMgPAo8iMlvLv//9b7n99tvNNMKIYHf55/4xVAWvGNL6wAMPGBF9ww03ePZhWAOdBj/++KN5ligvDG9ww7P1n//8xwho9qOTyF+nAN44NsYEUBbJH87HPaPzh/ton1liP9HxQAcJnTbXXXed8fTwBx1YdMZxHDoJEMlPPPGEGcZBmhhec9xxx5nOrlDl5e677zadCNwzOilIJ0NO/MGwn3333dc8L3Q2cd/xRPGNv8GzTWcof7k+8tm345QORO5JVHGUpKSkpIRa1vyNJQ0NDc6aNWvM39ZQW1fvPP7pImfwNe84/S990ywnP/a589vyUifRaas86shoHmn+dJQyFC/vZiW6VFZWOvPmzTN/DdVljnNVYWwWzh0mL730ktO5c2cnOzvb2XHHHZ2JEyc63377rdc+/fv3d+644w5nypQpzsYbb2yeqccff9wZMmSI2V5UVOQ8+uijzfa39Om7vnPLJZc4Fd9/79SXrPQ69qJFi8zzkZOT4+Tl5XktwdhpxxHOuMMPM8e84cYrnX322ces32uvvZzJkyebz8cff7yzxx57eH4zc+ZMcy7eC768/fbbZtucOXP8no9r3nXXXZ0JEyY49957r7nmWbNmee0zduxYc+319fWedQMHDnR22WUXz/e6ujpzbc8++6z5/uSTT5p93O+p6upqkx/vvPOO37Rw/IKCAueNN97wrCPt//d//+f5XlZWZtZxXbD//vs7J510khMuwfa39+zmm2/2rKupqXH69Onjtc6Xs846yzn00EO98uvAAw/0e+yvv/66Vcdx8+qrrzppaWnN6oLddtvNOffcc4Neo02HLTvvv/++Z5+pU6eadfaZHzVqlHPjjTd6HYf7u95665nPnL+2ttYrHS+++KLTtWtXz3eeI475zTffeB3nqquuclJTU03Z4Vk1fVkizqRJkzz78Gw+88wzXr+77rrrnBEjRpjP9913nzmX5x3lOM5DDz3k9zp51i1VVVVO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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_fidelity_comparison(\n", + " fidelity_scores=fidelity_scores,\n", + " x_column=\"perturbation\",\n", + " model_filters=[\"LIME\", \"SMILE\"],\n", + " figure_name=\"perturbation_full_comparison\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "G2lzgudlow9Q" + }, + "source": [ + "### 3. Linear + Num Clusters Sweep" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "eRzQWHXJow9Q", + "outputId": "74698d7d-f811-4437-fb68-1985210fa182" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# ====================================================================================================\n", + "Number of clusters = 32\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.028980544431911857\n", + "R-squared (R²): 0.6048517664000352\n", + "Mean Absolute Error (MAE): 0.133978646917081\n", + "Mean Loss (Lm): 0.0008570199921975608\n", + "Mean L1 Loss: 0.13602503738326907\n", + "Mean L2 Loss: 0.029832243363311535\n", + "Weighted L1 Loss: 0.1118200439479455\n", + "Weighted L2 Loss: 0.024187479322860847\n", + "Weighted R-squared (R²ω): 0.6048517664000352\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5917755063429526\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 34.10546159744263}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029357479402836693\n", + "R-squared (R²): 0.612460295976508\n", + "Mean Absolute Error (MAE): 0.1354657482190234\n", + "Mean Loss (Lm): 0.0016814990289715226\n", + "Mean L1 Loss: 0.1362481306698352\n", + "Mean L2 Loss: 0.029795102936379436\n", + "Weighted L1 Loss: 0.12940502140311674\n", + "Weighted L2 Loss: 0.028044028106081417\n", + "Weighted R-squared (R²ω): 0.612460295976508\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5996358176634244\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 34.2925124168396}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02978577150561701\n", + "R-squared (R²): 0.6133283233667477\n", + "Mean Absolute Error (MAE): 0.1365864102802241\n", + "Mean Loss (Lm): 4.2684905610101964e-09\n", + "Mean L1 Loss: 0.13658641028022414\n", + "Mean L2 Loss: 0.029785771505617013\n", + "Weighted L1 Loss: 1.3658641028022414e-09\n", + "Weighted L2 Loss: 2.9785771505617016e-10\n", + "Weighted R-squared (R²ω): 0.6133283233667477\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6005325698483774\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 35.828859090805054}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02972773384897857\n", + "R-squared (R²): 0.6128953270526714\n", + "Mean Absolute Error (MAE): 0.13642213837620643\n", + "Mean Loss (Lm): 0.00029462401830593343\n", + "Mean L1 Loss: 0.13652013498303642\n", + "Mean L2 Loss: 0.029786140881430775\n", + "Weighted L1 Loss: 0.13523693128812042\n", + "Weighted L2 Loss: 0.029469465496862718\n", + "Weighted R-squared (R²ω): 0.6128953270526714\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6000852448041558\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 39.134456634521484}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of clusters = 64\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.008398555873802315\n", + "R-squared (R²): 0.3097530629658255\n", + "Mean Absolute Error (MAE): 0.052798734635885074\n", + "Mean Loss (Lm): 0.00014313868082671544\n", + "Mean L1 Loss: 0.053805624743165095\n", + "Mean L2 Loss: 0.008846861495437936\n", + "Weighted L1 Loss: 0.04422749241240814\n", + "Weighted L2 Loss: 0.007035150913092542\n", + "Weighted R-squared (R²ω): 0.3097530629658255\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.26250621379984995\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 32.70795011520386}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.008686897134608181\n", + "R-squared (R²): 0.3141888335801115\n", + "Mean Absolute Error (MAE): 0.0541126241470517\n", + "Mean Loss (Lm): 0.00026363608774093716\n", + "Mean L1 Loss: 0.054396815998543346\n", + "Mean L2 Loss: 0.008840675318582058\n", + "Weighted L1 Loss: 0.052766512021607384\n", + "Weighted L2 Loss: 0.008470800840079824\n", + "Weighted R-squared (R²ω): 0.3141888335801115\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.2672456093545791\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 33.24609875679016}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.00883972071016939\n", + "R-squared (R²): 0.3159721687377325\n", + "Mean Absolute Error (MAE): 0.054770903939401455\n", + "Mean Loss (Lm): 9.857119898093458e-09\n", + "Mean L1 Loss: 0.05477090393940147\n", + "Mean L2 Loss: 0.00883972071016939\n", + "Weighted L1 Loss: 5.477090393940146e-10\n", + "Weighted L2 Loss: 8.83972071016939e-11\n", + "Weighted R-squared (R²ω): 0.3159721687377325\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.26915101237325645\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 33.59845161437988}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.008818442281499092\n", + "R-squared (R²): 0.3157917854082889\n", + "Mean Absolute Error (MAE): 0.05468105835966916\n", + "Mean Loss (Lm): 3.059551065209831e-05\n", + "Mean L1 Loss: 0.05472354739057917\n", + "Mean L2 Loss: 0.008839747326674243\n", + "Weighted L1 Loss: 0.05440865324352578\n", + "Weighted L2 Loss: 0.00877451136893162\n", + "Weighted R-squared (R²ω): 0.3157917854082889\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.268958281949605\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 37.028040170669556}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of clusters = 128\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.0009487480803653127\n", + "R-squared (R²): 0.21300218334147547\n", + "Mean Absolute Error (MAE): 0.013324091415726295\n", + "Mean Loss (Lm): 2.329395341171825e-06\n", + "Mean L1 Loss: 0.013362085937517735\n", + "Mean L2 Loss: 0.0009605350157729051\n", + "Weighted L1 Loss: 0.011202851587276968\n", + "Weighted L2 Loss: 0.0007977042191035696\n", + "Weighted R-squared (R²ω): 0.21300218334147547\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.09734693588763943\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (LinearRegression)', 'time': 31.362372159957886}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.0009580545115758645\n", + "R-squared (R²): 0.21464005511373074\n", + "Mean Absolute Error (MAE): 0.013468344505428432\n", + "Mean Loss (Lm): 1.0926129382582417e-05\n", + "Mean L1 Loss: 0.013477891576279091\n", + "Mean L2 Loss: 0.0009602818460055601\n", + "Weighted L1 Loss: 0.01328443501423196\n", + "Weighted L2 Loss: 0.000944972330785836\n", + "Weighted R-squared (R²ω): 0.21464005511373074\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.09922550523377383\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (LinearRegression)', 'time': 32.09215259552002}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.0009602709311562749\n", + "R-squared (R²): 0.21502822519358122\n", + "Mean Absolute Error (MAE): 0.013500604429611433\n", + "Mean Loss (Lm): 1.518428338620481e-08\n", + "Mean L1 Loss: 0.013500604429611438\n", + "Mean L2 Loss: 0.0009602709311562752\n", + "Weighted L1 Loss: 1.3500604429611437e-10\n", + "Weighted L2 Loss: 9.60270931156275e-12\n", + "Weighted R-squared (R²ω): 0.21502822519358122\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.09967071982593301\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (LinearRegression)', 'time': 33.42007064819336}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.0009603808389685411\n", + "R-squared (R²): 0.21502287658251817\n", + "Mean Absolute Error (MAE): 0.01350021659597726\n", + "Mean Loss (Lm): 1.8169898998721123e-06\n", + "Mean L1 Loss: 0.013501550396716393\n", + "Mean L2 Loss: 0.000960271331582808\n", + "Weighted L1 Loss: 0.013459709758875725\n", + "Weighted L2 Loss: 0.0009574992562974063\n", + "Weighted R-squared (R²ω): 0.21502287658251817\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.0996645851962521\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (LinearRegression)', 'time': 35.484482765197754}\n", + "\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "max_iters = 50\n", + "kernel_width = 0.5\n", + "num_perturbations = 1000\n", + "cluster_list = [32, 64, 128]\n", + "fidelity_scores: List[float] = []\n", + "running_times: List[float] = []\n", + "all_top_features: List = []\n", + "\n", + "for num_clusters in cluster_list:\n", + "\n", + " print(\"#\", \"=\" * 100)\n", + " print(f\"Number of clusters = {num_clusters}\")\n", + " print(\"#\", \"=\" * 100, end=\"\\n\\n\\n\")\n", + "\n", + " num_top_features = round(0.2 * num_clusters)\n", + "\n", + " common_kwargs = dict(\n", + " sample_input=sample_input,\n", + " sample_label=sample_label,\n", + " model=model,\n", + " num_clusters=num_clusters,\n", + " num_top_features=num_top_features,\n", + " num_perturbations=num_perturbations,\n", + " device=device,\n", + " kernel_width=kernel_width,\n", + " surrogate_model_type=\"linear\",\n", + " max_iters=max_iters,\n", + " random_seed=random_seed,\n", + " clustering_mode=\"kmeans\",\n", + " cluster_labels=None,\n", + " )\n", + "\n", + " # LIME\n", + " run_experiment(\n", + " lime_explain,\n", + " {**common_kwargs, \"epsilon\": 0, \"distance_mode\": \"mask\"},\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - Wasserstein\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 0,\n", + " \"distance_metric\": \"wasserstein\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - Anderson (special epsilon)\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 1e-8,\n", + " \"distance_metric\": \"anderson\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - KS\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 0,\n", + " \"distance_metric\": \"ks\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 862 + }, + "id": "g_65jvHiow9R", + "outputId": "b2d1b712-0e6b-4ea4-936c-07386052c56c" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namenum_clustersmser2maemean_lossmean_l1mean_l2weighted_l1weighted_l2weighted_r2weighted_adj_r2kernel_widthperturbation
0LIME-COS-kmeans-mask (LinearRegression)320.0289810.6048520.1339798.570200e-040.1360250.0298321.118200e-012.418748e-020.6048520.5917760.51000
1SMILE-WD-kmeans-spatial (LinearRegression)320.0293570.6124600.1354661.681499e-030.1362480.0297951.294050e-012.804403e-020.6124600.5996360.51000
2SMILE-AD-kmeans-spatial (LinearRegression)320.0297860.6133280.1365864.268491e-090.1365860.0297861.365864e-092.978577e-100.6133280.6005330.51000
3SMILE-KS-kmeans-spatial (LinearRegression)320.0297280.6128950.1364222.946240e-040.1365200.0297861.352369e-012.946947e-020.6128950.6000850.51000
4LIME-COS-kmeans-mask (LinearRegression)640.0083990.3097530.0527991.431387e-040.0538060.0088474.422749e-027.035151e-030.3097530.2625060.51000
5SMILE-WD-kmeans-spatial (LinearRegression)640.0086870.3141890.0541132.636361e-040.0543970.0088415.276651e-028.470801e-030.3141890.2672460.51000
6SMILE-AD-kmeans-spatial (LinearRegression)640.0088400.3159720.0547719.857120e-090.0547710.0088405.477090e-108.839721e-110.3159720.2691510.51000
7SMILE-KS-kmeans-spatial (LinearRegression)640.0088180.3157920.0546813.059551e-050.0547240.0088405.440865e-028.774511e-030.3157920.2689580.51000
8LIME-COS-kmeans-mask (LinearRegression)1280.0009490.2130020.0133242.329395e-060.0133620.0009611.120285e-027.977042e-040.2130020.0973470.51000
9SMILE-WD-kmeans-spatial (LinearRegression)1280.0009580.2146400.0134681.092613e-050.0134780.0009601.328444e-029.449723e-040.2146400.0992260.51000
10SMILE-AD-kmeans-spatial (LinearRegression)1280.0009600.2150280.0135011.518428e-080.0135010.0009601.350060e-109.602709e-120.2150280.0996710.51000
11SMILE-KS-kmeans-spatial (LinearRegression)1280.0009600.2150230.0135001.816990e-060.0135020.0009601.345971e-029.574993e-040.2150230.0996650.51000
\n", + "
" + ], + "text/plain": [ + " name num_clusters mse \\\n", + "0 LIME-COS-kmeans-mask (LinearRegression) 32 0.028981 \n", + "1 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.029357 \n", + "2 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.029786 \n", + "3 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.029728 \n", + "4 LIME-COS-kmeans-mask (LinearRegression) 64 0.008399 \n", + "5 SMILE-WD-kmeans-spatial (LinearRegression) 64 0.008687 \n", + "6 SMILE-AD-kmeans-spatial (LinearRegression) 64 0.008840 \n", + "7 SMILE-KS-kmeans-spatial (LinearRegression) 64 0.008818 \n", + "8 LIME-COS-kmeans-mask (LinearRegression) 128 0.000949 \n", + "9 SMILE-WD-kmeans-spatial (LinearRegression) 128 0.000958 \n", + "10 SMILE-AD-kmeans-spatial (LinearRegression) 128 0.000960 \n", + "11 SMILE-KS-kmeans-spatial (LinearRegression) 128 0.000960 \n", + "\n", + " r2 mae mean_loss mean_l1 mean_l2 weighted_l1 \\\n", + "0 0.604852 0.133979 8.570200e-04 0.136025 0.029832 1.118200e-01 \n", + "1 0.612460 0.135466 1.681499e-03 0.136248 0.029795 1.294050e-01 \n", + "2 0.613328 0.136586 4.268491e-09 0.136586 0.029786 1.365864e-09 \n", + "3 0.612895 0.136422 2.946240e-04 0.136520 0.029786 1.352369e-01 \n", + "4 0.309753 0.052799 1.431387e-04 0.053806 0.008847 4.422749e-02 \n", + "5 0.314189 0.054113 2.636361e-04 0.054397 0.008841 5.276651e-02 \n", + "6 0.315972 0.054771 9.857120e-09 0.054771 0.008840 5.477090e-10 \n", + "7 0.315792 0.054681 3.059551e-05 0.054724 0.008840 5.440865e-02 \n", + "8 0.213002 0.013324 2.329395e-06 0.013362 0.000961 1.120285e-02 \n", + "9 0.214640 0.013468 1.092613e-05 0.013478 0.000960 1.328444e-02 \n", + "10 0.215028 0.013501 1.518428e-08 0.013501 0.000960 1.350060e-10 \n", + "11 0.215023 0.013500 1.816990e-06 0.013502 0.000960 1.345971e-02 \n", + "\n", + " weighted_l2 weighted_r2 weighted_adj_r2 kernel_width perturbation \n", + "0 2.418748e-02 0.604852 0.591776 0.5 1000 \n", + "1 2.804403e-02 0.612460 0.599636 0.5 1000 \n", + "2 2.978577e-10 0.613328 0.600533 0.5 1000 \n", + "3 2.946947e-02 0.612895 0.600085 0.5 1000 \n", + "4 7.035151e-03 0.309753 0.262506 0.5 1000 \n", + "5 8.470801e-03 0.314189 0.267246 0.5 1000 \n", + "6 8.839721e-11 0.315972 0.269151 0.5 1000 \n", + "7 8.774511e-03 0.315792 0.268958 0.5 1000 \n", + "8 7.977042e-04 0.213002 0.097347 0.5 1000 \n", + "9 9.449723e-04 0.214640 0.099226 0.5 1000 \n", + "10 9.602709e-12 0.215028 0.099671 0.5 1000 \n", + "11 9.574993e-04 0.215023 0.099665 0.5 1000 " + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fidelity_scores_df = pd.DataFrame(fidelity_scores)\n", + "fidelity_scores_df = fidelity_scores_df.sort_values(by='num_clusters')\n", + "fidelity_scores_df = fidelity_scores_df[fidelity_scores_df['num_clusters']!=1024]\n", + "fidelity_scores_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 334 + }, + "id": "WZS_uzfIow9R", + "outputId": "5f4f9669-1bfa-4bf7-ef02-80326f796143" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namenum_clustersmser2maemean_lossmean_l1mean_l2weighted_l1weighted_l2weighted_r2weighted_adj_r2kernel_widthperturbation
0LIME-COS-kmeans-mask (LinearRegression)320.0289810.6048520.1339798.570200e-040.1360250.0298321.118200e-012.418748e-020.6048520.5917760.51000
1SMILE-WD-kmeans-spatial (LinearRegression)320.0293570.6124600.1354661.681499e-030.1362480.0297951.294050e-012.804403e-020.6124600.5996360.51000
2SMILE-AD-kmeans-spatial (LinearRegression)320.0297860.6133280.1365864.268491e-090.1365860.0297861.365864e-092.978577e-100.6133280.6005330.51000
3SMILE-KS-kmeans-spatial (LinearRegression)320.0297280.6128950.1364222.946240e-040.1365200.0297861.352369e-012.946947e-020.6128950.6000850.51000
\n", + "
" + ], + "text/plain": [ + " name num_clusters mse \\\n", + "0 LIME-COS-kmeans-mask (LinearRegression) 32 0.028981 \n", + "1 SMILE-WD-kmeans-spatial (LinearRegression) 32 0.029357 \n", + "2 SMILE-AD-kmeans-spatial (LinearRegression) 32 0.029786 \n", + "3 SMILE-KS-kmeans-spatial (LinearRegression) 32 0.029728 \n", + "\n", + " r2 mae mean_loss mean_l1 mean_l2 weighted_l1 \\\n", + "0 0.604852 0.133979 8.570200e-04 0.136025 0.029832 1.118200e-01 \n", + "1 0.612460 0.135466 1.681499e-03 0.136248 0.029795 1.294050e-01 \n", + "2 0.613328 0.136586 4.268491e-09 0.136586 0.029786 1.365864e-09 \n", + "3 0.612895 0.136422 2.946240e-04 0.136520 0.029786 1.352369e-01 \n", + "\n", + " weighted_l2 weighted_r2 weighted_adj_r2 kernel_width perturbation \n", + "0 2.418748e-02 0.604852 0.591776 0.5 1000 \n", + "1 2.804403e-02 0.612460 0.599636 0.5 1000 \n", + "2 2.978577e-10 0.613328 0.600533 0.5 1000 \n", + "3 2.946947e-02 0.612895 0.600085 0.5 1000 " + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "filtered_fidelity_scores_df = fidelity_scores_df[fidelity_scores_df['num_clusters'] == 32]\n", + "filtered_fidelity_scores_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 426 + }, + "id": "xatCOUdNow9S", + "outputId": "4acc414b-d90b-4190-97b0-817bcac88dcf" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nametime
0LIME-COS-kmeans-mask (LinearRegression)34.105462
1SMILE-WD-kmeans-spatial (LinearRegression)34.292512
2SMILE-AD-kmeans-spatial (LinearRegression)35.828859
3SMILE-KS-kmeans-spatial (LinearRegression)39.134457
4LIME-COS-kmeans-mask (LinearRegression)32.707950
5SMILE-WD-kmeans-spatial (LinearRegression)33.246099
6SMILE-AD-kmeans-spatial (LinearRegression)33.598452
7SMILE-KS-kmeans-spatial (LinearRegression)37.028040
8LIME-COS-kmeans-mask (LinearRegression)31.362372
9SMILE-WD-kmeans-spatial (LinearRegression)32.092153
10SMILE-AD-kmeans-spatial (LinearRegression)33.420071
11SMILE-KS-kmeans-spatial (LinearRegression)35.484483
\n", + "
" + ], + "text/plain": [ + " name time\n", + "0 LIME-COS-kmeans-mask (LinearRegression) 34.105462\n", + "1 SMILE-WD-kmeans-spatial (LinearRegression) 34.292512\n", + "2 SMILE-AD-kmeans-spatial (LinearRegression) 35.828859\n", + "3 SMILE-KS-kmeans-spatial (LinearRegression) 39.134457\n", + "4 LIME-COS-kmeans-mask (LinearRegression) 32.707950\n", + "5 SMILE-WD-kmeans-spatial (LinearRegression) 33.246099\n", + "6 SMILE-AD-kmeans-spatial (LinearRegression) 33.598452\n", + "7 SMILE-KS-kmeans-spatial (LinearRegression) 37.028040\n", + "8 LIME-COS-kmeans-mask (LinearRegression) 31.362372\n", + "9 SMILE-WD-kmeans-spatial (LinearRegression) 32.092153\n", + "10 SMILE-AD-kmeans-spatial (LinearRegression) 33.420071\n", + "11 SMILE-KS-kmeans-spatial (LinearRegression) 35.484483" + ] + }, + "execution_count": 100, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "linear_running_times = running_times.copy()\n", + "running_times_df = pd.DataFrame(running_times)\n", + "running_times_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 881 + }, + "id": "rStPkAgnow9S", + "outputId": "e207dcea-4eee-40ca-8514-eb173233edee" + }, + "outputs": [ + { + "data": { + "image/png": "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nhdafmbKzECZiIgsgq+HI358tSY2npqBLz3/RJ9L01H5eDRirGKgczC/wCq3qVWrlro1VEbZ29urR0onQebaI6svu7mWPyexrlhX3Kdy9/HX9s0puNe2P/aNfhnlzkSj8qFgHOrYEA7vjEGDTs8/fjkzZWauGRERWQxpIDtW9sXSd3vieIdF+LlVA/zTcDBsbWyNXTSzJrNTy+2dkk++Jc+9vb2NVi4iIjJf3oXKoNvqEzjbvy5CHYECj4C4yNAc+34GykREZHG8nO0wo1cVdH7rcwwd+LpKz6bnZ2dnh+rVq2PXrl2Jr8lkXvK8bt26rFoiInpuXT/4GR4L5+HCyzXR5OX/H3KT3Zh6TUREFqtJ6fzGLoLZkMlbLl26lPhcbuEkqdJeXl4oVKiQGi88YMAA1KhRQ6VRz5o1S91SauDAgUYtNxERmb9SVZqoR05ioExERETpOnLkCJo2bZr4XD+RlgTHixYtQq9evRAYGIiPP/4Y9+7dU/dM3rZt2zMTfBEREZkDBspERESUriZNmqR726Vhw4apBxERkbnjGGUiIiIyW3PnzkW5cuVQs2ZNYxeFiIhyEQbKREREZLaGDh2KgIAAHD582NhFISKiXISBMhEREREREZEBBspEREREREREBhgoExERERERERlgoExERERERERkgIEyERERERERkQHeRzkd+ntGhoSEwFzLL2W3srJSD2I9cZ/i8WeKzP23St9GpHefYco+bK8th7n/XuQk1hXrifvU87fXDJTTERoaqv7v7++fbmUSEZFlkzbD3d3d2MWwSGyviYgoK9trK42Xv9OUkJCAO3fuwNXV1WyvmkiQf/PmTbi5uRm7OCaL9cS64n7FY/BFSFMqja6vry90Oo5qMga215aDbTbrivsUj7+caK/Zo5wOqUA/Pz+YOwmSGSiznrhP8fgzdeb8W8WeZONie215zPn3IqexrlhP3Kcy317zsjcRERERERGRAQbKRERERERERAYYKOdy9vb2mDhxovo/sZ64T/H4M1X8rSJLx2OAdcX9isefObC3oNiCk3kRERERERERGWCPMhEREREREZEBBspEREREREREBhgoExERERERERlgoExERERERERkgIFyLjR16lRYWVlh1KhRia9FRUVh6NChyJMnD1xcXNCtWzfcv38fluj27dvo27evqgtHR0dUrFgRR44cSXxf0zR8/PHH8PHxUe+3aNECFy9ehCWJj4/HRx99hKJFi6o6+D/2zgNOiiL742/S5pwzWZKCCieinoqoGM6EZw6IHp6Z0/+pmHM6z3Aqp6eeop6BQ8V4eioG9MQACgaCoEhedtmcY/8/v5qtoWd2ZnZ2md2d2fl9+RQ7093TXV1dXa9evVevhg0bJrfddpsqm0gvp8WLF8sxxxwjeXl56j177bXX3PYHUi7l5eVyxhlnSFJSkqSkpMh5550ntbW1Ekll1dLSIldffbV6/+Lj49UxZ599tmzdujUiy4pEJpTX/qG8DgzKbN9QZgcOZXZnqCgPML7++mv5xz/+IePGjXPbfvnll8ubb74pCxYskE8++UR1RqdPny6RRkVFhey///7icDjknXfekZUrV8p9990nqamprmP+8pe/yEMPPSSPPfaYfPnll6oTP23aNDXYECncc8898uijj8ojjzwiq1atUt9RLg8//LBEejnV1dXJ+PHjZe7cuV73B1IuUPx+/PFHef/99+Wtt95Swun888+XSCqr+vp6+eabb9SADP6++uqrsmbNGjn22GPdjouUsiKRB+W1fyivA4cy2zeU2YFDme0FgwwYampqjBEjRhjvv/++cdBBBxmzZ89W2ysrKw2Hw2EsWLDAdeyqVatgGjSWLFliRBJXX321ccABB/jc397ebuTk5Bj33nuvaxvKLzo62njxxReNSOHoo482zj33XLdt06dPN8444wz1meXkBO/QwoULXWUUSLmsXLlS/e7rr792HfPOO+8YFovF2LJlixEpZeWNr776Sh23YcOGiC4rMvChvO4ayuvAocwODMrswKHMdkKL8gACrtVHH320cvU0s2zZMuXmaN4+atQoKSoqkiVLlkgk8cYbb8jEiRPlpJNOkqysLNlrr73kiSeecO1fv369FBcXu5VVcnKyTJo0KaLKar/99pNFixbJTz/9pL6vWLFCPvvsMznyyCPVd5aTdwIpF/yFCzHqoQbHW61WZYGOZKqqqpSLNsoHsKzIQIXyumsorwOHMrtnUGbvGlURILPt/Z0BEhxeeukl5b4IVy5P0HGPiopyVWRNdna22hdJ/PLLL8ql+IorrpBrr71Wlddll12mymfGjBmu8kDZRHJZzZkzR6qrq9WAis1mU/Of7rjjDuUGC1hO3gmkXPAXgzRm7Ha7pKWlRVQd8wSu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s2v/8uXLjYMPPthISEgwEhMTjb333tv4+uuv3e5DU1JSYkyYMME4/vjjjcbGRq/P5d577zUmTpzotg33imeBZx1IPcezQX298sor1X1lZ2cbN910k9tvcK7zzjvPyMjIUPmeMmWKsXTpUtf7h2d67LHHqrJC+SNP77//vts5UP9vvfVW46yzzlLnQD4A8rpw4ULXcdXV1Wrb3/72N9c2vF8nnXSSKh/kEddCndTgueh3Li0tTT2Hs88+u9N9Xnzxxcbs2bON9PR09RzA999/r94P5Bv5P/PMM43S0lLX7xYsWKDqX0xMjDr31KlTlVzoql6hDMePH++qV3hnUIdQb6KiotQ+s+zR79grr7yi8oY6NG7cOPUOmcH7huM836Peard7S1b448477zSOPPJIn/vRBlgsFiNS6M1n0Bcym/I6MHldX1+v2gfILxxPee1bXpvrFeU15bWG8jpwWRGwRRlznmAe9wVGGeHqRXZp0ELqm1v7JfW2N0B2drZyW9aR0eEKPX/+/KAtKQaXjZEjR6rRaW/eDrAOYooARqPPOOMM5UbtuebaBRdcIP/973/VKDasXEivvfaaNDU19ShP+N1JJ52kRso//fRTt+A6t912m5x99tlqH6xCp59+uvzxj39U7kawEOF5XHLJJa7j8XscP3v2bLUMzD/+8Q/lFnzHHXe4jrFarcqC9uOPP6py/vDDD+Wqq65yyxPK/a9//as899xzsnjxYjVyC1ca0Nraqlzq8R5/9913smTJEjn//PO7jByI62zdulWd7/7775ebbrpJfve730lqaqp8+eWXqlxxb5s3b3b9Bu7PyD/uBS7OTzzxhDzwwAOu/XhGBQUF8vXXXytPljlz5ijXHG/L0qFtQkCjl19+WbnIewPlBzf8XQXlirYO9/WXv/xFWVLef/991348b6zb984776h877XXXqreo06B2tpaOeqoo5TrErwV0KbCTdbT7R/PaPz48eoYWFk8wbP65z//qT5j+oBeAgHXQtnifjFFAHUY19CjzPfcc496V2Atwv7q6mpVx73dJ86LY2DJgXv6IYccou4H9RNzirZv3y4nn3yyOh4WpNNOO029z6tWrVJu7dOnT1f1uLv1CvXhvvvuU2WA43FPsIyuXbvW7bjrrrtO1V28Q7vttpu6Pq6lwfuGdgdlMVBBe/Gf//zH5/6///3vITvv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leCnn35S67NNmDChd3JJCCGEEMplQgghJJQU5Y8++sjNYow1SJ955hlJTU1V2yoqKmTmzJny29/+tvdySgghhBDKZUIIISQU5yjfd999ctddd7mUZIDPt99+u9pHCNnJwQcfLH/6059YJL3Ir7/+KhaLRZYvXx7wb8455xw5/vjjuzzurLPOkjvvvLPX8kF6Bsr5tddeC2rx7bvvvvLKK6+E5SOhXCZk16G87n0oryMPS5jL624rytXV1VJaWtppO7bV1NRIKDJ48GAZN26c7LnnnjJlypT+zk7Yg2d94YUXSlFRkURHR0tOTo5MmzbNbX1WlDlejpdeeqnT78eOHav2zZs3z+34Bx980Od3bw2tt/TFF1/4fKkuuOACt22PPfZYp3xoJUp7R3z88ceuc1utVklOTpa99tpLrrrqKtm2bVvAZUaCgzcFF2sN4lnsvvvuQS3mFStWyH/+8x+57LLLAupI9VY+esrNN9/sqruYGoP8nX/++VJeXi7hDsr5yCOPDOo5r7/+epkzZ460t7dLuBGOcpn0DQNdXpu9GSmvQwvK68ChvA5ded1tRfmEE05QDdOrr74qmzdvVgla/XnnnSfTp0+XUOXzzz9Xlh6zGznpGSeeeKKatw73e8xPf+ONN5QCUVZW5nYcOuZPP/202zYIxuLiYomPj9/l4v/ggw9Uh9mcfM2TxwAJhKgZ1AXk0XM7vh9yyCFu29asWSNbt26Vr7/+Wq6++mp1bShE33///S7fB9k1oASi82e3BzSTJGAefvhhOemkkyQhIaFf89Fd2traXMIDnVy8Fxs3blTv4rvvvqs6zb2JYRgqhkVvgnJGpz+YQPGGUvnOO+9IuBGucpn0PpTXlNehBOW1O5TXoS+vu60oY1QPGTz99NNl0KBBKuHzEUccIX//+997J5ckZKisrJRPP/1U7rnnHqV84vnvs88+cs0118ixxx7rduwZZ5whn3zyiWzatMm17amnnlLbg6FMpKenqw6zOTkcDq/HIq9QdqGka5A3jEiZFeX169fLhg0bOnkeZGVlqfPvtttucuqpp6rR+MzMzG4rHW+//baySj///PNuI65w783OzpaUlBS59dZblaJx5ZVXSlpamhQUFHQacECZnnzyyep4HHPcccepkXsNFPrDDjtMMjIy1PUOOuggFYTPDEbnn3zySdXJjouLkxEjRqhBDw1iD+BZ4T5jY2PVfs98mPF3vLYqwGKx3377SUxMjBpowDMwCwx07IcMGaJ+j2CBf/vb39xGXDE48/rrr7ssEnh2nq5cXZ0nEHCOl19+WY455piAf+OZD+QNXggffvih/OY3v1FljHtHPTSD+9l7771VmQwdOlRuueUWN0UTcSH22GMPNbiEgZ2LLrpIamtrXfthYUE9wLMbM2aMUiChGAO8Z6i3+fn5cuihhyrF//3333e7PurA6NGj1fVHjRrVqR3HICO8cbB/4sSJyoXK8z7xHQILA1W4/meffaaUdUzT0c9h/Pjxqkx91Re8W9pa1NzcLJdcconk5uaq66Kdwbl8uXJhwAqDWzgP2gVYzs1lpN+zv/71r+qcOObiiy+WlpYWtw7cUUcd5dWqFupQLhNvUF5TXvuC8prymvI6QIweUltba6xYsUIlfO4pn3zyifG73/3OyM3NNZCdhQsXdjrmkUceMQYNGmRER0cb++yzj/Hll1926xqDBw829t57b2PixInGv/71r279tqqqSuULf4NJQ0ODsXLlSvXXRXu7YTTVBjW1N9YYLXWV6q/fY3HtAGhpaTESEhKMP/3pT0ZjY6PP4/C8HnjgAePYY481brvtNrWtrq7OSEpKMr799lsjOTnZePrppzsd7+u7mfXr16tngvMECuqow+EwXnjhBfX9xx9/VHnBPeB+fv75Z3VvTz75pBETE+O6t48++khdq6KiotM5kT/s2759u8/rHnTQQcbs2bPV5+eff95ITEw03nzzTdf+GTNmqG0XX3yxsXr1auOf//ynOue0adOMO+64w/jpp59U+SHvmzZtUr9pbm42Ro8ebZx77rnGd999p+rR6aefbowcOdJoampSxyxatMh47rnnjFWrVqn95513npGdnW1UV1e7ro3rFBQUqDJZu3atcdlll6myKCsrU/uRpz333NP4+uuvVZm///77xhtvvGG0t7erssJfM76ONz8zXO/ll19WefrDH/6g7n3Hjh2u+7rxxhvV73/55Rf1rsbFxRnz589X+2tqaoyTTz7ZOOKII4xt27aphPv1rA9dnUeX+3HHHefzuX3zzTfqnMXFxT6fpyee+dB1B20WPqPO/fa3vzX2228/128WL16s6uG8efNUHXzvvfdUe3XzzTe71bMPP/xQnR/PFc/5wgsvdO3He4T6gfP+73//U/UI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uK9++umncs8998iUKVNk0KBBss8++8g111wjxx57rNuxZ5xxhnLT37Rpk2vbU089pbYHQ7lIT09XHWhzcjgcfn+zfv16+fzzz2XOnDmy2267yauvvur1uKysLHU+HHPqqafK//73P8nMzOy20vH2229LcnKyPP/88y4XYLij3HnnnZKdnS0pKSly6623KkUDbiUYhCooKOg0wIAyPPnkk9XxOOa4445TLk0aKPSHHXaYZGRkqOsddNBB8s0333Ryh3nyySflhBNOUOutjhgxQg1yaCoqKtSzwX3Gxsaq/f6CBPk7HnnD9V566SXZb7/9JCYmRg00oD6YBcZ5552n3Jfx+5EjR6qI+pqbb75ZDca8/vrr6lxIH3/8sevcy5cvD+g8gYBzvPzyy3LMMccE/BvPfCBv+I74DRMnTlRlvP/++6tBFzO4n7333luVydChQ+WWW25xUzTvv/9+2WOPPdRgEgabLrroIqmtrXXtnzdvnqoHeHZjxoxRCiQUY4D3CvU2Pz9fDj30UKX4v//++27XRx2AezmuP2rUKPn73//uth/vB1zJsR/3AXd1b/cJgYWBKVz/s88+U8r6XXfd5XoOWJoIZRpIfWlublZLCuF+sQ/tCs6lwfXMbvMYsDrkkEPUsWgHzj//fLcy0u/ZX//6VzVFCMdcfPHF0tLS4taBO+qoo1QdDXcol4k3KK8pr83t75lnnkl5TXlNed1NAtJW9tprL7e5yOvWrVOd/MGDB3dSTDw756R7lpmG1oagnxMdWGu71e988lh7bEDzzWFtQ0KnFXMG/Fl5UEemTZumlJ3rr79eDa7Mnz9fKUvPPvus9AfomB999NFKmYTQgHX59NNP7/J36JBfcMEFcvnll6sgdlCku+KFF15Qv8Hf3/3ud67tH374oVKGFy9erBRwKHlQTg488ED58ssvVRn98Y9/VIovjkPnHuU4efJkNUgBZej222+XI444Qr777ju1XipG2mbMmKGsonjm9913n1IC1q5dK4mJia5rQyn7y1/+Ivfee686ForLhg0blPJ9ww03yMqVK5UCBIUb73lDg+/6GMjxUP4xXxsKHRRAKKIYrIDignqJ+1uwYIH6jjKAwgPFBoMCWP911apVUl1d7VKokE9Y+s10dZ5AQDlWVVUpxXBXue6661T5QyHE8581a5Z6zgDP7+yzz5aHHnpIfvvb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7Kr/qLO77bab3HXXXao+hzN4HggiibUOg0VGRoacffbZctNNN8lAgnKZ+ILymvQ2lNeBQ3kdfvK62+sor1mzRg488MBO29GZCeZIAgldTjzxRGWFe+aZZ2To0KGyfft2WbRokZSVlbkdV1hYKE8//bSceuqprm1QZIuLiyU+Pn6X8/HBBx8opdtMenp6wL9/++235aSTTpI5c+bIDTfcoCK2YwDgyy+/lIcffljGjBmj7gmWRs97I30PvFiQggmUyUceeURuvfXWfs1HT8A7GBUVpT7PmjVL3QM8fBDk6fzzz1cDQKjPfXH93gDnxiBcsJk5c6ZMmDBB7r33XleQynCHcplEkry+8cYbVdt90UUXyddff015HYJQXrtDeR2+8rrbFmV0XNatW9dpO+YnoxEmAxsMhsAKe88998iUKVNk0KBBss8++ygr7LHHHut27BlnnCGffPKJbNq0ybXtqaeeUtvt9m6P0XQCQhb10ZzMXg7+eOGFF2T69Onyl7/8RQldzRtvvCHXXnutHHXUUWqUFC/opZdeKueee2638oYRsNzcXPnuu+/Ud5wLVh+MjiUkJKhyw7Uw2n/cccepbePGjZOlS5d2eq9++9vfKqGDjsxll10mdXV1rv2IDTBx4kRJTExU93/66adLSUlJJ3cYdIxwXFxcnLLUoWOtWbFihXqWOAfWQcc9e+bDDI4/9NBD1bGex2t3K1hjR4wYoSyc8DYw14Gff/5Z3XN2dra679/85jeqE2Uecd2wYYNcfvnlLkup+dyBnicQli1bps5z9NFHB/wbz3xoTwU8CzxnDBqis1lTU+M6pr29XVl5YbnGsxw/fry8/PLLrv0YpDnvvPNc+0eOHCl/+9vf3K57zjnnyPHHHy933HGH5OXlqWM0eK54/qhXECyoS++//75rPxToP//5z5Kfn686vZMmTVJ1wwy8hFDHcK4TTjhB7r//fq/3+eSTT6p84tnqNuEPf/iD8r5AfTjkkENUHQmkfuE5H3PMMWqpIzxDlMt//vMfn65ccDFGZxueLCjr++67z+0esA1TgPC+4nrwenn88cfdjsHvUX4LFy6UgQLlMolEef3WW2+pe6G89i+v0SajjYVsorymvKa87mVFGZaL2bNnK6sbOjFbt26V559/XnXCetN6EQlghLS9vr5fUqBumujMIkER0vPTfQEFBkoSRrIB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oiIlPz9f/FWZOHGiMnr06FKvOTQ0VPnss8+u+bx48WIlIiJCHGv+/PlK+/btxfdeXl7KvHnzjPZ3dHRU3NzcjMrmzZtLPWfz5s2VUaNGldkWsbGxoi0M62bIwoULxfe7du0SnxcsWKD4+Pgozs7OSo8ePZSXX35ZOXjwYJlyioyM/H975wEfRfH+4TeNTui9996LNKUJgnRQiqCoWGmCiCjVhqJY/oqKBXsvP6pUkaIUkWLovffeIZCQ/X+e0T03x11yCQm55N7Hz0rubm93dmb2dr7zlrE4xh9//GE1b97catSokXXmzJlY+/L5yJEjXa+XL19u3vvkk09c73333XfmvDYc6+WXX451nK+++soqUKCA1+v96aefrFy5crleU8ecZ8eOHa733nvvPStfvnzm75MnT5rPFy1aZPkKfYH2unbtmuu9cuXKWbfeeqvrdXR0tGk/rslbnxo/frxVq1Yt1+usWbNan3/+ucdzch30mS1btlhFihSxBg4cGOtYnqhWrZr1wgsvxHpv4cKF5npPnz7t9dqc/bxx48amPZ3UqVPHGjZsmPmbNg8PD7ciIyNj7UOf//DDD72WrVKlStaECRNcr6nPjh07XldXlJU+QV0GBweb18WLFzftZvcH6t5ZF1euXLEyZsxozZ0717ymralrZ9sULVr0uuu0702bF1980WrZsmWs9/bv32/KsHXrVmv16tXm7z179lx3ffH1qzFjxpj2sSlYsKA1duzY6+q5b9++5u/du3eb402aNMn1+caNG81769evj3X9XMdzzz1nJRXuv9k361mRGjh8+LD1yiuvWKVLl7by5s1r9e/f3woNDTVtk1pI7W1A3+f3LL7fQyX111X0tRhr6fbj1tM/rbUqj5njGM/NsB597RNrzUePWYdGlLZ+617CWlqnnLWpXHnXtqROBevnJzpYq5ZOtq7F/PfsTqt1dbPQegqcujqbgGeFWpQVn2nTpo2xqGFtwO06LmsybrtYipybbREkrti2+OIK+u+ETUImd3zajxhlLKXTp083VjmsZFgI7QRPWErtcrjHT2Ndw+103rx5HmNdq1at6vobqxc440x5jzVbsfgB7rtYL+3zsRHDjSXPTlSGCy/WS9yLKQ+uscRTOxOZ4aZaqlQp12ssPlhAAVdd3I2x4GHlxLJnu2Vj8XSeG1drG9oDa7az7M5rYV1b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ejxy5MhkrdcMGTKYOGaycH/55ZfG1RmL7CeffOJxf7JR4+Y9fPhwsy+ilIzUNpcvXzaJuchGTfbppUuXysqVK12xw8WLFzcWZIT5iRMnTIIuRDUJwO677z6ZPHmy7N692yTleuWVV2TmzJley85+CGQsypwLUb59+3aNU1b8BhXKiqIoiqIoipIEfPrppxIdHW2WVBo0aJBJ2pXcjBo1SoYMGWKyUSNou3Xr5jW+mbjgr7/+WmbNmiVVqlQx2abtJZ4AF+qTJ08a0YsAJht369at5fnnnzef4yL92GOPmXNgnWZZKsDizHcoR7ly5aRjx45GYLNUlTcQ7GTn7tKliznXI488Iv369ZNHH300yetIURJDkOUeqKAoiqIoiqIoiqIoAYxalBVFURRFURRFURTFgQplRVEURVEURfFDWJvYueSS+8bniqIkD+p6rSiKoiiKoih+CPHOe/bs8fo5ybVCQ0NvapkUJVBQoawoiqIoiqIoiqIoDtT1WlEURVEURVEURVEcqFBWFEVRFEVRFEVRFAcqlBVFURRFURRFURTFgQplRVEURVEURVEURXGgQllRFEVRFEVRFEVRHKhQVhRFURRFURRFURQHKpQVRVEURVEURVEUxYEKZUVRFEVRFEVRFEWR//h/utWaAEbbdI8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_fidelity_comparison(\n", + " fidelity_scores=fidelity_scores,\n", + " x_column=\"num_clusters\",\n", + " model_filters=[\"LIME\", \"SMILE\"],\n", + " figure_name=\"num_clusters_comparison\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "x9_UmE6tow9T" + }, + "source": [ + "### 4. Bayesian + Num Clusters Sweep" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "gm-Anua3ow9T", + "outputId": "7cebdce0-57f0-439a-aa28-b9e6134452de" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# ====================================================================================================\n", + "Number of clusters = 32\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02901181645353025\n", + "R-squared (R²): 0.6044253739927897\n", + "Mean Absolute Error (MAE): 0.13353628629899633\n", + "Mean Loss (Lm): 0.0010884958734873607\n", + "Mean L1 Loss: 0.135748786501906\n", + "Mean L2 Loss: 0.029932612126687807\n", + "Weighted L1 Loss: 0.11145084493830268\n", + "Weighted L2 Loss: 0.02421357929410383\n", + "Weighted R-squared (R²ω): 0.6044253739927897\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5913350037422926\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (BayesianRidge)', 'time': 33.01188349723816}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029380641145008803\n", + "R-squared (R²): 0.6121545444307817\n", + "Mean Absolute Error (MAE): 0.13511606055077074\n", + "Mean Loss (Lm): 0.0017164569429773957\n", + "Mean L1 Loss: 0.13593576992086748\n", + "Mean L2 Loss: 0.02983661212334291\n", + "Weighted L1 Loss: 0.12907097873336765\n", + "Weighted L2 Loss: 0.028066153593748373\n", + "Weighted R-squared (R²ω): 0.6121545444307817\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5993199481761643\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (BayesianRidge)', 'time': 34.021634340286255}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.07703139321080399\n", + "R-squared (R²): -2.9027483772203766e-06\n", + "Mean Absolute Error (MAE): 0.22190089203252444\n", + "Mean Loss (Lm): 4.268484232738956e-09\n", + "Mean L1 Loss: 0.22190089203252447\n", + "Mean L2 Loss: 0.077031393210804\n", + "Weighted L1 Loss: 2.219008920325245e-09\n", + "Weighted L2 Loss: 7.703139321080401e-10\n", + "Weighted R-squared (R²ω): -2.9027483772203766e-06\n", + "Weighted Adjusted R-squared (Rˆ²ω): -0.03309503603477637\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (BayesianRidge)', 'time': 33.710920095443726}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029749412559997433\n", + "R-squared (R²): 0.6126130340806772\n", + "Mean Absolute Error (MAE): 0.13608326249702626\n", + "Mean Loss (Lm): 0.00030289556333717993\n", + "Mean L1 Loss: 0.13618817755647825\n", + "Mean L2 Loss: 0.029811201334315446\n", + "Weighted L1 Loss: 0.13490099949190779\n", + "Weighted L2 Loss: 0.02949095586776123\n", + "Weighted R-squared (R²ω): 0.6126130340806772\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5997936101826231\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (BayesianRidge)', 'time': 37.09317660331726}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of clusters = 64\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.008532741001868764\n", + "R-squared (R²): 0.29872487252033275\n", + "Mean Absolute Error (MAE): 0.048638655824207205\n", + "Mean Loss (Lm): 0.0004024157394433292\n", + "Mean L1 Loss: 0.04974321783612545\n", + "Mean L2 Loss: 0.009032028093869058\n", + "Weighted L1 Loss: 0.04074275257257393\n", + "Weighted L2 Loss: 0.007147552692687148\n", + "Weighted R-squared (R²ω): 0.29872487252033275\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.2507231525645053\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (BayesianRidge)', 'time': 56.20067286491394}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.008785280527895801\n", + "R-squared (R²): 0.3064216839682987\n", + "Mean Absolute Error (MAE): 0.050486404942388576\n", + "Mean Loss (Lm): 0.0002972451426408451\n", + "Mean L1 Loss: 0.05079429829468971\n", + "Mean L2 Loss: 0.008953272856619381\n", + "Weighted L1 Loss: 0.04923049908060005\n", + "Weighted L2 Loss: 0.008566736836281563\n", + "Weighted R-squared (R²ω): 0.3064216839682987\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.2589468045821717\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (BayesianRidge)', 'time': 36.257290840148926}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.012923064906419042\n", + "R-squared (R²): -1.7365967150961836e-06\n", + "Mean Absolute Error (MAE): 0.05451129391379742\n", + "Mean Loss (Lm): 9.857117899692014e-09\n", + "Mean L1 Loss: 0.05451129391379743\n", + "Mean L2 Loss: 0.012923064906419044\n", + "Weighted L1 Loss: 5.451129391379744e-10\n", + "Weighted L2 Loss: 1.2923064906419047e-10\n", + "Weighted R-squared (R²ω): -1.7365967150961836e-06\n", + "Weighted Adjusted R-squared (Rˆ²ω): -0.06845105332632984\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (BayesianRidge)', 'time': 34.80461072921753}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.00891339166974129\n", + "R-squared (R²): 0.3084248208887088\n", + "Mean Absolute Error (MAE): 0.051125230409400514\n", + "Mean Loss (Lm): 3.640875319066428e-05\n", + "Mean L1 Loss: 0.05117059862831889\n", + "Mean L2 Loss: 0.008936555217561514\n", + "Weighted L1 Loss: 0.050870539393072234\n", + "Weighted L2 Loss: 0.008868987746959534\n", + "Weighted R-squared (R²ω): 0.3084248208887088\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.2610870546179894\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (BayesianRidge)', 'time': 37.7933304309845}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of clusters = 128\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-mask (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.001062297966872332\n", + "R-squared (R²): 0.11881120197112238\n", + "Mean Absolute Error (MAE): 0.008173152371133773\n", + "Mean Loss (Lm): 5.7098620605100514e-05\n", + "Mean L1 Loss: 0.008232157182465068\n", + "Mean L2 Loss: 0.001078224922056317\n", + "Weighted L1 Loss: 0.006871959232127606\n", + "Weighted L2 Loss: 0.0008931765846555542\n", + "Weighted R-squared (R²ω): 0.11881120197112238\n", + "Weighted Adjusted R-squared (Rˆ²ω): -0.010686118519918075\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-mask (BayesianRidge)', 'time': 32.35467314720154}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-spatial (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.0010403367165738395\n", + "R-squared (R²): 0.14718966768636232\n", + "Mean Absolute Error (MAE): 0.008812080623982126\n", + "Mean Loss (Lm): 1.5289651206340515e-05\n", + "Mean L1 Loss: 0.008824915928110905\n", + "Mean L2 Loss: 0.0010432088934650935\n", + "Weighted L1 Loss: 0.008691752155751627\n", + "Weighted L2 Loss: 0.0010261309768750228\n", + "Weighted R-squared (R²ω): 0.14718966768636232\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.021862776140844975\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-spatial (BayesianRidge)', 'time': 34.19790506362915}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-spatial (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.0012233204539071811\n", + "R-squared (R²): -1.142077931781671e-06\n", + "Mean Absolute Error (MAE): 0.008648604608840035\n", + "Mean Loss (Lm): 1.5184283053137904e-08\n", + "Mean L1 Loss: 0.008648604608840036\n", + "Mean L2 Loss: 0.0012233204539071816\n", + "Weighted L1 Loss: 8.648604608840037e-11\n", + "Weighted L2 Loss: 1.2233204539071816e-11\n", + "Weighted R-squared (R²ω): -1.142077931781671e-06\n", + "Weighted Adjusted R-squared (Rˆ²ω): -0.14695883000672083\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-spatial (BayesianRidge)', 'time': 37.301764488220215}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-spatial (BayesianRidge)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.001040914027552986\n", + "R-squared (R²): 0.14919824936218484\n", + "Mean Absolute Error (MAE): 0.008880214079993818\n", + "Mean Loss (Lm): 2.2700825528243485e-06\n", + "Mean L1 Loss: 0.008881880394415358\n", + "Mean L2 Loss: 0.0010407862080683095\n", + "Weighted L1 Loss: 0.008853569367843626\n", + "Weighted L2 Loss: 0.0010377908084067574\n", + "Weighted R-squared (R²ω): 0.14919824936218484\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.02416653399864832\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-spatial (BayesianRidge)', 'time': 44.80440950393677}\n", + "\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "max_iters = 50\n", + "kernel_width = 0.5\n", + "num_perturbations = 1000\n", + "cluster_list = [32, 64, 128]\n", + "fidelity_scores: List[float] = []\n", + "running_times: List[float] = []\n", + "all_top_features: List = []\n", + "\n", + "for num_clusters in cluster_list:\n", + "\n", + " print(\"#\", \"=\" * 100)\n", + " print(f\"Number of clusters = {num_clusters}\")\n", + " print(\"#\", \"=\" * 100, end=\"\\n\\n\\n\")\n", + "\n", + " num_top_features = round(0.2 * num_clusters)\n", + "\n", + " common_kwargs = dict(\n", + " sample_input=sample_input,\n", + " sample_label=sample_label,\n", + " model=model,\n", + " num_clusters=num_clusters,\n", + " num_top_features=num_top_features,\n", + " num_perturbations=num_perturbations,\n", + " device=device,\n", + " kernel_width=kernel_width,\n", + " surrogate_model_type=\"bayesian\",\n", + " max_iters=max_iters,\n", + " random_seed=random_seed,\n", + " clustering_mode=\"kmeans\",\n", + " cluster_labels=None,\n", + " )\n", + "\n", + " # LIME\n", + " run_experiment(\n", + " lime_explain,\n", + " {**common_kwargs, \"epsilon\": 0, \"distance_mode\": \"mask\"},\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - Wasserstein\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 0,\n", + " \"distance_metric\": \"wasserstein\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - Anderson (special epsilon)\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 1e-8,\n", + " \"distance_metric\": \"anderson\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - KS\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 0,\n", + " \"distance_metric\": \"ks\",\n", + " \"distance_mode\": \"spatial\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 862 + }, + "id": "CvzVr13Tow9T", + "outputId": "390c9fc1-e82c-4feb-e6c0-1fbf38794ca1" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namenum_clustersmser2maemean_lossmean_l1mean_l2weighted_l1weighted_l2weighted_r2weighted_adj_r2kernel_widthperturbation
0LIME-COS-kmeans-mask (BayesianRidge)320.0290120.6044250.1335361.088496e-030.1357490.0299331.114508e-012.421358e-020.6044250.5913350.51000
1SMILE-WD-kmeans-spatial (BayesianRidge)320.0293810.6121550.1351161.716457e-030.1359360.0298371.290710e-012.806615e-020.6121550.5993200.51000
2SMILE-AD-kmeans-spatial (BayesianRidge)320.077031-0.0000030.2219014.268484e-090.2219010.0770312.219009e-097.703139e-10-0.000003-0.0330950.51000
3SMILE-KS-kmeans-spatial (BayesianRidge)320.0297490.6126130.1360833.028956e-040.1361880.0298111.349010e-012.949096e-020.6126130.5997940.51000
4LIME-COS-kmeans-mask (BayesianRidge)640.0085330.2987250.0486394.024157e-040.0497430.0090324.074275e-027.147553e-030.2987250.2507230.51000
5SMILE-WD-kmeans-spatial (BayesianRidge)640.0087850.3064220.0504862.972451e-040.0507940.0089534.923050e-028.566737e-030.3064220.2589470.51000
6SMILE-AD-kmeans-spatial (BayesianRidge)640.012923-0.0000020.0545119.857118e-090.0545110.0129235.451129e-101.292306e-10-0.000002-0.0684510.51000
7SMILE-KS-kmeans-spatial (BayesianRidge)640.0089130.3084250.0511253.640875e-050.0511710.0089375.087054e-028.868988e-030.3084250.2610870.51000
8LIME-COS-kmeans-mask (BayesianRidge)1280.0010620.1188110.0081735.709862e-050.0082320.0010786.871959e-038.931766e-040.118811-0.0106860.51000
9SMILE-WD-kmeans-spatial (BayesianRidge)1280.0010400.1471900.0088121.528965e-050.0088250.0010438.691752e-031.026131e-030.1471900.0218630.51000
10SMILE-AD-kmeans-spatial (BayesianRidge)1280.001223-0.0000010.0086491.518428e-080.0086490.0012238.648605e-111.223320e-11-0.000001-0.1469590.51000
11SMILE-KS-kmeans-spatial (BayesianRidge)1280.0010410.1491980.0088802.270083e-060.0088820.0010418.853569e-031.037791e-030.1491980.0241670.51000
\n", + "
" + ], + "text/plain": [ + " name num_clusters mse r2 \\\n", + "0 LIME-COS-kmeans-mask (BayesianRidge) 32 0.029012 0.604425 \n", + "1 SMILE-WD-kmeans-spatial (BayesianRidge) 32 0.029381 0.612155 \n", + "2 SMILE-AD-kmeans-spatial (BayesianRidge) 32 0.077031 -0.000003 \n", + "3 SMILE-KS-kmeans-spatial (BayesianRidge) 32 0.029749 0.612613 \n", + "4 LIME-COS-kmeans-mask (BayesianRidge) 64 0.008533 0.298725 \n", + "5 SMILE-WD-kmeans-spatial (BayesianRidge) 64 0.008785 0.306422 \n", + "6 SMILE-AD-kmeans-spatial (BayesianRidge) 64 0.012923 -0.000002 \n", + "7 SMILE-KS-kmeans-spatial (BayesianRidge) 64 0.008913 0.308425 \n", + "8 LIME-COS-kmeans-mask (BayesianRidge) 128 0.001062 0.118811 \n", + "9 SMILE-WD-kmeans-spatial (BayesianRidge) 128 0.001040 0.147190 \n", + "10 SMILE-AD-kmeans-spatial (BayesianRidge) 128 0.001223 -0.000001 \n", + "11 SMILE-KS-kmeans-spatial (BayesianRidge) 128 0.001041 0.149198 \n", + "\n", + " mae mean_loss mean_l1 mean_l2 weighted_l1 weighted_l2 \\\n", + "0 0.133536 1.088496e-03 0.135749 0.029933 1.114508e-01 2.421358e-02 \n", + "1 0.135116 1.716457e-03 0.135936 0.029837 1.290710e-01 2.806615e-02 \n", + "2 0.221901 4.268484e-09 0.221901 0.077031 2.219009e-09 7.703139e-10 \n", + "3 0.136083 3.028956e-04 0.136188 0.029811 1.349010e-01 2.949096e-02 \n", + "4 0.048639 4.024157e-04 0.049743 0.009032 4.074275e-02 7.147553e-03 \n", + "5 0.050486 2.972451e-04 0.050794 0.008953 4.923050e-02 8.566737e-03 \n", + "6 0.054511 9.857118e-09 0.054511 0.012923 5.451129e-10 1.292306e-10 \n", + "7 0.051125 3.640875e-05 0.051171 0.008937 5.087054e-02 8.868988e-03 \n", + "8 0.008173 5.709862e-05 0.008232 0.001078 6.871959e-03 8.931766e-04 \n", + "9 0.008812 1.528965e-05 0.008825 0.001043 8.691752e-03 1.026131e-03 \n", + "10 0.008649 1.518428e-08 0.008649 0.001223 8.648605e-11 1.223320e-11 \n", + "11 0.008880 2.270083e-06 0.008882 0.001041 8.853569e-03 1.037791e-03 \n", + "\n", + " weighted_r2 weighted_adj_r2 kernel_width perturbation \n", + "0 0.604425 0.591335 0.5 1000 \n", + "1 0.612155 0.599320 0.5 1000 \n", + "2 -0.000003 -0.033095 0.5 1000 \n", + "3 0.612613 0.599794 0.5 1000 \n", + "4 0.298725 0.250723 0.5 1000 \n", + "5 0.306422 0.258947 0.5 1000 \n", + "6 -0.000002 -0.068451 0.5 1000 \n", + "7 0.308425 0.261087 0.5 1000 \n", + "8 0.118811 -0.010686 0.5 1000 \n", + "9 0.147190 0.021863 0.5 1000 \n", + "10 -0.000001 -0.146959 0.5 1000 \n", + "11 0.149198 0.024167 0.5 1000 " + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fidelity_scores_df = pd.DataFrame(fidelity_scores)\n", + "fidelity_scores_df = fidelity_scores_df.sort_values(by='num_clusters')\n", + "fidelity_scores_df = fidelity_scores_df[fidelity_scores_df['num_clusters']!=1024]\n", + "fidelity_scores_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 426 + }, + "id": "ZIaFe77Fow9T", + "outputId": "6bafcbcd-c6f5-4021-84c4-591d5621c2fe" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nametime
0LIME-COS-kmeans-mask (BayesianRidge)33.011883
1SMILE-WD-kmeans-spatial (BayesianRidge)34.021634
2SMILE-AD-kmeans-spatial (BayesianRidge)33.710920
3SMILE-KS-kmeans-spatial (BayesianRidge)37.093177
4LIME-COS-kmeans-mask (BayesianRidge)56.200673
5SMILE-WD-kmeans-spatial (BayesianRidge)36.257291
6SMILE-AD-kmeans-spatial (BayesianRidge)34.804611
7SMILE-KS-kmeans-spatial (BayesianRidge)37.793330
8LIME-COS-kmeans-mask (BayesianRidge)32.354673
9SMILE-WD-kmeans-spatial (BayesianRidge)34.197905
10SMILE-AD-kmeans-spatial (BayesianRidge)37.301764
11SMILE-KS-kmeans-spatial (BayesianRidge)44.804410
\n", + "
" + ], + "text/plain": [ + " name time\n", + "0 LIME-COS-kmeans-mask (BayesianRidge) 33.011883\n", + "1 SMILE-WD-kmeans-spatial (BayesianRidge) 34.021634\n", + "2 SMILE-AD-kmeans-spatial (BayesianRidge) 33.710920\n", + "3 SMILE-KS-kmeans-spatial (BayesianRidge) 37.093177\n", + "4 LIME-COS-kmeans-mask (BayesianRidge) 56.200673\n", + "5 SMILE-WD-kmeans-spatial (BayesianRidge) 36.257291\n", + "6 SMILE-AD-kmeans-spatial (BayesianRidge) 34.804611\n", + "7 SMILE-KS-kmeans-spatial (BayesianRidge) 37.793330\n", + "8 LIME-COS-kmeans-mask (BayesianRidge) 32.354673\n", + "9 SMILE-WD-kmeans-spatial (BayesianRidge) 34.197905\n", + "10 SMILE-AD-kmeans-spatial (BayesianRidge) 37.301764\n", + "11 SMILE-KS-kmeans-spatial (BayesianRidge) 44.804410" + ] + }, + "execution_count": 104, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bayesian_running_times = running_times.copy()\n", + "running_times_df = pd.DataFrame(running_times)\n", + "running_times_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 864 + }, + "id": "PhYCjibPow9U", + "outputId": "f3bd4a2e-6bc8-440b-d97b-689af02c25d9" + }, + "outputs": [ + { + "data": { + "image/png": "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+nzChAmqrbxOU0YDnb/UPOo4mYHyYMryozImKCset1GjRpk+Pw1Z2bJllTNsgveUemF6Fi5fvqyukxEptoXPCe8lnXxy5MgR5Yizk4bOMVPiedz04PGZes70eT6r7Kxgp09q3nnnHTXWisdnZ1hGzyb1ft26dSpqwSUtKItnn30Wrq6uSpe/+uorlTFiDp126kGNGjVUBwbbmXofOgnsPOIwD7aN13v//n2lD+aw048dAY96FwmCLZDPPV+yDedsJWrKUINldFdst9huE2K7kxDb7YC2WxMyJCwsjAOh1F9LYTAYtc3r12v/damhnalUSTtTqbJ2tkZl7f4XUzVjYuJjHdNoNGohISHqr4mYmBjtzJkz6q/5flHxUY9cgmOCtRP3T2hH7h7Rjt8/rgVFB2Xqe+kt5u3KDL/88ouWN29ezd3dXWvatKn21ltvaSdOnEixT6lSpbS5c+dq69ev18qVK6fOsWzZMq1OnTrqcz8/P23JkiUP7W++PmfOHC0hIeGh9l29elXphYeHh+bl5ZViyQiDwaCVLFlStYkEBgZqrq6u2pUrV5L32b17tzo271dqtm7dqj47ePBguudo2bKlNmbMGG3+/PnqGvfs2ZPi8/79+6trY1tMVKpUSWvevHnyemJiorqWVatWqfUVK1aofczlEBcXp65/+/btD7WB+/FzHx8f7bfffkvezra/++67yeuRkZFqG6+LdO3aVRs4cKCWWTLa33SPpk+fnryN97JEiRLajBkz0j3miBEjtOeeey6FvLp3757msY8fP/5ExzFn3bp1mpOTkxYfH59CzryfLi4u6n54enqq81asWFG1ISNSn5/XXKVKleT1X3/9VfP29lb3gAwaNEgbMmRIimPs3btX0+v16h3B/X19fbXw8PAM9S49Dh8+rNoeERGRQs937NiRvM/mzZvVNtM7ic8n182vncvo0aNTHJv6PHv2bCU36qOzs7N2+/bth54bypgsWrRIy58/f4p33+LFi1Pc0ylTpmjt27dPcZ6bN2+qfc6fP5+8je8dbrt27Zr2KNJ651rT1tgz9iLPtGx3WrqUWdudng0PjA60iP0W2y22m4jtTh+x3bdtznZnp/3O3gGKQrag1+vQuXt3BLRqh/2fvYXqf2xFYogTghasQMi69fCf/QU86jbOEWnHJMag0Y//H0mzFAd7H1Tzh2cWRuUY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w1sQBEEQBEEQBEEQuhAxvA3MQw89BJPJhOuvv96zrra2FldddRWSk5MRExODf//738jPz0eos3XrVpx77rlKLpGRkdhzzz2xcOFCz+eapuGuu+5CZmam+nzMmDFYs2YNQhmn04k777wTffr0UTLp168f7r//fiUrHZEbMGfOHJx44onIyspS9+Mnn3zSRI7tkVFJSQnOOeccxMXFISEhARdffDEqKysRqnJraGjALbfcou7T6Ohotc3555+Pbdu2IdTlJvR8RHe3H9HdHUd0d/sR/d1xRHe3jhjeBmXBggV48cUXMXz48Cbrb7jhBnz++ef44IMP8NNPP6kX1XHjxiGUKS0txYEHHgibzYavv/4aK1aswOOPP47ExETPNo888giefvppvPDCC/j999/Vy/7YsWPVQEao8vDDD+P555/Hs88+i5UrV6plyumZZ57xbCNyA6qqqjBixAhMmzbNrxzbIyMaj3/99Re+++47fPHFF0qxXXbZZQhVuVVXV2Px4sVq4Id/P/roI6xevRonnXRSk+1CUW5Cz0Z0d/sR3b1riO5uP6K/O47o7jbQBMNRUVGhDRgwQPvuu++0Qw89VLvuuuvU+rKyMs1ms2kffPCBZ9uVK1fSPanNmzdPC1VuueUW7aCDDmrxc5fLpWVkZGiPPvqoZx1lGR4err377rtaqHL88cdrF110UZN148aN08455xz1f5Fbc3ivffzxx57l9shoxYoV6nsLFizwbPP1119rJpNJ27p1qxaKcvPH/Pnz1XabNm1SyyI3oachurtjiO7eNUR37xqiv3dfZv4INd0tHm8DwlDy448/XoWserNo0SIVoum9fvDgwcjLy8O8efMQqnz22WcYNWoUxo8fj7S0NOy99954+eWXPZ9v2LABO3bsaCK3+Ph47L///iEttwMOOACzZs3C33//rZaXLl2KuXPn4thjj1XLIre2aY+M+Jdh0uyjOtzebDYrD7ngpry8XIWkU1YiN6EnIrq7Y4ju3jVEd3cOor87h/IQ093WQB+A0Lm89957KvSS4Wq+8AU/LCzM07l10tPT1Wehyvr161XI9I033ojbbrtNye7aa69VspowYYJHNpSTN6Eut0mTJsFut6vBG4vFovLGJk+erMJ7icitbdojI/7lgJA3VqsVSUlJId3/vGFYPnO+zzrrLJXPTURuQk9CdHfHEd29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2GGH9Yg5D4WmcFDliy++UC+e/jzh7F9//fUXLrnkElx55ZWYNWtW0IiQg0OdMX+lP3if8dz//PNPnHvuubj00kvx9ddfN6kmyiqigYA50TReWUE62Bk8eLAKM/fl2WefVc+jk046KSDHJQi7i+huIZCI7vaP6O4uNrwnTpyovB4twdA2GhqCEKycc845+Omnn5QhrfPqq6+q9d6eIh16JWlseDd/BrrO+++/j7fffhvvvvsubrvtNmVEc1SQL70//PADDj/8cLXd7bffrgx5Gt7HHnus8mazINI333yjvOtXXXWV2o5hvT///DMefvhh9V16x/fbbz818tqRl2hWv6U3nS/mukedBtSLL76IE044QXkaWZRp3rx5yvinYc/z5P2+bt26JvviAMI+++yDiIgI9O3bF/fee28To4TeQXot6e3v06ePMiArKyubhR7xXPmb3O6YY45pUgSKXmCeJ4+B2zJPddOmTW16UB588EGkp6er71Ah8Lj43EpKSlIhw76DLsyJHThwoDp/ngsHSLyrVS5dulTJnf0gLi5ODT76M2z0yARGNjAdp66ursX+QW92dnZ2s89oWLJ/UWYc3OFf7yiimTNn4qCDDlLnxqn/eN28r80RRxyBq6++utkx0WDWDXge10033aR+n7JlVAZlrUMZ0zuamJioPmckyFdffeU31JwDP2eddZbal+6pZr/3hv3o2muvxc0336yuAc+PIeEt3We8Brwm3Pa7775rNVyNkSe81vzuxRdfrCp2e8Nrz9/W5cX9TpgwoUmUDCO1GJpNWdO457X58MMPm+znqKOOUgNlfG4EO+x7vtfA2/jm9ZLBcaEnIrpbdLc3ortFd0/pwbq73YY388T4gtwSfFFjOJvQs1ETxdc7ur11xwshX9QZpq1X32fo94wZMzptGjwa3YMGDVKGti80Whimy5d9erf5IkFjwxs+QGio0ijlA4NGKdsnn3zSojHXFvze+PHjleedRrx3kaX7778f559/vvqMRvnZZ5+N//znP8qwp4HJa+JtzPH73P66665T+a803GkUTZ482bMNQ/Kffvpp5b3koAYH42h4eUO5P/bYY3jzzTcxZ84cNRhAg1A3mGgc8VmybNkyNRhw2WWXtelp5cAGBzO4Pxr/d999tzJOaUT+/vvvuPzyy9W5/fPPP57v0Gjj8fNcnnrqKbz88st4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JvP/sc/w2r/33nvNvr/HHnuoz6ZPn97iDd/aA0B/WPtrv/32m9/v/Otf/8Lll1/eZN0LL7zQ7Dh0o0z3Tv3444+efTNdIj4+HnvvvTduvvlmbN++vd0yEzoHfwYz557ktRg2bFininnp0qX46quvcO211zZRit79LT09HePHj8emTZsQTHz00Ue4//77O3WfvE+874XMzEycccYZ2Lx5c5PtFixYgMsuuwzdzR133IHJkyejvLwcgaKzdbQgdCaiu0V3BwrR3e1DdHeQGd6nnnqqClnjhfnnn39U+9///oeLL74Y48aN6/ABVFVVYcSIEcq49seMGTNU4Zi7775b5a1xWxpYBQUFnm322msv9cLr27Zt26Y+nzt3LhYtWoTPPvtMeY6WLVvW4eMUgot///vfKq+R4ZTMX+S1pUFSXFzczCB67bXXmqyjYbxjxw5ER0fv9nF8//33yuDybi3lUR5++OHKiPYNEeUx+q7n8hFHHNFk3erVq1WfplFxyy23qN9mP1++fPlun4ewezB/loM/Vmu7snfazTPPPKOMat80mUsvvVT1NfaHTz/9FFu2bMG5556LYCIpKUmFPHc2rNfBc9+6davSPbwvTj/99CbbpKamIioqCt0N78d+/frhrbfeQqDobB0tCJ2J6G7R3cGE6O7miO7uYrQOUlVVpV1xxRVaeHi4ZjabVQsLC1PrKisrtd2Bh/Pxxx83WbfffvtpV111lWfZ6XRqWVlZ2pQpU3bpN2666Sbttddea/Hz2tparby83NO2bNmijqusrExzuVw9tlFuJSUl6q++rrq6WluxYoX6G+jj60jjefCazJ49u9XtevXqpd1yyy2qr27atMmz/pJLLtGuvvpqLT4+Xnv11VebbD916tRmyw0NDc32vX79enUMixcvbvdxz5w5U31n27ZtnnXp6enas88+q35LX7du3Tq13Q8//KCW+ZfLPG/v/fFeHDRokHbggQe2+ruHHnqodu2113qWP//8cy0uLk5788031fKECRO0k08+WXvggQe0tLQ0JZd77rlHq6+v1/773/9qiYmJWnZ2tvbKK6802S9lOn78eLU9tznppJOUXPTPf/31V23MmDFacnKy+r1DDjlEW7hwYZN98Lxeeukl7ZRTTtEiIyO1/v37a5988onn8+LiYu3ss8/WUlJStIiICPW573F4t9a216/ZO++8o40ePVr1iz322KNJP+K1vvDCC7XevXur7w8cOFB74oknPJ/fddddah/ejdfHtz+0tR9vufueg97f+Jey5fVq7XqyvfHGG1pUVFS7z+PHH3/UrFZrk77Ixv0edNBBnuU5c+aoZe4jJydH3TcVFRWez9l3KWPKkn3n3//+d4vH+frrr2sjR47UYmJiVL8/66yztB07dng+1/v5d999p7Zjf+B1WrlypWcb3q+UifcxP/XUU+p7vPYt3curV6/WDj74YHWcQ4YM0b755hv1nY8++sizzdy5c7URI0aobfj7/Mz3Hl+2bJl2zDHHaNHR0ep8zz33XK2goKDJ8fDe8Zahd2vtmUsdw9+j3tkdulJH9yQox86QZ6Bh3ygtLVV/vampqVF9iX97CjwPXhM+f1qD9++kSZNUH968ebNn/aWXXqpdc8016hng/R7H7fl881721t3ebNiwQR3DH3/80e7j1p8X27dv96zjM2zatGnqt3R0PUCdQviXyzxvb3j/67q7NfgMve666zzLX3zxhdKlb731llrWdcjkyZM9uvvee+9V5813XV1387npDWXqq7spF9KS7l60aFGTffC8Xn755Sa6+9NPP/V8zvcVX13sexzetLa9fs3efffdJrrbux85HA7toosuaqLznnzySc/nd999dzPdzevj2x/a2o+33L3x1t3cB2XL69Xa9SR8D6Pubu95/PTTT0p3e/dFwv1S7+j8/PPPTXQ37xvv5z/7rq/ubuk4+X7hq7vz8/M9n+v9/Pvvv2+iu1etWuXZhvcrZeLN008/3UR3+7uX//777ya6+9tvv21mK/7yyy9NdDc/873Hly9f3kx3FxYWNjke3jveMvSltWduR/RNhz3e9CI899xzyrNIjyNbSUmJWtcZHkRv6uvrlad6zJgxnnUML+TyvHnz2u1R18PrKisr8cMPP6gw45Zg/jpDefVGbyRh6GBPbzx/72XKxeVywel07mwOB5w19u5v/F3v42ilRUZGKg/gxx9/jOrq6ha30z1fRx99tApR5Tqe8/vvv48JEyaoz73Pv6XlZjLy+ry9x8zGUHObzYZZs2apZXqqa2pqVPgT76e1a9eq9fycaRX77befWubv+/utsLAw5flkeD09gC39LnUkG/9PT9zZZ5+NN954Q+W06PvnfUEPIv8++uijuOeee3DCCScgISFB7Z9huwyTZzgzv1NbW4tjjjlG3fP02v/000/q2XDssceqc+I2DHmlF5bee0ad0BN4/PHHo6ysrIkM77vvPuUFYUQL98nvMByRnzN096+//sLnn3+u5PXss8+q0diWzrWt7QlD9Jm/xMgBpq6cdNJJKoKGnzc0NCA7Oxvvvvuuioy5/fbbVWO6Aj+/4YYblAeaUTf0MrNxH779oa396HLXr4t30/sbn628T5lW0NL1ZKOs2Kf1/tKe3z/wwAPRt29f1Q/07/CavvPOO+re4DIjSXg9GVbPa8M0HV7Hq666Sn3++++/47rrrlPRSJT5F198ofbb0nHW1dWpfsVn+ocffogNGzaovu993oTH+cgjj6jIFHojLrroombb6Mvs93wOcDuGn/u7lykLenp577EvM7qKESPe27D4GPsBdQNTmXickyZNavJbvEePPPJIFXXFY+P5MnKG3nbv6zNq1Ci1j5aeTfxNPof8PaM7g+7U0UIQQVuoviowTdlhbUO9zcaUQj4PWoMpNHzOMqqN8H5iBCSfB90Nn2t8fuhFDFesWKH0HKNIeJ/xWUb4OXX36NGjW90f32GoT/k88o7ebA0+m8866yz1HD7nnHM866mzGfnEtE0WVuTzmLqbtZf4jObv/Oc//1GRL4TPQ8qV0Ug///yzOgZeE+pevnMTviuef/756nnPZ92AAQNw3HHHNUtVuffee9XzjzqGn/O4+Kwhd955p5LT119/jZUrV+L5559HSkpKi+fXnu0nTpyI//73v+qZRhkzTVWPcuRzNScnBx988IHaz1133YXbbrtN6UZy0003qWPleerRiQcccECz42hrP+2B8uDznLqgNSgr7pfvEO39/UMOOUTp7jfffNPzHV5T9gv93li3bp06T75X8Vh43/BaXn311erzhQsXqvQ1vnsxYmzmzJlqvy3B/TNtjKlvvHeZaknd7Qt1N/OkuX9G/7V2rxYUFHh0N5s/KAvqbr7rsi8zNVPX3Tp8z2Q/2HPPPdV7Co/Tdxu+czKClO9SPDaeb35+frNIOb5DUXe39WzabbRdZM2aNcqDx5E74juquCv4jmJs3bpVrePomzcTJ05UnvD2QO/h8OHDVeMIme/IlS8h7/GurdC0u+O6vfF32+s5Zvvggw/USC1H8w444AA1Or5kyZIm2+ij3uxT/fr1U97+6dOna3vvvbf6vDM83hzZ4wiad2vtuDnCzVF73Vt43HHHqf8fffTRHs/seeedpx1++OHNPIG+Hm+2r776Sn3222+/tfibuufxmWeeUefsGynA0VueK0da9XUcjecoo7cHledGb7HuYeU23hEUvHcoDz4XvEd/9cb9x8bGap999plnHY/99ttv9yzTm8p1PC8un3jiidoFF1zQ7n7R2vb6NWO0jL6OXn2OBj/00EMt7vPKK69s4sn156luTwREe/bjLTd6XC0WSxMZ69fTZrOp68GRcv4uR8W9ow3a8/s8Z44g68sffvihGtHWPdocddf7qrcHnB5UPve5Pb0hHOFtrd+1dDzz589Xx26325t5vPVt6DHgOt1DzPuVy97nzsbRfO/+5n0vsz/SQ/DPP/80u290j/dzzz2nvDvenmhGYnhf0/vuu0/dp97nQM8Rt+HIvr6OzyGuoyclEB7vrtTR3Q379GGHHab66bBhwzrksQ85j3ddZUB0t2r87XbC54a37r711lu1pUuXNtlG93ox+om6W4+Yoe4mneHx9qe7W4O6+7LLLvN4C6m7CZ8JumdW1906LXm8yddff60++/3331v8Td3zyHcFnrNvpICuu6kjdHTdrUO9y3Ojt1j3sHIbb7nU1dUpedCz762DdLh/6m5GX+nw2O+44w7PMu9NruN5EepiRl21l9a2168ZdZYOj5G6++GHH25xn4yW9fbk+vNUtycCoj378ZYb3zmpu337Xku6W482aO/v85z5TNT53//+p3S3/ny8+OKLPX3V2wNO3c3nBben7qbu9Yc/z7w3CxYsUMfOdwVfj7fOl19+qdbpzyfer23pbt97mf2Rupu2oO99o9uKzz//vNLd3l5oRmJ4X9P7779f3afe6NHMjIbT4XOI6zZu3KgFlcdbH/UfOHCgGuHSiztx5I8jUcEGR4Y4SsP2559/Kg9Na7BQF3MIvRtpqZBWT2/+zi0QdPS4TzvtNDXKy9xujuzR48rcao6O+54bR385gsvRXeZ7cxTO37n7W27tGAlHElnJ2rvxM3pCOaKsN0ZScD3z0Hms/D//6oWyWPxPX08PMfPB27pO3sfISBCOaHr/JkfI9W2Y48laCd99912z4lyEnj7da6gX7OIIor7M0cvk5GTlXeUyR1Hpoef9of8eP6fXdP369WqfHFGkR57PCnrOGUHC60DZeP82PYj6MkfeuU/9d1hA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zp2rhQrl5eVMYlN/ezIul0srLS1Vf3Vqamq0FStWqL89jYKCAu3yyy/XcnNztbCwMC09PV07+uijm/TNXr16qWv37rvvNvv+0KFD1WevvfZak+2feOKJJstTp07VGhoamsiNbNiwQX3fX5s3b16bx//OO+9oZrNZu/LKK5t9Nnv2bM++TCaTFhcXp+21117axIkTtW3btrW570MPPVS77rrrtEBCefmTW09kwoQJ2sknn9xkncPh0LZv367OcXf248sff/yhJSUlaXa7vcn19O5faWlp2mmnnaZt3LhRCyaKi4ubHHdnwPvT+17IyMjQTj/9dG3Tpk1NtsvPz1fP6Nb6G/fx8ccfd+rxLV++XEtMTNTKysratX1rz9zO0jWhpqNDUXf3ZP0turtlRHd3LqK724fobq1b9XeH5/FOTExU04UIQiD597//rbyNr7/+Ov7++2989tlnatSuuLi4yXa5ubnNch5/++03VWU3Ojp6t4/j+++/x/bt25s0zl/bFq+88gpuvvlmvPvuu6itrfW7zerVq7Ft2zYsWLAAt9xyi/qtYcOGqYrFQmCxWCzIyMiA1drhoKFWeeaZZ1TfjomJabL+0ksvVX2L/eHTTz/Fli1bcO655yKYoF6IjY3t9P2ySBjPfevWrfjf//6n7ovx48c32SY1NbXJ9FndBe/Hfv364a233kKwIDpaCGZEdwuBRHR3c0R3dy8dNrzvv/9+NT1IdXV11xyRILQBw3V//vlnPPzww2o6m169eql5Ym+99VacdNJJTbY955xzVGoEDRWdV199Va3vDKMpOTlZGWDezWaztfodznf766+/YtKkSRg4cCA++ugjv9ulpaWp/XEbhsX88ssvysC44oorOnSMX375JeLj4/H22297Qp4ZsvPggw+qqX0SEhJw3333weFwYOLEieohnJOT02zAgjI8/fTT1fbc5uSTT1ZhWzocIDjqqKOQkpKitjniiCOwePHiZiFD//d//4dTTz1VGUoDBgxQgyY6paWl6trwPCMjI9XnrRWLam17Hht/77333sMBBxyAiIgIZSixP3jPb3zxxRercCd+f9CgQaoitM4999yjBndo7HJfbD/++KNn35y3uD37aQ/cBw3LE044odlnlBX7AtN7/vWvf6lK0d6ybev358yZo/olB5y8uf7663HwwQd7lufOnauWuQ8OWl177bUqZ1jnueeeUzKmLNl3TjvtNM9nHPji/nTefPNNNYczjXEe+9lnn63qguhQjpQh64VwO54jrxMNa2+4jX7u/JznOX/+fNjtds82PG/v812zZg0OOeQQdZwM2//uu++ayZT3IMPruA1/nykA3teU/Pnnnzj22GPVQAjPlylWRUVFTfZz4oknqj4WLIiOFoIV0d2iu3VEd7sR3d0n5HR3uwzvvffeG/vss49qU6dOxTfffKNOZM899/Ss15vQs2FEZnVDdbe3tqal8YY3Ehtvtrq6ula3ZT8dO3asMp4IB4xmzJiBiy66CIGChuHxxx+vjGF6Len9bg80hi6//HJlgHsbMK3xzjvv4KyzzlJGNw1UnR9++EF5T2mQ8Z6+++67lcFHb9nvv/+ufuc///kP/vnnH7V9Q0ODkiONKA568Bh4DY455hjU19erbSoqKlR+Mo23efPmoX///uo8ud6be++9Vxnwy5Ytw3HHHaeOq6SkRH125513YsWKFfj666+xcuVKPP/888qQb4n2bM/BBObxMEJi9OjR6mGrR0awOCQHGT744AO1Hw4q3nbbbXj//ffV55z3mMfK89QjGmj8+dLWftoD5VFeXt5mxARlxf3uv//+7f59KrK+ffsqY1iH15T9Qr8X1q1bp86THikeC+8TXkt9OijO20xDnIM0NI45JzP32xLcP43ApUuXqnuVgxUc9PGFueyPP/642j8Hw1q7N9nvmetFrwWbPyiLcePGqbmr2ZdfeOEFFTHiDY129gPqMA5g8Dh9t6GRwMEj6j8eG883Pz9f9QdvOOjHgYC2nkVdiehoIVC6uyP6W3S36G4d0d1uRHeHnu5ul8uvMxPaheCmxlGD/d/Z+ULfXfx+9u+IsrUvVJQv59OnT1fht7wxOeBz6KGHKq/w8OHDm23PF3kaXnzB//DDD1VoaHsLYrUFjTCzuen4VWVlZYvb88HCY2dIMeEx89joBafXri0GDx6s/tKIoUe8NaZNm6bO+fPPP1fy8YYe66efflodO72jjzzyiBqUoLFGGD3A2QtoePEYaYTx2Omt1gsqcgCBnm16Lo8++mj1oNPhixivDY1gepi9vbg0vjgYQOh153Hw4Uejb/PmzephyVFM0rt371bPsT3b03CkMUlomPMhrIf60wvMgQAdXgMOGtBg5UOaL4oc8OCDmV7XlmhrP+1h06ZNypj0d13paabs1ct1dbWKguAAaEd+n55iXjMORBD2C6Y56J9PmTJFDYLoXmt6tnlt2HcoN8qa6Rm8lhyAYaQJZd8S3gY0jX7ui8VMeH94h9JPnjzZ0z8ZBcLBGh4XR7MJByO4vX7uhAMALaWKMCVj1apVSj5ZWVmefsbRb+8BKfbjl19+2TOyzlB2PlN0nn32WXV+/K53tAwjAZjewmtA+BscfGI0AWUSCERHC4HS3R3R36K7RXfriO52I7o79HR3uwxvesMEIZigIcUXdHpfmbNNjyeNRxonvl41bkfvLb27vPk609tNg3TIkCF+lQofCDo0aNkYNsPQXXp6CQ1ThmfzuDhy1xa6Z4EPHp679wPpxRdf9Hi1OcBA7yA90zR2fNljjz2aDBgwMoBh2Do0ABlGr3vW6bVcu3ZtsxxeGkj0lBKOKN5xxx3KEOf3GEJFQ4my8MZ7cITGE3N49d9hGD2vLUcyaczToNA9zDxXnjPhQ/Kvv/5qdXsderm9X/xopNM77j1AQfnzOGtqatSDeFcGZnZ3P/xOeHi435kieF31KueUMxUKz3fRokWea9LW7/O+4PXh/cJwdQ4A0ejWDVheY3q69ZQEvb9xwIUDQ+ynlDuNaA6SsOkpA/7gsTFUn/tlWKE+9aTvveHdHxhOTtgf8vLy1P95fry+9KDzPufx0VhvCV5bKlhdcfv2AUKPPX9XN+710W9veNyzZ89ulm9P2Od15c2BGRLI9CvR0UJPQXS36G7R3aK7Q1l3d25lIKHHE2mNVKPXgfjdjsIbj8YAG8OWOI0OX0B9DW8aW8zv4GcMX2GoamfBhwRDqn3hg8M730QvSEhPK0OF9Rue0CChwUOPpa/33BfdYKRnlw8V79+g8azD0T4aKzTEaGj6GnO+eej83N863Viil5Ih0N5GmQ7zqwnDzBnCzXwdGk2UO/OF9VD01n5b/x0a1/T8fvXVV2qQ4sgjj8RVV12Fxx57TA2q0KD03kdr27cH5vcwnJyhznzA08h79NFHVT/pCJ2xHw7CUAFQXt79gzAtQe9n/Mt+RCOVAz/s9+35fXrSGaJFrzc94jRiOUiiw2vMASp6k33h9WT4F/sUv/Ptt9+qcHYa1sztZ+SDNxxcYmoCG/sM+wgNbi631h/0fqr3B8J7Qj93DnJRcXLAxTtsviugPCgv1pLwRR8gIHqahH4fCEIo6W79tzuC6G7R3aK7RXeHqu7usOHNHFB/Hhmu48OUL0g0fC688MLOOkahG+F1bG/Id7BBL1pLcyTTy01j7IwzzlB9uKuh0elrkNMoZZEuGkn0OOvQM3zQQQcpY4ZexJag0fnSSy+pvFr9QeHP6CcMp6cRxoJX9F4z9GZ3YDg/jTwab/RQ+4PedYZE05tPTynD4X2LWbQHnhuNeDYa7gyN5rXLzs7u0PY69PDqucgsIEdPrJ63zGOmh/zKK6/0bK978HVocPIatUZ79tMWuneaOdpt5Xnr+c36QER7f59GOsP8mQ/OPnLggQc2ucb87Zb6lN6vx4wZoxoHsmhws14A87K8YbgY+zvTFTg4RZhr1RkwHJ3HfsMNN/itK0LjnIUAmY+vK1n2AW+YXsFK5EwhYJQB4QCCN9w3i91xkKu1Qows4kJ5tlaLoDsRHR2aiO7uHER3i+4W3S26O6iqmtPLQQ8Ew3fpoWPj/7mOnia68OmNYPy9IHQFfKFnPjFfnOkpZhgsi0ox1JyVtv3Bl3Eaga1VyPYHc0foVfZuDJv1Phbmh3i3lqYHo4eO4dsM72VYt95GjBihjFXfImsMt+X+WOWRxjqNJJ4D823bA+9FhtvQePCuNr0rMNSZhgXly3BvypyeT3pH9QJszAnmOdIrT0/r+eef38xz257nCwcnGNbOcLQvvvjCbyh/R7ZnCDajHGgM8hnF66enG/CYaRAyp4i5P4yc8DXAaHixnzHEifJnyLMv7dlPW3AAgcYejWhf6AnX+xfDqPiM5UAnw8078vv0OHPg5IEHHmg2OMoCJawWykEJ9nP2O8pWH6SgbJmnzc8YZfDGG28ozzSN2JY85KxlsH79elW5vj2pFO2BhjxD3Hnt/cFBAfZ9DsRQVuyvepi+Dius89gvu+wy1V8pN32wRh9YZl/hiDgHKihLvoxxO8rNeyCG+9evQzAgOloIVkR3i+7WEd0tujtkdbfWQcaNG6c9//zzzda/8MIL6jPy9NNPa8OGDdOMQEcmRQ9mXC6XVlpaqv62ZzL4YKa2tlabNGmSts8++2jx8fFaVFSUNmjQIO2OO+7QqqurPdv16tVLe+KJJ1rcD7/72muvtbg9l3ntfdubb76pbdiwwe9nbO+++67f39tzzz21K6+80u9nM2bM0MLCwrTCwkJt9uzZnn2ZTCYtNjZWGzFihDZx4kRt+/btbcrn0EMP1a677jrPMq9xWlqaduONN6rlCRMmaCeffHKr3/EnD/72+eefr6WkpGjh4eFa3759tUsvvdRzbyxevFgbNWqUFhERoQ0YMEB77733mu3j/9k7C/imrv6N/5q6G6WFUhyGM1wmbIMNm7u7/+cGc2Uu7/Sd+9jGfO822IaNbbi7OwUKddf7/zwnPeEmTdoUKpHnu89ZSXJzc++5Jzn3OT8TEeOHH35weR2efPJJo3v37kZ4eLiRkJCgjnPr1q0uz7W27fU1mjx5sjF48GDVvz169DBmzpxpN5auvPJKdQxxcXHGTTfdpMYW+luTkZFhnHzyyUZUVJTaH66P3veyZcvc3o+zfnfkzTffNIYMGWL3PcW1MY+v+Ph49Vx9z0Pz8MMPG4GBgUZ6enqN1xYuXGg718jISKNPnz7GpEmT1Gt///23+lx8Pvobr2HcuhpD6Pf27dursTJs2DDj559/tuszPc7xu6TBa3gO/QswLnBOjsybN09tt2DBAvUY4+zFF1+09duGDRuMY489Vl3zrl27GtOmTasx9v799191DthmwIAB6nixzfr1623bbNy40TjrrLNUn+Kcu3XrZtxxxx22z8FvJ44Px+MOtf3mNtRc429ztD/O3d46f3Purh3O3Zy7OXdv8Mi5uyHn73oLb9yMbdq0qcbzeA6vgc2bNysx5Av48uTtjRN3U4P+Ki8vr3HTQzy/3xzFsTdQWFhopKWlqYmlsbj66quN0047zfAlGmK8ff7550ZwcLDd4l1dvPXWW2qhwl2aQnj72xztj3M34Pzt+XOQN+IJ/ca52zmcu5tv7m7I+bveruZIEoUyNI7gOZ1ACol1HLMfE0IIqR245iMc4nBi4+sCZblQHg7lOG699Va/vxRwlUd/IGwCuSHgao8wkPqERyAxnC4N6ClwjiaEkKaFc3fT8amXz931Tq6G2EHEFyJ2VKdwhw89sgqjbi9AdmHHusGEEELqBr+dOnlaQ4L4fNRLv/HGG1UlAH8H8fKIM8RfJGE777zzai1T5gwkq/M0OEcTQkjTw7m7adjn5XN3AMze9X0Tkv8gSzKSDQEk14EFxbF+ri+Ql5enSvnAWuQqm7M3gMuMc8C56AQESAKGFSOUFjLXxCP2/YZkDBBCzrL5E9fjjf12eN9T9pvv9lttv7kNOdf40xztj3M34PztG78Jngb7jf3G8da48/dh1fFGdmVzGRpCCCGEeAacowkhhBDPwy3hDSWvFTz+XRvevLJMCCGEeBucowkhhBAfEd7x8fGyd+9eadmypcTFxTl124F7Cp4310gjhBBCSOPCOZoQQgjxEeE9c+ZMW8ZyJFUjhBBCiGfAOZoQQgjxEeFtzlDObOWEEEKI58A5mhBCCPF86l3HG/z9999y6aWXqgype/bsUc999tlnqq4aIYQQQpoPztGEEEKIDwjv7777TkaPHq0KlS9dulRKS0vV80ih/vTTTzfGMRJC3AA5Fn788Uf2VSPy8ccfqzwX9aF9+/byn//8p9ZtysrKpHPnzjJ37lzxNppr3G3fvl199vLly11uM3v2bLVNTk5Og30urhWu6eLFi8UT4RxNiHfBubvx4dztOeNuu5/P3fUW3k899ZS8/fbb8t5770lwcLBd+RIIcUKaggMHDshNN90kbdu2ldDQUElJSVELQqhfq8EXDF/cr776qsb7e/bsqV7Dj7ErgVSbYNI/HM7a/PnzXR73Y489JkcffXQN6xTE3B133KGSFBYVFcn9998vnTp1UrUCk5KSlCvpTz/9VO9+IoePs+t/wQUXyMaNGxu8W/GbitqQ5jrL5jEVFBSkxvpdd91lW+z0FJB4c+zYsQ26zyuvvNJ27phn0Df33XefqqOpSUtLU5/dq1cvaUpCQkLknnvukQkTJognwjmaeDKcu0ljw7nbPTh3Nw/1ruO9YcMGOf7442s8j8LhDbkyQUhtnHPOOWr16pNPPpGOHTvK/v37ZcaMGZKZmWm3HW7OP/roI7nwwgttz0EY79u3TyIjI4+4k6dPn65EvJnExES33//rr7/KeeedJxMnTpRHHnlEPXfjjTfKggUL5PXXX5cePXqoc4Il1PHcSNMDTx+0hgSLLW+88YY88cQTNV7D2B0zZoyUl5fLihUr5KqrrlLj9sknnxRPAYtejQHOG+ePc1+yZIlcccUVSog/99xz6vXAwEDbZ6MPm5JLLrlE7r77blmzZk2N739zwzmaeDKcu0lzwLm7Jpy7e3qHxRsXavPmzTWeR3w3BBAhjQ0WeGAlxg34iSeeKO3atZPBgwcrK/Hpp59e4wb5r7/+kl27dtme+/DDD9XzsCIeKRDZ+E6Ym9kTpDYmT54sZ599tjz//PM20Q1+/vlneeCBB2TcuHFq5XbAgAFy6623ytVXX12vY3v00UelVatWsnLlSvUY+4I17PLLL5eoqCjVb/gsWCDOOOMM9VyfPn1quOHgu33cccepiQsLGbfddpsUFhbaXkd+h4EDB0p0dLQ6/4svvlgyMjJquAxhYQTbRUREKMsuBIIGohLXEvuIiYlR51ybO1Bt22uXMrhQdenSRXkNwBvCPAa2bNmizjk5OVmd96BBg9QiiuaEE06QHTt2yJ133mmzvJr37e5+3AGiEvsZP358jdfwWehT9Pupp56qPsvsWVTX50PMO7MIw+vi4Ycftj1+//33pXv37qqvunXrJm+99ZbtNSxw3XLLLWos4XWMm2eeecaluxoswV27dlXXGXMCPgfi2dHrA+MGYxKLtlgYy8/PtztG7cmCcz/zzDNl1KhR8ueff9bqrvbbb7+pz8ZYxfjANo7AWwv7xPGdddZZ8vLLL9cIH4B3Sf/+/dX54hwef/xxqaiosCvfBS8vZ940zQ3naOKpcO52D87dnLs5d2/32bm73sL7uuuuk9tvv11Z5HDTk56eLl988YVyvYPrL/FuYDmqKipq8lYfixUEBhpu9utyu4UggeiCZRzAjfvrr7+ut4htaN58801lvcQiAESN440zBISjEHEX9CWE+qeffqoWKCCmNa+88or60Vm2bJkSepdddpkS4kiWCEEH93Y81tcDwg6WR1gpIODRdxDi5mOGqIIFFmIY1wRiB+fmyIMPPigvvfSSEshY9DBfAyyEtGnTRhYtWqSEKDwAalvAqGt7XOdJkyapPkD4AW74zF4PBQUFamEDiwHoC5zjaaedJjt37lSvf//992r/mPzgjoXmjLr24w64RhCLWESoDbi4o2zUkCFD3P589PG6detUP2mwHa6lvkb4/cbCD/oL2yJXB8Sy/s689tpraoFmypQparEE20MwuwLngQWKtWvXyquvvqomS4w7MxhXGCu//PKLalgce/bZZ13uc/Xq1crrA27ersDCCsYpzh9i/Nprr1XjwgzGAjxKMIdhm5NPPlmdt+P1wHcA2+Ac3nnnHXU+jtthsQ/behqco/2T5pq76zN/c+6u+xpy7ubcDTh3T/TduduoJ1VVVcZTTz1lREZGGgEBAaqFhYUZDz30kOGL5ObmYkZRf70ZXLfs7Gz1V1NcXGysXbtW/dVUFhYaa4/q1uQNn1sfvv32WyM+Pl6NveHDhxv333+/sWLFCrtt2rVrZ7zyyivGjz/+aHTq1Emd+yeffGL069dPvR4bG2t89NFHNbY3P3755ZeN8vJyu34D27ZtU+MiPDxcfRfMrTYeffRRIyQkRL33gw8+cLrNX3/9ZbRp08YIDg42Bg4caNxxxx3GP//8U2efYJ/ffPONcfHFFxvdu3c3du/eXaM/Lr30UtvjvXv3qvc8/PDDtufmzZunnsNr4JprrjGuv/56u/38/fffhsVisRs3ZhYtWqT2ocfbrFmz1OPp06fbtvn111/Vc3of0dHRxscff2y4S23b45pi3/Pnz7c9t27dOvXcggULXO6zZ8+exuuvv+5yPOh9Y9zUhjv7MXP77bcbJ510kvo3+kuPNxwvxjfGVGhoqHp86qmnGmVlZfX6/LFjxxo33XST7fGtt95qnHDCCbbH+G5MnjzZbh9PPvmkMWzYMNv2OD7H74AGx/XDDz+4PJ4XXnjBGDBggN13ICIiwsjLy7M9d++99xpDhgyxPb7iiiuMwMBAu3PHmMP33vE7uGzZMnVsEyZMMHr06GH32XhOj0VwwQUXGOPHj7fb5pJLLrG7piNHjjSefvppu20+++wzo1WrVnbPvfrqq0b79u2N+uDsN7eh5xp/m6P9ce52Npaaa+6u7/zNubsmnLutcO7m3O2pc3dDzt9uW7y3bdum/sLKDctVVlaWskIgXhauqp4Uc0h8H1i24G0BSxysfHBnhnuJOVmaBpZdWAbnzJmjLMwNae2GBRirb+YGYHHUq/to5oz/sKTiWF944QWnllTkUNi6dauyYp577rkqjhSu3vo7hn2Z9222rsI1Gt4oONfU1NQa+zZbv+ENAHr37l3jOe0qDis2+tT8efAgqKqqsv0mwOIMKyOSf8HaqWsKO1p9zZ8Nt2Xz5yBpGCyUcCeG5RMWUY35s7HiWdf2ABZ1uF1r4D4NlyRYdAHGA7x04F6N57FvvFYfS3VD7ae4uFi5RTkDlmKMKVwHWIZh9YaXQn0+HxbQL7/8UiUmg9s4Qhz0dwAhA+i7a665xq6fEZKg+xSJznAMRx11lAoz+OOPP+r8TsCrAp4b2NdDDz1Uoz9gMTdb+DEezOEJAK7i+FyMZ8R3w0KP770r1q9fr1ayzQwbNszuMSz2jts4PkZfw9PB3B/oQ3xX4UmhgTu7+XFzwzmaeAOcuzl3c+7m3O3Pc7fbQa5wQUVsH26GTjrpJPUXiZ+IbxEQHi5HLV3SLJ9bXyBW4G6CBtdY/JgjNgpCwVGEQazgNdzE//DDDw123Ig3QRkoR1q3bm0Xe5qQkGD7NwQH4nBx3PgezZo1yyZENXCbhthGQ8wshBB+UPBviM/zzz/f7rM02CdE1u+//67csR0xu2PruGVnz0FYa2F3ww03KMHlCIQ2hBuEOBpckJGBHSILjyHy6vps/TmI+0VsOJLNTZ06VV0rxOAgjsfcj4jnrmt7d4BYRbzwiy++qK4ffoixyOF4zE2xnxYtWsiqVaucvgbxqscXhC/CDy666CI1HvC8O5+PRRHES2Pcw1UboQHYRl9fAHdwswu7Tl4GsEgEUYd+xrjF2MOCx7ffflvjeOfNm6fGHeKqMAYQv43rghADM45hBBgPeixokEROnzsWzPr27SsffPCBWiRoTNAnOH7kX3DEvECCxWeMd0+Bc7R/01xzt/7s+sC52wrnbs7dnLv9b+52W3gjthBWRTTc2OPGDoHrWoSjaWsZ8V5UIqmICPFGsBDkqiYhLHz4gUM5KCRXaGwg9p0Jcg2OASLmlFNOUYm8IL7Nk7Czc0OCCFgtIeLNQt4MkstBaEGUQjiZ45oPB4guxMq4OhcIRmRbh9UZixDgcGskIs4ZDVZ7iEtktIaQdvXZrrYH6Csch14RxWop4rxhGdbxQlig0dvjB9sxERdEamVlZa3H7M5+6qJfv37y3//+1604SS2GYSV39/MxFmExRv/gnDAmdGZ2/GZj3MHDwtlCjXnBA98dNIh2eJlg8nIch4jDxgItvKI0SFJ3pFgsFpVwEJ4OGNvOMsvDqwFeAWYcS/th8cIc7w4cH2PMY7zU9v0F8PjCtfMUOEf7N5y7GwbO3fWHczfnbldw7j4C4Q1xgAZw848bLC3EkYQHVhTc+MAtlpDGBEIPJbggpuG+DAsyRBaygyPDszMguA4ePKiyIdaHPXv2KIsrBI+20kJYmI8FpcnMwOXXleuw43awVsIyiO8WvksQQfg3hCQygCNrOoQvRAcWt7TFtzYgwpAxGlZ+3ERo6+bhAAv70KFDVTI1eBTAConjwXGjBBas3hBzKH0GSzzESH3DTiAi7733XnWcqNe8e/duJYZcuRW7sz0sqkhSg8Rg6AMcP85DC3FkO0cCNSxS4LrCY8LR4gp3aLjsQ6jCYgzLtCPu7KcucF0hmJ2VpsJiAcYX9rlp0ybl9YCbHL2A4O7n49qZFx3MYIUYHg2wTkNQI2Ehvk/Z2dlK6CJzKDwyIDIxiX7zzTfKEu+YTVQfDzweYOWGqz88EhrKwwTfeVx3JCaEpd+R66+/XrnmYxucL0IgHENPMCYQyoFzQp9BrMKSr7/bAInmkEEeYxtjDOcMFzaMbXgaaJCcxZNCrDhHE0+Hc3ftcO7m3O0I524fnLuNI6C0tNSYOXOmSowTExOjkt/4Gr6coKW2RAGeTElJiTFx4kSjf//+KrECEjUdddRRKnlQUVGR20mt3Emuhmvv2JCsQSd2cta+/PJLl5+JxFJ9+/a1ew5jC4msOnfurBKiITkEHickJKikSB07djRuu+024+DBg7X2i2OSq6+//lq9/7vvvnPZH47vMSes0ixcuNA4+eSTjaioKJWwqU+fPsakSZNsryMxFxJVIAkWjvvnn39W+0CSNXNyNZ0kA2D/eA6fh9+RCy+80EhLS1OJ51q3bm3ccsstLsdlXdvrBGg4b/QdjmvUqFHGjh077M7zxBNPVMnxsJ833njDGDFihEp0Zk40h3PVyb3M+67Pfuoah+D8889XY9oxuZpuSJCFBCFIMLJly5Z6fb7muOOOU4nXnPHFF18YRx99tOpPJC08/vjjje+//1699u6776rXcO3xO48EJkuXLnU5hjAfJCYmqvGC48W5m/vM2XcA26CfzMnVzjjjjBrH+cwzzxhJSUlGQUFBjeRq6DeMPXyPcM1wvh9++GGNsYfzSU1NVX125plnqkRkKSkpdp8zbdo0lbQR2+CcBw8erN6nmTt3rhEXF2f3e+MpydX8bY72x7nbW+dvzt3O4dzNuZtz988ePXc35PwdUP2ldwu4l8N1D26xsM4hXhbupViFQENSJaw0+BJ5eXnKEpSbm+uWtdFTwWXGOeBc9AoRPBcQuwmroTsWWn8E/QZ3Y7PFm3h2v8HKeccddyhrsbeA8l6Iz9+8ebNyo27ofsP1gDX65ptvVlZsX+NIxhuSryC5S33Ki8DlHjHn8ESpD7X95jbEXOOPc7Q/zt2A83fd/ca5+/DGG+du9+Hc7R9zd0PO3267miOWG5M4PhCTNxIuITuuY1IoTwOxeuho82PEqJ955pnNelyEEKJByMRzzz2nftQbOmklqk7A9Rsu687qq/sbyPWARQ6ETcBVDaFSb731Vr3ELSoBILeAJ+GtczQhhHgrnLubjhd9ZO52W3hjRQETOCZ3xJJhYkf8qaeDZDo6KzLiKBG3iQtHCCGeBJKk6dXfhqRly5YqPv3dd99tksSCns7ChQtVPghkiEeCUOQBQByduyCnAUqkeRreOkcTQog3w7m7aVjoI3O328IbbpuY2OG+BssMkj8hyQ8mdz3Je1JpFWeg5vPIkSPVagkhxHcnQceScv5MPaKJ/IIpU6aIL+ILczQhxH/h3G0P527fnLst7m4IsYqMtygbBHc2ZIjGygOyRONvmzZtpFevXvU+AGQNRoY6ZHOGf7+zclDIYgtLNXzqUWsWqx6He9HMbueEEEKIL9BYczQhhBBCmlh4O5vkdT1huC+iZM+6devqvZ/CwkIV6A5x7Yyvv/5aJQN69NFHZenSpWpblF/KyMiwbXP00UerGwrHlp6ebhf4jhJo48aNO8wz9l24qkYIIb71W9tQczTxbDh/E0KI9/zWuu1qjtqwqO0KNzZkTEUtWIjm1NRUVYcWwhl/68vYsWNVcwVqtiFznU4K9Pbbb6vasB9++KFMnDhRPadjuGvjp59+klNOOaXO7N2oYYtmFuy6w715gtPHbz4H3IgBXEdmNXevD8nhjT3CfmsqPHm8IbkLQH1Rx+M80uNurDmaeCbIAqzHFCohEEIIaTyKiorU3+Dg4KYR3nFxcWoST0lJUZP3K6+8ouLGOnXqJI0FJpQlS5bI/fffb3sONyyjRo2SefPm1dvN/Prrr69zu2eeeUYef/zxGs8jRbwn39DVBY4dyeWAOWU/BPf+/fvVTRsmb5bMqgn6BuOO1A/22+HBfvPNfsNvMH5rseCJudTxt1Yv8h4uzTFHNzY4h/fff1/1Heb9V199lXNUNRhHCCNA1QLcCHry2G8OWE6M/cbx5vkYXlD2D8cI0Q1Pa8yzetGz0YX3Cy+8oCZzJGtpKhCjhguSnJxs9zweo3abu0A0Iy78u+++q3NbiHxznVvcDKEOKuqzeXstUOBYCxTnhDJDmZmZzXh0nov2EkCfeeqPgifCfmO/cbzVBOKoXbt2KruqI0f6+9Icc3RjAkH5xhtvyJo1a5SwRB1y1CgfNmxYcx+aR4Dxgiz2KEG4Y8eO5j4cj8TTF+M8FfYb+43jrSYQ3VjYPlLcFt6oCeqtQGzC0uAOoaGhqjniC8JLn4P5PPBvJLbDYkZ5eXmzHp+nCkiULoiOjvb669+UsN/YbxxvNYHgdiUEjvT3xZvnaFdUVFRISUmJ+jfmJ5TGI/bjqUuXLrYQBnIIzkGHB/uN/daUGF5yj43F3yO1dNdbeDcHqD2LE3UUzXjcEKsO5BDo54YaVL72o4CYf7jke/KPgqfBfmO/cbz5NqhIAis7wsH27t0rP/zwg5x55pl22yCuHNvAqwqJUV9//XUZPHiwW/tH6bN77rlH2rZtq9yqb7zxRq92m28ssJDDHC014Rx0eLDf2G9NieGH99gWT1/NHTBggMyYMcPOBQaP6W5GCCGENA+NXZEkOztbfvnlF9m+fbvs2bNHVSWB2CeEEEK8lWa3eCPh1+bNm22PEa+ELOUogYKVbkzcV1xxhQwcOFCtlP/nP/9RE77Ock4IIYSQpqWxK5J888030rlzZ3UvAMaPH69ivBHr7e8VSQj7jePNs+D31L/7zajH8Te78Eb5E3OJE53YDGL7448/lgsuuEAlWXnkkUeUuxpWyKdNm1Yj4RohhBBCmp+GqEiCpKawciPGG/F1KJNWW2USf6tIQthvHG+eA7+n/t1vefWoStLswhvlTuqaFG+55RbVCCGEEOLZNERFkqFDh8q4ceOkX79+SrSPHDlSTj/9dJfb+1tFEsJ+43jzHPg99e9+C6jHsTe78CaEEEIIcWTSpEmquYO/VSQh7DeON8+C31P/7beAehy7RydXI4QQQoh3wYokhBBCSE0ovAkhhBDSYLAiCSGEEFITupoTQgghpF6wIgkhhBBSPyi8CSGEEFIvWJGEEEIIqR8U3oQQQgipF6xIQgghhNQPxngTQgghhBBCCCGNCIU3IYQQQgghhBDSiFB4E0IIIYQQQgghjQiFNyGEEEIIIYQQ0ohQeBNCCCGEEEIIIY0IhTchhBBCCCGEENKIUHgTQgghhBBCCCGNCIU3IYQQQgghhBDSiFB4E0IIIYQQQgghjQiFNyGEEEIIIYQQ0ohQeBNCCCGEEEIIIY0IhTchhBBCCCGEENKIUHgTQgghhBBCCCGNCIU3IYQQQgghhBDSiFB4E0IIIYQQQgghjQiFNyGEEEIIIYQQQuFNCCGEEEIIIYR4J7R4E0IIIYQQQgghjQiFNyGEEEIIIYQQ0ohQeBNCCCGEEEIIIY0IhTchhBBCCCGEENKIBDXmzgkhhBBCvJkPV38o8aHx0iW+i3SM7SgRwRHNfUiEEEK8EApvQgghhBAnlFeWy+tLX5cKo8L2XGpUqnSJ6yKd4ztLp7hO6t/tY9tLaGAo+5AQQohLKLwJIYQQQpxQUlkiF3S7QDZnb5ZNOZskqyRL9hTsUW327tm27QIDAiUtOk1ZxSHGO8d1VoI8LSZNgi3B7FtCCCEU3oQQQgghzogOiZaJgyfaHkN4b8nZIpuyN6m/m3Osgjy/LF+2521X7c8df9q2D7IESYfYDkqI6wZBnhqdKpYAptkhhBB/ghZvQgghhBA3SAhLkISUBBmUMsj2nGEYcqD4gLKKQ4ibW3FFsRLpaGbCAsOkY1xHO0GOlhKZIgEBAbwWhBDig1B4E0IIIYQcJhDKLSNaqjY8dbjt+SqjSvYW7q0hyLfmbFUu7Gsz16pmJio4yuaqjoZ/t7S0lJiYGApyQgjxcii8CSGEEEIaGLiSIxEb2oi0EbbnK6sqZVf+LqvLes4mJcbx7+2526WgvEBWHFihmpm40Di72HGV1C2+i8SGxvK6EUKIl0DhTQghhBDSRARaAlUWdLSR7UbaZVBHjLhNkGdbBfnO/J2SU5ojS/YvUc1MUnjSIUFuSuwWGRzJ60kIIR4GhTchhBBCSDMTHBisxDPaGBljix/PyMqQTCNTtuRaBblK6pa9WdIL01VsOdr8vfPt9tU6srVVhMcfih9HDfKwoLBmOjtCCCEU3oQQQgghHgrqg3eP7S49WvSwe76wvPBQZnVTlnUIcYhytL/3/G3bPkACVMkzJcRNgrx9THsl+gkhhDQuFN5NxJzdc2Th3oVq0tMtJSqF9T0JIYQQUm/gTt4nqY9qZnJLc62J3BySusFdHW7raDN3zbRtHxQQJO1i2ikxrmLH47ooQY77FLjFE0IIaRgovJuIf/f8K5PXT7Z7LjAgUFpFtrIT42htotuovxHBEU11eIQQQgjxAZBwbUDyANU0cFnPLMl0KsiV5Tx3i2pmQiwhtpJnWpDjb+uo1qxBTgghhwGFdxMxvPVwNVHtzt+tspnuLtgtpZWl6i/avL3zarwnMSzRqSBHQy1R1vokhBBCSF3gfqFFeAvVhrYaaifI9xftV67qzkqerc9ar5qZ8KBwmxg3Z1lHOTXelxBCiGsovJsIlBIxlxNBfc8DRQeUCNdNi/JdBbuUqxhWp9GWH1ju1MWsTVQbp6I8JTJFgiy8tIQQQghxDYQy7hnQjmtznF3Js/SCdFsyN132bFvuNimuKJZVB1epZiY6JNomwnX8ONzXYSgghBBC4d1swPqdHJms2sCUgTVezyvLqynIq9v+wv3KNWxD9gbVHEG8FlzB7AR5VJrEBcRJt8hudGEnhBBCiEsQ250Wk6baSW1Psj1fXlUuu/J2HcquXm0h35m3U/LL8mVpxlLVzEB4m4W4tpbHhMTwChBC/Aq/MIu++OKL8tFHH6mV3YkTJ8qll14qng4mpJ6JPVVzBC7qewr21BDkWqRjYtQJVJyBup+OceW6ITaMrmKEEEIIcSTYEqzivtEc70u2524/5K5eHUeOULqskixZuG+hambgmq4TuakY8vguquQZ89sQQnwVnxfeq1atksmTJ8uSJUtULNOJJ54op556qsTFxYk3lxbB5ITmCFzYM4oyaghyNKxIF5QX2Op+Oq5Kg+jgaDu3dXPDJMkMp4QQQghxvC85KuEo1cwUlRfJ1tytNZK6Ia4c9ypo/6b/a/ee1KhUqyA3ZVlvH9tefQYhhHgzPi+8161bJ8OGDZOwsDD1uG/fvjJt2jS58MILxVdd2HW81qCUQbbnseiQm5srEiZqBdpRkMNSnlGcIfnl+bIua51qzla6MSE6E+Wp0amcFAkhhBBiA9brXi16qeYYTocEbip2PHuzLY4c1nF49KHN3j3brgoM7jVgFTcndYMrPO5NCCHEG2h24T1nzhx54YUXlEV679698sMPP8iZZ55pt82bb76pttm3b58Szq+//roMHjzYrf336tVLHn/8ccnJyVHic/bs2dK1a1fxV+BKHhcWV2MSBCUVJTXd1wus7uuYBOHCvj1vu2qOBEiAsog7E+WwoONzCSGEEEIQTnd0y6NVMwPhrUR4dZZ1LcgRP67vP/7c8adteySS7RDb4VAMebUgR54bQgjxNJpdeBcWFioxffXVV8vZZ59d4/Wvv/5a7rrrLnn77bdlyJAh8p///EdGjx4tGzZskJYtW6ptjj76aKmoqKjx3j/++EN69Oght912m5x00kkSGxsrQ4cOlcDAwCY5N28jLCjMmvgkvnON15DhdF/RPudZ2PN3qWRvcB1DW7x/sdNJ1lW9cgh2WOoJIYQQ4r8gEVtCSkINjz2Ex8Ey7pjUDRnWIdLRzIQFhkm7qHbSNbGrspJrUQ5vQOaxIYQ0FwEGftE8BPwYOlq8IbYHDRokb7zxhnpcVVUlaWlpcuutt6pEafXl2muvlbPOOkvGjx/v9PXS0lLVNHl5eerzYDGPifHeDJza1RyLDw096WDf2aXZNcS4+nfBLjlYfLDW9yNuCy7s5gzsWpjj+ZDAEPHFfvNl2G/sN463+oG5BrlH8HvjzXPN4YA5Gd5oI0eOlG+//dbutV9++UXuvvtuNfdPmDBBzeHu9id+t729P/lb6hrktNlbuLeGIIcLe1lVmdP3RAVH1Sh3hr+JYYmc4zne+D1tYgwfuceuz3zT7Bbv2igrK1Mu6Pfff7/tOYvFIqNGjZJ58+a5vZ+MjAxlHYeVfOHChcp67opnnnlGuaY7gs70oDWKeoNjLygoUP9ujMEdKIHSPqS9tE9sL5Jo/xpWpNOL0mVP4R5JL7T+Vf8uSldWdGRDRfIVNKcu7OEtJTUyVVpHtpbUiNRD/45MVZOoN/ebr8J+Y79xvNV/4vZXbr/9duX19sknn9g9D082eLzNmjVL3dQMGDBAifTERIdJhvgl8JTD4jzaiLQRtucrqirU4v/KPStlb/leW2K3HXk7VILZFQdWqGYmLjTOLnYc/4YBoEV4CyaVJYQ0GB4tvA8ePCiVlZWSnJxs9zwer1+/3u39nHHGGUo4R0ZGqrJiQUGuTxsiHxO9o8Ubk763r5qD5lhVipVYSUlMkf7Sv8ZrmCD3FTq4sJuSv0G07y/er9rSgzWzsGOyrOG+Xm0xx4R5pOfanP3mzbDf2G8cb/XDn39fTjjhBGXxdgQL5T179pTU1FT1eOzYsSqE7KKLLmqGoyTeAuK+28e0l3gj3m7uLq+05qlxLHmGe42c0hxZsn+Janb7CgiSpIgka9LaiBRJjky2/Rt/8Rju8QyXI4R4vfBuKOpjHQ8NDVXNEfxwe/uNkT4HTzqP4MBglZUUzZl4yyzJrJHwDfXJ8RySsGCyRFt1cFWN94cHhbvMwt4qqpXbmVA9sd+8AfYb+43jrX7fF0+ksROg1kZ6erpNdAP8e8+ePUe8X+Kf4H4D8d5oZrDAvy13m50gh9s6PPIqjArlzo7mcr+WYJWrRleUsYnyiGqRHpmijASe+h0nhDQdHi28W7RooRKh7d+/3+55PE5JSWm24yJNAyYpWK3RHDOfAiR0c1avHKIckyQmUz2ROoLSJJgMnYlyNJRAIYQQf6exE6C2bs3s06R5wSJ9j8Qeqjl65CFHDbzyIML3F+5X/0YSWfVc4T71Oiq+6BJorkCyN1jHtRg3i3L9GEloKc4J8W08WniHhISomK4ZM2bYVtiRYAWPb7nlluY+PNLMRAZHSreEbqo5ApcyxJM7E+VoJZUltoly/t75Nd4P1zEtwpOCk6Rzi87SNqatcmVnEhZCiL8A9240V7z88sty3XXXyVVXXaUeQ4D/+uuv8uGHH9oSoC5fvvywPhui3Gzhxr9dWdKdJUbVnlPenp/F28/BW/sNC/QQxGh9pa/TbXCvkVGcYRXlRVYxrv+tBTq883DPgRhztNoWAMwWc5sVvfoxGu57GhOON/ZbU2L4yO9bfY6/2YU3Eldt3nzIIrlt2zY1SSckJEjbtm3VSvoVV1whAwcOVBMuVtOxAq8neUJcuZS1i2mnmiO6NIkzUa5jvTBRotkSsGw49P6IoIhDGdgdSqO1imyl4ssIIcTXaagEqK7AnL969WoluBGrO3XqVHn44YedbsvEqKS5EnxG4b+wKOkU1kkkoebrSCB7sOSgVaAX71f3H/i3ueWV59lc3tFcflZQlCSFJ6mks3Yt7NC/URr2cGFiVPZbU2L4SALj+iRHbXaFsHjxYjnxxBNtj3ViM4jtjz/+WC644AI5cOCAPPLIIyp+DC5r06ZNq5FwjRB3wZcbK8loA5IH1Hg9vyz/kCDP2yVbsrbI/tL9Sphj9bqookg2Zm9UzREkYkH8uBbkiDFPDE9UVnL9Nz4snuKcEOL1NFQCVAj1FStWqEX1Nm3ayDfffCPDhg1TiVBfeukldY8Ab7f77rvPZUZzJkYlnpzgs6W0lB5i78puRiWSrbaQ2yzmDlb0/PJ8KagokIL8AtmW71qcx4bE2tzXHZPBaUs6yrh6Q795C+w3/+63gHoce7MLb2QzrctED7dyupaTpiI6JNoW7+VYY7Cssky5pztayfW/UTtUP3YFSqQh0YoW4gnhCXbCXP3V/w5LVNZ7QgjxVaZPn+7ytdNPP121umBiVOLNCT6RV6ZDbAfVXIG8NjrOXAtyx5hzGAZyy3JV25BtctVzEk5njjM3x55HVkVKZEykhFhCGulsfRNvGm+eRIAP9JtXCW9CvImQwBCXk2OVUSUZRRl2ghxx5pnFmSo7O/7CjR3bZZdmq7ZZaiZ+cwQJVxyt5ua/mED14yNxMSOEkPrABKiENB2I7+4Y11E1Z8BQAKu42WpuE+emx3B91+F067LWuTQQ4L7CbCnX5dP0c0h8y9A6QuoHhTchDQTqeOrJaVDKIKfbVFZVKsGtxTgmPrMwV88VW5/DayhlkleWp1ptcV/midmVQHf8y8zthJAjgQlQCfEsqxsW6tG6xnd1uo3y4ivNdWkx14+RqR0Z29FWZ652ec+DeHNnWdp1zXOIc9Y4J+QQFN6ENCGBlkBbibS6gGU8rzTPTpTX9hcTJVzR0FDrvC6QQdVsLa/tb1RwlFe7ARFCDg8mQCXEd8A8HhcWp5qzijAQ5tk52VIVWqUSwTlazLWrO7z7YBiASEdzBfLe6OzsOt7cTqRHpKj7EN5fEH+BwpsQDwWrxHqC7BTXqdZttYuZEuIuxLm2ruMvErmg1VV7VINYL0e3dld/Y0NjG7AXCCHNCROgEuJ/9x7x4fHSIqKF9Ezs6dJ7D/cVji7t5prnyN4OcY6QOzRXBFuCXVrM9b9xX0FxTnwBCm9CfMzFrLbkLJqi8iK3rOj4Cws6ksbtLdyrWl1ghRsCHZlVW0a2tE8W5/AXSebgBUAI8UyYAJUQ4gjmbV0dprf0dtpBFVUVylXdlUs7BLr21ttdsFs1V4QFhtms5o4Wc/18dHA0xTnxeCi8CfFDEN+NlhaTVue2JRUlh4R4LSIdlnTEomOFW9cm3ZS7qe6V9dD4GoLcWaZ3lGHDyjghhBBCPBskXtMC2RXlleXqXsExxtz8b9xblFSWyPa87aq5IiIowrnV3JQgjrltSHND4U0IqRVkSkc9crS6wCSqhfjOzJ1SYimpmTjOIcO7elyS6dZVUGXYXJVec8j0jgz0hBBCCPFMUC61rvsLZGHPKMyo4dJuE+hF+1TCOJRS25q7VbXaysW6spjrf7M6DGlMKLwJIQ06ierkKalBqbb6567c0LJLsmta0J1Y05EJHiIdYh1tS+6WOo8FE2xtsehmqzoSzRFCCCHEswgNDFXeebV56CF8TgtxO5f26nhzNOTByS+zts05m2td4HeMM3esec6FfXK4UHgTQprNDS0pIkm1ukAiFwhus1t7bUnkIOr1BFuba5rZRa3WpHHmMmxBEYwjI4QQQjwEuJAjv01tOW6Qr8aVS7u2piPprF7gX5+13uW+4FVnZzGPSJaYgBjpUNJBWkW1Uvc1DI0jzqDwJoR4RSIXLYAlXurM8I5Y81qTxpn+jcRxcFEryi+SXfm76jwWJHmpLRbdLNaZ7IUQQghpfiKDI1WFGFdVYnR1GLsEcNUC3Zy9Ha7vWOBHW5u51um+AiRA1Th3ZTHHX7zO5LL+B4U3IcSngGs7So+gdZSOtW6LibagvMBlsjjH57EajiQv7pZhw4q3rQxbHbXSVbkUYa10QgghpDmrw3SN7+ryngHWcGdZ2nfn7ZbM0kz1PDK16ySzqw6ucrqvwIBAZRk3W83tksNFWmucIwkt8R0ovAkhfj3RIhYcrX1se/fKsNWS1d38GIIek6+elN0pw4bM7XEhcZIUmSQtwlvYJYuzy/AeGs+VckIIIaSJ7xkwT6N1T+xuJ8hzc3NVXhtDDHU/oKzkpjhzs0t7RlGGVBqVh+4PDrgOyYMgd2Yx1w33A6xx7j1QeBNCSH3LsEW7V4attlh0819dhu1A8QHV3CnDpjK8a5d3B2HumESOsWaEEEJI44P5GQvnaD1b9HSZtwbzv2Ndc7NLO2qgI19NXR52SD6nxLlD6TSzSIcVn+LcM6DwJoSQRgAlSVpHtVbNnTJsEOmYaHdl7jpUhs2JVR2Z4JHhXceYbZLaRTqAG3tdru76L7O1EkIIIY0HYrtbRrRUrU9SH6fbQHQfKDrgNAmcFui4Z0DM+c78naq5ApVbtAiv4dJeLdajQqIa8YyJhsKbEEI8oAwbVqsxCbtThk1leHdRes38FyId7myocYpWW31TDRLCOXNvd2Zdh/WfEEIIIQ0L3MyRIR2ttkX72sqo4d8ox4r8NKjwUluVFySfM1vMtQVdJ4jDvznnHzkU3oQQ4mWTsXZjqwtd+zyrOKtOd3f8VWXYUOu03L0ybFhFr630mvkvJnW6uhFCCCENt2jfJrqNaq6ARdwxxtzs0o6GcDeUW9uSu0U1V8Bl3ZlLuxbosKbD24+4hsKbEEJ8ONYMFmq0ztLZvTJsTkqvOYtVx2SOVfTdBbtVqwvEoTkKcpv13EGkMx6NEEIIOXIw97aNaatabYljnVrMTZZzJIzFPQLapmzXIW5I9qYt5nZu7abs7cGBwX57aSm8CSGE2Jdhi627DBtWx51ZzZ1Z11EnHUI9vTBdtTonJktQ7SXYTP9GkjmWYSOEEEIOD7iQd4jtoJorCsoK7F3aTRZz/TwW4+HajrYua53LfSWGJR7Kyh4UL23j29oJdJRZw32AL+KbZ0UIIaRRRToSsaC1i2lX5/aYjJ26tzspxwY3d7i8o9wKWl2gFqoqwxYcJy0jW7p2d68W6b46mRNCCCGNBeb7ziGdpXN851q95hzjzR3/XVpZakseuyZzTa2Z4R1jzM3Z2vE6ktR5G7wDIYQQ0qggFryuODQNJuW6YtL164hfR/I4ZHZF25y3udZ9wzIOkW5OEOcqiRyaP7vDEUIIIYfjNXdUwlEuxXlOaY6dpXxH1g7Jqcw5FH9etN9+8f2g888LCghSlnFzjLmdS3tksprfIeI9CQpvQgghHhWPVlcmV015VbnK3H6wyFqGrTiw2GXtdEz25jJsm3NqF+kAsebulGBDw3ETQgghxLU4jw+LV617YnclxHNzc+0queh52jEhnNl6DkFeYVTI3sK9qrki2BKsqsU4izPXz6lwNRdVZBoDCm9CCCFeiZ5Uk8KTpHVQ61rLsFVWVaq4M2fu7c7qpcOSrhPJbMvdVutxdI3vKt+d/l0jnSUhhBDiH1iq3czRerbo6XI+h5ebsyztWrAfKD6gFuf3FOxRzRVPDH9CzupyljQVFN6EEEJ8HsSC1acMG+qeuxLmjn/d2SchhBBCGmY+V1nTI5Olb1Jfp9tAdMMbzpnFXDfM4bB+NyUU3oQQQojDirt2h+sU16nWvoGrHOLSCSGEEOI5HnGt6ghbK6ssa1I3c0DhTQghhBwmmLTDgsLYf4QQQogXERIY0uSf6Vmp3gghhBBCCCGEEB+DwpsQQgghhBBCCGlEKLwJIYQQQgghhJBGhMKbEEIIIYQQQghpRCi8CSGEEEIIIYSQRoTCmxBCCCGEEEIIaUQovAkhhBBCCCGEkEaEwpsQQgghhBBCCGlEKLwJIYQQQgghhJBGJKgxd+4LGIah/ubl5Ym3nwfOISAgQDXCfuN48zz4PfXfftNzjJ5zyJHBudu/8YXfhOaA/cZ+43hr3PmbwrsO8vPz1d+0tLTDuBSEEEJI/eac2NhYdtkRwrmbEEKIp83fAQaX12ulqqpK0tPTJTo62utXY7B4sGvXLomJiWnuw/Ea2G/sN443z8cXvqeYijFpt27dWiwWRoEdKZy7/Rtf+E1oDthv7DeOt8adv2nxrgN0YJs2bcRXwATESYj9xvHm2fB76p/9Rkt3w8G5m/jCb0JzwX5jv3G8Nc78zWV1QgghhBBCCCGkEaHwJoQQQgghhBBCGhEKbz8hNDRUHn30UfWXsN843jwTfk/Zb4TwN4G/pZyDvAvO3ew3d2FyNUIIIYQQQgghpBGhxZsQQgghhBBCCGlEKLwJIYQQQgghhJBGhMKbEEIIIYQQQghpRCi8CSGEEEIIIYSQRoTC24d59tlnJSAgQO644w7bcyUlJfJ///d/kpiYKFFRUXLOOefI/v37xd/Zs2ePXHrppapfwsPDpXfv3rJ48WLb64ZhyCOPPCKtWrVSr48aNUo2bdok/kxlZaU8/PDD0qFDB9UnnTp1kieffFL1lYb9JjJnzhw57bTTpHXr1ur7+OOPP9r1ozt9lJWVJZdcconExMRIXFycXHPNNVJQUCD+2m/l5eUyYcIE9T2NjIxU21x++eWSnp4u/t5vxPvh3O0+nLvrD+du9+H8XX84d9cOhbePsmjRInnnnXekT58+ds/feeed8r///U+++eYb+euvv9SN6tlnny3+THZ2thxzzDESHBwsU6dOlbVr18pLL70k8fHxtm2ef/55ee211+Ttt9+WBQsWqJv90aNHq4UMf+W5556T//73v/LGG2/IunXr1GP00+uvv27bhv0mUlhYKH379pU333zTaT+600cQj2vWrJE///xTfvnlFzWxXX/99eKv/VZUVCRLly5VCz/4+/3338uGDRvk9NNPt9vOH/uNeDecu92Hc/fhwbnbfTh/1x/O3XVgEJ8jPz/f6NKli/Hnn38aI0aMMG6//Xb1fE5OjhEcHGx88803tm3XrVsH86Qxb948w1+ZMGGCceyxx7p8vaqqykhJSTFeeOEF23Poy9DQUOPLL780/JXx48cbV199td1zZ599tnHJJZeof7PfaoLv2g8//GB77E4frV27Vr1v0aJFtm2mTp1qBAQEGHv27DH8sd+csXDhQrXdjh071GP2G/E2OHfXD87dhwfn7sOD8/eR95kz/G3upsXbB4Er+fjx45XLqpklS5YoF03z8926dZO2bdvKvHnzxF/5+eefZeDAgXLeeedJy5YtpV+/fvLee+/ZXt+2bZvs27fPrt9iY2NlyJAhft1vw4cPlxkzZsjGjRvV4xUrVsg///wjY8eOVY/Zb3XjTh/hL9ykMUY12N5isSgLObGSm5urXNLRV+w34o1w7q4fnLsPD87dDQPn74Yh18/m7qDmPgDSsHz11VfK9RLuao7gBj8kJMQ2uDXJycnqNX9l69atymX6rrvukgceeED13W233ab66oorrrD1DfrJjL/328SJEyUvL08t3gQGBqq4sUmTJin3XsB+qxt3+gh/sSBkJigoSBISEvx6/JmBWz5ivi+66CIVzw3Yb8Sb4Nxdfzh3Hx6cuxsGzt9HTokfzt0U3j7Erl275Pbbb1fxjGFhYc19OF5DVVWVWll7+umn1WNYvFevXq1ibiG8iXOmTJkiX3zxhUyePFl69uwpy5cvV4n8kOiK/UaaCnjxnH/++SpJHRbQCPE2OHcfHpy7Dw/O3cQTKPfTuZuu5j4EXMkzMjKkf//+anUIDQnUkLgJ/4YVraysTHJycuzeh6zmKSkp4q8gm3SPHj3snuvevbvs3LlT/Vv3jWP2d3/vt3vvvVetnF944YUqu/Rll12mkvc988wz6nX2W92400f4i++1mYqKCpWx25/Hn3ni3rFjh1pw1CvmgP1GvAXO3YcH5+7Dg3N3w8D5+/Ap9+O5m8Lbhxg5cqSsWrVKWR51gyUXrr/638jcjbhcDTIBQ2AOGzZM/BVkNEc/mEHccrt27dS/US4LX3Zzv8HFGrEm/txvyCyNmBszcDmHFQKw3+rGnT7CXyyW4eZcM3PmTNXPiAX394kbpdemT5+uSgGaYb8Rb4Fz9+HBufvw4NzdMHD+PjzK/X3ubu7sbqRxMWc1BzfeeKPRtm1bY+bMmcbixYuNYcOGqebPIKNiUFCQMWnSJGPTpk3GF198YURERBiff/65bZtnn33WiIuLM3766Sdj5cqVxhlnnGF06NDBKC4uNvyVK664wkhNTTV++eUXY9u2bcb3339vtGjRwrjvvvts27DfrJmKly1bphp+cl9++WX1b53B050+GjNmjNGvXz9jwYIFxj///KOqFlx00UWGv/ZbWVmZcfrppxtt2rQxli9fbuzdu9fWSktL/brfiG/AubtuOHcfHpy73Yfzd/3h3F07FN5+NnnjZv7mm2824uPjlbg866yz1M2qv/O///3P6NWrlyrj1K1bN+Pdd9+1ex1lnx5++GEjOTlZbTNy5Ehjw4YNhj+Tl5enxhYWcsLCwoyOHTsaDz74oJ3wYb8ZxqxZs5RwdGy4+XG3jzIzM5VgjIqKMmJiYoyrrrpKTW7+2m9Y6HH2Ghre58/9RnwDzt3uwbm7/nDudh/O3/WHc3ftBOB/zW11J4QQQgghhBBCfBXGeBNCCCGEEEIIIY0IhTchhBBCCCGEENKIUHgTQgghhBBCCCGNCIU3IYQQQgghhBDSiFB4E0IIIYQQQgghjQiFNyGEEEIIIYQQ0ohQeBNCCCGEEEIIIY0IhTchhBBCCCGEENKIUHgTQgghhBBCCCGNCIU3IYQQQgghhBDSiFB4E0IIIYQQQgghjQiFNyGEEEIIIYQQ0ohQeBNCCCGEEEIIIY0IhTchhBBCCCGEENKIUHgTQgghhBBCCCGNCIU3IYQQQgghhBDSiAQ15s59gaqqKklPT5fo6GgJCAho7sMhhBDigxiGIfn5+dK6dWuxWLgmfqRw7iaEEOJp8zeFdx1AdKelpTXk9SGEEEKcsmvXLmnTpg175wjh3E0IIcTT5m8Kbxe8+eabqlVUVNg6MyYmRrx5NSY3N1diY2NpuWe/cbx5KPye+m+/5eXlqUVeeFeRI0f3I+du/8QXfhOaA/Yb+43jrXHnbwpvF/zf//2fauhM/HBDdHu78EbDOXASYr9xvHkm/J6y3/j73LD9yLnbP+FvKfuN483zMXxMm7hzDgwkI4QQQgghhBBCGhEKb0IIIYQQQgghpBGhqzkhhBBCiJdmby8rK2vuw/A44L6KfikpKfEJF9amgv3GfuN4q0lwcLAEBgZKQ0DhTQghhBDiZUBYbtu2TYlvUhP0S2ZmJrumnrDfDg/2m2/3W1xcnKSkpBzxQh6FNyGEEEKIl1km9+7dq6wwyKbL2u81+6eyslL1Dy3e9RtX7LfD+z6y33yz3wzDkKKiIsnIyFCPW7VqdUT7o/AmhBBCSKOC8pwvvPCC7Nu3T/r27Suvv/66DB482OX2OTk58uCDD8r3338vWVlZ0q5dO/nPf/4j48aN45USUaVOcTPYunVriYiIYJ944Q29J8J+Y79xvNUkPDxc/YX4btmy5RG5nTO5Wi03CT169JBBgwYdducSQggh/s7XX38td911lzz66KOydOlSJbxHjx5tsyA4c6E++eSTZfv27fLtt9/Khg0b5L333pPU1NQmP3ZPBaIShISENPehEEKIzxNRvcBZXl5+RPuhxdvNOt6EEEIIqT8vv/yyXHfddXLVVVepx2+//bb8+uuv8uGHH8rEiRNrbI/nYeWeO3euSmoD2rdv36xWQOCJllNPPCZCCPE1Ahrot5bCu6lY94vIii9FOo8S6TxSJK5tk300IYQQ0hzAer1kyRK5//77bc8hHnnUqFEyb948p+/5+eefZdiwYWrx+6effpKkpCS5+OKLZcKECS5d/EpLS1XTYNFci2YtnA8HvPfAvVdJVUGhJL/5lQQ0UGbb+ny+s3PQj4/0/PwB9g/7jePN8zE8/Hestt/c+hw7hXdTsf5XkfW/WBto0fWQCG93jEiwNX6AEEII8RUOHjyo3KKTk5Ptnsfj9evXO33P1q1bZebMmXLJJZfIb7/9Jps3b5abb75ZufjBXd0ZzzzzjDz++OM1ns/NzT2iG7rK+VMl69cFsHdI2WXjJObVzyWgCd27cewFBQU1LC5Y0EA2YPStdjsn9nhbtneEVnTp0kUWLVokRx99dLMdh7f1W3345JNP5O6771a/S/UB4S4jR46UdevWSXR0tNf0219//aUWOQ8cOKCycntaXz/xxBNqcRWLsw3F2rVrVS6QNWvWSGRkZIPtF7+zuMb5+fl2i7zmhV53oPBuKobeJJLQQWTzDJHdC0UObrS2+W+JBIVZxbcS4qNEWnTBDNtkh0YIIYR4Cri5QQKbd999V1m4BwwYIHv27FHJ2VwJb1jUEUduvhFCtm+EisXExBz+wZxygQReN0f2fjBLipbtkoAbzpPUz38TSxMlNNOLBjgPs/BGfWqU4EH/NFR92aYA4QZInPfDDz84fb1Dhw5y++23yx133GF7vGPHDpk8ebJceOGFdtv26tVL3WQjNOHKK6+0296Rp59+2mlYg7mfkUcA+8INe1BQkHTu3Fkt/lx//fW2+E6EQEAs/PjjjyqrfIsWLVS+gscee0zatj3kyQih88gjj6iFo/3790t8fLzKbfDwww/LMccc4/QY9HX0hGva3J/fWOjs//U9P1y3W265xSZeZ8+eLSeddJLt9bCwMOnYsaPcdtttarx4Cscee6ykp6dLQkJCg4almL9nSDzWqVMnde7XXnutbZuLLrpITj311Fr7OqD6mBpyvPXu3VuGDh0qr776qrpuDQWOEeMHCy+43mbq07cU3k1Fqz7WNuI+keJska1/iWyebhXi+ekiW2ZY2+/3i8S2Fel8klWEdxghEnYENw2EEEJIMwFhghsWiA8zeIyaqM5AuRbEdptvxrp3764yosPS6yyhWGhoqGqO4IboSG44qwyRp9reKCeNL5OOv/0jhesyZNe5IyXtq2kSGNs0FiR9Dubz0P8+0vNrLmo7ZsdzwgLKxx9/rG7kNfPnz1fjARYtx+0hjCEAzFnNcbNc22dedtllKoP+Qw89JG+88YYKb1ixYoXKpA+RceaZZyrRjRAIjD/kKejZs6eyUuM9yNCP0AmIL3DuueeqsQqrH57DeJ8xY4bah6vj8IRravYO8cZxVRfmPnaXnTt3yi+//KIqMTi+H5ZwLOyhwgAst/DMwYINrOOeAH4Tj7T8lSvwPUPuDpz7N998oxYc2rRpI2PHjlWvY7GqPhUXAhpwvGGBD8f2wAMPqEW0hqC272d9jp1ZzZuD8HiRnmeKnPGGyF1rRW6eL3LKUyIdTxAJDBHJ3Smy5GORry8Veb6DyEfjROa8KJK+HKaAZjlkQgghpL5ApMBiDdFhtmjjMUSMM2ARhHu52XVz48aN6gayqbN4r9+XLz8vT5ebA8+WZaefIpbgKinelis7zxwpFRn7mvRY/BVYneEyu2vXLttzsEzjeWc31RDZWNQxt9pcTqdMmSJffPGFfPnll+pGHdVskMzvjDPOUCEPJ554otoO5e1gPZw+fboSF7BwH3/88fL777+rhSLkJACw6P/999/y3HPPqfeiFB6EObwyTj/9dLfPGwsHV199tXTr1k2JP32D/8477yhLIkQNFqQg+PF9OeGEE9R5Dh8+XLZs2WK3L4jC/v372yyzCMtASTpzAkRYCqOiotRCAwSkDnEAWPiAtRfnis/EdmPGjFFWfw2swDhPHAO2xffYmfeBBl4KWNCANwJCT/AeiDkc17333qustBByH330kd37kOuha9eu6vxxLrBqmjNNY8EE/Y5xAFGM35/Fixc7PQZ4JgwcOFDOOuusGu7D5vEBbwVnVRXgmYPxhT679dZb1V9UbtBMmzZNWZ1xbomJieq6ma8NrOawpDseE37n9G8mjuuee+5Rn4++HTJkiOprDfr4tNNOU14VeB0LQvC00NcEYwZjEsBLBgtY2Bf6D9cc494MxhGs1/fdd5+6Bjg/eHS4+p7hGuCaYNs///yzxpgx8+yzz6prjfdec801ynPHDK49Plv3F/Z7xRVXqHGiwbyA0CL0NaztuDaofmEGVTGwyIXfDU+Dwru5wSpJy+4iw28VufwnkQnbRS7+RmTwDSIJnUSqKkR2/Csy80mRd0eIvNRV5PsbRFZOESmsX4wKIYQQ0tTABRxuvLD+IUbypptuksLCQluW88svv9wu+Rpex00TXI4huJEBHTfnWtg0JT1ax8iHVw6S8OBAud8YI7NPP0sCQ6ukZG+R7DhrtJTv3CaeACyVRWUVzdIaOykSbtThzo3xA2BhQ4k6iNKGAKL7qKOOUkLbEYgWuPnjZv+rr75SYt/RUwM3/xCqEKUYtxClaHBHdyXm6gLvO++882T58uVKxJvd2J988kn1ncFrEOVIPHjDDTeo7xAEJq6HWczh/dge3ye45kO4QxRNmjTJtg1caF977TVZvXq1WtSYNWuWEl5m0O8vvviifPbZZzJnzhy1GABBqAUTxNGIESNk5cqVajEAFtC6LIFY2MBiBvYH8Y9QEohTiMgFCxbIjTfeqM5t9+7dtvdAtOH4cS5wJ8ZvyyuvvGJ7HdcIgh2x8ogdRoiBro5gBgs5xx13nApZgHBz5jGj+w/ivDbQ57j+6BMIYw1+5/D7h+sCIY1+hsjXi4rwzEAYhXmcfP7550oYa1d2XEv0J8Yf+hbjAosemzZtUq/jdxHvRx+uWrVKLfhg/DkDQhcLEfhNxbXGNYK3x8KFC+22w3cNIh7X4Pnnn1cLImZRbQbn8t1330l2dnatC6NYwHjsscfUbzn6Awup//3vf+22wbHj+4jFln///VeFDOF7ZAai+9NPP1VeJwgLufPOO+XSSy+1E9k4DuRJwLXzOAwfJzs72xgwYIDRt29fo2fPnsa7775br/fn5uZiRlF/m4XMrYax8D3DmHyhYTzVyjAejTG1WMN4Z4RhzHjSMHbMM4yKcpe7qaqqUn2Bv8R92G+HB/uN/daU+MJ4a/a5ppF5/fXXjbZt2xohISHG4MGDjfnz59teGzFihHHFFVfYbT937lxjyJAhRmhoqNGxY0dj0qRJRkVFRbP15+LtWUbvR6cZ7Sb8Yjz70GPGxn5djbVHdTM2DepplK5faTT12C4uLjbWrl2r/oLC0nJ1bM3R8Nnugut8xhlnuHy9Xbt2xiuvvFLj8Y8//mh06tRJ9cMnn3xi9OvXT70eGxtrfPTRR3bbY4xFRkbatTlz5rj8zO7duxunn356rce9b98+NZ7Mx2bm+++/V68vWLBAPf7222+N+Ph4IywszBg+fLhx//33GytWrKj1M7Zt26b28ffffxsjR440jj32WCMnJ8duG7z+0EMP2R7PmzdPPffBBx/Ynvvyyy/V52qwr6efftpuP5999pnRqlWrGseA/i0vLzemTJliJCYm2p5HH+NzNm/ebHvuzTffNJKTk9W/MzMz1euzZ8826jMWcL0qKyttzx111FHGcccdZ3uM7zyuH87JFS+88IK6z9dER0cbH3/8sdNtcR4YM+vXrzfS0tKM2267rc55A/rhiSeesHtu1qxZ6nz1+AoKCjIsFovx5JNP1rqvAwcOqPetWrVKPcb3F+Pk66+/tm3Tp08f47HHHlP/3rFjhxEYGGjs2bPHbj+4phhToHfv3rbtHdHHid8QV4wfP964++677X6PMfbMDBo0yJgwYYLT7xnOHZ+RkJBgbNq0qUZfa4YNG2bcfPPNdvvFbzzOV18DjCdcT/P1x7yhfzNKSkqMiIgINT+Yueaaa4yLLrrI7rmzzjrLuPLKK42GwvE393DnG5+P8cbKGFaB4FKBlSesbJ199tnKhcErQEK2hGtFBl0rUlEmsmu+NS4cbf8qkfRl1jbnBZHQWJGOIw5lS49t09xHTwghhCirjaNLpcbsNqmBGzrieD2FAe3i5avrh8nlHy6Q/xYMlNzx4XL17x9IeZ7I9osukLYffChh/YY292H6LOPHj1eWT9zPwSJbm7UbbspwTzXHeGs3YbjhavdnWDunTp1aL4u9u9uec8456phhccM4xufAcvj+++8rF2tYcmHZ1JjduuEKDIstrMGwpjvSp08f2791tQC4DJufg2UT1kK4WsP1GtZDs4UbfYNtYMXG/THc52FJRKUBvA8WbPPrAH+RREsDi2VGRob6N9yMcV7wTICbLzJpn3/++WobWIF79Ohhex/c+dH09dAJz/Sx4z5dg+uH+3X9OQDeDrDOw2Ub/YZjNSdQhIUZlmRY5nEcsBCbj7u4uFhde3gKIIa/LrC9YzItDa4vdAb6CtcZXgU4XnjtAFilkWQPlmNk99aWbvQJzhP7hcUZYxr9BTd1WKJRUhHAgo1rBdd6M7Bwax0D12x83h9//KHOF2PPPEbMYF+wOMP6jISVyEOAfTnGYju+33ytzd8zXHOEG+DfOr7dFfB2uvHGG+2eQxI0eFfoChTIhYBwBY1Orqn7DSEVGJMYY2ZwHv369bN7Dt8dbOtp+LzwxkXTAwqDy6trXgaFiHQ43tpOflwkb6/IlpnVidlmWpO2rfvZ2kBSt0MivK3zWDpCCCGEuOd2PuWGYXLp+wtkcm5PyRn9f3LPjDelNMsiO668StLefE0ijrW/IWwq4Aq/9onRzfbZjQ1iuSFQ4IoMEeMqK7pO6AcBYBbeGsS+6nhgLWohalyVttMg2RriTiEenIHn8Tlm4QFRBYGAhjhkiEEcP8QKXHe1m7YjKIUEUQ73YnPmbI3ZbVqfm7PntFiBOEVMN4xOjuAYkSAO7t0Qb0899ZRyrcdn43ghaPQ9tKO7Nj7HfD8N92CIQMQ1Qxwj6Rzck+GmDbd4DUS6s3PR+3T2nD4XHBdcyXE+EPk4Vrhgv/TSS7bt4c4MUQ13aix4oM+xDVy8AVzKIVCRMA2C0VnstuN4ghu1MxBnjHGBfoDbP9zbscChhTdirxHjD3f41q1bq/OA4Ea/atDPcIuGOz36ENcc79HXDmMYLvOOmb+1Oznej77A+UJ8YwEF/YGYc0dQGQLu+VhwwGIN3MlRQcB8PK6ui2O5NP09Q0NyNewP19q8yNLQFFQvUOFcHa+bY6gAwj7MCy6eQrPHeGP1EgMTAxIX1tGXH7z55psq0QV+IBA74RiLUBdIKoDge6wg4kuGwdLUzFi3Xx77eY18Nn+HzN1yUDLyS458ASCmlUi/S0TO/VDk3i0i184QOeF+kTaDRQIsIgfWi8x7Q+Szs0Se6yCRP14hsuBtkYObsWzbUKdGCCGE+AUdk6Lkm5uGS4cWkfJbeSd5ZNSdEpZsSFWpyM4bb5OCad81y3Hh/ikiJKhZWlNlv4aVG3GciMVGDPDhAEGjxYK+cYdIQy4BJCBzBPdpsMTBKguLJOJxkU3d0SL61ltvKfFjFpWOQJDA81In5dLH4WglhGhDEiokYmuI5FBIqobs2+bP0w3nBVEHUQWxBgskFiIQd304wOqIWPO5c+cqgYn+0qXZdKutj+oC+8U1RKI7iDzUPXeWwA3ngNhfCFEsOJgTtOGcYQ2HJRVJ2Oo6V5wT4sndAeIY40EnMkO/YwECWc6RlM6ZgNeCFeIc/WX25sBnYwEJ1mbHa2fONYDM/7AmIzM/amdjX86A5wO+P4iJhi5CYjSM/SMFn3/BBRfY5epwBOe/YMECu+fMj7GIAo8HLF5ocO7mZHX4DkFgw2PAsT9wDGbgOeBoBfcEmt3ijR8hXHwMNGercVg1g9sIgughurFKgx83DGb8cAGsFJmzM2rwhYOgx2oUXG3gwoDPQJkH7Z7TVMzZeEA+mWf/4xATFiSdW0ZJp6Qo9Vf/Oy0hQgIt9ZzILIEibQZa2wkTRYqyRLbOtrqkb5khAfl7JXj7bBE0mSgS1/ZQ3XBY0EOjG/aECSGEEB8kNS5cWb4v+2CB/LMvTW4/boK8Nv8FKd5tyK67HpTUvByJOf+a5j5MjwVC1mwBBXCbdbxxdnbjDnfdukoU5efnK3FstnjjPa7quUNQw4IOF2+IpFNOOUVZuOHmi6RdsBzq7NtIkAULNtzGISy3bdum3gMrOoxEWnDBvRn3tXDZhSsykknhPc4SuDkDn4njhyUaVltkxj5c4OqM/SBBG+5/ITxxTwxhAgs3RAuOH+WysB3cp5GArT6gH9599121WID7btyjw80aSd0aEghtiC5YsJF9HpZPs/cDRC8MbDhPWKNhRYaQg/u1GYwLJPHCNYeFGeEursobQnOYy9OZgSCGm7l2NYenAj4bYHEI4xr9ol3uXdWSx/4RigMLtLbM6wUEWPjRj1gYgZBE1nOMQ4wthDPAYo0s+9gWwh6u2/iuuOo/JJLDAgaODwntoI0awkoNN3t8JzDWnSWjw+tXXnmleg0Z79H/SI6G62Qe97DYY0zCgwBjEuekF/fwXYKnCBZVsFiE7wV+T7CggO83QkwAvDjgSg/PBk+j2YU3Bouu+eYMDArUYtPZTyHA8UVDPIQewI4/4K6A2IbIx4+K/mI4And0c3ZBxLqAI3VRP7FbSwkNDpTNGQWyJaNAdmUXSV5JhSzdmaOamZAgi1pN75wEIR5pFeQto6Rji0gJc9elS5UsO8vacOz710jJml8lfPe/IjvnSUDOTpHFH6pmWIJE0oYccktP7m3Ntk5s191rwxOaCfYb+43jrf7fGeI9JEWHytfXD5MrP14oy3aKXD3kQfko5Fkp2lohex59QarycyXumrua+zA9EogcR0sUSgsh/rku3MnPA6GJZgbx4bh/dAZu6mFphEDCvSVchWGlhUiB4IHw0p8NcQU3cewP4h7WW9zDQnDpzONwAYahCKIdccgQtVhU0HWF3QWCCuICrudw30aZsMMBxw+3ahw3skbDjRiiBmIP4L4Y99p4DRZLxD9jkUGLGHfAwgbc9ZENGwsPEJrIto1+akgg7CG6IFJxrw7hCTd+Xe4Kwhifj+sGQQkPVxjc4JruCK4xSmnBUqvFtzbomcH1xbaIg9djQYNs+HpfuMbIEq4/CwscWCCA+z0EKbZFbDrKdTmCBQBcb/x1jCeHtR4LJLBkQ0zinOCZgEUSgAUB9DUWGSA+kfHcnOXdDBaJtm7dqs4D1wzHi0UliNcjBeIdi1b47ulyZmbQz1u2bFHZ8rFQgcUQWOmRDV6D8mH4XuH64Vri+HCs5gUPZPXHwhgEOs4FxlV4dZi/W7iuOBbtsu9JBCDDmngI+PHDypWu16ZjS7A6Y67hhh8DuI87cwtyBF887AOrJBhYWGXBBTEnojCDL6+zLyhcWVytlh4OpRVVsjOrWLZmFsv2zCLZlmn9946sYvWaMyCFW8eGSocWEdIxMVzaJ4ZLh0Trv2PDa5ZKMIPLjNgITAgB5UUStHu+BO+YLUHb/5LAXHtLfFVEklS0O17K242QinbHiRF++G5B3o5dv3Exgv3G8eaR+ML3FIu8uEnAPNWQc42/gv6E62Jj92dhaYVc/9li+XdzprQMLJBv1j4rReustWmTrz9fEu6qeT9RH7SrM87FPLZx4worI6xFrhI/+TPoN2cx3oT9djjAmwEJz8wisSHHGyy0iEeGdR4i0l8w6ug3LDzBeg+vFAhud4B2xKIZFtOg+RqK2n5z6zPfNLvFuzbgUoQL4ugWjsd1JcIwC2asmGgLHNwYXIlugNU+uLabOxOrWOjQhp68WybGy8Au9s9VVhmSnlOsLOObDxTIlgOFykKOxznF5bInt1S1f7bYx4kkRoVYXdarLeSIQ8Pf1rFhdgkwrJN3nEjS2SL9rK79RtbWapf06SLb/hZL0QEJWfedagbkfmp/kU4nWS3iqQNEYCH3E+z7jZM3+43jzRPxhe+ptx63vxMZGiQfXDFIbv1ymfy5VuT0bg/KT6HPS/HyfNn/7hSpzM2RFo/9h9eXEC8GlnsY/BDGAENeQwFvCFjoYYmGFdufRLcrzYYwYdSDh0fDG2+8ocQu8jC4C1z6Yf1uSNHdkPi8gkJaendd0QGC9tGwuoUG4a9viprixigoMEDaJkaqdlL3ZLsby8zCMqsIP2AV4mhbDxTKnpxiySwok8yCLFm4LctufxEhgdIxKVKJ8jYxQdIrrUQJ8naJkcqlXZHYydqGXC9SgQwxKFk2XYnxgIw1InuWWBtKloWhZNmJVpf0TihZVns2SF9AX3veGLPfON48F2//nnrrcRNRIWBvXdJf7vt2pfywbI+Mbj9Rfgt/WcrmZcrBr/+QyryrJfmlDyTAVDaJEOI9wJUcCd0aGsQmI8Eb4rPh3evvWCwW+fjjj1UcN3QPXPTh4u8qZt0ZzhIWehIeLbwRxwD3A7iLm8FjV0kQGgrES6Bp9wFPuClrERWq2pCOiTVc3SDAt5gEOcT59oOFUlRWKav35KlmZaf6f5AFAj/CGkeOxG7VFnKI9GjUAkc75UmRvHRrqTII8S2zREpyRNb+aG2gZY9DIrzdcJEg+3T+hBBCiK8THGiRl87rK5GhgfL5/J0yOvle+fWE16Vq9h7JnjpfqgoukFb//VICgjz6tosQ0oQg3tuDIn6bnbS0NLUY4ct49AwQEhKi0v0je5+O8Ya/Px4jsQI55OrWu02sambKKxFHXmRL6LZ2T5bszClTIr2gWqyjyVr7hY2UmLDqDOs6sdsY6TzmXEmKCJSA9GVWt3QIcVjBM9Za29zXRYIjRNofdyhJG6zohBBCiB9gsQTIk2f0kuiwYPnv7C0yJu52+emUdyT4z82S+/dqqbzsNEn95CexhIQ096ESQgjxR+GNhDibN2+2PYYvP1zDkSkSGSIRb41kakg/D7dxlBNDCTKd5byxcHQ199YVeLiYoxk9kKClhc16vz+vtNo6nm+NJc8oVH8P5JfKvrwS1f7ZfLBG+TOrdXycdO56vnQbWC49ipdI4v5/xLJlhkjBfpFNv1sbiG9/qGQZBHloVHN0AyGEENJk3mkTxnST6LAgeX7aBjk94kb5evynEvvbSilYtl12nz9a2nz+P7FEcT4khBB/o9mzmiN9P+IbHIHYhp8/QHD9Cy+8oFLMo2Y30vGjVIMvZUZtbFxlRnUkt6hcthy0uqvrpG5wYYflvMrFSAkJtKjs6iPi9suxASule+FCScxaKpaq8kMbWYJF2g49JMSTe3pFyTJ3+42w3zjemg9f+J76ylzjKXhCf342f4c88tNqVPSUDwK+ldT/zRWjwiLh7eIl7ctfJDCh7oohzGp+eDCrOfutKeF48/1+K2mgrObNLrw9FbPFe+PGjV5/M3SkN6Yl5ZWyPRMZ1gttMeTW5G4FTsufRUqxDA9cK+PC18gxslxaVuyz3yAqxeqOjoZkbRGeWbLMF27omwP2G/uN4837hKIv4Sn9+cOy3XLPNytVxZJXgqdKj5/+lKoyi4SmRErbr36RoDry1VB4+/4NvSfBfmO/cbw5h8LbzyZvTxVCVVWGyqquk7rZErwdKJCcIm3xNqR9wD4ZYVkpIywrZJhlrYQHlB3ah1ikILG3soRH9RwjljYoWRYongAFJPuN483z8YXvqa/MNZ6CJ/XnH2v2yS2Tl0lZZZU8ETpbhv38k1QUB0pwfKi0/ep7CWnX0eV7KbwPDwpI9ltTwvHm+/1W4g91vIl3JJNJS4hQ7cRuLe2+TFmFZSbreAfZcqCPTM84Uw7m5MpAywabED/KsltiMleIoC14SfIDomRz1CDJTDlOLF1GSlq7TvblzwghhBAv4ZSeKfLRVYPkuk8XyyOlJ8hdZ0TIuF++lPLsUtlxzhnS9rPJEtq9d3MfJiGEkEaGwtuHk6s1J1i5SowKVc1Z+bNtB09Sovx/GQXyUfo2Sdr/t/QoWiTDA1ZJrBRIv/xZImibnpB1VW3lY6OPbIgcIkWtBkr75ASVME5nXkcGWUIIIcRTOaZzC/nsmiFy1UcL5eWSwZJzWrhc8tuHUpYrsuPiCyXtvfclfOCw5j5M4mGlppDXCEmFSeOwfft2ZcFctmyZ6mt3uPLKKyUnJ0d+/LG6rK4LLrvsMlV/+oEHHhBvojnHXfv27eWOO+5QrTZ98cMPP9iqXTUEF154oQwaNEjuvvtuaWxoQnQBanivXbtWFi1a1OgXwR/Ln/VKjZUz+6XKPaOPkmevGiN3T5wkox6dJgdvXicLTvxSFrW7VnaGdZMqCZDulp1yfeAv8lLJw/Li1jOl/783yYrvX5Db3vpeej/2hwx9eoZc8v58efSn1fLZvO0yd/NBycgrYW1EQgghHsOAdvHy9Q3DpEVUqHxY3FveGn+zhCVWSmVxley8+hop/OtP8XUOHDggN910k6paExoaKikpKTJ69Gi72r24+cbN9VdffVXj/T179lSv6eS7enuzSHB87Ci08H5nbf78+U7fM3ToULnxxhvtnnv77bdrHIcWZccdd5wtebDet8ViUa6o/fr1k/vuu0/27t3rdp+RhgHXxlGsoW40rkWvXr0atJtXrFghv/32m9x22212gtY83pKTk+W8886THTt2iCfx/fffy5NPPtmg+8T3xPxdaNWqlVxwwQWyc+dOu+2gua6//nppah566CGZNGmSchVvbGjxJp5V/iw5TjoljxMZMc76ZGGmGFtmSsm6PyRw20yJLDkoJwcuVQ1sq0qWv4r6ypytfWTK5h5SLIfiLlDOxWoVt1rHO6O0WssoaZsQIYEWz44lIYQQ4nt0bxUj39w4TC59f4F8l9NFck+5Sx6a/YoU77XIrptvk9Tnn5Lo8eeIr3LOOedIWVmZfPLJJ9KxY0fZv3+/zJgxQzIzM2sIoo8++khZojQQxqhuExkZecTHMX36dCXizSQm2nvnaVB5BxY2M7NmzVLHCHENQafBY1TlMbNhwwYV94k40KVLl8rzzz8vH3zwgdq2d2+GGDQniC3G4k9D8/rrrytRHeVQNvC6666TJ554QhmGILhh2b300kvl77//Fk8B5ZwbA3wHNmzYoM4dsdI333yznH/++XaLbklJSdIcYOGlU6dO8vnnnyvDa2NCizfxbCITJaDPeRJ+wXsSct8mkRvmiIx8VKTdsSKWIOlg2S9XBv0hH4a8KKvCb5Df4l6QCTF/KCt5fkm5LNuZI98u2S3PTl0v1366WE58cbZ0f3iajH5ljvzfF0vl5T82yE/L98ia9FwpLmNYASGEkMalQ4tImXLjMOnYIlKmF6fJvSMmSGRbEaNSZPe9D0nuVx/65CWAey4ExnPPPafEbLt27WTw4MFy//33y+mnn2637SWXXCJ//fWX7Nq1y/bchx9+qJ4PCjpymxFENgSXuQUHOw9bw7FCMED0a3BsEydOVOJZAzEBMeVYIrdly5Zq/127dlULCRAaEBiw/NeHX3/9VVnNv/jiCzsL7tNPP62sp3FxcUrUVVRUyL333qsEVJs2bdQChhn0KQQPtsc2Z5xxhvIEMFsdTznlFGnRooX6vBEjRqgFAzOwXL7//vty1llnSUREhHTp0kV+/vln2+vZ2dnqWuE8w8PD1euOx2Gmtu21lwI8IIYPH64SW0Eo4RpoEBZ6zTXXKLdxvP+oo46SV1991fb6Y489phZ7fvrpJ5vlFddO73v58uVu7ccdsI9vv/1WTjvttBqvoa8wFmDxhSfFLbfcYte3dX3+nDlz1Dg1j0UAAa89LcA///yjHmMfWCCC5b2wsND2+ltvvaX6GH2JsXPuuefaWebNrt6fffaZDBw4UKKjo9WxX3zxxZKRkWF7XXt2YAEN2+EccZ3wnTGDbVKqzx2v4zwXLlyoFqRceats2rRJjj/+eHWcPXr0kD//rOkVNHfuXOUaj23w+QgBMF9TsHr1ahk7dqxaCMH5Igzg4MGDdvvB9XLmZdPQUHi7APHduMjw+ScegsUi0qqvyHF3iVz1q8h920Qu+EJk4NUisW0lyCiXHiXL5Kayj2VqyETZlHCX/H3Ud/JW3x1yQa8o6dEqRkKDLCqz7Ib9+fLrqr3y2szNcvtXy2X8a/9Ij0enybHPzZQrP1ooT/2yVr5cuFMWbc+SnGJTPXJCCCHkCEmNC1du57CALypJluuHPiCRnS0o8yHpjz0v2e+8XL8dojJsWWHzNDer0uKmFw03xqWlpbVui5tjuKBDLIGioiL5+uuv5eqrr5am5phjjlFiB1ZugDDE4uJiJRxgqYfgBngdN//DhtUeqw8xBNd1CHCzgKmNyZMny0UXXaRENwSqZubMmZKenq4E2csvvyyPPvqonHrqqRIfHy8LFixQn3PDDTfI7t271fbl5eWqXyGisAiCY8A1GTNmjPJEAAUFBXL55Zcr8QYvAwi0cePGSX5+vt0xPf7440rAr1y5Ur2O48rKylKvPfzww6qfpk6dKuvWrZP//ve/Ssi7wp3tsZiAGFzEY6OPIZS0p0RVVZVaZPjmm2/Ufh555BEVWz1lyhT1+j333KOOFecJ13I0iD9H6tqPO6A/4LIMEVgb6Cvsd8iQIW5/PkQoPEUghjW4phgX+ruxZcsWdZ7wLsGx4HuDawmRDxYvXqyEOBZpII6nTZum9usK7B+u53Cfx3cXixVmLw/Ngw8+KC+99JLaPxbHavuuZmRkKC8SeBygOQN9cfbZZ0tISIgaywjvmDBhgt02EO0YB/AcwQIGjtNxGyz4nXTSSSrMA8eG84WnDcaDGSwCYiGgrt+mI4Wu5i6AqwGaThFPPJCwGJHup1obJv7MzSKbp4tsniGy/W8JLtovaTu+kzT5TsYFWERSB0pVn5FyIPk4WSsdZUvmoTJouvzZ7uxi1WZvOGD3UYmRIcplHa7qOqkb/raODVeZ3QkhhJD6kBQdKl9dN1Su+nihLN0pckm/h2Ry2LNSsLpM9r3ynlTm5UjiPY+7t7PyIpGnWzfPBXggXSSkbvdv3Iwj1hPutriJ7t+/v7Kmwgrcp0+fGtvjxh1CCzf0sCDCFdTdBFh1AdGFWFMzEJzOgGs7bsph2YP4xd9jjz1WxahjP3gMCyX+QhDi+bro1q2b+gsRA4t4XYYg9MH//vc/1V9mYLF+7bXX1LnAOgo3dixS6IRe8CZ49tlnlfBCP0OEQdDAWq3LN8GyDOs3jv/kk09WFntzead3331XvQ4LM0S9BuIL/QFgdcdxQLhA9CF2F0JHi09YMmvDne0hHCEmAYQ5BBRc9hEzj4URLARocD3mzZunBCsEFhYXsOABUVWba3ld+3EHeD2g/5xdV1ia0fdwt8Z1ghfE77//Xq/Px4IPrhkWIgDGBUpd6defeeYZtQiirdZYOMG1wdhBv6GvMaZxLbEAA88T9L0rzAIaoh/7glES3xezKz1ipPX4hDfI+PHj1XHp0ltYjIiKirKdO7j11ltdho4gHGT9+vWqf1q3bm0bZ7BcmxekME7fe+89m1V8z5496jdG88Ybb6jzw3vN3jPwBNi4caO6BgCfgcUneBOgTxoLCm/iG2CCaNHF2obeJFJeLLJjrlWEb5khcmC9yO6FYtm9UJLlGUkOj5cTO52kaofLKSeJEZVsV/5sS0ZhdRm0fEnPKZHMwjLJLMyShdutq7ma8OBA6dQy0hpHrjOtt4yS9ix/RgghpA5iI4JVtvMbPlsi/2wWOfOoh+TH0OekYEmhHPjgG6nMzZWQux/zmX6EcMINOaytsKbCwgmxCDHiaEXDdrDWwpqLG+WGtHZDgCLjtCMQJbh510DAosH9FlZIAIGKxwBCA4+vuuoq9dd8w18bEB8AogF9YRYT77zzjs2qjQUHWAdhmXbmgYk4dfMCAjwFzInCIADhVq8t67Babt68WQkuMxBIsJRCeMMaCMs5hDbeB/dnCCXHRFjmxRKIJ8Tw6s+BGz2uNayQcFuHS7y2MONcdUwzBM6aNWtq3V5j9iTAIg5EOqzj5gUKjBMcJzwSIKIOZ6HmSPeD92DxxVldalxXLKIA9DPEIM53yZIltmtS1+fje4JkYPj+wF0di1kQ3VrA4hrD0q1DEvR4w4ILvDNwjdHvENFYJEHTIQPOwLHBVR/7RUgA9uPsu2IeD3AnBxgPSKQIcH5Lly5VFnR873F8EOuuwLWFONaiGzh6k8Bij88119XGIpkZHDe8URzj7QHGvBbeWJgBelGgsaDwJr5JcLhI55HWBnJ2WQU4LOJb/xIpzhZZ/Z21YfJL7i2JnUdKYudRMmTAEJGgENuP1d4DWZJZFihbDhQqYb5FCfIC2Z5ZKMXllbJ6T55qZpC8rV1ChHQ0lT2DIO/UIkrdaBFCCCG60sf7VwyU275cJn+s3S9j2z0gv4a9KEX/ZkvWt39IZFaWxL72kQTUFtscHGG1PDcH+Ox6gJtk3PyjwcX42muvVULPUXhDXCEWE6/B1dQxwdmRgBv6zp0713geN/nm2FCdaApWYIgEWNMgsOG6rIU3hDJu4BE7DZdWd9CCEZZdCALzZ0I8a2Cpg1iBEIPQdBRzjnHpeN3Zc1oswUo5YMAAO1HmmNgKCxxwg0ZsMQQaRCQEj3ZFr+2z9edAXMPyi8zeiMsdOXKk8iJ98cUX1SILBKV5H7Vt7w6IzcU1gaszjhUi74UXXlDjpj40xH7gIg/xhv6Cm7QZeNDqcYe/sNhDpGIhCN8Ddz4flnS4V8PqDYs4RKw51wCuMRaszBnVNRDBOCaMKbznjz/+UO7sENaI7YdngxnEhSM0AQ1jBmMEghuPaxsPepzq8QCwQNS5+tyx6IXvDBKs1Rb73xCgP9BfyC3hiF4gADpMorETvFF4u4B1vH2MuDSRAVdaW2W5yO7F1W7p00X2LhfZv8ra/v2PSEiUSIfjraK900iJCImXVkmx0ruN/Q9SeWWV7Mwqki3VVnIlypUwL5SC0grZerBQtenr9tu9D6VkOkKIJx0S5LCWI+aPbuuEEOJ/hAUHyluX9Jf7vl0p3y/bI6e0vE9+G/mqlM3YK4UzF0v69RdJ6juTJcBFAjDl9eWGu7cnAquZq5rIEIEQXyg9hLjlxgZi35kgh/UVggWuwrAOQ7wCWKFRIg3CWLuk1wVEJ9y3EVerb/KdfSaAez1EGCzssF7DbfZIgHs/RB7EGyzUjsDYgGRVuAdG3DbAgoJjIip3wLkhwzsaEn3BNRrXMjU1tV7ba2Dh1bHISCAHS6yOW4ZHAK4RhJwGws4Mrh+s97Xhzn7qQlunEaNdl6VcxzfrhQh3Px8iHW7+iAfHGEEeAvM1xme7GlN6nI8aNUo1LGxBcCNfAGKqzcDVG3H0CFfAYhVAnHRDMHHiRHXscDd35s0BcY6xh3h8LZAdS/4hvAKZyBFCoEM8HMtAoz++++47tchVW2JGJGBDf9aWi6AhoPB2AWO8fZjAYJF2w6xt5MMiBQdEts46FB9edFBkw2+qYc0uOr6jSJdRIp1PFml/rEhIxKHyZ0o8R8kpDhPX/rzS6vjxfCW+t1S7r+/LK5GDBaWqLdxm77aOxG/Idqss41qUJ0UpkR4Rwq8qIcS7wc08rDeIoevbt68queNKqMB9Eu67ZnBjBdHjqwQFWuTF8/oqC/hn83fIKdF3yi9j3xb5favkz10tuy49Q9p8/J1Yql0ivQ3cwKPEEsQ03ENhzcNNPFzNkVnbGbj5huhz5QbrClimYUU2xyqb4zZxLI6ZoSE+zC6rZuCGCrdejFmIHC2YIObMzzvLjA53W4xbJCeDWMT54pxQL9kd4AoLV1mIbwgHVzXK3QGuzvgOor+RXAtCA5ZmHAtipSGKIdggZiCGkOcIAli74boLrKhYnIArPETRL7/84tS1vz7b4/cD8cp4/pVXXlFuzzr8AM9/+umnKh4YVmAkH4MAw781EF54He7JcL93lr/Jnf3UBRYQIPYQV+8ovGEJ1+MOruZIBoYxB3fz+nw+LM5YOHnqqafUdTSD5GI6YzoEOhaEIMThSYCFG/Tt1q1b1SIGFrPgZQDLNESsKws5xjcS9UGcNlSN77S0NOXijph2HJMjWBTA2MdCDMYsxqJ209cgwzqeQ+1vCHlY4/Vijf7eQ88hBhwLFRjj8GJBuAW8C+B9ob/LCH/Q16Ex4d08IVFJIn3Otza4xexbaRPhxq4FEpi9VWThu9YWGGoV7IgNR0vqZrU0OJZMiA1T7dgu9itnyhJ+oEC2HqgW49WCfNvBQimtqJL1+/JVcwTWcJuVXCd3S4pSyXmcxRERQognASvbXXfdpZJqIYsvxANuHnET7Cq5lK77qvGH3zp4PT1xRk+JCQ+SN2dtkXGhN8k3p34oUb+ulcIV22TXBeOkzeT/wWQl3gZcqnHtIZpgxUOsJ26+ERetk4E5w1V97dqAlRjNDEQMkqLpm3pHvvzyS7u64Y7A3Rzx5jq+WwN3cwhjxzJiGggajF2cP+JqcXOP70J96kdjH7BIasu347m5CxYwcA4QZ7BuYjEAYhuu3doCDms8LK4Qj7g+iEPWrvXuArGGxG5IHgfRDgt2baWa3NkeVlc0LKhgcQDly7R1Eq7VyHYOzwj0NUQWzgFu2BqMM7hXw2Uf7se4Zo5J3NzZjztA8EJAa4u8BgIQDUD0YgEKwleLXnc/H27bCM3AtUEGejPYJ+LzIUjRjzAGwbKMfeoFJiy0wL0cC0IQ+xj7jnXt9SICFkHx/URSNYwJCFvH8n+Hyx133KEs/EjKZ87urs8R4SVIJocFWlwrHANi0jUYs0guhxwBWORAdnMs4kCQ60U0hI/AkwBjHt89LOxgEQ770fkR0A/wukHCvsYmwNAZHohTdFZzZONz5pbjLeAy4xxwLv5w89JQGMU5UrRmmkSkz5MAxIjnHqopqohJtbmkS8cTRMLt3dHdpbLKkN3ZRTYhbhPlBwpV0jdXRIcGSUcdQ26ykrdr5uRuHG/sN443/5xrXIGbKljQtKssLCy4qYebISwVjuBmDzdlKAXjr/359l9b5Nmp6/GLKl8EfS0tflooVeUWCUuLl6RPv5NdOTnKEubKSuvPYA6CW7HZ4k28s98gxjHOIUgbKqt9Y/cbXMchprHgWFd5ucMFghRhDub66d6G0QjjDbHo8JbCb7+7nhrI9g6Rj5h3V0CcIzmds9/c+sw33rdk6qVU5uRIVXGxBJsC+YkXEBYr5Z3HiAywrhTKwY1Wd3RYxLf/I5K3R2Tpp9YWECjSZlC1NfwkkVb9rLXH3UAlY0uMVO0ka5URGxDeW01C3BpHXqDiy/NLK2TFrhzVHPfXNiHCJMhhKbf+Oy7CPtkHIYQ0JkjCAxdbWLQ0sDTA6ohSOa6AVQqWCYh0WFpg3XFmlfFVbhzRSaJCA+XhH9fIJRUXyjvnREqHH2ZKya5sSb/1WjEeq5ksiBDS/EDwweJ9OLHxdQFxt2rVKlVKy5tFd0OBfoYnCTw3kMEclm1kea9PeARCROBO3xRQeDcROd99LxkvvCDh/fpJzNixEj16tAQn1167kXgYWI1LOsraht0sUlZkLVmms6VDlO+ab22znhKJSLRawdsNF2k73OqW7qYQN5MQGSIJkQkysL01u6qmtKJSdmQW2YT4Ifd1a3I3uK+jTV9nLe9Rsya5SZQjuVt8uBLshBDSkODmE1YNc7ZmgMdI3uMMWIuQsApuk7jRhHsjXBJReghxqY7AfRDNbIHQFhVvduy7eHBbsVSWycO/bpYbSk6T58+NlH4//E/KMoulMiNDqtLSxHCjbrQ/483XvznxlH7Tx+Et32V9jLqmdUMfM+Lz4ZoNt3QsXnpDn7iDcZjngeRrcC9H7DySsJ177rmqAkF99gfvgbqOobZxWJ/Poqu5G1nNUWD9SN3V9j7+uOR89TWuTnXPB0jEgAESPW6sxJxyigQ1chY9uv42Qb9l76gW4TOsJcvKHGK1w+JE2g4VaYvEbsNFWh1tK1vW0MeckV9qE+TKSq5c2AskPdd1YiK4pndsYZ9tHf9Gwjck+6nvMTC04fCuHfvNP/vNF1yjXZGenq6sEciWbHa7RKIbxCK6U6oH8cBIqoSYR2fJfRCviCQ9jiBxlDf3J8Y2LP9L9pXJfT9ukLJKQ+6P+FdOXPivlNz5iLRLbikR7TtIAN3NawBPCXONa+Ie7LfDg/3m2/1WUlKi5hPEvTuWicP8De8sd+ZvCu8mvBkq379f8n//XfKmTpPiZcsOvWCxSMTgwVZL+CknS1AjlMzwhRvT5uCw+w0ly3YtFNk2R2TnXGv5svIi+22CwkRSB1qTtUGMpw0WCY2WxqSw2hKuhbgW5ci8XlZxqN6iI61iw2oIcrTkGOfJ3TjeDg/2m//2my8Lb7iaI6nTt99+K2eeeabteWSrRQz3Tz/95NZ+kBEbWZ2RCMgdizdiyLF/b+5P89ietzVTrvt0iRSVVcp9KZvkuL69JC2xpYQFWiS4XXuxRHpnObHGQseOEvYbx5vnUukl31MIb+QbQJI3ZzHeSFrHGG8PIzg5WRIuv1y18vR0yZv2u+RNmyYlK1dK0fz5qu174gmJHDpUYsaNlehRoyTQSbkD4iUly9ofY21aiO9daRXhO+eL7JwnUpQpsuMfawMBFpGU3la3dFjGYRWPathwBFiue6XGquaY3G1PdrEpqduhJG+ZhWWyN7dEtX8228crRYYE1ih/hsdtE7yz3A0hpOGBdQClgmbMmGET3rBy4LFj1t/abs4Q16hrCzuCUmO6jqsZLMR462KM4zkc0zlJvrh2iFz50SL5orCb9AuPFkuQiFElUrZju4SkpUlgDO8ZHF0/vf36NyXsN/Ybx5tz9O+IszmlPr8xtHh7gBWibPduyZs6VfKnTpOStWsPvRAcLJHDh1kt4SNHSmB0tF9bhJqDRus33BQgJnyHFuJzRXJ21twuodMhizhaQsca5csam5yiskPu6tWCHMnedmQVKcHuDISKp8aFSZfkGOlsl3U9SuIjmdzNFfye+m+/+bLFGyC7Lyzc77zzjioNg3JiU6ZMUTHeiPVGSRy4oz/zzDNqe9SmRS1alA2C1Rp1XFHuBUnaevTo4Tf96Wxsr9ubJ/d8tVjuGBInndokS2pxllSVW18LadNaAuPs84H4I56YndsbYL+x3zjenMOs5j5ESJs20uK661Qr275dWcHhjl66YYMU/jVHtX0Q4ccdp0R41IknSmAUXcp8JlHbwKusz+XusVrC0XbME8lYK5K1xdqWfW7dJiq5Ok58uFWQJ/cSsTSuiw6yoA9oh2YfAgHX9J1ZhbLZofzZ1owClW19V3aJajPXZ9RIFmeLJTcleGsTHy5BgZ4f50MIqT+oIYvSNzoJDsoCoWaqTri2c+dOuzi/7OxsVXcX26LeLSzmiBF3R3T7Ot1bxcirFx4tu3bskPyqYEmPTpHUgv1SWYaF/HQJrqyUoMSk5j5MQgghDtDi7cGr5qVbtigBDmt42ZYttucDQkMl6vjjlTt61IgRYomI8AuLUHPQrP1WnG2NE1dW8Xkie5aKVJXbbxMSbY0NV1bx4SKp/UWCm9fNWyV3yyuRldv3y74iORRHfqBQ9uQUu3xfSKBF2reIqFH+rGNSlETVM7mbt8Lvqf/2m69YaD0FX+lPV2Mb1pfNW7ZKYEyylAcESoSlQtoW7ZPK6vyZwS1bSFDLFPFXaLllv3G8eT6GF3mm0OLtB4R26iRJt/yftPi/m6V00yarO/pvU6UMq9x//qlaQHi4RJ94gkSPGaPEuIWZTX2H8HiRrqOtDZQXW8U33NJhEYcoR+Z0ZFJHA4EhIq37HcqcDlGO/TQh+PFsGRMmg9rF1bhZLCrTyd0O1SNXVvIDBVJaUSUb9xeo5khKTFiN8md4jOc9/ceaEEIaA5R/bJMQLvsKKqWoXGRbeCvpELBPKosNKc84KAYs3ymt+RtJCCEegn+YkbwcCIuwrl1VS7rtNildv17yfpuqhHg54sPx79+mKst31MiREjN2jEQee6xYHNLdEy8HlmxzwraqSpH9q60iXLuoF+wX2bXA2v79D0aPSMse9nHisanNdgoRIUHSs3WsamaqkNwtRyd3s8+6frCgVPbllaj27+ZMh/0F2hK7dTQJ8vaJkRIW7PlZMgkh5EgIDrRIh6Qw2X6wSIrKRLaEtZJOln1SWVglFZnZyEonQalpFN9ewAknnKBCMJD/gDQOyErdoUMHWbZsmeprd7jyyitVngnkmKgN5LBAKMyDDz4o3kRzjrsOHTrIrbfeKnfddVetGuiHH36wq4hxpFx44YUyaNAgufvuu6WpofB2o463x4nw7t1VS7rrTilZvUYJ8LxpU6Uifa/k/e9/qlmio1VCNiXCUTc1OLi5D500NIjtbtXX2obeaE3YlrXVPk4c8eEZa6xt0fvW98W1tc+c3qJrkydsq3EqlgBJS4hQ7YSj7F/LLSqXLQfty5+h7czEjWalrNqTq5oZnE5afIRdpnUt0BFjTis5IcRXCLJYpEOLSNmRWSgFpRWyOaSVdIblu6BSKnLyxKjaLsFp7T3id0/H+f/666+yf/9+Fb/ft29f9dwxx1gXlVGuB/VyUTYON8hmevbsKWvXrpWPPvpICSK9/R133KGafnz77berG3pXwssZ8+bNUwn9agPHdOmll8qNN96o7hHNzJ49W0488UT1b/R1dHS0dOzYUU4++WS58847pVWrVvXqK3JkOBPMKDG4d+9eadGiRYN274oVK1TOirfffttO0P7111+2xy1btpTjjz9eXnzxRVXz2VP4/vvvJbiBNcLHH38sV111le27gFweOPcXXnhB2rZta9tu4cKFNUpzNQUPPfSQOp5rr71WeWY2JRTeLvi///s/1XScmCeCwRzeu5dqLe+9R0pWrKgW4b9Lxf79kvvjj6pZYmOtpcmOP06Mk06SAIpw3wQ3VYmdrK3fpdbn8vdXC/HqzOn7Vlmzp6Ot/Mq6TXhCtWt6dZx4qz7WcmgeQmxEsPRvG6+amfJKJHcrqiHINyO5W0mFeg1t1oYDdu+Liwi2L39WLczTmNyNEOLFbuftW0TKrqwiyS0ul41BKdIlZr9U5VVIZV6hyPatEtyugwSYEtg1B+ecc46q6/7JJ58oUQrxjbJymZn23kwQSBDXZuE9HyVX9+2TyAaoVz59+nQl4s0kJibW+b4PPvhA7rvvPpWd/6WXXnIqGjZs2KDyCuD+cenSpfL888+r90GY9+7d+4iPnRw+iCVOSWn43Aevv/66GttRUVF2zyNBJCo0IJYZi0lYHMLCzd9//y2eQkJC41RBwHcA3wWc+7Zt2+Tmm2+W8847TxYsWGDbJikpqVkMnL169ZJOnTrJ559/rrReU8IUwj6CEuFHHy3J998vnWfNlHZffC7xl1wigS1aSFVuruR+951k3X6HbD5+hOx99DEpnD9fxX8RHyc6WaTnmSJjnxW5YY7IhB0il34vcvy9Iu2OFQkKEynOEtnwq8gfD4m8f5LIs21FPjlNZNYzIltni5QViqe6WEI0n9IzRW46oZO8eF5f+eHmY2Tlo6fIogdHyVfXD5VJZ/WSq4/pICO6Jqms6VibyCkqlyU7smXK4t3yzNT1cu2ni+XEF2dL90emyckv/yU3frZEnp+2Xr5bsluW78qRvBKHhHaEEOKBWAICpG1ChMRHhEiVBMhGS4oExFpDzioLi6Vs25ZmnfdhfYTgeO6555RlGFY/lJa7//775fTTT7fb9pJLLlHWwl27dtme+/DDD9XzQUFHbjOCyIYAM7e6rH4QD8isP3HiROnatauyFDoDlk3sD9tg4eDff/9VAuOmm26q1zHCKwCGny+++MJmwYW77dNPP60siHFxcUrUVVRUyL333qsEVJs2bdSChRn04fnnn6+2xzZnnHGGsvxrFi1apKzysAJjm5NOOkktGDjeY77//vty1llnSUREhHTp0kV+/vlnuyoEuDY4z/DwcPW643GYqW17HBs+76uvvpLhw4erxQ0IJbP1GGLtmmuuUd4LeP9RRx0lr776qu31xx57TC3u/PTTT7a6y1j40Ptevny5W/txB+zju+++k1NPPbXGa+grjAV4O8Cb4pZbbrHr27o+f86cOWpcYsHJDAT8cccdZ3v8zz//qMfYBxatbrvtNiksPHTv9tZbb6k+Rl9i7Jx77rl2lnntLQI+++wzGThwoPLYwLFffPHFkpFxqDoN+hF9iAUzbIdzxHWCyDaDbfS543Wc58KFC9WClAbnbT7fTZs2KUs0jhNu+3/++WeNPsV3EK7x2AafD48G8zUFq1evlrGoAhUVpc73sssuk4MHD9rt57TTTlNjrKmhxdsHwYp2xIABqiU/cL8ULVpstYT//rtUZmdLztdfqwZRHnPKKSo7enj//s2+Ek6agLAYkc4jrQ1UlIrsXXEoczos4yU5ItvmWBsIqHZph1u6ihMfKhLZsG5aDQl+gJOiQ1Ub2tHeglFcVlmd3O1QYjdYzLceLJCS8irZlFGgmiMto0NrlD+DlbxVTJhykyeEkOYEVqXiCmvViIQoQ8qqqiSzsFRWSbR0iskUySkRKSiR4k2rJbh9RwkIbLgcGOFBWNSs+3cQN8FouFGGCAkNDXW5LW6WR48ercQT3EKLiopULXiIr08//VSaAwjD8ePHKzEMqyWs2BAldQExBNd0uJtDwECY18XkyZPVe/DXLOhmzpypxDUEGQQ9xAyECMQKLInooxtuuEEJaWxXXl6u+nHYsGFq0QOLFk899ZSMGTNGVq5cKSEhIZKfn6/ik2G1raqqUq7QOE+IIIgvzeOPP66s93AXxrYQzrDiQsw//PDDKgRg6tSpSsBv3rxZiotdVzFxZ3ssJiDuGALs5ZdfVkIJix9YNMFx4vy++eYb9Rh9cP311yuRh0WGe+65R9atW6dEnhb0OM709HS7z6hrP+6AfkTlAZQ8rI2srCyZMmWKDBkyxO3Px3WFZwjEMPoD4JpiMQbXAmzZskVdT1xXLE4hnAMCHw3nvnjxYiXEsQ8IYBxHbRZ37P/JJ59UiwAYr4i/xqLPb7/9ZrcdYtnh9YHFE4zVq6++Wo1JZ2A/iNMODAxUzRnoi7PPPlt99zGW0afmBQGA64lxMG7cOPXd0F4Ejgt8WDyCG/krr7yixtWECRNUf+L7o8Gi36RJk6S0tLTW36KGhsLbx8HkGjl0iEQMGSxht94iwes3SP7v0yT/jz+l8uBByZ48WbWgli0lesxoVSc8vG9finB/ISjUmvkcTe7AL5/IgfVWt3SIcMSJ5+0WSV9qbfPesL4PceE6WRtc1OPaNXucuDuEhwRKj9Yxqjkmd0vPLbYT4luq65Nn5Jfa2ryt9u6Q4cGB0tHOZd36b8RbMrkbIaSpgOgeMvnQDX2tHPL0bBAWXLxAIoLrLmsK0YfYT7jfIha2f//+MmLECGUV7tOnT43tcSOP5Ee4wf/222+Va6i7CbHqAgLEXDceFBTUXHQ1iwIcOwQnwDHj2CAEXcWMm+nWrZv6C4trXcIbseM45//973+qf8xAPL722mvq2CGMIL6wKPHAAw+o1+E98OyzzyoLKI4RQhzHDmu1XhyBGINlG5bLU045RYkU8wIOrg3EMBY5zKIf4uuiiy5S/4bVHccBCyZE386dO6Vfv37KAqnj7GvDne0hHOG+Df773/+qGGrt6g8rMBYCNLgGiNGHsIXAwgIPFjwgqmpzLa9rP+4A8Qcx6ey6wtKMvke/4jrBC+L333+v1+djcQXXTAtvjAuUttKvP/PMM2oRRAtQWLZxbTB20G/oa4Rn4FpiIQWeJuh7V+B7p4Hox76QiAzfD7MrPUSrHp/wAsFiDY5Lh19AOGN7fe7gtttucxkqgvCP9evXq/5p3bq1bZzBcq2B2MY4fu+992xW8T179qjfFM0bb7yhzg/v1WBBAp4AGzduVNcA4DMQ9gJvgqaMuafw9iMCgoIk8pjhEnXsMZLyyCNSOG+eqhOeP326VGRkSPann6kW1KqVxIwZoyzhYb16eURCFtJE4EYkuYe1DbrW+hziwc2Z0yHMD260tqWfWLeJbm2fOb1ld6+6ZLBat4mPUA1u6Wbgar7VrvyZ1VK+/WChFJdXypr0PNXM4CsD13a78mfVmddbRDG5GyHEP4GQwg06LG6I2YbFE+IR4kQnS9NgO1hvYd3FjbNZEBwpEKTdu9ecpyBScDOvgaBFg8srXHdhaQMQprAq47hgHawLiA+A+ymcu1lMIF4cwglggQHWQVgOIXYcQVy6ecEA1kG4YWsgAGE51a7BSPoFa7LZcg0gkGApBYizh1cBhDjeB/dnCCX0hRnz4gjEE2J49efAjR7XFm7UEPNwicfiBsC5agsrBM6aNWtq3V4DK7150QYiHVZs8wIF+h/HCasmRNThLMwc6X7wHlhMnd0r47rqLOfoZ4hBnO+SJUts16Suz8f3AtcH3xd4imABCKJbC1hcY1jddUiCHm9YcMHCEMYp+h0iGoskaDpkwBk4NrjqY78ICcB+nH03zONBJw7EeNDJ03B+uL6woON7juObNGmSy37EtYU41qLbcQwAuLPjc825FWC5NoPjnjVrVo14e4Axr4U3FmaAXhRoKii8/RQkWEPdb7Sqxx+Twn/+VZnRC2bMlIq9eyXro49UC27TRmVGhyU8tHt3inB/BFnQ0fpeYH1cmGktV6brie9dLpKfLrL6O2sDYbESmdJfpNPxVhd11BaHdd0LiQkLlqPT4lRzTO6GREb25c+syd3ySipkV1axarMdkrvFhAWZsqxXJ3lrGaViM4Potk4IOUx3b1ienZFVWKY8ekCaJV/CcnLFqAqQgMAA5XZuOUI3S3x2fcBNM8QAGlyO4RL66KOP1hDeEFuIzcRrcD2Fq2pDgRv8zp0713geN/3mWFGdeAqWVrjo6pt1AEECwQOLpaP13BEtGGHZhSAwfwbEswaWOogVCDEITUcx5xiHjtedPafFEqyUcIE2izINXIQB3MyR3A6xthBN6HfEC0MA1vXZ+nMgrmH5hTsyFilGjhypklbBbR2LKtqNXO+jtu3dAbG5cCeHqzPEGUQeXODNibuaaj9YhIF4Q3+ZxwdAWIIeZ/iLcQSRioUfjHt3Ph+WdLhXw+oNizhELBZJNLjGWKCCNdkRXE+EE2BM4T1//PGHqiAAYY3Yfng+mMHiEkIT0DBmMEYguPG4tvGgx6keDwDfCX3uWOSC6L3pppuUy3tjgv5AfyGXhCPmygL4Ppu/B00FhTdR9b6jTzpRtaqSEin4+2/JhyV81ixVJzzzvfdVC2nXTqKVCB8noV27UIT7K5GJIt3GWRtA8rU9S6qt4nNFdi2SgJJcCd4+SwQNBIaKpA44lDk9bZAS594MkrvBgo12siTbrTRnFpbVyLYOq/mu7CIlypftzFHNDER3u8QIaRsXKt1ax0mnltE2K3lsuOdkmSeEeB648XXl7h0RFyFRIRFqIfCAhEtqiwiJzMkWozJAAnamS0j7DmJxYf1qCmBFc1UjGVZuiLELLrhAlR5rbCA6HQU5RCmSdEEkmTOhwzJ87LHHKjEDK6IrIDrfffddFa+rb/KdiX4Ad3qIMCS8gvUabrNHAtz5IfIg3mChdgas63CJhjUf8xfc4R0TUbkDzg0iHg3CHa7RuHapqan12l4DCy/6DCCBHCyxcD/XxwwLOTJla7QFXwPBWVfGbHf2UxfaOo2Y9brivHV8s16IcPfzIdLh5o94cIwRXXpPX2N8tqsxpcf1qFGjVMNCFgQ34p0RU20Grt4Y7whXwOIUQIx4QwB39E6dOqlcBzhmRyDOkQgQ5d60QMYYMIPwCmQiN8dlYwHBDPaNZHdY5KotESMSsKE/G7q0XF34jfDGahQuKlLZu7ui5o9YwsIk5uSTVasqLpaCv/6SvN+mqr9lO3ZI5tvvqBbSqZPNHT20U6fmPmzSnIREinQ43tpAZYUY+1ZKyYaZEpaxTAIQK150sDpufK6IvIQMgCLJPa0iXLuoRzd8iY/mugFuERWq2hCH5G4l5ZWyPRNu6+YEb9Z4critW4V6oczaZF2J1SBRnGP5MzxuHRvO5G6EkDqJiwhRWc93ZBXJnsooSYm3SGx2plRVipRtQ6mxdhIYZe+O3NDghh73YBDTcBeFdQ839XA1R6ZtZ+C+DSLQlVusKxD3CasyhI62xpnjOHEsjpmiIUaclQeDhQ7u23DvdbRAQ6zCimkW3nC3hSs3kpZBLOL8cA6usqA7AldYuMpCfEM4IMHY4QJXZ1hQ0b/IgA6hAUszjgWx0niMmGCdyRpxuRDAjpbbuoAVFaITCxMQRb/88otTV/76bA8XbBwbnkeSLLg963ADPI8ke4gHhhUYxw8BZo63h/DC63BPxvVzVhrYnf3UBRYQIPYgoh2FN7SHHmdwNUdYAsYY3M3r8/mwOGPhBAnUcB3NIHGYzpgOgQ4XdAhxeBJg4QZ9u3XrVrWIgcUreBnAMg0R68pCjlwGSJgGcepOKIU7QMifddZZ6trjmBzBogDGPhZiMGaRSE276WuQzBDPIQEdhDys8VrT6e8mPCcQA46FCoxxeK0g3AILZ/C+0IsfCH/Q16Ep8RvhjbgCDEziPpbwcKu4HjNGqgoLJX/WbJUdvXDOHCnbskUOvvmmaqFdu9rc0UPqSKhB/IDAIOVaXhrZUcL0RJe5uTpzenU98ezt1priaAvfsW4T36E6c/pQqyBHPXIfyy+AhGvdUmJUc0zuti+vRDZn5MuanQdlT0GlNa78QIHszyuVA/nWNn+rvSAPC7ZIhxammuTVgrxjiyiVSI4QQjQx4cHSITFCtmcWyb6KCKmMs0hC7gGpqghQC+shbdIk0Ik4aSjgYo2MzhBRsOoh9hM340iMpJODOcOd+tqOwGqMZgaiBhZqfZPvyJdffmlXN1wDt28IBmcxvIhTdixVBEGDbXG+iKvFzT0yQ9enfjT2AYuktnw7nou7YMECMfIQZ7BuYjEAFmi4dmsLOBYOIGQgHnE9ILSwfX2AWENiN1jLIdphwa6tVJM728PqioYFFFhzUb5MWyfhWr1s2TLlCYG+hsiC1Rhu2BqMK7hXY0EB7sdYzHBM4ubOftwBCdAgoB3dvSEA0QBELxacIHy16HX38+G2jVAMxIhffvnldq9hn0iEB0GKfoTXAizL2KdeUMJCC9zLsSAEsY+x7ljHXi8iIIYc30ckVcOYgLB1LPd3uNx5553KpR5J+Rxjs3GOCCdBX+I1XCscg3lRC2MWyeXgsg5Pg969eyshD0GuF80QLoJFEIxhfPewsINFN+xHh4SgH+Blg4R9TU2AoTM++DAoiYCVEfj8Y/WmPhZvrLhglQyrgK7cdLwBXGacA87lSJOlVebnS8HMmVZL+Ny5qD1gey20R3clwJUIb9NGvJ2G7Dd/os5+y9t7KFkbXNT3r8a77LeJbFktwqszpyf3top6P+u3fJ3czWQdR9Z1lEUrr3T9850aF24T4uas60lRzpPAeDO+8D31lbnGU/CV/nQ1tnHjqDNqO7PS1kZRWYX6/aisMiQhsFSS8jKkqty67+DU1hIUb41r9mbQb3AzNlu8iXf0G8Q4xjUEaUNlsW9sYNlG5npde7wxgCBFqTBz/XRvx2iA8YZY9Kuuukr9TrrrqYFs7xD5CBNxl9p+c+sz3zT7XSxW4uBSAHcc+PWjI5Dd0NHdBNvAXaNv377KBcJxpaQ2kLgA70d9PHLkBEZHS+wZZ6hWmZsr+dNnWC3h8+ZJ6dp1cgDtpZclrHdvqwgfM1qCTVkKCZGYViK9zrY2UJwjsnvRoXriiBkvzBBZ97O1gZAoa9kznTm9zUCR4Pq5w3kj0WHB0jctTjUzFZVVsju72E6Qq+RuBwokp6hc9uQUqzZno31yt2gkd3Mof4aG+HLErRNCfJuIEOtvwNaDhZJVGSqVMSnSqmCfVJYGSPmedAQvS1CLpk04RIg3A8GH5GeHExtfFxBzq1atUqW0fEl0Hy7wLIAnCTw3kMFc1+iuT3gEEsPp0oBNTbMLb2TQg5hG3IZjkD9AUgi46KCuIFyUEOuCWAfEbOiaeVgRQ+IFR7CSgVgJxAygUXg3PHBLizvnbNUqsrMl/88/lQgvWrBQSlatUi3j+ecl/OijVTx49OjREmzK4EmIIjxOpMvJ1gbKS0TSlx3KnI4s6qV5IltmWhuwBIu0PrraIo6EbUNEIrzfUuMuQYEWad8iUrWR3ZNrZDE2Z1rXSd6QhT2/pEKW78pRzW5/lgBpmxhhE+K6PnlnJHeLYHI3Qnwt7KVTi0hl+c6tDJbKyFbSJmCfVJaIlO/bL0ZlpQQn+0beDUKaAtS01vHDDQni8+GajZhrVALwd/bt26fcy/EXSdiQN6K2MmXOQCx8c+FRruZwM3C0eENso5ahzuyIhACIQbn11luV+3hdIIYEGfDwZUCMB2KK7r77bnXRnIFYADSz+wA+Lycnxyfd1RqLisxMyf/DKsKLkRFRD7OAAAnv319ZwqNHnyJBTZxN0B9dWH2i35ABKGNttXs64sTnSUD+3pqfm9T9kGs63NRjrVk5vYXGHm+lKrlbkZ0Y31r976Iy19lfE6NCDpU+M/1tHRcugR5QAs0XvqeYaxCL5+2u0Z4CXc3do6yiSonv0opKCbdUSrvivVJpTbgsQQnxEtSqtVd+pzzBZdobYb+x3zjeGtfV3KOFN2rGITHEt99+ayfGkfEOQhjlHeoDEgbUFeON5AOoyegIskB6880QLjMWHpDso6knocoDB6Rk1mwpnj5dyleuPPSCxSIh/fpJ2KiREoYEIk1QKsSb+s2bafR+Mwyx5O2SwD0LJSh9kQTtWSSB2TVLcFRFp0pF6iCpaD1IKlIHS1VCZ2tGdQ+lucYbPjejoEy2ZxbLtsxi69+sIvV3f7597U4zoUEWaRcfJu0Tw6V9YoR0SAyXDgnh0i4hvEmTu/nC9xQTNxLAUHg3XH8yxts9ELYC8Y3KCqGWKulYulcqCq23hoGxMRLcJs3rvlcUkOw3jjfPx/CiBTKfifGuDcRK4IIkO7gm4zFqzTUGsJDDtd3R4o0O9XbhDZrFIoQsqagveN21Ur53r+T//oeyhJesXCllS5aolvfiSxIxZIjVEj5qpATG2cez+mW/eTFN0m8YI217I+WI9TMLD9is4artXSmW/D0Ssh7NWiPWCI+3WsLTqq3irfqKBIaIp9Cc4w3d2dVJPsSCUmsiJnNdcljJtx0sktKKKtl4oEg1kUy797WOCzsUS26ylKM0WkOfmy98T731uIlvhK10SIqUHQeLpLCsQjaHtJJOln1SmV8llbl5IlXbJTitnQRUZwQmhBByeHi08G5okIq/LlCQHQ0J3dAg/PVNkbffGOlzaM7zCGndWhKvulK1st17JP/3aSo7esmaNVI0d65q+x5/XCKHD5OYseOsIjy6cWuLekO/eSNN3m9RLUV6nG5toLTAmrBNZU6fK7J7sQQUZ4tsmGptICjcmqRNu6e3GSwSGiXNiaeNNyR369MmTjUzyIi8O7vabd2uLnmhijFPzylR7e9N9slmokKDapQ/syZ3i5SQIIvP9Ft98dbjJr5BkMWaM2JHZqFabNsc1Eo6x+yXyrwKqcwvFNm+VYLbd6T4JoQQXxXeqNcH9wMUnTeDx/Wph3g4oAA7mnYfIA1PSJtUSbzmGtVQQzRv2u/KEl66fr0UzvlbtX2PBEvksceqxGxRJ54kgVGRvBTEPSCgO51obaCyXGTvClM98XkixVki2/+2NhAQKJLSu7qeeHX29Chm93UGYrshltFO6mb/GoQ3rOJ2ZdAOFNpu6lfszlXNcX9tEyJqlD/D37gIz/FKIMRXwXcQ4htJGHOLy2WjJVm6xGVIVU65VBaViLF1s4R06CQBjZBAihBC/AGPFt4hISEyYMAAmTFjhi3GG8nV8PiWW25p7sMjDUhIu3bS4obrVSvduk3ypk2VfIjwTZulYNYs1QJCQiRqxPHKHT3qhBPEEhHBa0DcJzDYat1GO+Y2/JiIHNxozZwOIY7s6bk7RfYut7b5b1nfl9j5UOZ0uKnHd1BJAolrEiJDJCEyQQa2t88yjwROO83J3UxZ17VLO9r0dRl270uMDKlR/gxZ19vER3hEcjdCfAVLgHUBDKUKs4vKZKMkS5f4AyI5pVJVUiZlWzZLSMdOEhDk0bePhBDikTT7LycS4mzevNn2GIHry5cvl4SEBGnbtq2Kt0YytYEDB6ra3SgnhhJkKJbemDi6mpOmI7RjB0m6+WbVSjdtUlZwuKOXbd8u+X9OVy0gPFyiThghMWPGKjFucUh0QEidIF6xZTdrG3i19bnc3dUivLqeODKpZ262tmWfWbeJSqnOml7dknuKWGgBcuu7HRQoXZKjVauR3C2/tEb5MzxOzy2RzMIyySzMkoXbs+zeB9f0DomRVhEeEyQ92iRK55bR6nFkaLNPb4R4bdhDm3hrxYKDBaWyyUiSzvGZEpBdJFVl5VK6ZZOEdOwslmCWGSSEkPrQ7FnNZ8+eLSeeWO0KagJiG1nIAUqJvfDCC6pmG2p2v/baa6rMWFPg65lRven4SzdsUAIcQrx81y7ba7B8R510ksSMHSORxx0nlpCGc0v19n5rLnym34qyRHYtPFRPHLXFq8rttwmNsdYQhzUcVvHW/UWCw/y73xqQQp3czVaXvDrB28FCVQrJFa1idXK3yOpYcmtLjmn45G4Nga/MNZ6Cr/Snq9+E2jLsNuRn788rlYz8EvW4U2C2BGYXiFEVIAGBFmX5toSGiifiTdmSnZXSbS68qd/qA/TEHXfcoSoiuUv79u3Ve9BcgepLPXr0kE8++UTpEm/qt+Yad9u3b1e/W8uWLZO+ffs6HW9aG2ZnZ6symw0BrlXXrl1VpSwYc/02q/kJJ5xgy0jrCriVN7VrOS3engW+kGHduqmWdOcdUrJmreRN/U3yp06T8vR0yfvlF9UsUVESPXKkRI8dI1HDhyv3dEIOm4gEkaPGWBsoLxbZs8QqwiHGIcpL80Q2/2ltAFnSIb6VVXy4SNpgkXDPyNLvjcBy3Ss1VjXH5G7pOcWyuVqQr9uTJbtyy1Vs+cGCMtmbW6LaP5vtk7tFhgSahPihJG/tEiOURZ4QcmjeTYkNU5bvvbnFsqUyXtonWCQkK0+Myiqr23mHjmIJD3e7yw4cOCCPPPKI/PrrrypfT3x8vLr5xnPHHHOMTfCghOuXX34pF154od37e/bsKWvXrpWPPvrIljDXUSDh8e233y633nqry5t+Z8ybN0+GDh3qstTsjz/+qDwyNX///becdtpp6jheeeUVKS4ulieffFKmTJkie/bskejoaCXK4Ll5xhlncFg1Ec4E8wUXXCDjxo1r8M96++231XgaPny4XTJmDQRl69at5dxzz5VnnnlGJW/2FPbu3au+fw0JvgtYhABBQUHSpk0bOe+88+SJJ56widW0tDT12cjj1dThy/fcc49MmDBBhSw3F80uvD0VJlfzXPCjFt6rp2ot77lHlSVTlvBp06Ri/37J/ekn1SyxsSorOtzRI4cOkQC6xZEjJThcpP2x1gYqK0T2rz5UwgyCvDBDZNd8a5NXMGKt7ug6czr+xrTmtThCIAbSEiJUO6FrkuTmJtisgjlFZYfc1auzrkOQ78hCuaRKWbk7VzUzCBXHvhwFOf4iZp00zIK29l6D2Hr99ddVCFldfPXVV3LRRRcp8QLxQ5oWlABEZM6e7GLZXhEraQmBEpGdLVWVImVbke28vQRGupf49JxzzlGWJ9ycd+zYUYlv3ARnZtqXI8TNOcS1WXjPnz9fjZ1INz+rNqZPn65EvJnExES334+FAwiKiRMnqkUDcOONN8qCBQvUuIbgxjnNnTu3xrmRpic8PFy1hgRGQ3jkQlQ6grE7ZswYKS8vlxUrVqjwWIxbLMx4Co2VpBrnjfPHuS9ZskR5MGNefu6552yLEfqzm9rp+pJLLpG7775b1qxZU+P731SwKCPxfhHet68k3z9ROs+aKe0mfyHxl14qgUktpCo3V3K/+152XXedbDrueNn7yKNSOG+eGIzbJw1FYJBI66NFht4kcv6nIvdsFLl1qcjpb4gcfalIQkdMLVZxvug9kW+vFnm5u8h/+oj8cKPIko9FDmzE7MNr0oAgC/qAdvFy/sA0uX9sd3n/ioEy854TZN0TY2T6XcfL25cOkHtHHyVn90+VvmlxEh0aJFWGyI7MIpm5PkPe+3ubTPx+lZz39jzp/+Sf0u+JP+Tc/86VCd+ulHfnbJEZ6/bL9oOFUlHp2tXdU4Ho2bBhg1RUVDTp53799dfK8vfoo4/K0qVLlfAePXq0ZGTYJ9JzZqGEleK4445rsmMlNUmMDFVJ1wIkQHZVREl+fKJYggx141y2fZtU5ufX2W1w84WVGDfgcCNt166dWni5//775fTTq8tAmm6Q//rrL9llCiv78MMP1fOwpB0pENm4+Te3YDcX5ydPnixnn322PP/88zbRDX7++Wd54IEHlGUVVlckB4bV/eqrq3OIuAm+I61atZKVK1eqx9jXU089JZdffrlERUWpfsNnwXsAi1F4rk+fPrJ48WK7/fzzzz/qewPBiYWM2267TeVI0nz22WfK5RaWeZz/xRdfbPd9hLsv7rGwMILtIiIilGUXvx8aiEpcS+wDLrY4Z8fjMFPb9nAHh1sxFte6dOmiLKT4jTCPgS1btqhzTk5OVuc9aNAgtYhi9qKFt8Sdd95pV15S79vd/bgDRCX2M378+Bqv4bPQp+j3U089VX0Wfvfc/XyI+V69etXYL8JtH374Ydvj999/X7p37676qlu3bvLWW2/Z/dbDWxhjCa9j3MDqrkHfmBcyYQmGKzauMxbF8DkQz2avD3w+xg3GJBa6sTCW7/Ddh1Vfnzvc2EeNGiV//vmn3W96QECAnffIb7/9pj4bYxXjA9s48t5776l94vjOOussefnll2u4of/000/Sv39/db44h8cff9xuroOFH541WMxtLii8a1mZx4olvgzEOwiwWCSif39JeehB6TJ7trT95BOJu+hCCUxIkMqcHMmZMkV2XnW1bDp+hOx74gkpWrSIIpw08CAMEEnsJNL/MpEz3xS5bZnI3RtEzvtEZMiNIil9MFBFcnaIrPhS5H+3i7w5SOSFziJfXSIy7w0J3LdCpKppRZG/gGRsSL42pleK/N+JneXl84+Wn/7vGFn52Cmy8MGR8uV1Q+WpM3vJVce0l+O7JklqnNVCkl1ULot3ZMvXi3fJ07+tl2s+WSwnvDhbejzyu5zyyl/ywA+rxNMpKiqSa665Rt20YKV/586d6nkIg2effbbRPx83Sdddd52y/GBuhYsmjgViyhVw3YTQws0TbqKIayCAq4qKGrXFSIWkRYhYSkokPT9AskMjRSqLxagyVEnQytza42chMNBws19aWlrrthAkEF3abRXjF4s39RWxjXFviDGMcesYAgmxAQHhKETqcw3xffz000/VAgXEtAau7BAMiIuF0LvsssuUEL/00kuVoOvUqZN6rC2IEHawPMLDAAIefQchbj5miCpYYCGGcU0gdpwlLn7wwQflpZdeUgIZix7ma4DvJ9yJFy1apIQoPABqW8Coa3tc50mTJqk++Pfff9VijdnrAQmZsbCBxQD0Bc4R7v769+z7779X+4dwhTszmjPq2o874BpBLGIRoTY2btwoM2fOtMtNVdfno4/XrVun+kmD7XAt9TX64osv1MIP+gvbPv3000os6+8M8mFhgQahD1gswfYQzK7AeWCBAqEcr776qhK6GHdmMK4wVn755RfVsDhW2/yxevVq5fUBN29X7Nq1S41TnD/E+LXXXqvGhRmMBXiUIIQE25x88snqvB2vB74D2Abn8M4776jzcdwOi33YttlAcjXimtzcXPyKqb/eTFVVlZGdna3++htV5eVGwb//GukPPWxsGDzEWHtUN1vbeOxxxt6nJhmFS5YaVZWVNd/rx/12JLDfaqE41zA2/WkY058wjA/HGsYTSYbxaIxdq3qqlWF8crphzHrGMLbMNozSgqa7eF5IY463wtJyY/WeHOOn5XuMl//YYPzfF0uMMf+ZY3R98Dej3YRfVLvgnbkeP9fcdtttxoABA4y///7biIyMNLZs2aKe//HHH42jjz7aaExKS0uNwMBA44cffrB7/vLLLzdOP/10l+975JFHjDPPPFP9+4orrjDOOOMMl9uWlJSovtNt165dqj9zcnLUuPDWVllZaWRlZam/5ueLioqMtWvXqr94XFFQYDe3NWUrXrHQKFq1SrXyzIO1ns8333xjxMfHG2FhYcbw4cONiRMnGsuXL7fbpl27dsbLL7+sxkunTp3UuX/88cdGv3791OuxsbHGhx9+WGN7x8fl5eU1Pn/r1q1qXISHh6vvgbnVdtwYiyEhIeq977//vtNtZs+ebbRp08YIDg42Bg4caNx+++3q+1bXNcY+p0yZYlx88cVG9+7d1dh17I9LL73U9jg9PV2956GHHrI9N3fuXPUcXsPjq6++2rjuuuvs9jNnzhzDYrHYxoxjW7hwodqH/i2dOXOmevznn3/atvnll1/Uc3of0dHRxkcffeT2eK5te1xT7HvevHm25zDG8dz8+fNd7rNnz57Ga6+95nI86H1j3NR2bO7sx9zwm3rSSSfZHuvxhuPF+MaYCg0NVY9PPfVU9TtYn88fO3asceONN9oe33LLLcYJJ5xge4zvxhdffGG3jyeeeMIYNmyYbXscn+Nvh3ncff/99y6P5/nnn1dzhvk7EBERoX5f9XP33HOPMWTIENtj/E7jt9587hhz+N47fgeXLl2qHk+YMMHo0aOH3Wffd999ahv89uHxBRdcYIwfP95u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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_fidelity_comparison(\n", + " fidelity_scores=fidelity_scores,\n", + " x_column=\"num_clusters\",\n", + " model_filters=[\"LIME\", \"SMILE\"],\n", + " figure_name=\"num_clusters_comparison\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IscRJCAaow9U" + }, + "source": [ + "### 5. Latent Mode (LIME & SMILE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "FmRzA5Ycow9U", + "outputId": "e9f26a52-4248-4702-f78e-9d95d6f136fe" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# ====================================================================================================\n", + "Number of clusters = 32\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02977073734191585\n", + "R-squared (R²): 0.6132133856268445\n", + "Mean Absolute Error (MAE): 0.13653927093690638\n", + "Mean Loss (Lm): 5.888982837543022e-05\n", + "Mean L1 Loss: 0.1365704335766703\n", + "Mean L2 Loss: 0.029785783662240214\n", + "Weighted L1 Loss: 0.13649028093188229\n", + "Weighted L2 Loss: 0.02976005566358299\n", + "Weighted R-squared (R²ω): 0.6132133856268445\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6004138285845063\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-latent (LinearRegression)', 'time': 82.1492772102356}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 7.30078561488653e-08\n", + "R-squared (R²): 0.7012304274237886\n", + "Mean Absolute Error (MAE): 0.0001729857334068672\n", + "Mean Loss (Lm): 0.20213296061323427\n", + "Mean L1 Loss: 0.20215536931631428\n", + "Mean L2 Loss: 0.11694189120334604\n", + "Weighted L1 Loss: 5.638681850068763e-06\n", + "Weighted L2 Loss: 2.3797804898209912e-09\n", + "Weighted R-squared (R²ω): 0.7012304274237886\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6913435336053411\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-latent (LinearRegression)', 'time': 96.71552038192749}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02661622510346457\n", + "R-squared (R²): 0.5312962834590573\n", + "Mean Absolute Error (MAE): 0.12399406113526004\n", + "Mean Loss (Lm): 0.031048364677231377\n", + "Mean L1 Loss: 0.13468906632713556\n", + "Mean L2 Loss: 0.031431224820096776\n", + "Weighted L1 Loss: 0.07414744296781305\n", + "Weighted L2 Loss: 0.015916286754450084\n", + "Weighted R-squared (R²ω): 0.5312962834590573\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5157859226221285\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-latent (LinearRegression)', 'time': 92.3450403213501}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.023546366956329372\n", + "R-squared (R²): 0.5629824203522511\n", + "Mean Absolute Error (MAE): 0.11354092696673128\n", + "Mean Loss (Lm): 0.015176828430260692\n", + "Mean L1 Loss: 0.13335649263212765\n", + "Mean L2 Loss: 0.03174016167264802\n", + "Weighted L1 Loss: 0.062435622408257556\n", + "Weighted L2 Loss: 0.01294803658598294\n", + "Weighted R-squared (R²ω): 0.5629824203522511\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5485206183370206\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-latent (LinearRegression)', 'time': 90.8821268081665}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of clusters = 64\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.008833280469898735\n", + "R-squared (R²): 0.3158781202501987\n", + "Mean Absolute Error (MAE): 0.05474208967586071\n", + "Mean Loss (Lm): 1.3712455119940792e-05\n", + "Mean L1 Loss: 0.054753772066483866\n", + "Mean L2 Loss: 0.008839722172660405\n", + "Weighted L1 Loss: 0.05473842581831622\n", + "Weighted L2 Loss: 0.008832689263361245\n", + "Weighted R-squared (R²ω): 0.3158781202501987\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.26905052634219084\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-latent (LinearRegression)', 'time': 67.89643430709839}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 7.87795701450194e-08\n", + "R-squared (R²): 0.61921095588612\n", + "Mean Absolute Error (MAE): 0.00017966172186103195\n", + "Mean Loss (Lm): 0.03884835036369583\n", + "Mean L1 Loss: 0.03888189620889595\n", + "Mean L2 Loss: 0.014403360353243144\n", + "Weighted L1 Loss: 2.033181096485532e-05\n", + "Weighted L2 Loss: 8.915262035170912e-09\n", + "Weighted R-squared (R²ω): 0.61921095588612\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5931462512622823\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-latent (LinearRegression)', 'time': 63.86503267288208}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.008274454487541962\n", + "R-squared (R²): 0.2881504972080592\n", + "Mean Absolute Error (MAE): 0.05151960367004958\n", + "Mean Loss (Lm): 0.007180929556256932\n", + "Mean L1 Loss: 0.05294215358817499\n", + "Mean L2 Loss: 0.00906991897945955\n", + "Weighted L1 Loss: 0.028509284667408884\n", + "Weighted L2 Loss: 0.004578815861310481\n", + "Weighted R-squared (R²ω): 0.2881504972080592\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.2394249697442259\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-latent (LinearRegression)', 'time': 68.69063210487366}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.005135922073984111\n", + "R-squared (R²): 0.22799438590212162\n", + "Mean Absolute Error (MAE): 0.0348308400623778\n", + "Mean Loss (Lm): 0.00913114876268828\n", + "Mean L1 Loss: 0.04428805391280343\n", + "Mean L2 Loss: 0.009458852828983672\n", + "Weighted L1 Loss: 0.02570572713274697\n", + "Weighted L2 Loss: 0.0037903941211998053\n", + "Weighted R-squared (R²ω): 0.22799438590212162\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.1751512208729621\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-latent (LinearRegression)', 'time': 71.38645529747009}\n", + "\n", + "\n", + "\n", + "\n", + "# ====================================================================================================\n", + "Number of clusters = 128\n", + "# ====================================================================================================\n", + "\n", + "\n", + "LIME-COS-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.0009597845457792644\n", + "R-squared (R²): 0.2149531839919877\n", + "Mean Absolute Error (MAE): 0.013494793182539218\n", + "Mean Loss (Lm): 1.1711964899019378e-06\n", + "Mean L1 Loss: 0.0134958930133923\n", + "Mean L2 Loss: 0.0009602709889109274\n", + "Weighted L1 Loss: 0.013494664807149047\n", + "Weighted L2 Loss: 0.0009597754153899447\n", + "Weighted R-squared (R²ω): 0.2149531839919877\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.09958465075544853\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'LIME-COS-kmeans-latent (LinearRegression)', 'time': 64.00668382644653}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-WD-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 4.670638415438198e-08\n", + "R-squared (R²): 0.5505737002498085\n", + "Mean Absolute Error (MAE): 0.00014786139999174277\n", + "Mean Loss (Lm): 0.005794230404073786\n", + "Mean L1 Loss: 0.005855011682057555\n", + "Mean L2 Loss: 0.0012549759812230498\n", + "Weighted L1 Loss: 3.971156425005338e-05\n", + "Weighted L2 Loss: 1.2544068805908737e-08\n", + "Weighted R-squared (R²ω): 0.5505737002498085\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.48452712577446455\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-WD-kmeans-latent (LinearRegression)', 'time': 65.30980920791626}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-AD-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.0009951712039798196\n", + "R-squared (R²): 0.26906046844133913\n", + "Mean Absolute Error (MAE): 0.015262992734118535\n", + "Mean Loss (Lm): 0.0003719996842850293\n", + "Mean L1 Loss: 0.015242495359046693\n", + "Mean L2 Loss: 0.0010014276322691047\n", + "Weighted L1 Loss: 0.0058947955297612604\n", + "Weighted L2 Loss: 0.0003843499677133381\n", + "Weighted R-squared (R²ω): 0.26906046844133913\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.16164340754638096\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-AD-kmeans-latent (LinearRegression)', 'time': 72.25129175186157}\n", + "\n", + "\n", + "\n", + "\n", + "SMILE-KS-kmeans-latent (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.00042890369175076063\n", + "R-squared (R²): 0.12366432403393368\n", + "Mean Absolute Error (MAE): 0.006837348365289197\n", + "Mean Loss (Lm): 0.0018061242667452015\n", + "Mean L1 Loss: 0.008500253042540915\n", + "Mean L2 Loss: 0.0010314667556201851\n", + "Weighted L1 Loss: 0.005924301304041174\n", + "Weighted L2 Loss: 0.0003716286730754622\n", + "Weighted R-squared (R²ω): 0.12366432403393368\n", + "Weighted Adjusted R-squared (Rˆ²ω): -0.005119793674053019\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'name': 'SMILE-KS-kmeans-latent (LinearRegression)', 'time': 67.32039141654968}\n", + "\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "max_iters = 50\n", + "kernel_width = 0.5\n", + "num_perturbations = 1000\n", + "cluster_list = [32, 64, 128]\n", + "fidelity_scores: List[float] = []\n", + "running_times: List[float] = []\n", + "all_top_features: List = []\n", + "\n", + "for num_clusters in cluster_list:\n", + "\n", + " print(\"#\", \"=\" * 100)\n", + " print(f\"Number of clusters = {num_clusters}\")\n", + " print(\"#\", \"=\" * 100, end=\"\\n\\n\\n\")\n", + "\n", + " num_top_features = round(0.2 * num_clusters)\n", + "\n", + " common_kwargs = dict(\n", + " sample_input=sample_input,\n", + " sample_label=sample_label,\n", + " model=model,\n", + " num_clusters=num_clusters,\n", + " num_top_features=num_top_features,\n", + " num_perturbations=num_perturbations,\n", + " device=device,\n", + " kernel_width=kernel_width,\n", + " surrogate_model_type=\"linear\",\n", + " max_iters=max_iters,\n", + " random_seed=random_seed,\n", + " clustering_mode=\"kmeans\",\n", + " cluster_labels=None,\n", + " distance_mode=\"latent\",\n", + " )\n", + "\n", + " # LIME\n", + " run_experiment(\n", + " lime_explain,\n", + " {**common_kwargs, \"epsilon\": 0,},\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - Wasserstein\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 0,\n", + " \"distance_metric\": \"wasserstein\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - Anderson (special epsilon)\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 0,\n", + " \"distance_metric\": \"anderson\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " # SMILE - KS\n", + " run_experiment(\n", + " smile_explain,\n", + " {\n", + " **common_kwargs,\n", + " \"epsilon\": 0,\n", + " \"distance_metric\": \"ks\",\n", + " },\n", + " fidelity_scores,\n", + " running_times,\n", + " all_top_features,\n", + " )\n", + "\n", + " print(\"\\n\\n\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 862 + }, + "id": "srE_0rCtow9V", + "outputId": "a780f24d-5668-4877-cb4f-c58121ef9112" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namenum_clustersmser2maemean_lossmean_l1mean_l2weighted_l1weighted_l2weighted_r2weighted_adj_r2kernel_widthperturbation
0LIME-COS-kmeans-latent (LinearRegression)322.977074e-020.6132130.1365390.0000590.1365700.0297860.1364902.976006e-020.6132130.6004140.51000
1SMILE-WD-kmeans-latent (LinearRegression)327.300786e-080.7012300.0001730.2021330.2021550.1169420.0000062.379780e-090.7012300.6913440.51000
2SMILE-AD-kmeans-latent (LinearRegression)322.661623e-020.5312960.1239940.0310480.1346890.0314310.0741471.591629e-020.5312960.5157860.51000
3SMILE-KS-kmeans-latent (LinearRegression)322.354637e-020.5629820.1135410.0151770.1333560.0317400.0624361.294804e-020.5629820.5485210.51000
4LIME-COS-kmeans-latent (LinearRegression)648.833280e-030.3158780.0547420.0000140.0547540.0088400.0547388.832689e-030.3158780.2690510.51000
5SMILE-WD-kmeans-latent (LinearRegression)647.877957e-080.6192110.0001800.0388480.0388820.0144030.0000208.915262e-090.6192110.5931460.51000
6SMILE-AD-kmeans-latent (LinearRegression)648.274454e-030.2881500.0515200.0071810.0529420.0090700.0285094.578816e-030.2881500.2394250.51000
7SMILE-KS-kmeans-latent (LinearRegression)645.135922e-030.2279940.0348310.0091310.0442880.0094590.0257063.790394e-030.2279940.1751510.51000
8LIME-COS-kmeans-latent (LinearRegression)1289.597845e-040.2149530.0134950.0000010.0134960.0009600.0134959.597754e-040.2149530.0995850.51000
9SMILE-WD-kmeans-latent (LinearRegression)1284.670638e-080.5505740.0001480.0057940.0058550.0012550.0000401.254407e-080.5505740.4845270.51000
10SMILE-AD-kmeans-latent (LinearRegression)1289.951712e-040.2690600.0152630.0003720.0152420.0010010.0058953.843500e-040.2690600.1616430.51000
11SMILE-KS-kmeans-latent (LinearRegression)1284.289037e-040.1236640.0068370.0018060.0085000.0010310.0059243.716287e-040.123664-0.0051200.51000
\n", + "
" + ], + "text/plain": [ + " name num_clusters mse \\\n", + "0 LIME-COS-kmeans-latent (LinearRegression) 32 2.977074e-02 \n", + "1 SMILE-WD-kmeans-latent (LinearRegression) 32 7.300786e-08 \n", + "2 SMILE-AD-kmeans-latent (LinearRegression) 32 2.661623e-02 \n", + "3 SMILE-KS-kmeans-latent (LinearRegression) 32 2.354637e-02 \n", + "4 LIME-COS-kmeans-latent (LinearRegression) 64 8.833280e-03 \n", + "5 SMILE-WD-kmeans-latent (LinearRegression) 64 7.877957e-08 \n", + "6 SMILE-AD-kmeans-latent (LinearRegression) 64 8.274454e-03 \n", + "7 SMILE-KS-kmeans-latent (LinearRegression) 64 5.135922e-03 \n", + "8 LIME-COS-kmeans-latent (LinearRegression) 128 9.597845e-04 \n", + "9 SMILE-WD-kmeans-latent (LinearRegression) 128 4.670638e-08 \n", + "10 SMILE-AD-kmeans-latent (LinearRegression) 128 9.951712e-04 \n", + "11 SMILE-KS-kmeans-latent (LinearRegression) 128 4.289037e-04 \n", + "\n", + " r2 mae mean_loss mean_l1 mean_l2 weighted_l1 \\\n", + "0 0.613213 0.136539 0.000059 0.136570 0.029786 0.136490 \n", + "1 0.701230 0.000173 0.202133 0.202155 0.116942 0.000006 \n", + "2 0.531296 0.123994 0.031048 0.134689 0.031431 0.074147 \n", + "3 0.562982 0.113541 0.015177 0.133356 0.031740 0.062436 \n", + "4 0.315878 0.054742 0.000014 0.054754 0.008840 0.054738 \n", + "5 0.619211 0.000180 0.038848 0.038882 0.014403 0.000020 \n", + "6 0.288150 0.051520 0.007181 0.052942 0.009070 0.028509 \n", + "7 0.227994 0.034831 0.009131 0.044288 0.009459 0.025706 \n", + "8 0.214953 0.013495 0.000001 0.013496 0.000960 0.013495 \n", + "9 0.550574 0.000148 0.005794 0.005855 0.001255 0.000040 \n", + "10 0.269060 0.015263 0.000372 0.015242 0.001001 0.005895 \n", + "11 0.123664 0.006837 0.001806 0.008500 0.001031 0.005924 \n", + "\n", + " weighted_l2 weighted_r2 weighted_adj_r2 kernel_width perturbation \n", + "0 2.976006e-02 0.613213 0.600414 0.5 1000 \n", + "1 2.379780e-09 0.701230 0.691344 0.5 1000 \n", + "2 1.591629e-02 0.531296 0.515786 0.5 1000 \n", + "3 1.294804e-02 0.562982 0.548521 0.5 1000 \n", + "4 8.832689e-03 0.315878 0.269051 0.5 1000 \n", + "5 8.915262e-09 0.619211 0.593146 0.5 1000 \n", + "6 4.578816e-03 0.288150 0.239425 0.5 1000 \n", + "7 3.790394e-03 0.227994 0.175151 0.5 1000 \n", + "8 9.597754e-04 0.214953 0.099585 0.5 1000 \n", + "9 1.254407e-08 0.550574 0.484527 0.5 1000 \n", + "10 3.843500e-04 0.269060 0.161643 0.5 1000 \n", + "11 3.716287e-04 0.123664 -0.005120 0.5 1000 " + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fidelity_scores_df = pd.DataFrame(fidelity_scores)\n", + "fidelity_scores_df = fidelity_scores_df.sort_values(by='num_clusters')\n", + "fidelity_scores_df = fidelity_scores_df[fidelity_scores_df['num_clusters']!=1024]\n", + "fidelity_scores_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 426 + }, + "id": "9zqo16MQow9V", + "outputId": "9459d330-3b9e-46eb-ce5a-60bb28dfdb85" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nametime
0LIME-COS-kmeans-latent (LinearRegression)82.149277
1SMILE-WD-kmeans-latent (LinearRegression)96.715520
2SMILE-AD-kmeans-latent (LinearRegression)92.345040
3SMILE-KS-kmeans-latent (LinearRegression)90.882127
4LIME-COS-kmeans-latent (LinearRegression)67.896434
5SMILE-WD-kmeans-latent (LinearRegression)63.865033
6SMILE-AD-kmeans-latent (LinearRegression)68.690632
7SMILE-KS-kmeans-latent (LinearRegression)71.386455
8LIME-COS-kmeans-latent (LinearRegression)64.006684
9SMILE-WD-kmeans-latent (LinearRegression)65.309809
10SMILE-AD-kmeans-latent (LinearRegression)72.251292
11SMILE-KS-kmeans-latent (LinearRegression)67.320391
\n", + "
" + ], + "text/plain": [ + " name time\n", + "0 LIME-COS-kmeans-latent (LinearRegression) 82.149277\n", + "1 SMILE-WD-kmeans-latent (LinearRegression) 96.715520\n", + "2 SMILE-AD-kmeans-latent (LinearRegression) 92.345040\n", + "3 SMILE-KS-kmeans-latent (LinearRegression) 90.882127\n", + "4 LIME-COS-kmeans-latent (LinearRegression) 67.896434\n", + "5 SMILE-WD-kmeans-latent (LinearRegression) 63.865033\n", + "6 SMILE-AD-kmeans-latent (LinearRegression) 68.690632\n", + "7 SMILE-KS-kmeans-latent (LinearRegression) 71.386455\n", + "8 LIME-COS-kmeans-latent (LinearRegression) 64.006684\n", + "9 SMILE-WD-kmeans-latent (LinearRegression) 65.309809\n", + "10 SMILE-AD-kmeans-latent (LinearRegression) 72.251292\n", + "11 SMILE-KS-kmeans-latent (LinearRegression) 67.320391" + ] + }, + "execution_count": 108, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "running_times_df = pd.DataFrame(running_times)\n", + "running_times_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 863 + }, + "id": "f2Rtl8Ceow9V", + "outputId": "89a1390a-1b63-44cb-9f1c-e25c13ca298c" + }, + "outputs": [ + { + "data": { + "image/png": "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mzdPyO3mm28WusJnVVBQoHz88cdCRjwvP46NFEd+/fVX0UjR7ul8HW/Ksnfv3qJMjrLUKK9MhO/DmjVrRPl+//134TS+8847xfvpQPJeqQubN29Wtm7d6lLu27dvF05ply5dire98cYbQl7UKeoM75mNPK0ziffEMvB579mzR5kxY4bQS1flZAcM75PH8d299957xTbqJXXlvffeE+fet2+f+B07XPr27ats27ZNXPuPP/5QVqxYIfSMOnnppZcKHWS5Fy9eLMruyvE+fvy4aHg++OCDyu7du0XHGh12R8eajVs+d74LvP7UqVPFe8x3xBE67I4dPWUhHe/Khe8Pn7HHON6E7//8/52154teuqDOdGedcbTl0p5Le16d9pw2kR240p6773iXJksNac/7+rw9l453OVTpqMS/UxTllXDVWM99+Lydb1eNOxroRs/Oq/YPr1vVjjd7eJs1ayYaJGwca6Nzrhxvjm7R4XD80FiVBitJOt9lOd6nT58WOlGac0WHjPvXr19f7ERyBI2jcnQynnvuuWLHpzQ0x2HVqlXCKevRo0fxaLsG9zuOvP3zzz9i27ffflu8jU4Qr6vBc3H00pHp06cLx640OLoZHR1d/J0y5nUce945Aktnj/JKSEio8Ch/ebqQlJQkzknHsLQRTUK9+PHHH0tso1PKkQLH333zzTfF+3fu3Cm20SHTykddKg8+/6ZNm56zvaKON7/TEdV0TZOlu2VyBR3YTp06FX+ng8kGgWPHjSZ3jj7zvaDDy3sxGo1CZwk7feiwahEBGqNHj1Zuv/32YkeUIyqOvPDCCy7L+d9//xUfw44YXpsjK45QR/mOEHa2ODYiNSgrjoTffffdLsvvrB/PP/98cYeaBuXMTjGt44TONN8zRzjKw/I58sknn4jGrTtIx7vy4TvkUY43oV6t+vCs8/3r/YpiPRtxUhGcdaambLm05yq+bM/ZBkpOTpb2vAKON79zwMBZlhrSnr+q+Lo9l3O8a5JOdwODJwIGI7B5GvDbA4DNWqO35A30798f2dnZWLlyJSZPniwSmpXG008/LeZoO36YKE1LyBYSEiI+119/vdim2j/3cPdYzvE+efKkmNvN+bTMbN2xY8fiRHD3339/8X3w48jtt9+OnJwcMbfcVUKuSy65pPjvOnXqiP/btWtXYhsTZWVmZorvW7duFfPeHa93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2bNn46uvvnKp23SieV+M9uC7Sx3kb3lP1Jcvv/xSOMCaU85zffTRR2I7nWTWFeyEISzr448/LvSQI/aUy5VXXlmqjNmw5W/YCPrnn39EPUVZO/bUs155//33MX36dPFOHT16VISjOcLOQb5Pjo1biWfDqUDUr7LeZU+GuupsZ/OseWXbbXc+/iHIDamNXFsBcnNOIzdhF3ILsqU9l/a8hA3idCppz93njTfewC233OKybSTtubTnWqWue5YtW6b8/vvvytChQyv824yMDHqS4n9PJS8vT9m1a5eSm5mpFBw5ouRu366k/LdRufi7i6v9k1OY4/Z9z5o1S4mMjFQCAgKUbt26Kc8995yydevWEsc0atRI+eijj5TffvtNadasmWK325WpU6cqHTp0EPvDw8OVKVOmnHN8ad8diY+PF882MDBQCQ4OLvHhdYqKisT/zthsNqVBgwbinkhSUpLi5+enHDp0qITO8dxpaWnn/H7+/Pli3/r160uVTa9evZTHHntM+fzzz0UZly9fXmL/yJEjRdl4LxqtWrVSevbsWfzdarWKssyYMUN8nz59ujjGsUwFBQWi/AsXLnR5Hzx/aGio8scffxRv472/+OKLxd+zs7PFNpaL577xxhuVu+++W3GXsmSl0b9/f+XJJ588Rz6OjB8/XunXr1+JbceOHRPn3rt3b/HvevToUeKYyy+/XHn22WdLlG/OnDll3jPvlcetXLmyxPZXXnlFad++fam/c9ZHnuOFF14o1jVHWbpbJmeoj9y/ffv2Enr+8ccfu5S7pvNq1iUoAwcOLD5m9OjRypgxY0r8btWqVYrRaBT1zu7du8VvNm7cWLx///79YptzOceNG1fiPL1791beeuutEtuoo3FxceLvDz74QGnZsqVSWFjosu4ICwsrtV521I99+/aJ669Zs6Z4f3JystD7n3/+WXxnHcJjDhw4UHzMhAkTlDp16ri0B87vY3l1M//3RtuiJ7xF3s46Q5taE7Zc2nPftud//fWXsEsDBgxQRo0apbiLr9vz559/vviZSHsu7bkrfGLEm2GHlT3fz1OTr/k1bCg+hkoIwa5qOIrGkTKOQnFUjSNmDDt1TJamwdHl7OxsMRLFMPPKHO3mKN5///1X4kM44kW90UbnGQZGODrKUUb2ZhKO5jKci/flDlpUAEO8OOqnnZ8fxxBgzjniqB6v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odH78euvvyrj19ic5SsYNWqUuqHZh25iH+2X4/0JJ5xgs2zjxo2yd+9eZXDdc889attHHXWUKYybUOezzz6T5ORkOeaYY1z+DYzb+Ph48Tfl5eU2fRTXwE8//SSlpaVy6qmnSllZmc+27w3S0tLUFClP0rRpUzVQ+NJLL0mwQn1OPAX1OfW5maA+bzjU5/WguUlxcbF2/fXXazExMVp4eLhq0dHRallRUZFmNvLz8zWICa+ByuHDh7V169apVytVVZpWWqRa1ZFCrbz4kHrVl3mtYbsucPDgQSXX33//vc7vtWvXTpsyZYrqbzt37rQunzRpknbzzTdrKSkp2ptvvmnz/eeee87peyPbtm1T+/DPP//U+qyqqkorLy9Xr0Z++ukn9Zt9+/ZZl2VkZGj/+9//1LZ0tm7dqr43d+5c9R6veI/jNlJSUqJ169ZNO+aYY+qUw/HHH69NnjzZ+v67777TkpOTtffee0+9nzBhgnbmmWdqjz/+uNa8eXMll4cfflgdw5133qmlpqZqrVu31t544w2b9UKm559/vvo+vnPGGWcouegsXrxYGzNmjJaenq62N2LECG3ZsmU268BxzZo1SzvrrLO0uLg4rXPnztpXX31l/fzAgQPaxRdfrDVt2lSLjY1Vn9vvhxF7WeXm5moXXnih1qpVK7X+o446Svvggw+s38ex4/vGph/D6tWrtZNPPllLSEhQcrn00ku1nJwcG7miH911113q+HEuH3zwQevnOKfG9RrPsT2nnnqqkrURrKtv375Of4P1TZ8+3drXHMny66+/tvlNfcf0448/qv6Ec5qWlqb2a8uWLbX6/UcffaTOJ64tXEOO+ug333yjlq1cudK67I8//tCOPfZYdS7btGmj5Ge89+/du1c75ZRT1Oft27fX3n///VrXIdb54osvaqeffroWHx9vlTn6Tf/+/dU+dejQQXvooYeUbADkg+9lZmYqndOyZUvtpptusq4T1yDkhd9CLueee67T6wd98rLLLtOaNGmi5Ax5btq0yfo55AH5zZ49W+vevbuS9dixY9WxGXn77beVDNy6NweQbgkFfT5z5kytR48eWteuXf0ub1eo1WcMupz6nPrcH/rcqIOoz+vW588884z1uZH6nPrcEW57vOGdefHFF5VXEt5KtAMHDqhlnvA+Eg9RXiLyRCvVwqa1lsin2qpXfZnX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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_fidelity_comparison(\n", + " fidelity_scores=fidelity_scores,\n", + " x_column=\"num_clusters\",\n", + " model_filters=[\"LIME\", \"SMILE\"],\n", + " figure_name=\"num_clusters_comparison_latent\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "o5znootM7_pg" + }, + "source": [ + "### 6. Time comparision" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 521 + }, + "id": "_ZKhE61Low9W", + "outputId": "dd010e13-9cab-443f-a9b0-a1d3c9d45956" + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_running_time_comparison(\n", + " linear_times=linear_running_times,\n", + " bayesian_times=bayesian_running_times,\n", + " x_column=\"name\",\n", + " figure_name=\"time\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "Ll9Z1ARsow9W", + "outputId": "d5f08c5c-04de-4186-c582-45507d58c8a2" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namenum_clustersmser2maemean_lossmean_l1mean_l2weighted_l1weighted_l2weighted_r2weighted_adj_r2kernel_widthperturbation
0LIME-COS-kmeans-mask (LinearRegression)322.898054e-020.6048520.1339798.570200e-040.1360250.0298321.118200e-012.418748e-020.6048520.5917760.51000
1SMILE-WD-kmeans-spatial (LinearRegression)322.935748e-020.6124600.1354661.681499e-030.1362480.0297951.294050e-012.804403e-020.6124600.5996360.51000
2SMILE-AD-kmeans-spatial (LinearRegression)322.978577e-020.6133280.1365864.268491e-090.1365860.0297861.365864e-092.978577e-100.6133280.6005330.51000
3SMILE-KS-kmeans-spatial (LinearRegression)322.972773e-020.6128950.1364222.946240e-040.1365200.0297861.352369e-012.946947e-020.6128950.6000850.51000
4LIME-COS-kmeans-latent (LinearRegression)322.977074e-020.6132130.1365395.888983e-050.1365700.0297861.364903e-012.976006e-020.6132130.6004140.51000
5SMILE-WD-kmeans-latent (LinearRegression)327.300786e-080.7012300.0001732.021330e-010.2021550.1169425.638682e-062.379780e-090.7012300.6913440.51000
6SMILE-AD-kmeans-latent (LinearRegression)322.661623e-020.5312960.1239943.104836e-020.1346890.0314317.414744e-021.591629e-020.5312960.5157860.51000
7SMILE-KS-kmeans-latent (LinearRegression)322.354637e-020.5629820.1135411.517683e-020.1333560.0317406.243562e-021.294804e-020.5629820.5485210.51000
8LIME-COS-kmeans-latent (LinearRegression)648.833280e-030.3158780.0547421.371246e-050.0547540.0088405.473843e-028.832689e-030.3158780.2690510.51000
9SMILE-WD-kmeans-latent (LinearRegression)647.877957e-080.6192110.0001803.884835e-020.0388820.0144032.033181e-058.915262e-090.6192110.5931460.51000
10SMILE-AD-kmeans-latent (LinearRegression)648.274454e-030.2881500.0515207.180930e-030.0529420.0090702.850928e-024.578816e-030.2881500.2394250.51000
11SMILE-KS-kmeans-latent (LinearRegression)645.135922e-030.2279940.0348319.131149e-030.0442880.0094592.570573e-023.790394e-030.2279940.1751510.51000
12LIME-COS-kmeans-latent (LinearRegression)1289.597845e-040.2149530.0134951.171196e-060.0134960.0009601.349466e-029.597754e-040.2149530.0995850.51000
13SMILE-WD-kmeans-latent (LinearRegression)1284.670638e-080.5505740.0001485.794230e-030.0058550.0012553.971156e-051.254407e-080.5505740.4845270.51000
14SMILE-AD-kmeans-latent (LinearRegression)1289.951712e-040.2690600.0152633.719997e-040.0152420.0010015.894796e-033.843500e-040.2690600.1616430.51000
15SMILE-KS-kmeans-latent (LinearRegression)1284.289037e-040.1236640.0068371.806124e-030.0085000.0010315.924301e-033.716287e-040.123664-0.0051200.51000
\n", + "
" + ], + "text/plain": [ + " name num_clusters mse \\\n", + "0 LIME-COS-kmeans-mask (LinearRegression) 32 2.898054e-02 \n", + "1 SMILE-WD-kmeans-spatial (LinearRegression) 32 2.935748e-02 \n", + "2 SMILE-AD-kmeans-spatial (LinearRegression) 32 2.978577e-02 \n", + "3 SMILE-KS-kmeans-spatial (LinearRegression) 32 2.972773e-02 \n", + "4 LIME-COS-kmeans-latent (LinearRegression) 32 2.977074e-02 \n", + "5 SMILE-WD-kmeans-latent (LinearRegression) 32 7.300786e-08 \n", + "6 SMILE-AD-kmeans-latent (LinearRegression) 32 2.661623e-02 \n", + "7 SMILE-KS-kmeans-latent (LinearRegression) 32 2.354637e-02 \n", + "8 LIME-COS-kmeans-latent (LinearRegression) 64 8.833280e-03 \n", + "9 SMILE-WD-kmeans-latent (LinearRegression) 64 7.877957e-08 \n", + "10 SMILE-AD-kmeans-latent (LinearRegression) 64 8.274454e-03 \n", + "11 SMILE-KS-kmeans-latent (LinearRegression) 64 5.135922e-03 \n", + "12 LIME-COS-kmeans-latent (LinearRegression) 128 9.597845e-04 \n", + "13 SMILE-WD-kmeans-latent (LinearRegression) 128 4.670638e-08 \n", + "14 SMILE-AD-kmeans-latent (LinearRegression) 128 9.951712e-04 \n", + "15 SMILE-KS-kmeans-latent (LinearRegression) 128 4.289037e-04 \n", + "\n", + " r2 mae mean_loss mean_l1 mean_l2 weighted_l1 \\\n", + "0 0.604852 0.133979 8.570200e-04 0.136025 0.029832 1.118200e-01 \n", + "1 0.612460 0.135466 1.681499e-03 0.136248 0.029795 1.294050e-01 \n", + "2 0.613328 0.136586 4.268491e-09 0.136586 0.029786 1.365864e-09 \n", + "3 0.612895 0.136422 2.946240e-04 0.136520 0.029786 1.352369e-01 \n", + "4 0.613213 0.136539 5.888983e-05 0.136570 0.029786 1.364903e-01 \n", + "5 0.701230 0.000173 2.021330e-01 0.202155 0.116942 5.638682e-06 \n", + "6 0.531296 0.123994 3.104836e-02 0.134689 0.031431 7.414744e-02 \n", + "7 0.562982 0.113541 1.517683e-02 0.133356 0.031740 6.243562e-02 \n", + "8 0.315878 0.054742 1.371246e-05 0.054754 0.008840 5.473843e-02 \n", + "9 0.619211 0.000180 3.884835e-02 0.038882 0.014403 2.033181e-05 \n", + "10 0.288150 0.051520 7.180930e-03 0.052942 0.009070 2.850928e-02 \n", + "11 0.227994 0.034831 9.131149e-03 0.044288 0.009459 2.570573e-02 \n", + "12 0.214953 0.013495 1.171196e-06 0.013496 0.000960 1.349466e-02 \n", + "13 0.550574 0.000148 5.794230e-03 0.005855 0.001255 3.971156e-05 \n", + "14 0.269060 0.015263 3.719997e-04 0.015242 0.001001 5.894796e-03 \n", + "15 0.123664 0.006837 1.806124e-03 0.008500 0.001031 5.924301e-03 \n", + "\n", + " weighted_l2 weighted_r2 weighted_adj_r2 kernel_width perturbation \n", + "0 2.418748e-02 0.604852 0.591776 0.5 1000 \n", + "1 2.804403e-02 0.612460 0.599636 0.5 1000 \n", + "2 2.978577e-10 0.613328 0.600533 0.5 1000 \n", + "3 2.946947e-02 0.612895 0.600085 0.5 1000 \n", + "4 2.976006e-02 0.613213 0.600414 0.5 1000 \n", + "5 2.379780e-09 0.701230 0.691344 0.5 1000 \n", + "6 1.591629e-02 0.531296 0.515786 0.5 1000 \n", + "7 1.294804e-02 0.562982 0.548521 0.5 1000 \n", + "8 8.832689e-03 0.315878 0.269051 0.5 1000 \n", + "9 8.915262e-09 0.619211 0.593146 0.5 1000 \n", + "10 4.578816e-03 0.288150 0.239425 0.5 1000 \n", + "11 3.790394e-03 0.227994 0.175151 0.5 1000 \n", + "12 9.597754e-04 0.214953 0.099585 0.5 1000 \n", + "13 1.254407e-08 0.550574 0.484527 0.5 1000 \n", + "14 3.843500e-04 0.269060 0.161643 0.5 1000 \n", + "15 3.716287e-04 0.123664 -0.005120 0.5 1000 " + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Merge the dataframes\n", + "merged_df = pd.concat([filtered_fidelity_scores_df, fidelity_scores_df], ignore_index=True)\n", + "\n", + "# Display the merged dataframe\n", + "merged_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "zRD1Tka2ow9W" + }, + "outputs": [], + "source": [ + "lime_df = merged_df[(merged_df['name'] == 'LIME-COS-kmeans-mask (LinearRegression)')|(merged_df['name']=='LIME-COS-kmeans-latent (LinearRegression)') ]\n", + "smile_df = merged_df[(merged_df['name'] == 'SMILE-WD-kmeans-spatial (LinearRegression)')|(merged_df['name']=='SMILE-WD-kmeans-latent (LinearRegression)') ]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 334 + }, + "id": "pnub6T8Gow9W", + "outputId": "e2b42950-5715-4c61-923e-0f7b07161eae" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namenum_clustersmser2maemean_lossmean_l1mean_l2weighted_l1weighted_l2weighted_r2weighted_adj_r2kernel_widthperturbation
0LIME-COS-kmeans-mask (LinearRegression)320.0289810.6048520.1339790.0008570.1360250.0298320.1118200.0241870.6048520.5917760.51000
4LIME-COS-kmeans-latent (LinearRegression)320.0297710.6132130.1365390.0000590.1365700.0297860.1364900.0297600.6132130.6004140.51000
8LIME-COS-kmeans-latent (LinearRegression)640.0088330.3158780.0547420.0000140.0547540.0088400.0547380.0088330.3158780.2690510.51000
12LIME-COS-kmeans-latent (LinearRegression)1280.0009600.2149530.0134950.0000010.0134960.0009600.0134950.0009600.2149530.0995850.51000
\n", + "
" + ], + "text/plain": [ + " name num_clusters mse \\\n", + "0 LIME-COS-kmeans-mask (LinearRegression) 32 0.028981 \n", + "4 LIME-COS-kmeans-latent (LinearRegression) 32 0.029771 \n", + "8 LIME-COS-kmeans-latent (LinearRegression) 64 0.008833 \n", + "12 LIME-COS-kmeans-latent (LinearRegression) 128 0.000960 \n", + "\n", + " r2 mae mean_loss mean_l1 mean_l2 weighted_l1 \\\n", + "0 0.604852 0.133979 0.000857 0.136025 0.029832 0.111820 \n", + "4 0.613213 0.136539 0.000059 0.136570 0.029786 0.136490 \n", + "8 0.315878 0.054742 0.000014 0.054754 0.008840 0.054738 \n", + "12 0.214953 0.013495 0.000001 0.013496 0.000960 0.013495 \n", + "\n", + " weighted_l2 weighted_r2 weighted_adj_r2 kernel_width perturbation \n", + "0 0.024187 0.604852 0.591776 0.5 1000 \n", + "4 0.029760 0.613213 0.600414 0.5 1000 \n", + "8 0.008833 0.315878 0.269051 0.5 1000 \n", + "12 0.000960 0.214953 0.099585 0.5 1000 " + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lime_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 334 + }, + "id": "pKSezJHSow9X", + "outputId": "0423459c-18de-4631-da6f-81546f8036c4" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namenum_clustersmser2maemean_lossmean_l1mean_l2weighted_l1weighted_l2weighted_r2weighted_adj_r2kernel_widthperturbation
1SMILE-WD-kmeans-spatial (LinearRegression)322.935748e-020.6124600.1354660.0016810.1362480.0297950.1294052.804403e-020.6124600.5996360.51000
5SMILE-WD-kmeans-latent (LinearRegression)327.300786e-080.7012300.0001730.2021330.2021550.1169420.0000062.379780e-090.7012300.6913440.51000
9SMILE-WD-kmeans-latent (LinearRegression)647.877957e-080.6192110.0001800.0388480.0388820.0144030.0000208.915262e-090.6192110.5931460.51000
13SMILE-WD-kmeans-latent (LinearRegression)1284.670638e-080.5505740.0001480.0057940.0058550.0012550.0000401.254407e-080.5505740.4845270.51000
\n", + "
" + ], + "text/plain": [ + " name num_clusters mse \\\n", + "1 SMILE-WD-kmeans-spatial (LinearRegression) 32 2.935748e-02 \n", + "5 SMILE-WD-kmeans-latent (LinearRegression) 32 7.300786e-08 \n", + "9 SMILE-WD-kmeans-latent (LinearRegression) 64 7.877957e-08 \n", + "13 SMILE-WD-kmeans-latent (LinearRegression) 128 4.670638e-08 \n", + "\n", + " r2 mae mean_loss mean_l1 mean_l2 weighted_l1 \\\n", + "1 0.612460 0.135466 0.001681 0.136248 0.029795 0.129405 \n", + "5 0.701230 0.000173 0.202133 0.202155 0.116942 0.000006 \n", + "9 0.619211 0.000180 0.038848 0.038882 0.014403 0.000020 \n", + "13 0.550574 0.000148 0.005794 0.005855 0.001255 0.000040 \n", + "\n", + " weighted_l2 weighted_r2 weighted_adj_r2 kernel_width perturbation \n", + "1 2.804403e-02 0.612460 0.599636 0.5 1000 \n", + "5 2.379780e-09 0.701230 0.691344 0.5 1000 \n", + "9 8.915262e-09 0.619211 0.593146 0.5 1000 \n", + "13 1.254407e-08 0.550574 0.484527 0.5 1000 " + ] + }, + "execution_count": 114, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "smile_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 434 + }, + "id": "AYww4cU9ow9X", + "outputId": "1ed9b2d4-9e7c-4e87-a2c8-8a3f6ad9a4a2" + }, + "outputs": [ + { + "data": { + "image/png": "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KMQ4CQcC/X+y/w9w+vfv7+rWrWuLt+rI/HfTtZgPHDjQanC1S0ljFwSLdx126dLFPfjggxZgN2zY0E2cONH3PSlSpLCOwArQp06dyj8OgKgKbl588UXXo0cP27R8//33renVW2+95ftebVoqa+jLL790S5YsYQ1H0LM0unXrZtelOvbrGq1YsaLbvn27BeDeibi3jisQ965xhA5BOBCE9KBBgwZZY4xSpUq5HDlyuNq1a7thw4a506dP+75HJ+EKfr766iv7nJsjAsn/+tKD4+eff25jyebNm+fSpUvn3njjDWvo4smQIYNds/r6mjVr+McBENG84EZBzcGDB91HH31kDSrfffddV6RIEbsfTp482ff9N954o/V2UcaQF/QAwdhEP3DggPVwUdNfrdG6TnWN3nDDDRaIeyVm1atXt47+qg33v8YRGgThQIBvjtu2bbObo26Kqsn54IMPrEulmmQovc0LxHXaWLBgQfs+4eaIQPKuLzUH1DVZv359d+utt7pbbrnFNowKFChgD5v+gXiuXLlcyZIl3e+//84/DoCIN2PGDPfoo4+6RYsW2fospUuXdh07dnRly5a1WeH+J+KacpI5c2Zf0AMEmjaCChcubJtFuvZEBz4KtMuVK2ebQzt27PB9f9euXV3+/PktTR2hRRAOBJB2JVU/pqYtSgHyqEnGyy+/7J555hmrtT158qQvnUjN2vbu3cu/C4Iy71YlEJMmTXKbN2/2vZ4zZ043YMAAu3bfe+89K5WQrFmzWhdg73oFgEim2u5s2bJZna16ZngU5Ggdv/766y0FeNasWfZ6nTp1XL169UL4jhFttF4r0NY4Ue/wR5luCswViGtjSJvq3nNlmTJl7ETcqxNH6NCYDQgwNbJSoKMdc80E96cTRy3kOv1WOrpunJrPnC9fPv5dELAaR/9aR826VVaGUtZ69uxp16FHTYYef/xxW+S1mDMnHECkutDYpm+//dZmgSujrXv37u7uu+/2fW316tU2okyjRrk/IhTXqA54li5dao19laWm6zVTpky+r2/YsMGaBaoskgyN8EIQDiSSv5u72KlTJ0vrVc3tAw88EOtrOmnUzjk3RwTr+lQnX43W0eKtLqo//vijbQYpOH/sscfc/fffH+u0XAu6N9KEMgkAkXx/VFB97NgxS9fVpuSVV15pgY2CmBMnTljA7R+IX2g2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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_bar_comparison(\n", + " left_df=lime_df,\n", + " right_df=smile_df,\n", + " metric=\"weighted_adj_r2\",\n", + " figure_name=\"latent_bar\",\n", + " rotate_xticks=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "B-ofEG407_pj" + }, + "source": [ + "### 7. SHAP" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "kCSUvBzr7_pj", + "outputId": "396d2a3a-b2ff-4823-f285-a6671577b64d" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "importance_norm, shap_array = shap_explain(model=model, sample_input=sample_input, device=device)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GwaIWohZve1c" + }, + "source": [ + "## Step 11: Stability and Jaccard" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6mohHaD-ow9X" + }, + "source": [ + "### 11.1 Generate Sphere Points" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "7KCEsRq1ow9X" + }, + "outputs": [], + "source": [ + "def generate_sphere_points(\n", + " center: np.ndarray,\n", + " radius: float,\n", + " num_points: int,\n", + " random_seed: Optional[int] = None,\n", + ") -> np.ndarray:\n", + " \"\"\"Generate random points uniformly inside a 3D sphere.\n", + "\n", + " Args:\n", + " center (np.ndarray): Sphere center of shape (3,).\n", + " radius (float): Sphere radius.\n", + " num_points (int): Number of points to generate.\n", + " random_seed (Optional[int]): Seed for reproducibility.\n", + "\n", + " Returns:\n", + " np.ndarray: Generated points of shape (num_points, 3).\n", + " \"\"\"\n", + " if random_seed is not None:\n", + " np.random.seed(random_seed)\n", + "\n", + " points = []\n", + "\n", + " for _ in range(num_points):\n", + " u, v = np.random.uniform(0, 1, 2)\n", + "\n", + " theta = 2 * np.pi * u\n", + " phi = np.arccos(2 * v - 1)\n", + " r = radius * np.cbrt(np.random.uniform(0, 1))\n", + "\n", + " x = r * np.sin(phi) * np.cos(theta)\n", + " y = r * np.sin(phi) * np.sin(theta)\n", + " z = r * np.cos(phi)\n", + "\n", + " points.append([x, y, z] + center)\n", + "\n", + " return np.array(points)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uZdKXTK9ow9Y" + }, + "source": [ + "### 11.2 Generate Noisy Samples + Run Explanation (LIME & SMILE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "0USZhI_low9Y" + }, + "outputs": [], + "source": [ + "def generate_noisy_explanations(\n", + " sample_input: torch.Tensor,\n", + " sample_label: int,\n", + " model,\n", + " cluster_labels: np.ndarray,\n", + " explain_fn: Callable,\n", + " num_iterations: int,\n", + " num_new_points: int,\n", + " sphere_radius: float,\n", + " explain_kwargs: Dict,\n", + " random_seed: int = 42,\n", + ") -> List[np.ndarray]:\n", + " \"\"\"Generate noisy samples and compute explanations.\n", + "\n", + " Args:\n", + " sample_input (torch.Tensor): Original point cloud.\n", + " sample_label (int): Ground truth label.\n", + " model: Trained model.\n", + " cluster_labels (np.ndarray): Original cluster labels.\n", + " explain_fn (Callable): Explanation function (LIME or SMILE).\n", + " num_iterations (int): Number of noisy samples.\n", + " num_new_points (int): Number of noise points.\n", + " sphere_radius (float): Radius for noise generation.\n", + " explain_kwargs (Dict): Additional args for explain_fn.\n", + " random_seed (int): Base random seed.\n", + "\n", + " Returns:\n", + " List[np.ndarray]: List of top feature indices per run.\n", + " \"\"\"\n", + " all_top_features: List[np.ndarray] = []\n", + "\n", + " # Convert once\n", + " sample_np = sample_input.detach().cpu().numpy()\n", + "\n", + " if sample_np.ndim == 3:\n", + " sample_np = sample_np.squeeze(0) # ONLY remove batch dim\n", + "\n", + " # Compute bounds\n", + " min_coords = sample_np.min(axis=0)\n", + " max_coords = sample_np.max(axis=0)\n", + "\n", + " for i in range(num_iterations):\n", + " np.random.seed(random_seed + i)\n", + "\n", + " # Generate random sphere center\n", + " center = np.array([\n", + " np.random.uniform(min_coords[d], max_coords[d])\n", + " for d in range(3)\n", + " ])\n", + "\n", + " new_points = generate_sphere_points(\n", + " center=center,\n", + " radius=sphere_radius,\n", + " num_points=num_new_points,\n", + " )\n", + "\n", + " # Combine point clouds\n", + " combined_points = np.vstack((sample_np, new_points))\n", + "\n", + " combined_tensor = torch.from_numpy(combined_points).float()\n", + " if combined_tensor.ndim == 2:\n", + " combined_tensor = combined_tensor.unsqueeze(0)\n", + "\n", + " # Safety check\n", + " assert combined_tensor.ndim == 3\n", + " assert combined_tensor.shape[-1] == 3\n", + "\n", + " # Update cluster labels\n", + " new_labels = np.full(num_new_points, fill_value=cluster_labels.max() + 1)\n", + " combined_labels = np.concatenate([cluster_labels, new_labels])\n", + "\n", + " print(f\"Sample with Noise: {i + 1}\")\n", + " print(f\"Random Seed: {random_seed + i}\")\n", + " print(f\"{combined_labels=}\")\n", + "\n", + " # Run explanation\n", + " top_features, _, _ = explain_fn(\n", + " sample_input=combined_tensor,\n", + " sample_label=sample_label,\n", + " model=model,\n", + " cluster_labels=combined_labels,\n", + " clustering_mode=\"precomputed\",\n", + " **explain_kwargs,\n", + " )\n", + "\n", + " all_top_features.append(top_features)\n", + "\n", + " print(\"\\n\\n\\n\")\n", + "\n", + " return all_top_features" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mbQMQOKDow9Z" + }, + "source": [ + "### 11.3 Compute Jaccard Stability" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "WtvV4deRow9Z" + }, + "outputs": [], + "source": [ + "def calculate_jaccard_stability(\n", + " top_features_list: List[np.ndarray],\n", + ") -> Tuple[List[float], float]:\n", + " \"\"\"Compute Jaccard similarity across perturbations.\n", + "\n", + " Args:\n", + " top_features_list (List[np.ndarray]): List of feature sets.\n", + "\n", + " Returns:\n", + " Tuple[List[float], float]:\n", + " - Jaccard similarities per perturbation\n", + " - Mean Jaccard similarity\n", + " \"\"\"\n", + " base_features = set(top_features_list[0])\n", + " jaccard_scores: List[float] = []\n", + "\n", + " for i, features in enumerate(top_features_list[1:], start=1):\n", + " current_features = set(features)\n", + "\n", + " intersection = len(base_features & current_features)\n", + " union = len(base_features | current_features)\n", + "\n", + " score = intersection / union if union > 0 else 0.0\n", + " jaccard_scores.append(score)\n", + "\n", + " print(f\"Jaccard Similarity with sample {i}: {score:.4f}\")\n", + "\n", + " mean_score = float(np.mean(jaccard_scores))\n", + " print(f\"\\nMean Jaccard Similarity: {mean_score:.4f}\")\n", + "\n", + " return jaccard_scores, mean_score" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nELD9f1xow9a" + }, + "source": [ + "### 11.4 Configuration" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "6hwTSdXgow9a" + }, + "outputs": [], + "source": [ + "# Common configuration\n", + "random_seed = 42\n", + "num_clusters = 32\n", + "num_top_features = round(0.2 * num_clusters)\n", + "num_perturbations = 1000\n", + "kernel_width = 0.5\n", + "max_iters = 50\n", + "\n", + "# Noise config\n", + "num_iterations = 10\n", + "num_new_points = 30\n", + "sphere_radius = 0.07" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7Tw2QT0how9a" + }, + "source": [ + "### 11.5 LIME Example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "bWeCPuOGow9b", + "outputId": "ef5aed99-8eac-4000-d90d-bf4c0a9c5f8e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Main Sample\n", + "LIME-COS-kmeans-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.028980544431911857\n", + "R-squared (R²): 0.6048517664000352\n", + "Mean Absolute Error (MAE): 0.133978646917081\n", + "Mean Loss (Lm): 0.0008570199921975608\n", + "Mean L1 Loss: 0.13602503738326907\n", + "Mean L2 Loss: 0.029832243363311535\n", + "Weighted L1 Loss: 0.1118200439479455\n", + "Weighted L2 Loss: 0.024187479322860847\n", + "Weighted R-squared (R²ω): 0.6048517664000352\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5917755063429526\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 1\n", + "Random Seed: 42\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "LIME-COS-noise-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02381239739190205\n", + "R-squared (R²): 0.4582273621878096\n", + "Mean Absolute Error (MAE): 0.1150254954867987\n", + "Mean Loss (Lm): 0.0008375255208596943\n", + "Mean L1 Loss: 0.1175267946578929\n", + "Mean L2 Loss: 0.025072862738090194\n", + "Weighted L1 Loss: 0.0961109058976013\n", + "Weighted L2 Loss: 0.019896728766467666\n", + "Weighted R-squared (R²ω): 0.4582273621878096\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.43971960126875964\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 2\n", + "Random Seed: 43\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "LIME-COS-noise-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029808845293202046\n", + "R-squared (R²): 0.6452116702603324\n", + "Mean Absolute Error (MAE): 0.13915995263950146\n", + "Mean Loss (Lm): 0.0006868509760959984\n", + "Mean L1 Loss: 0.1407054944405226\n", + "Mean L2 Loss: 0.030486902249148705\n", + "Weighted L1 Loss: 0.11627673548587131\n", + "Weighted L2 Loss: 0.024907131351761088\n", + "Weighted R-squared (R²ω): 0.6452116702603324\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6330915720394121\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 3\n", + "Random Seed: 44\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "LIME-COS-noise-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.023685135611113114\n", + "R-squared (R²): 0.46680581250016373\n", + "Mean Absolute Error (MAE): 0.11501995951030208\n", + "Mean Loss (Lm): 0.000924209904148876\n", + "Mean L1 Loss: 0.11760529114526445\n", + "Mean L2 Loss: 0.024993000560518324\n", + "Weighted L1 Loss: 0.09610628024731512\n", + "Weighted L2 Loss: 0.01979039368843994\n", + "Weighted R-squared (R²ω): 0.46680581250016373\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.4485911042315357\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 4\n", + "Random Seed: 45\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "LIME-COS-noise-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02330387811363274\n", + "R-squared (R²): 0.5204003194395066\n", + "Mean Absolute Error (MAE): 0.11456496743479304\n", + "Mean Loss (Lm): 0.0009402829318116979\n", + "Mean L1 Loss: 0.11697896587008634\n", + "Mean L2 Loss: 0.02442297063646731\n", + "Weighted L1 Loss: 0.0957261062661613\n", + "Weighted L2 Loss: 0.019471829501361115\n", + "Weighted R-squared (R²ω): 0.5204003194395066\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5040164794203593\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 5\n", + "Random Seed: 46\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "LIME-COS-noise-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.025051934427046306\n", + "R-squared (R²): 0.6105243675308352\n", + "Mean Absolute Error (MAE): 0.12333558388561978\n", + "Mean Loss (Lm): 0.0007643276207111027\n", + "Mean L1 Loss: 0.12516504122422586\n", + "Mean L2 Loss: 0.025820320818660175\n", + "Weighted L1 Loss: 0.10305449801793697\n", + "Weighted L2 Loss: 0.02093243851792024\n", + "Weighted R-squared (R²ω): 0.6105243675308352\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5972192993408947\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 6\n", + "Random Seed: 47\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "LIME-COS-noise-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02372275039843002\n", + "R-squared (R²): 0.45994203695997005\n", + "Mean Absolute Error (MAE): 0.11433897950332647\n", + "Mean Loss (Lm): 0.0007398309402274483\n", + "Mean L1 Loss: 0.11669522505043879\n", + "Mean L2 Loss: 0.02489853043689986\n", + "Weighted L1 Loss: 0.09553727939153447\n", + "Weighted L2 Loss: 0.0198218231664776\n", + "Weighted R-squared (R²ω): 0.45994203695997005\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.441492851887174\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 7\n", + "Random Seed: 48\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "LIME-COS-noise-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.030253312009827223\n", + "R-squared (R²): 0.5714272555984217\n", + "Mean Absolute Error (MAE): 0.13617116668233548\n", + "Mean Loss (Lm): 0.0009225462027948605\n", + "Mean L1 Loss: 0.1383397469293215\n", + "Mean L2 Loss: 0.031223620506618317\n", + "Weighted L1 Loss: 0.11377942021970741\n", + "Weighted L2 Loss: 0.02527851074548064\n", + "Weighted R-squared (R²ω): 0.5714272555984217\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5567865717834609\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 8\n", + "Random Seed: 49\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "LIME-COS-noise-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.03205411326208148\n", + "R-squared (R²): 0.386156725316786\n", + "Mean Absolute Error (MAE): 0.13502233244292053\n", + "Mean Loss (Lm): 0.0008422043328553119\n", + "Mean L1 Loss: 0.13801880336382347\n", + "Mean L2 Loss: 0.033430940067617286\n", + "Weighted L1 Loss: 0.11281949825624127\n", + "Weighted L2 Loss: 0.026783191416172074\n", + "Weighted R-squared (R²ω): 0.386156725316786\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.3651869240077321\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 9\n", + "Random Seed: 50\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "LIME-COS-noise-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.026621188458551392\n", + "R-squared (R²): 0.6097028297822895\n", + "Mean Absolute Error (MAE): 0.12761072584957603\n", + "Mean Loss (Lm): 0.0007423266795827388\n", + "Mean L1 Loss: 0.12937017629753356\n", + "Mean L2 Loss: 0.027396428034453076\n", + "Weighted L1 Loss: 0.10662664317808403\n", + "Weighted L2 Loss: 0.022243647184426063\n", + "Weighted R-squared (R²ω): 0.6097028297822895\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5963696966382063\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 10\n", + "Random Seed: 51\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "LIME-COS-noise-mask (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.024919218729761744\n", + "R-squared (R²): 0.577396524303892\n", + "Mean Absolute Error (MAE): 0.12125142532826182\n", + "Mean Loss (Lm): 0.0008339252992802804\n", + "Mean L1 Loss: 0.12347851110677922\n", + "Mean L2 Loss: 0.025872484166292082\n", + "Weighted L1 Loss: 0.101313054817591\n", + "Weighted L2 Loss: 0.020821546355805496\n", + "Weighted R-squared (R²ω): 0.577396524303892\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5629597596061988\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Jaccard Similarity with sample 1: 1.0000\n", + "Jaccard Similarity with sample 2: 1.0000\n", + "Jaccard Similarity with sample 3: 1.0000\n", + "Jaccard Similarity with sample 4: 1.0000\n", + "Jaccard Similarity with sample 5: 1.0000\n", + "Jaccard Similarity with sample 6: 1.0000\n", + "Jaccard Similarity with sample 7: 1.0000\n", + "Jaccard Similarity with sample 8: 1.0000\n", + "Jaccard Similarity with sample 9: 1.0000\n", + "Jaccard Similarity with sample 10: 1.0000\n", + "\n", + "Mean Jaccard Similarity: 1.0000\n", + "\n", + "LIME Mean Jaccard Similarity: 1.0000\n" + ] + } + ], + "source": [ + "# Step 1: Run LIME on original sample\n", + "lime_kwargs = {\n", + " \"num_clusters\": num_clusters,\n", + " \"num_top_features\": num_top_features,\n", + " \"num_perturbations\": num_perturbations,\n", + " \"device\": device,\n", + " \"kernel_width\": kernel_width,\n", + " \"epsilon\": 0,\n", + " \"surrogate_model_type\": \"linear\",\n", + " \"max_iters\": max_iters,\n", + " \"random_seed\": random_seed,\n", + " \"distance_mode\": \"mask\",\n", + "}\n", + "\n", + "print(\"Main Sample\")\n", + "\n", + "lime_top_features, lime_metrics, lime_model_name = lime_explain(\n", + " sample_input=sample_input,\n", + " sample_label=sample_label,\n", + " model=model,\n", + " clustering_mode=\"kmeans\",\n", + " cluster_labels=None,\n", + " **lime_kwargs,\n", + ")\n", + "\n", + "print(\"\\n\\n\\n\")\n", + "\n", + "# Step 2: Generate noisy explanations\n", + "lime_all_features = [lime_top_features]\n", + "\n", + "lime_noisy_features = generate_noisy_explanations(\n", + " sample_input=sample_input,\n", + " sample_label=sample_label,\n", + " model=model,\n", + " cluster_labels=cluster_labels, # original clustering\n", + " explain_fn=lime_explain,\n", + " num_iterations=num_iterations,\n", + " num_new_points=num_new_points,\n", + " sphere_radius=sphere_radius,\n", + " explain_kwargs=lime_kwargs,\n", + " random_seed=random_seed,\n", + ")\n", + "\n", + "lime_all_features.extend(lime_noisy_features)\n", + "\n", + "# Step 3: Compute Jaccard stability\n", + "lime_jaccard_scores, lime_mean_jaccard = calculate_jaccard_stability(\n", + " lime_all_features\n", + ")\n", + "\n", + "print(f\"\\nLIME Mean Jaccard Similarity: {lime_mean_jaccard:.4f}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "k6Mov6d5ow9b" + }, + "source": [ + "### 11.6 SMILE Example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Ishl92GTow9b", + "outputId": "e42e7a7a-2fe1-4014-9e8c-7889c07013f1" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Main Sample\n", + "SMILE-WD-kmeans-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.029357479402836693\n", + "R-squared (R²): 0.612460295976508\n", + "Mean Absolute Error (MAE): 0.1354657482190234\n", + "Mean Loss (Lm): 0.0016814990289715226\n", + "Mean L1 Loss: 0.1362481306698352\n", + "Mean L2 Loss: 0.029795102936379436\n", + "Weighted L1 Loss: 0.12940502140311674\n", + "Weighted L2 Loss: 0.028044028106081417\n", + "Weighted R-squared (R²ω): 0.612460295976508\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5996358176634244\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 1\n", + "Random Seed: 42\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "SMILE-WD-noise-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02441275134533327\n", + "R-squared (R²): 0.46542749931435357\n", + "Mean Absolute Error (MAE): 0.11737638661310622\n", + "Mean Loss (Lm): 0.0013234378369852973\n", + "Mean L1 Loss: 0.1183375338095645\n", + "Mean L2 Loss: 0.02503843655734228\n", + "Weighted L1 Loss: 0.112139307347841\n", + "Weighted L2 Loss: 0.023323507438889442\n", + "Weighted R-squared (R²ω): 0.46542749931435357\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.4471657058126699\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 2\n", + "Random Seed: 43\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "SMILE-WD-noise-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.03012560195627289\n", + "R-squared (R²): 0.6489825571886372\n", + "Mean Absolute Error (MAE): 0.14017137740052\n", + "Mean Loss (Lm): 0.0014491235466971286\n", + "Mean L1 Loss: 0.14079214982107696\n", + "Mean L2 Loss: 0.030463297489495826\n", + "Weighted L1 Loss: 0.13390027163585655\n", + "Weighted L2 Loss: 0.028777817268731975\n", + "Weighted R-squared (R²ω): 0.6489825571886372\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6369912780863856\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 3\n", + "Random Seed: 44\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "SMILE-WD-noise-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.024303855310546206\n", + "R-squared (R²): 0.4747458881050026\n", + "Mean Absolute Error (MAE): 0.11740103653785344\n", + "Mean Loss (Lm): 0.001118394376544929\n", + "Mean L1 Loss: 0.11849488967656685\n", + "Mean L2 Loss: 0.024954122455414677\n", + "Weighted L1 Loss: 0.11183327326930931\n", + "Weighted L2 Loss: 0.023151241016221468\n", + "Weighted R-squared (R²ω): 0.4747458881050026\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.4568024246551735\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 4\n", + "Random Seed: 45\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "SMILE-WD-noise-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.023780286597553255\n", + "R-squared (R²): 0.5280936507859308\n", + "Mean Absolute Error (MAE): 0.11638831772732279\n", + "Mean Loss (Lm): 0.0014814102569078447\n", + "Mean L1 Loss: 0.11747122978145783\n", + "Mean L2 Loss: 0.024386016336212842\n", + "Weighted L1 Loss: 0.11085970670267897\n", + "Weighted L2 Loss: 0.022650689081070218\n", + "Weighted R-squared (R²ω): 0.5280936507859308\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5119726264338974\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 5\n", + "Random Seed: 46\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "SMILE-WD-noise-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.025363502362939026\n", + "R-squared (R²): 0.6161994953881045\n", + "Mean Absolute Error (MAE): 0.12457628289637827\n", + "Mean Loss (Lm): 0.0015056786929578125\n", + "Mean L1 Loss: 0.12536639698315263\n", + "Mean L2 Loss: 0.025793563695845394\n", + "Weighted L1 Loss: 0.11910363402107202\n", + "Weighted L2 Loss: 0.024249281104661295\n", + "Weighted R-squared (R²ω): 0.6161994953881045\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6030882980255863\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 6\n", + "Random Seed: 47\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "SMILE-WD-noise-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02428215105831135\n", + "R-squared (R²): 0.467108761534777\n", + "Mean Absolute Error (MAE): 0.11655749838606531\n", + "Mean Loss (Lm): 0.0011427412061675302\n", + "Mean L1 Loss: 0.11747145237760001\n", + "Mean L2 Loss: 0.024866992831647432\n", + "Weighted L1 Loss: 0.11100572558862999\n", + "Weighted L2 Loss: 0.023125563214754258\n", + "Weighted R-squared (R²ω): 0.467108761534777\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.44890440245677243\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 7\n", + "Random Seed: 48\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "SMILE-WD-noise-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.03075355421661446\n", + "R-squared (R²): 0.5771316847788659\n", + "Mean Absolute Error (MAE): 0.13783289720769842\n", + "Mean Loss (Lm): 0.0014222904079294052\n", + "Mean L1 Loss: 0.138550198926365\n", + "Mean L2 Loss: 0.031184796543919913\n", + "Weighted L1 Loss: 0.131331536813865\n", + "Weighted L2 Loss: 0.029302957563681745\n", + "Weighted R-squared (R²ω): 0.5771316847788659\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.562685872768206\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 8\n", + "Random Seed: 49\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "SMILE-WD-noise-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.032740674677523236\n", + "R-squared (R²): 0.3936840915135158\n", + "Mean Absolute Error (MAE): 0.1371703788650534\n", + "Mean Loss (Lm): 0.0012218653703593985\n", + "Mean L1 Loss: 0.1383820586181767\n", + "Mean L2 Loss: 0.033397732445047776\n", + "Weighted L1 Loss: 0.13082101704282012\n", + "Weighted L2 Loss: 0.031225169715361267\n", + "Weighted R-squared (R²ω): 0.3936840915135158\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.3729714362546608\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 9\n", + "Random Seed: 50\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "SMILE-WD-noise-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.02693039483562905\n", + "R-squared (R²): 0.61484311602749\n", + "Mean Absolute Error (MAE): 0.1288546965383341\n", + "Mean Loss (Lm): 0.0015004001417155965\n", + "Mean L1 Loss: 0.1296139222103637\n", + "Mean L2 Loss: 0.02737160132039334\n", + "Weighted L1 Loss: 0.12325557521855171\n", + "Weighted L2 Loss: 0.02576018876689279\n", + "Weighted R-squared (R²ω): 0.61484311602749\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.6016855827240812\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Sample with Noise: 10\n", + "Random Seed: 51\n", + "combined_labels=array([15, 8, 0, ..., 32, 32, 32], shape=(1054,), dtype=int32)\n", + "SMILE-WD-noise-spatial (LinearRegression)\n", + "Number of perturbations: 1000\n", + "----------------------------------------------------------------------------------------------------\n", + "Fidelity:\n", + "Mean Squared Error (MSE): 0.025319469745673378\n", + "R-squared (R²): 0.5832875372235486\n", + "Mean Absolute Error (MAE): 0.12281335809554991\n", + "Mean Loss (Lm): 0.0015425878300632245\n", + "Mean L1 Loss: 0.123765690071764\n", + "Mean L2 Loss: 0.025843335307517163\n", + "Weighted L1 Loss: 0.11715848670937497\n", + "Weighted L2 Loss: 0.024153649128126738\n", + "Weighted R-squared (R²ω): 0.5832875372235486\n", + "Weighted Adjusted R-squared (Rˆ²ω): 0.5690520183088252\n", + "----------------------------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "\n", + "Jaccard Similarity with sample 1: 1.0000\n", + "Jaccard Similarity with sample 2: 1.0000\n", + "Jaccard Similarity with sample 3: 1.0000\n", + "Jaccard Similarity with sample 4: 1.0000\n", + "Jaccard Similarity with sample 5: 1.0000\n", + "Jaccard Similarity with sample 6: 1.0000\n", + "Jaccard Similarity with sample 7: 1.0000\n", + "Jaccard Similarity with sample 8: 1.0000\n", + "Jaccard Similarity with sample 9: 1.0000\n", + "Jaccard Similarity with sample 10: 1.0000\n", + "\n", + "Mean Jaccard Similarity: 1.0000\n", + "\n", + "SMILE Mean Jaccard Similarity: 1.0000\n" + ] + } + ], + "source": [ + "# Step 1: Run SMILE on original sample\n", + "smile_kwargs = {\n", + " \"num_clusters\": num_clusters,\n", + " \"num_top_features\": num_top_features,\n", + " \"num_perturbations\": num_perturbations,\n", + " \"device\": device,\n", + " \"kernel_width\": kernel_width,\n", + " \"epsilon\": 0,\n", + " \"surrogate_model_type\": \"linear\",\n", + " \"max_iters\": max_iters,\n", + " \"random_seed\": random_seed,\n", + " \"distance_metric\": \"wasserstein\", # or \"anderson\", \"ks\"\n", + " \"distance_mode\": \"spatial\",\n", + "}\n", + "\n", + "print(\"Main Sample\")\n", + "\n", + "smile_top_features, smile_metrics, smile_model_name = smile_explain(\n", + " sample_input=sample_input,\n", + " sample_label=sample_label,\n", + " model=model,\n", + " clustering_mode=\"kmeans\",\n", + " cluster_labels=None,\n", + " **smile_kwargs,\n", + ")\n", + "\n", + "print(\"\\n\\n\\n\")\n", + "\n", + "# Step 2: Generate noisy explanations\n", + "smile_all_features = [smile_top_features]\n", + "\n", + "smile_noisy_features = generate_noisy_explanations(\n", + " sample_input=sample_input,\n", + " sample_label=sample_label,\n", + " model=model,\n", + " cluster_labels=cluster_labels,\n", + " explain_fn=smile_explain,\n", + " num_iterations=num_iterations,\n", + " num_new_points=num_new_points,\n", + " sphere_radius=sphere_radius,\n", + " explain_kwargs=smile_kwargs,\n", + " random_seed=random_seed,\n", + ")\n", + "\n", + "smile_all_features.extend(smile_noisy_features)\n", + "\n", + "# Step 3: Compute Jaccard stability\n", + "smile_jaccard_scores, smile_mean_jaccard = calculate_jaccard_stability(\n", + " smile_all_features\n", + ")\n", + "\n", + "print(f\"\\nSMILE Mean Jaccard Similarity: {smile_mean_jaccard:.4f}\")" + ] + } + ], + "metadata": { + "colab": { + "provenance": [], + "toc_visible": true + }, + "kaggle": { + "accelerator": "none", + "dataSources": [ + { + "datasetId": 943894, + "sourceId": 1599485, + "sourceType": "datasetVersion" + }, + { + "sourceId": 52369856, + "sourceType": "kernelVersion" + } + ], + "dockerImageVersionId": 30746, + "isGpuEnabled": false, + "isInternetEnabled": true, + "language": "python", + "sourceType": "notebook" + }, + "kernelspec": { + "display_name": "2-Point Cloud Examples", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/examples/Point Cloud Examples/Notebooks/smile_point_cloud_k2.py b/examples/Point Cloud Examples/Notebooks/smile_point_cloud_k2.py new file mode 100644 index 0000000..9918d7f --- /dev/null +++ b/examples/Point Cloud Examples/Notebooks/smile_point_cloud_k2.py @@ -0,0 +1,3813 @@ +# -*- coding: utf-8 -*- +"""SMILE_Point_Cloud_k2.ipynb + +Automatically generated by Colab. + +Original file is located at + https://colab.research.google.com/drive/1ffQc0bjq-GlueD0cHIuVvHlsOGk6h5Sz + +## Install Libraies +""" + +!pip install -q numpy pandas torch torchvision torch_geometric scipy plotly matplotlib seaborn scikit-learn shap + +"""## Importing Libraries""" + +import os +import time +import itertools +import warnings +import math, random +from pathlib import Path +from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, Union + + +import pandas as pd +import numpy as np + +import torch +from torch.utils.data import Dataset, DataLoader +from torchvision import transforms, utils +from torch_geometric.io import read_off + +import scipy.spatial.distance +import plotly.graph_objects as go +import plotly.express as px +import matplotlib.pyplot as plt +from IPython.display import display, HTML +import seaborn as sns +from sklearn.metrics import confusion_matrix + +from sklearn.cluster import KMeans +from sklearn.linear_model import LinearRegression +from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score + +warnings.filterwarnings('ignore') + +"""## Global Configuration + +Note: If you want to train model, you change the `TRAIN_MODEL` variable to `True` +""" + +random.seed = 42 +TRAIN_MODEL = False + +"""# Visualization""" + +def generate_rotation_frames( + radius: float = 2.0, + height: float = 0.8, + num_steps: int = 100, +) -> List[Dict[str, Any]]: + """Generates camera rotation frames for 3D animations. + + Args: + radius: Distance of the camera from the origin in the XY plane. + height: Z-axis position of the camera. + num_steps: Number of animation frames. + + Returns: + A list of Plotly animation frame dictionaries for a rotating view. + """ + angles = np.linspace(0, 2 * np.pi, num_steps) + frames = [] + + for angle in angles: + frame = dict( + layout=dict( + scene=dict( + camera=dict( + eye=dict( + x=radius * np.cos(angle), + y=radius * np.sin(angle), + z=height, + ) + ) + ) + ) + ) + frames.append(frame) + + return frames + + +def create_mesh_figure( + vertices: np.ndarray, + faces: np.ndarray, + opacity: float = 0.5, +) -> go.Figure: + """Creates a 3D mesh visualization with a rotation animation. + + Args: + vertices: Array of vertices of shape (N, 3). + faces: Array of faces of shape (F, 3). + opacity: Transparency level of the mesh (0.0 to 1.0). + + Returns: + A Plotly figure containing the animated mesh. + """ + x, y, z = vertices.T + i, j, k = faces.T + + mesh = go.Mesh3d( + x=x, + y=y, + z=z, + i=i, + j=j, + k=k, + opacity=opacity, + ) + + fig = go.Figure( + data=[mesh], + frames=generate_rotation_frames(), + layout=dict( + updatemenus=[ + dict( + type="buttons", + showactive=False, + buttons=[ + dict( + label="Play", + method="animate", + args=[None], + ) + ], + ) + ] + ), + ) + + return fig + + +def create_point_cloud_figure( + vertices: np.ndarray, + marker_size: int = 2, +) -> go.Figure: + """Creates a 3D point cloud visualization with a rotation animation. + + Args: + vertices: Array of point coordinates of shape (N, 3). + marker_size: Size of each point marker. + + Returns: + A Plotly figure containing the animated point cloud. + """ + x, y, z = vertices.T + + scatter = go.Scatter3d( + x=x, + y=y, + z=z, + mode="markers", + marker=dict(size=marker_size), + ) + + fig = go.Figure( + data=[scatter], + frames=generate_rotation_frames(), + ) + + return fig + + +def create_colored_point_cloud_figure( + vertices: np.ndarray, + importance: np.ndarray, + marker_size: int = 4, + title: str = "Point Cloud", + show_colorbar: bool = True, +) -> go.Figure: + """Creates a colored 3D point cloud visualization with rotation. + + Args: + vertices: Array of point coordinates of shape (N, 3). + importance: Array of importance values per point of shape (N,). + marker_size: Size of each point marker. + title: Title of the figure. + show_colorbar: Whether to display a colorbar next to the plot. + + Returns: + A Plotly figure containing the animated and colored point cloud. + """ + x, y, z = vertices.T + + scatter = go.Scatter3d( + x=x, + y=y, + z=z, + mode="markers", + name="Point Cloud", + marker=dict( + size=marker_size, + color=importance, + colorscale="Viridis", + colorbar=dict(title="Importance") if show_colorbar else None, + line=dict(width=0), + ), + ) + + fig = go.Figure( + data=[scatter], + frames=generate_rotation_frames(), + layout=dict( + title=title, + margin=dict(l=0, r=0, b=0, t=40), + scene=dict( + xaxis=dict(title="X"), + yaxis=dict(title="Y"), + zaxis=dict(title="Z"), + ), + updatemenus=[ + dict( + type="buttons", + showactive=False, + buttons=[ + dict( + label="Play", + method="animate", + args=[None], + ) + ], + ) + ], + ), + ) + + return fig + +def show_persistent_figure(fig: go.Figure) -> None: + """Displays a Plotly figure so it persists after reopening the notebook. + + This works by converting the plot to raw HTML and loading the Plotly JS + library via CDN. + + Args: + fig: The Plotly figure to display. + """ + html_bytes = fig.to_html( + include_plotlyjs="cdn", + full_html=False, + auto_play=False, + ) + display(HTML(html_bytes)) + +"""# Loading Dataset, Train and Evalutaion model for Point Cloud + +## Importing Dataset +In this notebook the modelnet40 has been used as the dataset +""" + +import os +import os.path as osp +from torch_geometric.data import download_url, extract_zip + +root = 'data/ModelNet40' +url = 'http://modelnet.cs.princeton.edu/ModelNet40.zip' + +os.makedirs(root, exist_ok=True) + +# Download +path = download_url(url, root) + +# Extract +extract_zip(path, root) +os.unlink(path) + +# Rename like PyG does +folder = osp.join(root, 'ModelNet40') +raw_dir = osp.join(root, 'raw') + +if osp.exists(raw_dir): + import shutil + shutil.rmtree(raw_dir) + +os.rename(folder, raw_dir) + +print("Raw dataset ready at:", raw_dir) + +path = Path(raw_dir) +folders = [dir for dir in sorted(os.listdir(path)) if os.path.isdir(path/dir)] +classes = {folder: i for i, folder in enumerate(folders)} +classes + +"""### Read and visualize one of objects from dataset""" + +data = read_off(path/"airplane/train/airplane_0001.off") + +vertices = data.pos.numpy() +faces = data.face.numpy().T # (F, 3) + +x, y, z = vertices.T +i, j, k = faces.T +len(x) + +# Mesh visualization +fig_mesh = create_mesh_figure(vertices, faces) +show_persistent_figure(fig_mesh) + +# Point cloud visualization +fig_pc = create_point_cloud_figure(vertices) +show_persistent_figure(fig_mesh) + +"""## Sampling""" + +class PointSampler: + """Sample points uniformly from a mesh surface using triangle areas.""" + + def __init__(self, output_size: int) -> None: + """ + Initialize the sampler. + + Args: + output_size (int): Number of points to sample. + """ + assert isinstance(output_size, int) + self.output_size = output_size + + def triangle_area( + self, + point1: np.ndarray, + point2: np.ndarray, + point3: np.ndarray, + ) -> float: + """ + Compute the area of a triangle defined by three points. + + Args: + point1 (np.ndarray): First vertex. + point2 (np.ndarray): Second vertex. + point3 (np.ndarray): Third vertex. + + Returns: + float: Triangle area. + """ + # Check if any input point coordinates are non-finite (NaN or Inf) + if not (np.all(np.isfinite(point1)) and np.all(np.isfinite(point2)) and np.all(np.isfinite(point3))): + return 0.0 + + side_a = np.linalg.norm(point1 - point2) + side_b = np.linalg.norm(point2 - point3) + side_c = np.linalg.norm(point3 - point1) + + # Check if side lengths are non-finite or non-positive + if not (np.isfinite(side_a) and np.isfinite(side_b) and np.isfinite(side_c)) or \ + side_a <= 0 or side_b <= 0 or side_c <= 0: + return 0.0 + + semi_perimeter = 0.5 * (side_a + side_b + side_c) + + # Heron's formula intermediate calculation + arg_sqrt = semi_perimeter * ( + (semi_perimeter - side_a) + * (semi_perimeter - side_b) + * (semi_perimeter - side_c) + ) + + # If arg_sqrt is negative due to floating point precision for degenerate triangles, + # or if it's NaN/Inf due to previous operations, treat area as 0. + if np.isnan(arg_sqrt) or np.isinf(arg_sqrt) or arg_sqrt < 0: + return 0.0 + + return arg_sqrt ** 0.5 + + def sample_point( + self, + point1: np.ndarray, + point2: np.ndarray, + point3: np.ndarray, + ) -> Tuple[float, float, float]: + """ + Sample a random point inside a triangle using barycentric coordinates. + + Args: + point1 (np.ndarray): First vertex. + point2 (np.ndarray): Second vertex. + point3 (np.ndarray): Third vertex. + + Returns: + Tuple[float, float, float]: Sampled 3D point. + """ + s, t = sorted([random.random(), random.random()]) + + def interpolate(index: int) -> float: + return ( + s * point1[index] + + (t - s) * point2[index] + + (1 - t) * point3[index] + ) + + return (interpolate(0), interpolate(1), interpolate(2)) + + def __call__( + self, + mesh: Tuple[np.ndarray, np.ndarray], + ) -> np.ndarray: + """ + Sample points from a mesh. + + Args: + mesh (Tuple[np.ndarray, np.ndarray]): Tuple of vertices and faces. + + Returns: + np.ndarray: Sampled point cloud of shape (output_size, 3). + """ + vertices, faces = mesh + vertices = np.array(vertices) + + areas = [] + for idx in range(len(faces)): + face = faces[idx] + try: + # Ensure face indices are within bounds before accessing vertices + if np.any(face < 0) or np.any(face >= len(vertices)): + area_val = 0.0 + else: + p1, p2, p3 = vertices[face[0]], vertices[face[1]], vertices[face[2]] + area_val = self.triangle_area(p1, p2, p3) + except IndexError: # Catch potential errors if face indices are malformed in other ways + area_val = 0.0 + areas.append(area_val) + + areas = np.array(areas) + + # Replace any remaining NaN/inf with 0 as a safeguard, though triangle_area should now handle it + areas = np.nan_to_num(areas, nan=0.0, posinf=0.0, neginf=0.0) + + # If all areas are 0 (e.g., all triangles are degenerate), random.choices will fail. + # Assign uniform weights in such a case to allow sampling (from a degenerate mesh). + if np.sum(areas) == 0: + if len(areas) > 0: + areas = np.ones_like(areas) + else: # No faces at all + return np.zeros((self.output_size, 3)) # Return an empty point cloud + + # Sample indices of faces, not the faces directly + sampled_faces_indices = random.choices( + range(len(faces)), + weights=areas, + k=self.output_size, + ) + + sampled_points = np.zeros((self.output_size, 3)) + + for idx, face_list_idx in enumerate(sampled_faces_indices): + face = faces[face_list_idx] + # Access vertices using the face indices + p1, p2, p3 = vertices[face[0]], vertices[face[1]], vertices[face[2]] + sampled_points[idx] = self.sample_point(p1, p2, p3) + + return sampled_points + +"""## Transformers""" + +class Normalize: + """Normalize a point cloud to zero mean and unit radius.""" + + def __call__(self, point_cloud: np.ndarray) -> np.ndarray: + """ + Normalize the input point cloud. + + Args: + point_cloud (np.ndarray): Input array of shape (N, 3). + + Returns: + np.ndarray: Normalized point cloud. + """ + assert len(point_cloud.shape) == 2 + + normalized = point_cloud - np.mean(point_cloud, axis=0) + normalized /= np.max(np.linalg.norm(normalized, axis=1)) + + return normalized + + +class RandomRotationZ: + """Apply a random rotation around the Z-axis.""" + + def __call__(self, point_cloud: np.ndarray) -> np.ndarray: + """ + Rotate the point cloud randomly around Z-axis. + + Args: + point_cloud (np.ndarray): Input array of shape (N, 3). + + Returns: + np.ndarray: Rotated point cloud. + """ + assert len(point_cloud.shape) == 2 + + theta = random.random() * 2.0 * math.pi + + rotation_matrix = np.array( + [ + [math.cos(theta), -math.sin(theta), 0], + [math.sin(theta), math.cos(theta), 0], + [0, 0, 1], + ] + ) + + return rotation_matrix.dot(point_cloud.T).T + + +class RandomNoise: + """Add Gaussian noise to a point cloud.""" + + def __call__(self, point_cloud: np.ndarray) -> np.ndarray: + """ + Add random noise to the point cloud. + + Args: + point_cloud (np.ndarray): Input array of shape (N, 3). + + Returns: + np.ndarray: Noisy point cloud. + """ + assert len(point_cloud.shape) == 2 + + noise = np.random.normal(0, 0.02, point_cloud.shape) + return point_cloud + noise + +"""### Visualize sampling and transformers with dataset sample object""" + +# Sampling +point_cloud = PointSampler(3000)((vertices, faces)) +figure = create_point_cloud_figure(point_cloud) +show_persistent_figure(figure) + +# Normalization +normalized_point_cloud = Normalize()(point_cloud) +figure = create_point_cloud_figure(normalized_point_cloud) +show_persistent_figure(figure) + +# Augmentation +rotated_point_cloud = RandomRotationZ()(normalized_point_cloud) +noisy_point_cloud = RandomNoise()(rotated_point_cloud) + +figure = create_point_cloud_figure(noisy_point_cloud) +show_persistent_figure(figure) + +"""## Tensor transforms""" + +class ToTensor: + """Convert a NumPy point cloud to a PyTorch tensor.""" + + def __call__(self, point_cloud: np.ndarray) -> torch.Tensor: + """ + Convert input point cloud to tensor. + + Args: + point_cloud (np.ndarray): Input array of shape (N, 3). + + Returns: + torch.Tensor: Tensor representation of the point cloud. + """ + assert len(point_cloud.shape) == 2 + return torch.from_numpy(point_cloud) + +"""## Transform builders""" + +def default_transforms() -> transforms.Compose: + """ + Create default transformation pipeline. + + Returns: + transforms.Compose: Composed transform pipeline. + """ + return transforms.Compose( + [ + PointSampler(1024), + Normalize(), + ToTensor(), + ] + ) + +"""## Dataset""" + +class PointCloudData(Dataset): + """Custom Dataset for loading point cloud data from OFF files.""" + + def __init__( + self, + root_dir: Path, + valid: bool = False, + folder: str = "train", + transform=None, + ) -> None: + """ + Initialize dataset. + + Args: + root_dir (Path): Root directory of dataset. + valid (bool, optional): Whether to use validation transforms. Defaults to False. + folder (str, optional): Subfolder name (e.g., 'train', 'test'). Defaults to 'train'. + transform (optional): Transform pipeline. Defaults to default_transforms(). + """ + self.root_dir = root_dir + self.valid = valid + + folders = [ + directory + for directory in sorted(os.listdir(root_dir)) + if os.path.isdir(root_dir / directory) + ] + + self.classes: Dict[str, int] = { + class_name: idx for idx, class_name in enumerate(folders) + } + + self.transforms = transform if not valid else default_transforms() + + self.files: List[Dict[str, Any]] = [] + + for category in self.classes.keys(): + category_dir = root_dir / Path(category) / folder + + for file_name in os.listdir(category_dir): + if file_name.endswith(".off"): + self.files.append( + { + "pcd_path": category_dir / file_name, + "category": category, + } + ) + + def __len__(self) -> int: + """Return number of samples.""" + return len(self.files) + + def _preprocess(self, file_path) -> Any: + """ + Load and preprocess a single OFF file. + + Args: + file_path: File path. + + Returns: + Any: Processed point cloud. + """ + data = read_off(file_path) + vertices = data.pos.numpy() + faces = data.face.numpy().T + + if self.transforms: + return self.transforms((vertices, faces)) + + return vertices, faces + + def __getitem__(self, index: int) -> Dict[str, Any]: + """ + Get a dataset sample. + + Args: + index (int): Sample index. + + Returns: + Dict[str, Any]: Dictionary with pointcloud and category label. + """ + sample_info = self.files[index] + pointcloud_path = sample_info["pcd_path"] + category_name = sample_info["category"] + + point_cloud = self._preprocess(pointcloud_path) + + return { + "pointcloud": point_cloud, + "category": self.classes[category_name], + } + +"""## Training Transform Pipeline""" + +def build_train_transforms() -> transforms.Compose: + """ + Create training transformation pipeline with data augmentation. + + Returns: + transforms.Compose: Composed transform pipeline for training. + """ + return transforms.Compose( + [ + PointSampler(1024), + Normalize(), + RandomRotationZ(), + RandomNoise(), + ToTensor(), + ] + ) + +"""## Preparing the Data""" + +train_transforms = build_train_transforms() + +train_dataset = PointCloudData(path, transform=train_transforms) +valid_dataset = PointCloudData( + path, + valid=True, + folder="test", + transform=train_transforms, +) + +"""## Class Mapping""" + +inverse_classes = {index: category for category, index in train_dataset.classes.items()} +inverse_classes + +"""## Dataset Inspection""" + +print("Train dataset size:", len(train_dataset)) +print("Valid dataset size:", len(valid_dataset)) +print("Number of classes:", len(train_dataset.classes)) + +sample = train_dataset[0] +print("Sample pointcloud shape:", sample["pointcloud"].size()) +print("Class:", inverse_classes[sample["category"]]) + +"""## DataLoaders""" + +train_loader = DataLoader( + dataset=train_dataset, + batch_size=32, + shuffle=True, +) + +valid_loader = DataLoader( + dataset=valid_dataset, + batch_size=64, +) + +"""## Model: T-Net""" + +import torch +import torch.nn as nn +import torch.nn.functional as F + + +class TNet(nn.Module): + """Transformation network used in PointNet.""" + + def __init__(self, k: int = 3) -> None: + """ + Initialize T-Net. + + Args: + k (int): Input feature dimension. + """ + super().__init__() + self.k = k + + self.conv1 = nn.Conv1d(k, 64, 1) + self.conv2 = nn.Conv1d(64, 128, 1) + self.conv3 = nn.Conv1d(128, 1024, 1) + + self.fc1 = nn.Linear(1024, 512) + self.fc2 = nn.Linear(512, 256) + self.fc3 = nn.Linear(256, k * k) + + self.bn1 = nn.BatchNorm1d(64) + self.bn2 = nn.BatchNorm1d(128) + self.bn3 = nn.BatchNorm1d(1024) + self.bn4 = nn.BatchNorm1d(512) + self.bn5 = nn.BatchNorm1d(256) + + def forward(self, inputs: torch.Tensor) -> torch.Tensor: + """ + Forward pass. + + Args: + inputs (torch.Tensor): Input tensor of shape (B, k, N). + + Returns: + torch.Tensor: Transformation matrix of shape (B, k, k). + """ + batch_size = inputs.size(0) + + x = F.relu(self.bn1(self.conv1(inputs))) + x = F.relu(self.bn2(self.conv2(x))) + x = F.relu(self.bn3(self.conv3(x))) + + x = nn.MaxPool1d(x.size(-1))(x) + x = nn.Flatten(1)(x) + + x = F.relu(self.bn4(self.fc1(x))) + x = F.relu(self.bn5(self.fc2(x))) + + identity = torch.eye(self.k, requires_grad=True).repeat(batch_size, 1, 1) + if inputs.is_cuda: + identity = identity.cuda() + + matrix = self.fc3(x).view(-1, self.k, self.k) + identity + return matrix + +"""## Model: Transform Block""" + +class Transform(nn.Module): + """Feature transformation block used in PointNet.""" + + def __init__(self) -> None: + """Initialize transform module.""" + super().__init__() + + self.input_transform = TNet(k=3) + self.feature_transform = TNet(k=64) + + self.conv1 = nn.Conv1d(3, 64, 1) + self.conv2 = nn.Conv1d(64, 128, 1) + self.conv3 = nn.Conv1d(128, 1024, 1) + + self.bn1 = nn.BatchNorm1d(64) + self.bn2 = nn.BatchNorm1d(128) + self.bn3 = nn.BatchNorm1d(1024) + + def forward(self, inputs: torch.Tensor): + """ + Forward pass. + + Args: + inputs (torch.Tensor): Input tensor of shape (B, 3, N). + + Returns: + Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + Features, input transform, feature transform. + """ + matrix3x3 = self.input_transform(inputs) + + x = torch.bmm(inputs.transpose(1, 2), matrix3x3).transpose(1, 2) + x = F.relu(self.bn1(self.conv1(x))) + + matrix64x64 = self.feature_transform(x) + + x = torch.bmm(x.transpose(1, 2), matrix64x64).transpose(1, 2) + x = F.relu(self.bn2(self.conv2(x))) + x = self.bn3(self.conv3(x)) + + x = nn.MaxPool1d(x.size(-1))(x) + x = nn.Flatten(1)(x) + + return x, matrix3x3, matrix64x64 + +"""## Model: PointNet""" + +class PointNet(nn.Module): + """PointNet classification model.""" + + def __init__(self, num_classes: int = 40) -> None: + """ + Initialize PointNet. + + Args: + num_classes (int): Number of output classes. + """ + super().__init__() + + self.transform = Transform() + + self.fc1 = nn.Linear(1024, 512) + self.fc2 = nn.Linear(512, 256) + self.fc3 = nn.Linear(256, num_classes) + + self.bn1 = nn.BatchNorm1d(512) + self.bn2 = nn.BatchNorm1d(256) + + self.dropout = nn.Dropout(p=0.3) + self.log_softmax = nn.LogSoftmax(dim=1) + + def forward(self, inputs: torch.Tensor): + """ + Forward pass. + + Args: + inputs (torch.Tensor): Input tensor of shape (B, 3, N). + + Returns: + Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + Log probabilities and transformation matrices. + """ + x, matrix3x3, matrix64x64 = self.transform(inputs) + + x = F.relu(self.bn1(self.fc1(x))) + x = F.relu(self.bn2(self.dropout(self.fc2(x)))) + + x = self.fc3(x) + + return self.log_softmax(x), matrix3x3, matrix64x64 + +"""## Loss Function""" + +def pointnet_loss( + outputs: torch.Tensor, + labels: torch.Tensor, + matrix3x3: torch.Tensor, + matrix64x64: torch.Tensor, + alpha: float = 1e-4, +) -> torch.Tensor: + """ + Compute PointNet loss with regularization. + + Args: + outputs (torch.Tensor): Model predictions. + labels (torch.Tensor): Ground truth labels. + matrix3x3 (torch.Tensor): Input transform matrix. + matrix64x64 (torch.Tensor): Feature transform matrix. + alpha (float): Regularization weight. + + Returns: + torch.Tensor: Loss value. + """ + criterion = nn.NLLLoss() + batch_size = outputs.size(0) + + identity3x3 = torch.eye(3, requires_grad=True).repeat(batch_size, 1, 1) + identity64x64 = torch.eye(64, requires_grad=True).repeat(batch_size, 1, 1) + + if outputs.is_cuda: + identity3x3 = identity3x3.cuda() + identity64x64 = identity64x64.cuda() + + diff3x3 = identity3x3 - torch.bmm(matrix3x3, matrix3x3.transpose(1, 2)) + diff64x64 = identity64x64 - torch.bmm(matrix64x64, matrix64x64.transpose(1, 2)) + + return criterion(outputs, labels) + alpha * ( + torch.norm(diff3x3) + torch.norm(diff64x64) + ) / float(batch_size) + +"""## Device Setup""" + +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") +print(device) + +"""## Model & Optimizer""" + +model = PointNet().to(device) + +optimizer = torch.optim.Adam(model.parameters(), lr=0.0008) + +"""## Training Loop""" + +def train( + model: nn.Module, + train_loader, + val_loader=None, + epochs: int = 1, +) -> None: + """ + Train the model. + + Args: + model (nn.Module): Model to train. + train_loader: Training DataLoader. + val_loader: Validation DataLoader. + epochs (int): Number of epochs. + """ + for epoch in range(epochs): + model.train() + running_loss = 0.0 + + for batch_idx, batch in enumerate(train_loader): + inputs = batch["pointcloud"].to(device).float() + labels = batch["category"].to(device) + + optimizer.zero_grad() + + outputs, m3x3, m64x64 = model(inputs.transpose(1, 2)) + loss = pointnet_loss(outputs, labels, m3x3, m64x64) + + loss.backward() + optimizer.step() + + running_loss += loss.item() + + if batch_idx % 5 == 4: + print( + f"[Epoch: {epoch+1}, Batch: {batch_idx+1}/{len(train_loader)}] " + f"loss: {running_loss / 5:.3f}" + ) + running_loss = 0.0 + + # Validation + if val_loader: + model.eval() + correct, total = 0, 0 + + with torch.no_grad(): + for batch in val_loader: + inputs = batch["pointcloud"].to(device).float() + labels = batch["category"].to(device) + + outputs, _, _ = model(inputs.transpose(1, 2)) + _, predicted = torch.max(outputs.data, 1) + + total += labels.size(0) + correct += (predicted == labels).sum().item() + + accuracy = 100.0 * correct / total + print(f"Validation accuracy: {accuracy:.2f}%") + + model_name = f"save-{epoch + 1}.pth" + torch.save(model.state_dict(), model_name) + print(f"\"{model_name}\" saved!") + +"""## Run Training""" + +if TRAIN_MODEL: + # Number of epochs + num_epochs = 3 + + # Start training + train( + model=model, + train_loader=train_loader, + val_loader=valid_loader, + epochs=num_epochs, + ) + +"""## Loading the pretrained model to save time""" + +import gdown +import os + +# Create the data directory if it doesn't exist +output_dir = "data" +os.makedirs(output_dir, exist_ok=True) + +# Google Drive file ID from the provided URL +file_id = "1zLl0E9akEOneDGJSkFATdtox9COpbd1F" + +# Output path for the downloaded file +output_path = os.path.join(output_dir, "save.pth") + +# Download the file using gdown +gdown.download(id=file_id, output=output_path, quiet=False) + +if not TRAIN_MODEL: + model_path = "./data/save.pth" + # Load the pretrained model weights + model.load_state_dict(torch.load(model_path)) + +# Move the model to the appropriate device (CPU or GPU) +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") +model.to(device) +model.eval() + +"""## Model Evaluation & Prediction Collection""" + +def collect_predictions( + model: torch.nn.Module, + data_loader, + device: torch.device, +) -> Tuple[torch.Tensor, List[int], List[int]]: + """ + Run inference on a dataset and collect predictions, labels, and inputs. + + Args: + model (torch.nn.Module): Trained model. + data_loader: DataLoader for evaluation. + device (torch.device): Computation device. + + Returns: + Tuple[torch.Tensor, List[int], List[int]]: + - All input point clouds (concatenated tensor) + - List of predicted labels + - List of ground truth labels + """ + model.eval() + + all_predictions: List[int] = [] + all_labels: List[int] = [] + all_inputs: List[torch.Tensor] = [] + + with torch.no_grad(): + for batch_idx, batch in enumerate(data_loader): + print(f"Batch [{batch_idx + 1:4d} / {len(data_loader):4d}]") + + inputs = batch["pointcloud"].to(device).float() + labels = batch["category"].to(device) + + outputs, _, _ = model(inputs.transpose(1, 2)) + _, predictions = torch.max(outputs.data, 1) + + # Move to CPU before converting to numpy + all_predictions.extend(predictions.cpu().numpy().tolist()) + all_labels.extend(labels.cpu().numpy().tolist()) + all_inputs.append(inputs.cpu()) + + all_inputs_tensor = torch.cat(all_inputs, dim=0) + + return all_inputs_tensor, all_predictions, all_labels + +"""## Run Evaluation""" + +if TRAIN_MODEL: + all_inputs, all_preds, all_labels = collect_predictions( + model=model, + data_loader=valid_loader, + device=device, + ) + + print(f"All Inputs Shape: {all_inputs.shape}") + print(f"All Labels Length: {len(all_labels)}") + +"""### for safety save the data""" + +if TRAIN_MODEL: + # Save + torch.save({ + "all_inputs": all_inputs, + "all_preds": all_preds, + "all_labels": all_labels + }, "all_data.pt") + +if not TRAIN_MODEL: + import gdown + import os + + # Create the data directory if it doesn't exist + output_dir = "data" + os.makedirs(output_dir, exist_ok=True) + + # Google Drive file ID from the provided URL + file_id = "1Kv98MSvAzx20QLoy8o9q14Tx7n681dn3" + + # Output path for the downloaded file + output_path = os.path.join(output_dir, "all_data.pt") + + # Download the file using gdown + gdown.download(id=file_id, output=output_path, quiet=False) + +# Load +loaded = torch.load(output_path) + +loaded_all_inputs = loaded["all_inputs"] +loaded_all_preds = loaded["all_preds"] +loaded_all_labels = loaded["all_labels"] + +if TRAIN_MODEL: + print(torch.equal(all_inputs, loaded_all_inputs)) + assert torch.allclose(all_inputs, loaded_all_inputs, atol=1e-6), "Tensor mismatch!" + + print(all_inputs.shape == loaded_all_inputs.shape) + print(all_inputs.dtype == loaded_all_inputs.dtype) + print(all_inputs.device == loaded_all_inputs.device) + +if TRAIN_MODEL: + print(loaded_all_preds == loaded_all_preds) + print(loaded_all_preds is loaded_all_preds) + + print(loaded_all_labels == loaded_all_labels) + print(loaded_all_labels is loaded_all_labels) + +all_inputs = loaded["all_inputs"] +all_preds = loaded["all_preds"] +all_labels = loaded["all_labels"] + +"""## Accuracy""" + +accuracy = sum(p == t for p, t in zip(all_preds, all_labels)) / len(all_labels) +print(f"Accuracy: {accuracy:.4f}") + +"""## Confusion Matrix""" + +cm = confusion_matrix(all_labels, all_preds) +print(cm) + +"""## Confusion Matrix Visualization""" + +def plot_confusion_matrix( + cm: np.ndarray, + class_names: List[str], + normalize: bool = False, + title: str = "Confusion Matrix", + cmap=plt.cm.Blues, +) -> None: + """ + Plot a confusion matrix. + + Args: + cm (np.ndarray): Confusion matrix. + class_names (List[str]): List of class names. + normalize (bool): Whether to normalize values. + title (str): Plot title. + cmap: Matplotlib colormap. + """ + if normalize: + cm = cm.astype(float) / cm.sum(axis=1)[:, np.newaxis] + print("Normalized confusion matrix") + else: + print("Confusion matrix, without normalization") + + plt.imshow(cm, interpolation="nearest", cmap=cmap) + plt.title(title) + plt.colorbar() + + tick_marks = np.arange(len(class_names)) + plt.xticks(tick_marks, class_names, rotation=45) + plt.yticks(tick_marks, class_names) + + value_format = ".2f" if normalize else "d" + threshold = cm.max() / 2.0 + + for row_idx, col_idx in itertools.product( + range(cm.shape[0]), range(cm.shape[1]) + ): + plt.text( + col_idx, + row_idx, + format(cm[row_idx, col_idx], value_format), + horizontalalignment="center", + color="white" if cm[row_idx, col_idx] > threshold else "black", + ) + + plt.tight_layout() + plt.ylabel("True label") + plt.xlabel("Predicted label") + +# Class names (ordered) +class_names = list(train_dataset.classes.keys()) + +# Normalized confusion matrix +plt.figure(figsize=(16, 16)) +plot_confusion_matrix( + cm=cm, + class_names=class_names, + normalize=True, + title="Normalized Confusion Matrix", +) + +# Non-normalized confusion matrix +plt.figure(figsize=(16, 16)) +plot_confusion_matrix( + cm=cm, + class_names=class_names, + normalize=False, + title="Confusion Matrix", +) + +"""## Classification Report""" + +from sklearn.metrics import classification_report + +print(classification_report(all_labels, all_preds)) + +"""# XAI + +## Step 1: Input Point Cloud Sample +""" + +# Load +loaded = torch.load("all_data.pt") + +all_inputs = loaded["all_inputs"] +all_preds = loaded["all_preds"] +all_labels = loaded["all_labels"] + +# Configuration +random_seed: int = 42 +num_clusters: int = 32 +specified_object_index: int = 1 +num_perturbations: int = 500 +removal_probability: float = 0.5 +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + +"""### Select Sample from Dataset""" + +# Inputs collected from previous evaluation step +inputs = all_inputs +labels = all_labels + +print(inputs[specified_object_index]) +print(labels[specified_object_index]) + +sample_input = inputs[specified_object_index] +sample_label = labels[specified_object_index] + +"""### Prediction Function (PointNet Inference)""" + +def predict_pointnet( + model: torch.nn.Module, + sample_input: torch.Tensor, + sample_label: int, +) -> Tuple[int, torch.Tensor, List[int]]: + """ + Perform inference on a single point cloud sample using PointNet. + + Args: + model (torch.nn.Module): Trained PointNet model. + sample_input (torch.Tensor): Input point cloud of shape (N, 3). + sample_label (int): Ground truth label (unused, for reference). + + Returns: + Tuple[int, torch.Tensor, List[int]]: + - Predicted class index + - Raw model output (log probabilities) + - Top-5 predicted class indices + """ + # Add batch dimension + if sample_input.ndim == 2: + input_batch = sample_input.unsqueeze(0).float() + else: + input_batch = sample_input + + model.eval() + + with torch.no_grad(): + output, _, _ = model(input_batch.transpose(1, 2)) + + _, predicted_class = torch.max(output.data, 1) + + top_values, top_indices = torch.topk(output.data, 5, dim=1) + top_classes = top_indices.cpu().numpy().flatten().tolist() + + return predicted_class.item(), output, top_classes + +"""### Run Prediction for Selected Sample""" + +predicted_label, probabilities, top_pred_classes = predict_pointnet( + model=model, + sample_input=sample_input, + sample_label=sample_label, +) + +print("Predicted Label:", predicted_label) +print("Top-5 Predicted Classes:", top_pred_classes) + +"""## Step 2: Clustering (Farthest Point Sampling + KMeans) + +### Farthest Point Sampling (FPS) +""" + +def farthest_point_sampling( + points: np.ndarray, + num_centers: int, + random_seed: int = 42, +) -> np.ndarray: + """ + Select initial cluster centers using Farthest Point Sampling (FPS). + + Args: + points (np.ndarray): Input points of shape (N, D). + num_centers (int): Number of centers to sample. + random_seed (int): Random seed for reproducibility. + + Returns: + np.ndarray: Selected centers of shape (num_centers, D). + """ + num_points, dim = points.shape + + np.random.seed(random_seed) + + centers = np.zeros((num_centers, dim)) + center_indices = np.zeros(num_centers, dtype=int) + + # Initialize first center randomly + center_indices[0] = np.random.randint(num_points) + centers[0] = points[center_indices[0]] + + distances = np.sum((points - centers[0]) ** 2, axis=1) + + for center_idx in range(1, num_centers): + center_indices[center_idx] = np.argmax(distances) + centers[center_idx] = points[center_indices[center_idx]] + + new_distances = np.sum((points - centers[center_idx]) ** 2, axis=1) + distances = np.minimum(distances, new_distances) + + return centers + +"""### KMeans with FPS Initialization""" + +def kmeans_with_fps( + points: torch.Tensor, + num_clusters: int, + max_iters: int, + random_seed: int = 42, +) -> Tuple[np.ndarray, np.ndarray]: + """ + Perform KMeans clustering initialized with FPS centers. + + Args: + points (torch.Tensor): Input point cloud of shape (N, 3) or (1, N, 3). + num_clusters (int): Number of clusters. + max_iters (int): Maximum number of KMeans iterations. + random_seed (int): Random seed. + + Returns: + Tuple[np.ndarray, np.ndarray]: + - Cluster centers + - Cluster labels for each point + """ + # Handle batch dimension if present + if points.ndim == 3 and points.shape[0] == 1: + points = points[0] + + # Convert to NumPy + points_np = points.detach().cpu().numpy() + + # Initialize centers with FPS + initial_centers = farthest_point_sampling( + points_np, num_clusters, random_seed=random_seed + ) + + # KMeans clustering + kmeans = KMeans( + n_clusters=num_clusters, + init=initial_centers, + max_iter=max_iters, + n_init=1, + random_state=random_seed, + ) + + kmeans.fit(points_np) + + return kmeans.cluster_centers_, kmeans.labels_ + +"""### Run Clustering""" + +cluster_centers, cluster_labels = kmeans_with_fps( + points=sample_input, + num_clusters=num_clusters, + max_iters=1000, + random_seed=random_seed, +) + +print("Number of labels:", len(cluster_labels)) + +"""### Build Segments from Clusters""" + +sample_points_np = sample_input.detach().cpu().numpy() + +segments = [ + sample_points_np[cluster_labels == cluster_idx] + for cluster_idx in range(num_clusters) +] + +"""### Visualize Clusters (3D)""" + +def visualize_pointcloud_clusters(segments: List[np.ndarray]) -> go.Figure: + """Visualizes clustered point cloud segments in 3D. + + Args: + segments: A list of NumPy arrays, where each array represents + a cluster of points of shape (N_i, 3). + + Returns: + A Plotly figure containing the clustered point clouds. + """ + plot_data = [] + + for segment_idx, segment in enumerate(segments): + x_vals, y_vals, z_vals = segment[:, 0], segment[:, 1], segment[:, 2] + + # Extract RGB color from matplotlib's tab20 colormap + color = plt.get_cmap("tab20")(segment_idx % 20) + color_rgba = ( + f"rgba({int(color[0] * 255)}, {int(color[1] * 255)}, " + f"{int(color[2] * 255)}, 1.0)" + ) + + scatter = go.Scatter3d( + x=x_vals, + y=y_vals, + z=z_vals, + mode="markers", + marker=dict(size=2, color=color_rgba), + name=f"Cluster {segment_idx}", + ) + plot_data.append(scatter) + + figure = go.Figure(data=plot_data) + return figure + +"""### Run Visualization""" + +figure = visualize_pointcloud_clusters(segments) +show_persistent_figure(figure) + +"""## Step 3: Perturbation (Cluster-Based) + +### Perturbation Function +""" + +def perturb_point_cloud_by_clusters( + point_cloud: torch.Tensor, + cluster_labels: np.ndarray, + num_perturbations: int, + removal_probability: float = 0.5, + random_seed: int | None = None, +) -> Tuple[ + List[torch.Tensor], + List[np.ndarray], + List[int], + np.ndarray, +]: + """ + Generate perturbed point clouds by randomly removing clusters. + + Args: + point_cloud (torch.Tensor): Input point cloud of shape (N, 3). + cluster_labels (np.ndarray): Cluster label per point. + num_perturbations (int): Number of perturbed samples. + removal_probability (float): Probability of removing a cluster. + random_seed (Optional[int]): Random seed. + + Returns: + Tuple: + - List of perturbed point clouds + - List of point-level masks + - All-ones mask (original sample) + - Cluster-level masks (num_perturbations, num_clusters) + """ + if random_seed is not None: + np.random.seed(random_seed) + + num_points = point_cloud.size(0) + unique_clusters = np.unique(cluster_labels) + num_clusters = len(unique_clusters) + + perturbed_clouds: List[torch.Tensor] = [] + point_masks: List[np.ndarray] = [] + cluster_masks = np.zeros((num_perturbations, num_clusters), dtype=int) + + print(f"Number of perturbations: {num_perturbations}") + + for perturb_idx in range(num_perturbations): + # Sample cluster mask (1 = keep, 0 = remove) + cluster_mask = np.random.binomial( + 1, 1 - removal_probability, size=num_clusters + ) + + # Map cluster mask to each point + point_mask = np.array( + [cluster_mask[cluster_id] for cluster_id in cluster_labels] + ) + + # Select points to keep + indices_to_keep = np.where(point_mask == 1)[0] + perturbed_cloud = point_cloud[indices_to_keep] + + perturbed_clouds.append(perturbed_cloud) + point_masks.append(point_mask) + cluster_masks[perturb_idx] = cluster_mask + + all_ones_mask = [1] * num_points + + return perturbed_clouds, point_masks, all_ones_mask, cluster_masks + +"""### Generate Perturbations""" + +perturbed_samples, point_masks, all_ones_mask, cluster_masks = ( + perturb_point_cloud_by_clusters( + point_cloud=sample_input.squeeze(0), + cluster_labels=cluster_labels, + num_perturbations=num_perturbations, + removal_probability=removal_probability, + random_seed=random_seed, + ) +) + +"""### Inspect a Sample Perturbation""" + +sample_perturbation = perturbed_samples[2] + +# Ensure correct format for visualization (3, N) +sample_perturbation = sample_perturbation.float() + +print("Original Point Cloud") +figure = create_point_cloud_figure(sample_input) +show_persistent_figure(figure) + +print("\n\nPerturbed Point Cloud") +figure = create_point_cloud_figure(sample_perturbation) +show_persistent_figure(figure) + +"""## Step 4: Distances + +### Cosine Distance (Mask-Based) +""" + +from sklearn.metrics import pairwise_distances + + +def calculate_mask_cosine_distances( + sample_input: np.ndarray, + point_masks: List[np.ndarray], +) -> np.ndarray: + """ + Compute cosine distances between full-cluster mask and perturbed cluster masks. + + This function measures similarity in the interpretable (cluster mask) space, + where each mask represents which clusters are active (1) or removed (0). + + Args: + sample_input (np.ndarray): + Original point cloud used only to infer number of clusters/features. + point_masks (List[np.ndarray]): + List of binary masks for each perturbation. + + Returns: + np.ndarray: + Cosine distance between each perturbation mask and full mask. + """ + # Full mask: all clusters are active (baseline explanation state) + original_mask = np.ones(sample_input.shape[0]) + + # Convert list of masks into matrix form (num_samples x num_clusters) + masks_np = np.array(point_masks) + + # Compute cosine distances in mask space + distances = pairwise_distances( + masks_np, + original_mask.reshape(1, -1), + metric="cosine", + ).ravel() + + return distances + +"""### Latent Cosine Distance""" + +from sklearn.metrics import pairwise_distances + + +def calculate_latent_cosine_distance( + original_latent: Union[np.ndarray, torch.Tensor], + perturbed_latent: Union[np.ndarray, torch.Tensor], +) -> float: + """ + Compute cosine distance between original and perturbed latent representations. + + This measures how much the model's internal feature representation changes + between the original input and a perturbed version. + + Args: + original_latent (np.ndarray | torch.Tensor): + Latent vector of the original input with shape (D,) or (1, D). + perturbed_latent (np.ndarray | torch.Tensor): + Latent vector of the perturbed input with shape (D,) or (1, D). + + Returns: + float: + Cosine distance between the two latent vectors. + """ + # Convert torch tensors to numpy if needed + if isinstance(original_latent, torch.Tensor): + original_latent = original_latent.detach().cpu().numpy() + if isinstance(perturbed_latent, torch.Tensor): + perturbed_latent = perturbed_latent.detach().cpu().numpy() + + # Ensure correct shape: (1, D) + original_latent = original_latent.reshape(1, -1) + perturbed_latent = perturbed_latent.reshape(1, -1) + + # Compute cosine distance + distance = pairwise_distances( + perturbed_latent, + original_latent, + metric="cosine", + ).ravel()[0] + + return float(distance) + +"""### Wasserstein Distance""" + +from scipy.stats import wasserstein_distance + + +def calculate_wasserstein_distance( + point_cloud1, + point_cloud2, + mode: Literal["spatial", "latent"] = "spatial", +) -> float: + """ + Compute Wasserstein distance between two point clouds. + + Args: + point_cloud1: First point cloud (Tensor or ndarray). + point_cloud2: Second point cloud (Tensor or ndarray). + mode (str): + - "spatial": compute per-axis distance (x, y, z) + - "latent": compute on flattened representation + + Returns: + float: Wasserstein distance. + """ + # Convert to numpy safely + if isinstance(point_cloud1, torch.Tensor): + point_cloud1 = point_cloud1.detach().cpu().numpy() + if isinstance(point_cloud2, torch.Tensor): + point_cloud2 = point_cloud2.detach().cpu().numpy() + + if mode == "spatial": + x1, y1, z1 = point_cloud1[:, 0], point_cloud1[:, 1], point_cloud1[:, 2] + x2, y2, z2 = point_cloud2[:, 0], point_cloud2[:, 1], point_cloud2[:, 2] + + wd_x = wasserstein_distance(x1, x2) + wd_y = wasserstein_distance(y1, y2) + wd_z = wasserstein_distance(z1, z2) + + return wd_x + wd_y + wd_z + + elif mode == "latent": + return wasserstein_distance( + point_cloud1.flatten(), + point_cloud2.flatten(), + ) + + else: + raise ValueError("mode must be either 'spatial' or 'latent'") + +"""### Anderson-Darling Distance""" + +from scipy.stats import anderson + + +def calculate_anderson_darling_distance( + original_cloud, + perturbed_cloud, +) -> float: + """ + Compute Anderson-Darling statistic between two point clouds. + + Args: + original_cloud: Original point cloud. + perturbed_cloud: Perturbed point cloud. + + Returns: + float: Anderson-Darling statistic. + """ + if isinstance(original_cloud, torch.Tensor): + original_cloud = original_cloud.detach().cpu().numpy() + if isinstance(perturbed_cloud, torch.Tensor): + perturbed_cloud = perturbed_cloud.detach().cpu().numpy() + + original_flat = original_cloud.flatten() + perturbed_flat = perturbed_cloud.flatten() + + statistic, _, _ = anderson( + np.concatenate([original_flat, perturbed_flat]) + ) + + return statistic + +"""### Kolmogorov-Smirnov Distance""" + +from scipy.stats import ks_2samp + + +def calculate_ks_distance( + original_cloud, + perturbed_cloud, +) -> float: + """ + Compute Kolmogorov-Smirnov distance between two point clouds. + + Args: + original_cloud: Original point cloud. + perturbed_cloud: Perturbed point cloud. + + Returns: + float: KS statistic. + """ + if isinstance(original_cloud, torch.Tensor): + original_cloud = original_cloud.detach().cpu().numpy() + if isinstance(perturbed_cloud, torch.Tensor): + perturbed_cloud = perturbed_cloud.detach().cpu().numpy() + + original_flat = original_cloud.flatten() + perturbed_flat = perturbed_cloud.flatten() + + statistic, _ = ks_2samp(original_flat, perturbed_flat) + + return statistic + +"""## Step 5: Weights + +### Kernel Weight Function +""" + +def calculate_weights( + distances: np.ndarray, + kernel_width: float = 0.5, + epsilon: float = 0.0, +) -> np.ndarray: + """ + Compute weights from distances using an exponential kernel. + + Args: + distances (np.ndarray): Distance values. + kernel_width (float): Kernel width controlling decay. + epsilon (float): Small constant for numerical stability. + + Returns: + np.ndarray: Computed weights. + """ + distances = np.asarray(distances) + + weights = np.sqrt( + np.exp(-(distances ** 2) / (kernel_width ** 2)) + ) + epsilon + + return weights + +"""## Step 6: Probabilities + +### Probability Extraction Function +""" + +def get_output_probabilities( + model: torch.nn.Module, + perturbed_samples: List[torch.Tensor], + device: torch.device, +) -> torch.Tensor: + """ + Compute output probabilities for perturbed samples. + + Args: + model (torch.nn.Module): Trained model. + perturbed_samples (List[torch.Tensor]): List of perturbed point clouds. + device (torch.device): Computation device. + + Returns: + torch.Tensor: Tensor of shape (num_samples, 1, num_classes). + """ + model.eval() + + probabilities_list: List[torch.Tensor] = [] + + with torch.no_grad(): + for sample in perturbed_samples: + input_batch = sample.unsqueeze(0).float().to(device) + + output, _, _ = model(input_batch.transpose(1, 2)) + probabilities = torch.softmax(output, dim=1) + + probabilities_list.append(probabilities.cpu()) + + output_tensor = torch.cat(probabilities_list).view( + len(perturbed_samples), 1, -1 + ) + + return output_tensor + +"""## Step 7: Surrogate Model + +### Build Surrogate Model +""" + +from sklearn.linear_model import LinearRegression, BayesianRidge + +def build_surrogate_model( + model_type: Literal["linear", "bayesian"] = "linear", +): + """ + Initialize surrogate model. + + Args: + model_type (str): Type of model ("linear" or "bayesian"). + + Returns: + sklearn model instance. + """ + if model_type == "linear": + return LinearRegression() + elif model_type == "bayesian": + return BayesianRidge() + else: + raise ValueError("model_type must be 'linear' or 'bayesian'") + +"""### Calculate Coefficients""" + +def calculate_surrogate_coefficients( + model_type: str, + cluster_masks: np.ndarray, + output_probabilities: torch.Tensor, + top_pred_classes: np.ndarray, + weights: np.ndarray, +) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: + """ + Fit surrogate model and return coefficients and predictions. + + Args: + model_type (str): Surrogate model type. + cluster_masks (np.ndarray): Binary interpretable features. + output_probabilities (torch.Tensor): Model outputs. + top_pred_classes (np.ndarray): Top predicted classes. + weights (np.ndarray): Sample weights. + + Returns: + Tuple: + - coefficients + - y_true + - y_pred + """ + class_idx = top_pred_classes[0] + + probs_np = output_probabilities.detach().cpu().numpy().astype(np.float32) + y_true = probs_np[:, :, class_idx].ravel() + + surrogate_model = build_surrogate_model(model_type) + + surrogate_model.fit( + X=cluster_masks, + y=y_true, + sample_weight=weights, + ) + + y_pred = surrogate_model.predict(cluster_masks).ravel() + + # Handle coef shape difference + coef = ( + surrogate_model.coef_[0] + if model_type == "linear" + else surrogate_model.coef_ + ) + + return coef, y_true, y_pred + +"""### Calculate Fidelity Metrics""" + +def calculate_fidelity_metrics( + y_true: np.ndarray, + y_pred: np.ndarray, + weights: np.ndarray, + cluster_masks: np.ndarray, + model_name: str, + num_clusters: int, + kernel_width: float, + num_perturbations: int, +) -> Dict: + """ + Compute fidelity metrics for surrogate model. + + Returns: + Dict: Metrics dictionary. + """ + mse = mean_squared_error(y_true, y_pred, sample_weight=weights) + r2 = r2_score(y_true, y_pred, sample_weight=weights) + mae = mean_absolute_error(y_true, y_pred, sample_weight=weights) + + mean_loss = abs(np.mean(y_true) - np.mean(y_pred)) + mean_l1 = np.mean(np.abs(y_true - y_pred)) + mean_l2 = np.mean((y_true - y_pred) ** 2) + + weighted_l1 = np.sum(weights * np.abs(y_true - y_pred)) / len(y_true) + weighted_l2 = np.sum(weights * (y_true - y_pred) ** 2) / len(y_true) + + f_mean = np.average(y_true, weights=weights) + ss_tot = np.sum(weights * (y_true - f_mean) ** 2) + ss_res = np.sum(weights * (y_true - y_pred) ** 2) + weighted_r2 = 1 - ss_res / ss_tot + + n = len(y_true) + p = cluster_masks.shape[1] + weighted_adj_r2 = 1 - (1 - weighted_r2) * (n - 1) / (n - p - 1) + + return { + "name": model_name, + "num_clusters": num_clusters, + "mse": mse, + "r2": r2, + "mae": mae, + "mean_loss": mean_loss, + "mean_l1": mean_l1, + "mean_l2": mean_l2, + "weighted_l1": weighted_l1, + "weighted_l2": weighted_l2, + "weighted_r2": weighted_r2, + "weighted_adj_r2": weighted_adj_r2, + "kernel_width": kernel_width, + "perturbation": num_perturbations, + } + +"""### Print Fidelity Metrics""" + +def print_fidelity_metrics(metrics: dict) -> None: + """ + Print fidelity metrics in a formatted way. + + Args: + metrics (dict): Metrics dictionary. + """ + print("-" * 100) + print("Fidelity:") + print(f"Mean Squared Error (MSE): {metrics['mse']}") + print(f"R-squared (R²): {metrics['r2']}") + print(f"Mean Absolute Error (MAE): {metrics['mae']}") + print(f"Mean Loss (Lm): {metrics['mean_loss']}") + print(f"Mean L1 Loss: {metrics['mean_l1']}") + print(f"Mean L2 Loss: {metrics['mean_l2']}") + print(f"Weighted L1 Loss: {metrics['weighted_l1']}") + print(f"Weighted L2 Loss: {metrics['weighted_l2']}") + print(f"Weighted R-squared (R²ω): {metrics['weighted_r2']}") + print(f"Weighted Adjusted R-squared (Rˆ²ω): {metrics['weighted_adj_r2']}") + print("-" * 100) + +"""## Step 8: Unified Visualization Utilities + +### Point Cloud Trace Builder +""" + +def create_point_cloud_trace( + xs: np.ndarray, + ys: np.ndarray, + zs: np.ndarray, + color: Any, + name: str, +) -> go.Scatter3d: + """ + Create a Plotly 3D scatter trace for point cloud visualization. + + Args: + xs (np.ndarray): X coordinates. + ys (np.ndarray): Y coordinates. + zs (np.ndarray): Z coordinates. + color (Any): Color array or single color. + name (str): Trace name. + + Returns: + go.Scatter3d: Plotly scatter trace. + """ + return go.Scatter3d( + x=xs, + y=ys, + z=zs, + mode="markers", + marker=dict( + size=2, + color=color, + line=dict(width=2), + ), + name=name, + ) + +"""### Clean 3D Layout Builder""" + +def create_clean_3d_layout(title: str = "") -> go.Layout: + """ + Create a minimal 3D Plotly layout without axes clutter. + + Args: + title (str): Plot title. + + Returns: + go.Layout: Configured layout. + """ + return go.Layout( + title=title, + scene=dict( + xaxis=dict( + title="", + showticklabels=False, + showgrid=False, + showbackground=False, + ), + yaxis=dict( + title="", + showticklabels=False, + showgrid=False, + showbackground=False, + ), + zaxis=dict( + title="", + showticklabels=False, + showgrid=False, + showbackground=False, + ), + ), + ) + +"""### Explanation Point Cloud Visualizer""" + +def visualize_explanation_pointcloud( + points: np.ndarray, + cluster_labels: np.ndarray, + important_clusters: np.ndarray, + base_color: str = "blue", + highlight_color: str = "red", +) -> go.Figure: + """ + Visualize explanation over point cloud by highlighting important clusters. + + Args: + points (np.ndarray): Point cloud of shape (N, 3). + cluster_labels (np.ndarray): Cluster index per point. + important_clusters (np.ndarray): Selected influential clusters. + base_color (str): Default color for points. + highlight_color (str): Color for important clusters. + + Returns: + go.Figure: Plotly figure. + """ + colors = np.full(cluster_labels.shape, base_color) + + for cluster_id in important_clusters: + colors[cluster_labels == cluster_id] = highlight_color + + trace = create_point_cloud_trace( + xs=points[:, 0], + ys=points[:, 1], + zs=points[:, 2], + color=colors, + name="Explanation Point Cloud", + ) + + fig = go.Figure( + data=[trace], + layout=create_clean_3d_layout(), + ) + + return fig + +"""## Step 9: Explainability Methods + +### Model Name Builder (Reusable for LIME & SMILE) +""" + +def build_explainer_model_name( + method: Literal["LIME", "SMILE"], + surrogate_name: str, + clustering_mode: str, + distance_mode: str, + distance_metric: str = "cosine", +) -> str: + """ + Build a standardized model name for experiment comparison. + + Args: + method (str): Explainer method ("LIME" or "SMILE"). + surrogate_name (str): Surrogate model name. + clustering_mode (str): "kmeans" or "precomputed". + distance_mode (str): "mask", "spatial", or "latent". + distance_metric (str): Distance metric used. + + Returns: + str: Formatted model name. + """ + distance_abbr = { + "cosine": "COS", + "wasserstein": "WD", + "ks": "KS", + "anderson": "AD", + } + + clustering_abbr = { + "kmeans": "kmeans", + "precomputed": "noise", + } + + dist_tag = distance_abbr.get(distance_metric, distance_metric.upper()) + cluster_tag = clustering_abbr.get(clustering_mode, clustering_mode) + + return f"{method}-{dist_tag}-{cluster_tag}-{distance_mode} ({surrogate_name})" + +"""### Unified LIME Method""" + +def lime_explain( + sample_input: torch.Tensor, + sample_label: int, + model: torch.nn.Module, + num_clusters: int, + num_top_features: int, + num_perturbations: int, + device: torch.device, + kernel_width: float = 0.5, + epsilon: float = 0.0, + surrogate_model_type: Literal["linear", "bayesian"] = "linear", + max_iters: int = 50, + random_seed: int = 42, + clustering_mode: Literal["kmeans", "precomputed"] = "kmeans", + cluster_labels: Optional[np.ndarray] = None, + distance_mode: Literal["mask", "latent"] = "mask", +) -> Tuple[np.ndarray, Dict[str, float], str]: + """ + Unified LIME explanation method for point cloud models. + + Supports: + - Standard LIME (k-means clustering + mask distance) + - Noise-based LIME (precomputed clusters) + - Latent-space LIME (distance in model feature space) + + Args: + sample_input (torch.Tensor): Input point cloud (N, 3). + sample_label (int): Ground truth label. + model (torch.nn.Module): Trained model. + num_clusters (int): Number of clusters. + num_top_features (int): Number of important clusters to return. + num_perturbations (int): Number of perturbations. + device (torch.device): Computation device. + kernel_width (float): Kernel width for weighting. + epsilon (float): Small constant for numerical stability. + surrogate_model_type (str): Type of surrogate model. + max_iters (int): Max iterations for clustering. + random_seed (int): Random seed. + clustering_mode (str): + "kmeans" => compute clusters + "precomputed" => use provided cluster_labels + cluster_labels (Optional[np.ndarray]): + Required if clustering_mode="precomputed" + distance_mode (str): + "mask" => cosine distance in interpretable space + "latent" => cosine distance in latent space + + Returns: + Tuple[np.ndarray, Dict[str, float], str]: + Top important clusters, fidelity metrics, and experiment model name. + """ + # -------------------------------------------------- + # Step 0: Print model name + # -------------------------------------------------- + + surrogate_name = ( + "LinearRegression" if surrogate_model_type == "linear" + else "BayesianRidge" + ) + + model_name = build_explainer_model_name( + method="LIME", + surrogate_name=surrogate_name, + clustering_mode=clustering_mode, + distance_mode=distance_mode, + distance_metric="cosine", + ) + + print(model_name) + + # -------------------------------------------------- + # Step 1: Prediction + # -------------------------------------------------- + pred, probabilities, top_pred_classes = predict_pointnet( + model, sample_input, sample_label + ) + + # sample_input = sample_input.unsqueeze(0).float() + + # Ensure correct shape: (1, N, 3) + if sample_input.ndim == 2: + sample_input = sample_input.unsqueeze(0) + + sample_input = sample_input.float() + + sample_numpy_array = sample_input.cpu().numpy().squeeze(0) + + # -------------------------------------------------- + # Step 2: Clustering + # -------------------------------------------------- + if clustering_mode == "kmeans": + _, cluster_labels = kmeans_with_fps( + sample_input, + num_clusters, + max_iters=max_iters, + random_seed=random_seed, + ) + elif clustering_mode == "precomputed": + if cluster_labels is None: + raise ValueError("cluster_labels must be provided for precomputed mode.") + else: + raise ValueError(f"Invalid clustering_mode: {clustering_mode}") + + # -------------------------------------------------- + # Step 3: Perturbation + # -------------------------------------------------- + point_cloud = sample_input.squeeze(0) # (N, 3) + + assert point_cloud.ndim == 2, f"Expected (N,3), got {point_cloud.shape}" + + perturbed_samples, masks, _, cluster_masks = ( + perturb_point_cloud_by_clusters( + point_cloud, + cluster_labels, + num_perturbations, + removal_probability, + random_seed, + ) + ) + + # -------------------------------------------------- + # Step 4: Distance computation + # -------------------------------------------------- + if distance_mode == "mask": + distances = calculate_mask_cosine_distances( + sample_input.squeeze(0).cpu().numpy(), + masks, + ) + + elif distance_mode == "latent": + _, original_latent, _ = predict_pointnet( + model, sample_input.squeeze(0), sample_label + ) + original_latent = original_latent.squeeze(0) + + distances = [] + for perturbed_sample in perturbed_samples: + _, perturbed_latent, _ = predict_pointnet( + model, perturbed_sample, sample_label + ) + perturbed_latent = perturbed_latent.squeeze(0) + + dist = calculate_latent_cosine_distance( + original_latent, perturbed_latent + ) + distances.append(dist) + + else: + raise ValueError(f"Invalid distance_mode: {distance_mode}") + + # -------------------------------------------------- + # Step 5: Weights + # -------------------------------------------------- + weights = calculate_weights(distances, kernel_width, epsilon) + + # -------------------------------------------------- + # Step 6: Model probabilities + # -------------------------------------------------- + output_probabilities = get_output_probabilities( + model, perturbed_samples, device + ) + + # -------------------------------------------------- + # Step 7: Surrogate model + # -------------------------------------------------- + coefficients, y_true, y_pred = calculate_surrogate_coefficients( + model_type=surrogate_model_type, + cluster_masks=cluster_masks, + output_probabilities=output_probabilities, + top_pred_classes=top_pred_classes, + weights=weights, + ) + + metrics = calculate_fidelity_metrics( + y_true=y_true, + y_pred=y_pred, + weights=weights, + cluster_masks=cluster_masks, + model_name=model_name, + num_clusters=num_clusters, + kernel_width=kernel_width, + num_perturbations=num_perturbations, + ) + + print_fidelity_metrics(metrics) + + # -------------------------------------------------- + # Step 8: Feature selection + # -------------------------------------------------- + top_features = np.argsort(coefficients)[-num_top_features:] + + # -------------------------------------------------- + # Step 9: Visualization + # -------------------------------------------------- + fig = visualize_explanation_pointcloud( + points=sample_numpy_array, + cluster_labels=cluster_labels, + important_clusters=top_features, + ) + show_persistent_figure(fig) + + return top_features, metrics, model_name + +"""### Unified SMILE Method""" + +def smile_explain( + sample_input: torch.Tensor, + sample_label: int, + model: torch.nn.Module, + num_clusters: int, + num_top_features: int, + num_perturbations: int, + device: torch.device, + kernel_width: float = 0.5, + epsilon: float = 0.0, + surrogate_model_type: Literal["linear", "bayesian"] = "linear", + max_iters: int = 50, + random_seed: int = 42, + clustering_mode: Literal["kmeans", "precomputed"] = "kmeans", + cluster_labels: Optional[np.ndarray] = None, + distance_metric: Literal["wasserstein", "ks", "anderson"] = "wasserstein", + distance_mode: Literal["spatial", "latent"] = "spatial", +) -> Tuple[np.ndarray, Dict[str, float], str]: + """ + Unified SMILE explanation method for point cloud models. + + Supports: + - Spatial distances (point cloud space) + - Latent distances (model feature space) + - Multiple statistical distances (Wasserstein, KS, Anderson-Darling) + + Args: + sample_input (torch.Tensor): Input point cloud (N, 3). + sample_label (int): Ground truth label. + model (torch.nn.Module): Trained model. + num_clusters (int): Number of clusters. + num_top_features (int): Number of important clusters. + num_perturbations (int): Number of perturbations. + device (torch.device): Computation device. + kernel_width (float): Kernel width. + epsilon (float): Numerical stability constant. + surrogate_model_type (str): Surrogate model type. + max_iters (int): Max clustering iterations. + random_seed (int): Random seed. + clustering_mode (str): "kmeans" or "precomputed". + cluster_labels (Optional[np.ndarray]): Required for precomputed mode. + distance_metric (str): "wasserstein", "ks", or "anderson". + distance_mode (str): "spatial" or "latent". + + Returns: + Tuple[np.ndarray, Dict[str, float], str]: + Top important clusters, fidelity metrics, and experiment model name. + """ + + # -------------------------------------------------- + # Step 0: Print model name + # -------------------------------------------------- + + surrogate_name = ( + "LinearRegression" if surrogate_model_type == "linear" + else "BayesianRidge" + ) + + model_name = build_explainer_model_name( + method="SMILE", + surrogate_name=surrogate_name, + clustering_mode=clustering_mode, + distance_mode=distance_mode, + distance_metric=distance_metric, + ) + + print(model_name) + + # -------------------------------------------------- + # Step 1: Prediction + # -------------------------------------------------- + pred, probabilities, top_pred_classes = predict_pointnet( + model, sample_input, sample_label + ) + + # sample_input = sample_input.unsqueeze(0).float() + # Ensure correct shape: (1, N, 3) + if sample_input.ndim == 2: + sample_input = sample_input.unsqueeze(0) + + sample_input = sample_input.float() + + sample_numpy_array = sample_input.cpu().numpy().squeeze(0) + + # -------------------------------------------------- + # Step 2: Clustering + # -------------------------------------------------- + if clustering_mode == "kmeans": + _, cluster_labels = kmeans_with_fps( + sample_input, + num_clusters, + max_iters=max_iters, + random_seed=random_seed, + ) + elif clustering_mode == "precomputed": + if cluster_labels is None: + raise ValueError("cluster_labels must be provided.") + else: + raise ValueError(f"Invalid clustering_mode: {clustering_mode}") + + # -------------------------------------------------- + # Step 3: Perturbation + # -------------------------------------------------- + point_cloud = sample_input.squeeze(0) # (N, 3) + + assert point_cloud.ndim == 2, f"Expected (N,3), got {point_cloud.shape}" + + perturbed_samples, masks, _, cluster_masks = ( + perturb_point_cloud_by_clusters( + point_cloud, + cluster_labels, + num_perturbations, + removal_probability, + random_seed, + ) + ) + + # -------------------------------------------------- + # Step 4: Distance computation (SMILE core) + # -------------------------------------------------- + distances: List[float] = [] + + if distance_mode == "spatial": + original = sample_input.squeeze(0) + + for perturbed in perturbed_samples: + if distance_metric == "wasserstein": + dist = calculate_wasserstein_distance(original, perturbed) + + elif distance_metric == "ks": + dist = calculate_ks_distance(original, perturbed) + + elif distance_metric == "anderson": + dist = calculate_anderson_darling_distance(original, perturbed) + + else: + raise ValueError(f"Invalid distance_metric: {distance_metric}") + + distances.append(dist) + + elif distance_mode == "latent": + _, original_latent, _ = predict_pointnet( + model, sample_input.squeeze(0), sample_label + ) + original_latent = original_latent.squeeze(0) + + for perturbed in perturbed_samples: + _, perturbed_latent, _ = predict_pointnet( + model, perturbed, sample_label + ) + perturbed_latent = perturbed_latent.squeeze(0) + + if distance_metric == "wasserstein": + dist = calculate_wasserstein_distance( + original_latent, perturbed_latent, mode="latent" + ) + + elif distance_metric == "ks": + dist = calculate_ks_distance( + original_latent, perturbed_latent + ) + + elif distance_metric == "anderson": + dist = calculate_anderson_darling_distance( + original_latent, perturbed_latent + ) + + else: + raise ValueError(f"Invalid distance_metric: {distance_metric}") + + distances.append(dist) + + else: + raise ValueError(f"Invalid distance_mode: {distance_mode}") + + # -------------------------------------------------- + # Step 5: Weights + # -------------------------------------------------- + weights = calculate_weights(distances, kernel_width, epsilon) + + # -------------------------------------------------- + # Step 6: Probabilities + # -------------------------------------------------- + output_probabilities = get_output_probabilities( + model, perturbed_samples, device + ) + + # -------------------------------------------------- + # Step 7: Surrogate model + # -------------------------------------------------- + coefficients, y_true, y_pred = calculate_surrogate_coefficients( + model_type=surrogate_model_type, + cluster_masks=cluster_masks, + output_probabilities=output_probabilities, + top_pred_classes=top_pred_classes, + weights=weights, + ) + + metrics = calculate_fidelity_metrics( + y_true=y_true, + y_pred=y_pred, + weights=weights, + cluster_masks=cluster_masks, + model_name=model_name, + num_clusters=num_clusters, + kernel_width=kernel_width, + num_perturbations=num_perturbations, + ) + + print_fidelity_metrics(metrics) + + # -------------------------------------------------- + # Step 8: Feature selection + # -------------------------------------------------- + top_features = np.argsort(coefficients)[-num_top_features:] + + # -------------------------------------------------- + # Step 9: Visualization + # -------------------------------------------------- + fig = visualize_explanation_pointcloud( + points=sample_numpy_array, + cluster_labels=cluster_labels, + important_clusters=top_features, + ) + show_persistent_figure(fig) + + return top_features, metrics, model_name + +"""### SHAP Method""" + +def shap_explain( + model: torch.nn.Module, + sample_input: np.ndarray, + device: torch.device, + marker_size: int = 4, + title: str = "Point Cloud with SHAP Importance", + use_summary_plot: bool = False, +) -> Tuple[np.ndarray, np.ndarray]: + """Compute SHAP explanations for a PointNet model. + + Args: + model (torch.nn.Module): Trained PointNet model. + sample_input (np.ndarray): Input point cloud (N, 3). + device (torch.device): Device for computation. + marker_size (int): Marker size for visualization. + title (str): Plot title. + use_summary_plot (bool): Whether to show SHAP summary plot. + + Returns: + Tuple[np.ndarray, np.ndarray]: + - Normalized importance scores (N,) + - SHAP values array (N, 3) + """ + import shap + + class PointNetWrapper(torch.nn.Module): + """Wrapper to make PointNet compatible with SHAP.""" + + def __init__(self, base_model: torch.nn.Module): + super().__init__() + self.base_model = base_model + + def forward(self, x: torch.Tensor) -> torch.Tensor: + output = self.base_model(x) + return output[0] if isinstance(output, tuple) else output + + # -------------------------------------------------- + # Step 1: Prepare input + # -------------------------------------------------- + model_wrapper = PointNetWrapper(model).to(device) + + input_tensor = torch.tensor(sample_input, dtype=torch.float32) + input_tensor = input_tensor.unsqueeze(0).to(device) # (1, N, 3) + input_tensor = input_tensor.transpose(1, 2) # (1, 3, N) + + background = input_tensor.clone().detach() + + # -------------------------------------------------- + # Step 2: SHAP Explainer + # -------------------------------------------------- + explainer = shap.DeepExplainer(model_wrapper, background) + shap_values = explainer.shap_values(input_tensor) + + # -------------------------------------------------- + # Step 3: Select predicted class + # -------------------------------------------------- + with torch.no_grad(): + output = model_wrapper(input_tensor) + pred_class = torch.argmax(output, dim=1).item() + + # SHAP returns list per class OR array with class dim + if isinstance(shap_values, list): + shap_array = shap_values[pred_class] # (1, 3, N) + else: + shap_array = shap_values[..., pred_class] # (1, 3, N) + + # -------------------------------------------------- + # Step 4: Reshape to (N, 3) + # -------------------------------------------------- + if shap_array.ndim == 3: + shap_array = shap_array.squeeze(0) # (3, N) + shap_array = shap_array.transpose(1, 0) # (N, 3) + else: + raise ValueError(f"Unexpected SHAP shape: {shap_array.shape}") + + # -------------------------------------------------- + # Step 5: Features + # -------------------------------------------------- + features = input_tensor.squeeze(0).cpu().numpy().transpose(1, 0) # (N, 3) + + # -------------------------------------------------- + # Step 6: Optional summary plot + # -------------------------------------------------- + if use_summary_plot: + shap.summary_plot( + shap_array, + features=features, + feature_names=["x", "y", "z"], + ) + + # -------------------------------------------------- + # Step 7: Importance normalization + # -------------------------------------------------- + importance = np.sum(np.abs(shap_array), axis=1) + + min_val = importance.min() + max_val = importance.max() + + if max_val - min_val > 0: + importance_norm = (importance - min_val) / (max_val - min_val) + else: + importance_norm = np.full_like(importance, 0.5) + + # -------------------------------------------------- + # Step 8: Visualization + # -------------------------------------------------- + fig = create_colored_point_cloud_figure( + vertices=features, + importance=importance_norm, + marker_size=marker_size, + title=title, + ) + show_persistent_figure(fig) + + return importance_norm, shap_array + +"""## Step 10: Comparing Explanations and Plotting Comparison Results + +### Helper: Run Single Experiment +""" + +def run_experiment( + explain_fn: Callable[..., Tuple[np.ndarray, Dict[str, float], str]], + explain_kwargs: Dict[str, Any], + fidelity_scores: list, + running_times: list, + all_top_features: list, +) -> None: + """Run a single explanation experiment and collect results. + + Args: + explain_fn (Callable): Explanation function (LIME or SMILE). + explain_kwargs (Dict[str, Any]): Arguments for the explain function. + fidelity_scores (list): List to store fidelity metrics. + running_times (list): List to store execution times. + all_top_features (list): List to store top features. + """ + start_time = time.time() + + results, metrics, model_name = explain_fn(**explain_kwargs) + + end_time = time.time() + + fidelity_scores.append(metrics) + all_top_features.append(results) + + running_time_dict = { + "name": model_name, + "time": end_time - start_time, + } + + print(running_time_dict) + running_times.append(running_time_dict) + +"""### Helper: Plot Fidelity Comparison""" + +def plot_fidelity_comparison( + fidelity_scores: List[dict], + x_column: str, + model_filters: Optional[List[str]] = None, + figure_name: str = "comparison", +) -> None: + """Plot fidelity metrics comparison for multiple explanation methods. + + Args: + fidelity_scores (List[dict]): List of fidelity metric dictionaries. + x_column (str): Column name for x-axis (e.g., "kernel_width"). + model_filters (Optional[List[str]]): List of model name substrings to filter. + figure_name (str): Output SVG file name (without extension). + """ + fidelity_df = pd.DataFrame(fidelity_scores) + + if model_filters: + mask = fidelity_df["name"].apply( + lambda x: any(f in x for f in model_filters) + ) + fidelity_df = fidelity_df[mask] + + fig, axs = plt.subplots(3, 2, figsize=(10, 10)) + + metrics_config = [ + ("mean_l1", "Mean L1", True), + ("mean_l2", "Mean L2", True), + ("weighted_l1", "Weighted L1", True), + ("weighted_l2", "Weighted L2", True), + ("mean_loss", "Mean Loss", True), + ("weighted_adj_r2", "Adjusted R2 Score", False), + ] + + axes = axs.flatten() + + for ax, (metric, ylabel, use_log) in zip(axes, metrics_config): + sns.lineplot( + data=fidelity_df, + x=x_column, + y=metric, + hue="name", + ax=ax, + ) + + ax.set_ylabel(ylabel) + ax.set_xlabel("" if metric != "weighted_adj_r2" else x_column) + + if use_log: + ax.set_yscale("log") + + ax.grid(True, alpha=0.2) + ax.legend() + + plt.tight_layout() + + output_path = f"./{figure_name}.svg" + plt.savefig(output_path, format="svg") + + plt.show() + +"""### Helper: Plot Running Time Comparison""" + +def plot_running_time_comparison( + linear_times: List[Dict[str, float]], + bayesian_times: List[Dict[str, float]], + x_column: str = "name", + figure_name: str = "running_time_comparison", + y_limits: Optional[tuple] = None, +) -> None: + """Plot aggregated running time comparison for Linear and Bayesian models. + + This function aggregates running times by model name and plots both + LinearRegression and BayesianRidge results on the same axis for + easier visual comparison. + + Args: + linear_times (List[Dict[str, float]]): Running time records for linear model. + bayesian_times (List[Dict[str, float]]): Running time records for Bayesian model. + x_column (str): Column used for grouping on x-axis (default: "name"). + figure_name (str): Output SVG file name (without extension). + y_limits (Optional[tuple]): Optional y-axis limits as (min, max). + """ + + # --- Convert to DataFrame --- + linear_df = pd.DataFrame(linear_times) + bayesian_df = pd.DataFrame(bayesian_times) + + # --- Aggregate --- + linear_df = linear_df.groupby(x_column, as_index=False)["time"].mean() + bayesian_df = bayesian_df.groupby(x_column, as_index=False)["time"].mean() + + # --- Plot --- + fig, ax = plt.subplots(figsize=(10, 6)) + + sns.lineplot( + data=linear_df, + x=x_column, + y="time", + ax=ax, + marker="o", + label="Linear", + ) + + sns.lineplot( + data=bayesian_df, + x=x_column, + y="time", + ax=ax, + marker="o", + linestyle="dotted", + label="Bayesian", + ) + + # --- Labels --- + ax.set_ylabel("Running Time (seconds)") + ax.set_xlabel("Model") + + # --- Optional limits --- + if y_limits is not None: + ax.set_ylim(*y_limits) + + # --- Improve readability --- + plt.xticks(rotation=45, ha="right") + + # --- Layout --- + plt.grid(alpha=0.2) + plt.tight_layout() + + # --- Save --- + plt.savefig(f"./{figure_name}.svg", format="svg") + + plt.show() + +"""### Helper: Plot Bar Comparison""" + +def plot_bar_comparison( + left_df: pd.DataFrame, + right_df: pd.DataFrame, + metric: str = "weighted_adj_r2", + x_column: str = "name", + left_title: Optional[str] = "LIME", + right_title: Optional[str] = "SMILE", + figure_name: str = "bar_comparison", + rotate_xticks: bool = False, +) -> None: + """Plot side-by-side bar comparison for two datasets. + + Args: + left_df (pd.DataFrame): First dataset (e.g., LIME results). + right_df (pd.DataFrame): Second dataset (e.g., SMILE results). + metric (str): Metric to plot on y-axis. + x_column (str): Column name for x-axis. + left_title (Optional[str]): Title for left subplot. + right_title (Optional[str]): Title for right subplot. + figure_name (str): Output SVG file name (without extension). + rotate_xticks (bool): Whether to rotate x-axis labels. + """ + fig, axes = plt.subplots(1, 2, figsize=(10, 5), sharey=True) + + # --- Left Plot --- + sns.barplot( + data=left_df, + x=x_column, + y=metric, + ax=axes[0], + ) + axes[0].set_xlabel("Model") + axes[0].set_ylabel(metric.replace("_", " ").title()) + axes[0].set_title(left_title if left_title else "") + axes[0].grid(alpha=0.2) + + # --- Right Plot --- + sns.barplot( + data=right_df, + x=x_column, + y=metric, + ax=axes[1], + ) + axes[1].set_xlabel("Model") + axes[1].set_ylabel("") + axes[1].set_title(right_title if right_title else "") + axes[1].grid(alpha=0.2) + + # --- Optional Tick Rotation --- + if rotate_xticks: + for ax in axes: + ax.set_xticklabels(ax.get_xticklabels(), rotation=45, ha="right") + + # --- Layout --- + plt.tight_layout() + + output_path = f"./{figure_name}.svg" + plt.savefig(output_path, format="svg") + + plt.show() + +"""### 1. Linear + Kernel Width Sweep (LIME & SMILE)""" + +max_iters = 50 +num_clusters = 32 +num_perturbations = 1000 +kernel_range = np.arange(0.1, 0.71, 0.1) +num_top_features = round(0.2 * num_clusters) +fidelity_scores: List[float] = [] +running_times: List[float] = [] +all_top_features: List = [] + +for kernel_width in kernel_range: + + print("#", "=" * 100) + print(f"Kernel Width = {kernel_width}") + print("#", "=" * 100, end="\n\n\n") + + common_kwargs = dict( + sample_input=sample_input, + sample_label=sample_label, + model=model, + num_clusters=num_clusters, + num_top_features=num_top_features, + num_perturbations=num_perturbations, + device=device, + kernel_width=kernel_width, + surrogate_model_type="linear", + max_iters=max_iters, + random_seed=random_seed, + clustering_mode="kmeans", + cluster_labels=None, + ) + + # LIME + run_experiment( + lime_explain, + {**common_kwargs, "epsilon": 0, "distance_mode": "mask"}, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - Wasserstein + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 0, + "distance_metric": "wasserstein", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - Anderson (special epsilon) + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 1e-8, + "distance_metric": "anderson", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - KS + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 0, + "distance_metric": "ks", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + +fidelity_scores_df = pd.DataFrame(fidelity_scores) +fidelity_scores_df + +running_times_df = pd.DataFrame(running_times) +running_times_df + +plot_fidelity_comparison( + fidelity_scores=fidelity_scores, + x_column="kernel_width", + model_filters=["LIME", "SMILE"], + figure_name="kernel_width_full_comparison", +) + +"""### 2. Linear + Num Perturbations Sweep""" + +max_iters = 50 +num_clusters = 32 +kernel_width = 0.5 +perturbation_range = range(150, 1050 + 1, 150) +num_top_features = round(0.2 * num_clusters) +fidelity_scores: List[float] = [] +running_times: List[float] = [] +all_top_features: List = [] + +for num_perturbations in perturbation_range: + + print("#", "=" * 100) + print(f"Number of Perturbations = {num_perturbations}") + print("#", "=" * 100, end="\n\n\n") + + common_kwargs = dict( + sample_input=sample_input, + sample_label=sample_label, + model=model, + num_clusters=num_clusters, + num_top_features=num_top_features, + num_perturbations=num_perturbations, + device=device, + kernel_width=kernel_width, + surrogate_model_type="linear", + max_iters=max_iters, + random_seed=random_seed, + clustering_mode="kmeans", + cluster_labels=None, + ) + + # LIME + run_experiment( + lime_explain, + {**common_kwargs, "epsilon": 0, "distance_mode": "mask"}, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - Wasserstein + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 0, + "distance_metric": "wasserstein", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - Anderson (special epsilon) + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 1e-8, + "distance_metric": "anderson", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - KS + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 0, + "distance_metric": "ks", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + +fidelity_scores_df = pd.DataFrame(fidelity_scores) +fidelity_scores_df + +running_times_df = pd.DataFrame(running_times) +running_times_df + +plot_fidelity_comparison( + fidelity_scores=fidelity_scores, + x_column="perturbation", + model_filters=["LIME", "SMILE"], + figure_name="perturbation_full_comparison", +) + +"""### 3. Linear + Num Clusters Sweep""" + +max_iters = 50 +kernel_width = 0.5 +num_perturbations = 1000 +cluster_list = [32, 64, 128] +fidelity_scores: List[float] = [] +running_times: List[float] = [] +all_top_features: List = [] + +for num_clusters in cluster_list: + + print("#", "=" * 100) + print(f"Number of clusters = {num_clusters}") + print("#", "=" * 100, end="\n\n\n") + + num_top_features = round(0.2 * num_clusters) + + common_kwargs = dict( + sample_input=sample_input, + sample_label=sample_label, + model=model, + num_clusters=num_clusters, + num_top_features=num_top_features, + num_perturbations=num_perturbations, + device=device, + kernel_width=kernel_width, + surrogate_model_type="linear", + max_iters=max_iters, + random_seed=random_seed, + clustering_mode="kmeans", + cluster_labels=None, + ) + + # LIME + run_experiment( + lime_explain, + {**common_kwargs, "epsilon": 0, "distance_mode": "mask"}, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - Wasserstein + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 0, + "distance_metric": "wasserstein", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - Anderson (special epsilon) + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 1e-8, + "distance_metric": "anderson", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - KS + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 0, + "distance_metric": "ks", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + +fidelity_scores_df = pd.DataFrame(fidelity_scores) +fidelity_scores_df = fidelity_scores_df.sort_values(by='num_clusters') +fidelity_scores_df = fidelity_scores_df[fidelity_scores_df['num_clusters']!=1024] +fidelity_scores_df + +filtered_fidelity_scores_df = fidelity_scores_df[fidelity_scores_df['num_clusters'] == 32] +filtered_fidelity_scores_df + +linear_running_times = running_times.copy() +running_times_df = pd.DataFrame(running_times) +running_times_df + +plot_fidelity_comparison( + fidelity_scores=fidelity_scores, + x_column="num_clusters", + model_filters=["LIME", "SMILE"], + figure_name="num_clusters_comparison", +) + +"""### 4. Bayesian + Num Clusters Sweep""" + +max_iters = 50 +kernel_width = 0.5 +num_perturbations = 1000 +cluster_list = [32, 64, 128] +fidelity_scores: List[float] = [] +running_times: List[float] = [] +all_top_features: List = [] + +for num_clusters in cluster_list: + + print("#", "=" * 100) + print(f"Number of clusters = {num_clusters}") + print("#", "=" * 100, end="\n\n\n") + + num_top_features = round(0.2 * num_clusters) + + common_kwargs = dict( + sample_input=sample_input, + sample_label=sample_label, + model=model, + num_clusters=num_clusters, + num_top_features=num_top_features, + num_perturbations=num_perturbations, + device=device, + kernel_width=kernel_width, + surrogate_model_type="bayesian", + max_iters=max_iters, + random_seed=random_seed, + clustering_mode="kmeans", + cluster_labels=None, + ) + + # LIME + run_experiment( + lime_explain, + {**common_kwargs, "epsilon": 0, "distance_mode": "mask"}, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - Wasserstein + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 0, + "distance_metric": "wasserstein", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - Anderson (special epsilon) + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 1e-8, + "distance_metric": "anderson", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - KS + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 0, + "distance_metric": "ks", + "distance_mode": "spatial", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + +fidelity_scores_df = pd.DataFrame(fidelity_scores) +fidelity_scores_df = fidelity_scores_df.sort_values(by='num_clusters') +fidelity_scores_df = fidelity_scores_df[fidelity_scores_df['num_clusters']!=1024] +fidelity_scores_df + +bayesian_running_times = running_times.copy() +running_times_df = pd.DataFrame(running_times) +running_times_df + +plot_fidelity_comparison( + fidelity_scores=fidelity_scores, + x_column="num_clusters", + model_filters=["LIME", "SMILE"], + figure_name="num_clusters_comparison", +) + +"""### 5. Latent Mode (LIME & SMILE)""" + +max_iters = 50 +kernel_width = 0.5 +num_perturbations = 1000 +cluster_list = [32, 64, 128] +fidelity_scores: List[float] = [] +running_times: List[float] = [] +all_top_features: List = [] + +for num_clusters in cluster_list: + + print("#", "=" * 100) + print(f"Number of clusters = {num_clusters}") + print("#", "=" * 100, end="\n\n\n") + + num_top_features = round(0.2 * num_clusters) + + common_kwargs = dict( + sample_input=sample_input, + sample_label=sample_label, + model=model, + num_clusters=num_clusters, + num_top_features=num_top_features, + num_perturbations=num_perturbations, + device=device, + kernel_width=kernel_width, + surrogate_model_type="linear", + max_iters=max_iters, + random_seed=random_seed, + clustering_mode="kmeans", + cluster_labels=None, + distance_mode="latent", + ) + + # LIME + run_experiment( + lime_explain, + {**common_kwargs, "epsilon": 0,}, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - Wasserstein + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 0, + "distance_metric": "wasserstein", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - Anderson (special epsilon) + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 0, + "distance_metric": "anderson", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + + # SMILE - KS + run_experiment( + smile_explain, + { + **common_kwargs, + "epsilon": 0, + "distance_metric": "ks", + }, + fidelity_scores, + running_times, + all_top_features, + ) + + print("\n\n\n") + +fidelity_scores_df = pd.DataFrame(fidelity_scores) +fidelity_scores_df = fidelity_scores_df.sort_values(by='num_clusters') +fidelity_scores_df = fidelity_scores_df[fidelity_scores_df['num_clusters']!=1024] +fidelity_scores_df + +running_times_df = pd.DataFrame(running_times) +running_times_df + +plot_fidelity_comparison( + fidelity_scores=fidelity_scores, + x_column="num_clusters", + model_filters=["LIME", "SMILE"], + figure_name="num_clusters_comparison_latent", +) + +"""### 6. Time comparision""" + +plot_running_time_comparison( + linear_times=linear_running_times, + bayesian_times=bayesian_running_times, + x_column="name", + figure_name="time", +) + +# Merge the dataframes +merged_df = pd.concat([filtered_fidelity_scores_df, fidelity_scores_df], ignore_index=True) + +# Display the merged dataframe +merged_df + +lime_df = merged_df[(merged_df['name'] == 'LIME-COS-kmeans-mask (LinearRegression)')|(merged_df['name']=='LIME-COS-kmeans-latent (LinearRegression)') ] +smile_df = merged_df[(merged_df['name'] == 'SMILE-WD-kmeans-spatial (LinearRegression)')|(merged_df['name']=='SMILE-WD-kmeans-latent (LinearRegression)') ] + +lime_df + +smile_df + +plot_bar_comparison( + left_df=lime_df, + right_df=smile_df, + metric="weighted_adj_r2", + figure_name="latent_bar", + rotate_xticks=True, +) + +"""### 7. SHAP""" + +importance_norm, shap_array = shap_explain(model=model, sample_input=sample_input, device=device) + +"""## Step 11: Stability and Jaccard + +### 11.1 Generate Sphere Points +""" + +def generate_sphere_points( + center: np.ndarray, + radius: float, + num_points: int, + random_seed: Optional[int] = None, +) -> np.ndarray: + """Generate random points uniformly inside a 3D sphere. + + Args: + center (np.ndarray): Sphere center of shape (3,). + radius (float): Sphere radius. + num_points (int): Number of points to generate. + random_seed (Optional[int]): Seed for reproducibility. + + Returns: + np.ndarray: Generated points of shape (num_points, 3). + """ + if random_seed is not None: + np.random.seed(random_seed) + + points = [] + + for _ in range(num_points): + u, v = np.random.uniform(0, 1, 2) + + theta = 2 * np.pi * u + phi = np.arccos(2 * v - 1) + r = radius * np.cbrt(np.random.uniform(0, 1)) + + x = r * np.sin(phi) * np.cos(theta) + y = r * np.sin(phi) * np.sin(theta) + z = r * np.cos(phi) + + points.append([x, y, z] + center) + + return np.array(points) + +"""### 11.2 Generate Noisy Samples + Run Explanation (LIME & SMILE)""" + +def generate_noisy_explanations( + sample_input: torch.Tensor, + sample_label: int, + model, + cluster_labels: np.ndarray, + explain_fn: Callable, + num_iterations: int, + num_new_points: int, + sphere_radius: float, + explain_kwargs: Dict, + random_seed: int = 42, +) -> List[np.ndarray]: + """Generate noisy samples and compute explanations. + + Args: + sample_input (torch.Tensor): Original point cloud. + sample_label (int): Ground truth label. + model: Trained model. + cluster_labels (np.ndarray): Original cluster labels. + explain_fn (Callable): Explanation function (LIME or SMILE). + num_iterations (int): Number of noisy samples. + num_new_points (int): Number of noise points. + sphere_radius (float): Radius for noise generation. + explain_kwargs (Dict): Additional args for explain_fn. + random_seed (int): Base random seed. + + Returns: + List[np.ndarray]: List of top feature indices per run. + """ + all_top_features: List[np.ndarray] = [] + + # Convert once + sample_np = sample_input.detach().cpu().numpy() + + if sample_np.ndim == 3: + sample_np = sample_np.squeeze(0) # ONLY remove batch dim + + # Compute bounds + min_coords = sample_np.min(axis=0) + max_coords = sample_np.max(axis=0) + + for i in range(num_iterations): + np.random.seed(random_seed + i) + + # Generate random sphere center + center = np.array([ + np.random.uniform(min_coords[d], max_coords[d]) + for d in range(3) + ]) + + new_points = generate_sphere_points( + center=center, + radius=sphere_radius, + num_points=num_new_points, + ) + + # Combine point clouds + combined_points = np.vstack((sample_np, new_points)) + + combined_tensor = torch.from_numpy(combined_points).float() + if combined_tensor.ndim == 2: + combined_tensor = combined_tensor.unsqueeze(0) + + # Safety check + assert combined_tensor.ndim == 3 + assert combined_tensor.shape[-1] == 3 + + # Update cluster labels + new_labels = np.full(num_new_points, fill_value=cluster_labels.max() + 1) + combined_labels = np.concatenate([cluster_labels, new_labels]) + + print(f"Sample with Noise: {i + 1}") + print(f"Random Seed: {random_seed + i}") + print(f"{combined_labels=}") + + # Run explanation + top_features, _, _ = explain_fn( + sample_input=combined_tensor, + sample_label=sample_label, + model=model, + cluster_labels=combined_labels, + clustering_mode="precomputed", + **explain_kwargs, + ) + + all_top_features.append(top_features) + + print("\n\n\n") + + return all_top_features + +"""### 11.3 Compute Jaccard Stability""" + +def calculate_jaccard_stability( + top_features_list: List[np.ndarray], +) -> Tuple[List[float], float]: + """Compute Jaccard similarity across perturbations. + + Args: + top_features_list (List[np.ndarray]): List of feature sets. + + Returns: + Tuple[List[float], float]: + - Jaccard similarities per perturbation + - Mean Jaccard similarity + """ + base_features = set(top_features_list[0]) + jaccard_scores: List[float] = [] + + for i, features in enumerate(top_features_list[1:], start=1): + current_features = set(features) + + intersection = len(base_features & current_features) + union = len(base_features | current_features) + + score = intersection / union if union > 0 else 0.0 + jaccard_scores.append(score) + + print(f"Jaccard Similarity with sample {i}: {score:.4f}") + + mean_score = float(np.mean(jaccard_scores)) + print(f"\nMean Jaccard Similarity: {mean_score:.4f}") + + return jaccard_scores, mean_score + +"""### 11.4 Configuration""" + +# Common configuration +random_seed = 42 +num_clusters = 32 +num_top_features = round(0.2 * num_clusters) +num_perturbations = 1000 +kernel_width = 0.5 +max_iters = 50 + +# Noise config +num_iterations = 10 +num_new_points = 30 +sphere_radius = 0.07 + +"""### 11.5 LIME Example""" + +# Step 1: Run LIME on original sample +lime_kwargs = { + "num_clusters": num_clusters, + "num_top_features": num_top_features, + "num_perturbations": num_perturbations, + "device": device, + "kernel_width": kernel_width, + "epsilon": 0, + "surrogate_model_type": "linear", + "max_iters": max_iters, + "random_seed": random_seed, + "distance_mode": "mask", +} + +print("Main Sample") + +lime_top_features, lime_metrics, lime_model_name = lime_explain( + sample_input=sample_input, + sample_label=sample_label, + model=model, + clustering_mode="kmeans", + cluster_labels=None, + **lime_kwargs, +) + +print("\n\n\n") + +# Step 2: Generate noisy explanations +lime_all_features = [lime_top_features] + +lime_noisy_features = generate_noisy_explanations( + sample_input=sample_input, + sample_label=sample_label, + model=model, + cluster_labels=cluster_labels, # original clustering + explain_fn=lime_explain, + num_iterations=num_iterations, + num_new_points=num_new_points, + sphere_radius=sphere_radius, + explain_kwargs=lime_kwargs, + random_seed=random_seed, +) + +lime_all_features.extend(lime_noisy_features) + +# Step 3: Compute Jaccard stability +lime_jaccard_scores, lime_mean_jaccard = calculate_jaccard_stability( + lime_all_features +) + +print(f"\nLIME Mean Jaccard Similarity: {lime_mean_jaccard:.4f}") + +"""### 11.6 SMILE Example""" + +# Step 1: Run SMILE on original sample +smile_kwargs = { + "num_clusters": num_clusters, + "num_top_features": num_top_features, + "num_perturbations": num_perturbations, + "device": device, + "kernel_width": kernel_width, + "epsilon": 0, + "surrogate_model_type": "linear", + "max_iters": max_iters, + "random_seed": random_seed, + "distance_metric": "wasserstein", # or "anderson", "ks" + "distance_mode": "spatial", +} + +print("Main Sample") + +smile_top_features, smile_metrics, smile_model_name = smile_explain( + sample_input=sample_input, + sample_label=sample_label, + model=model, + clustering_mode="kmeans", + cluster_labels=None, + **smile_kwargs, +) + +print("\n\n\n") + +# Step 2: Generate noisy explanations +smile_all_features = [smile_top_features] + +smile_noisy_features = generate_noisy_explanations( + sample_input=sample_input, + sample_label=sample_label, + model=model, + cluster_labels=cluster_labels, + explain_fn=smile_explain, + num_iterations=num_iterations, + num_new_points=num_new_points, + sphere_radius=sphere_radius, + explain_kwargs=smile_kwargs, + random_seed=random_seed, +) + +smile_all_features.extend(smile_noisy_features) + +# Step 3: Compute Jaccard stability +smile_jaccard_scores, smile_mean_jaccard = calculate_jaccard_stability( + smile_all_features +) + +print(f"\nSMILE Mean Jaccard Similarity: {smile_mean_jaccard:.4f}") \ No newline at end of file diff --git a/examples/Point Cloud Examples/pyproject.toml b/examples/Point Cloud Examples/pyproject.toml new file mode 100644 index 0000000..fe206ec --- /dev/null +++ b/examples/Point Cloud Examples/pyproject.toml @@ -0,0 +1,23 @@ +[project] +name = "2-point-cloud-examples" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.12.12" +dependencies = [ + "gdown>=6.0.0", + "ipywidgets>=8.1.8", + "matplotlib>=3.10.8", + "nbformat>=5.10.4", + "numpy>=2.4.4", + "pandas>=3.0.2", + "path>=17.1.1", + "plotly>=6.7.0", + "scikit-learn>=1.8.0", + "scipy>=1.17.1", + "seaborn>=0.13.2", + "shap>=0.51.0", + "torch>=2.11.0", + "torch-geometric>=2.7.0", + "torchvision>=0.26.0", +] diff --git a/examples/Point Cloud Examples/requirements.txt b/examples/Point Cloud Examples/requirements.txt new file mode 100644 index 0000000..77113d2 --- /dev/null +++ b/examples/Point Cloud Examples/requirements.txt @@ -0,0 +1,18 @@ +numpy~=2.4.4 +pandas~=3.0.2 +torch~=2.11.0 +torchvision~=0.26.0 +torch-geometric~=2.7.0 +path~=17.1.1 +scipy~=1.17.1 +plotly~=6.7.0 +matplotlib~=3.10.8 +seaborn~=0.13.2 +scikit-learn~=1.8.0 +shap~=0.51.0 +gdown~=6.0.0 + + +# Notebooks +nbformat~=5.10.4 +ipywidgets~=8.1.8 \ No newline at end of file diff --git a/examples/Point Cloud Examples/uv.lock b/examples/Point Cloud Examples/uv.lock new file mode 100644 index 0000000..55ef076 --- /dev/null +++ b/examples/Point Cloud Examples/uv.lock @@ -0,0 +1,2514 @@ +version = 1 +revision = 3 +requires-python = ">=3.12.12" +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", + "(python_full_version >= '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", + "python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version < '3.14' and sys_platform == 'emscripten'", + "python_full_version < '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", + "(python_full_version < '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", +] + +[[package]] +name = "2-point-cloud-examples" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "gdown" }, + { name = "ipywidgets" }, + { name = "matplotlib" }, + { name = "nbformat" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "path" }, + { name = "plotly" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "seaborn" }, + { name = "shap" }, + { name = "torch" }, + { name = "torch-geometric" }, + { name = "torchvision" }, +] + +[package.metadata] +requires-dist = [ + { name = "gdown", specifier = ">=6.0.0" }, + { name = "ipywidgets", specifier = ">=8.1.8" }, + { name = "matplotlib", specifier = ">=3.10.8" }, + { name = "nbformat", specifier = ">=5.10.4" }, + { name = "numpy", specifier = ">=2.4.4" }, + { name = "pandas", specifier = ">=3.0.2" }, + { name = "path", specifier = ">=17.1.1" }, + { name = "plotly", specifier = ">=6.7.0" }, + { name = "scikit-learn", specifier = ">=1.8.0" }, + { name = "scipy", specifier = ">=1.17.1" }, + { name = "seaborn", specifier = ">=0.13.2" }, + { name = "shap", specifier = ">=0.51.0" }, + { name = "torch", specifier = ">=2.11.0" }, + { name = "torch-geometric", specifier = ">=2.7.0" }, + { name = "torchvision", specifier = ">=0.26.0" }, +] + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload-time = "2025-03-12T01:42:48.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload-time = "2025-03-12T01:42:47.083Z" }, +] + +[[package]] +name = "aiohttp" +version = "3.13.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/77/9a/152096d4808df8e4268befa55fba462f440f14beab85e8ad9bf990516918/aiohttp-3.13.5.tar.gz", hash = "sha256:9d98cc980ecc96be6eb4c1994ce35d28d8b1f5e5208a23b421187d1209dbb7d1", size = 7858271, upload-time = "2026-03-31T22:01:03.343Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/6f/353954c29e7dcce7cf00280a02c75f30e133c00793c7a2ed3776d7b2f426/aiohttp-3.13.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:023ecba036ddd840b0b19bf195bfae970083fd7024ce1ac22e9bba90464620e9", size = 748876, upload-time = "2026-03-31T21:57:36.319Z" }, + { url = "https://files.pythonhosted.org/packages/f5/1b/428a7c64687b3b2e9cd293186695affc0e1e54a445d0361743b231f11066/aiohttp-3.13.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:15c933ad7920b7d9a20de151efcd05a6e38302cbf0e10c9b2acb9a42210a2416", size = 499557, upload-time = "2026-03-31T21:57:38.236Z" }, + { url = "https://files.pythonhosted.org/packages/29/47/7be41556bfbb6917069d6a6634bb7dd5e163ba445b783a90d40f5ac7e3a7/aiohttp-3.13.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ab2899f9fa2f9f741896ebb6fa07c4c883bfa5c7f2ddd8cf2aafa86fa981b2d2", size = 500258, upload-time = "2026-03-31T21:57:39.923Z" }, + { url = "https://files.pythonhosted.org/packages/67/84/c9ecc5828cb0b3695856c07c0a6817a99d51e2473400f705275a2b3d9239/aiohttp-3.13.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a60eaa2d440cd4707696b52e40ed3e2b0f73f65be07fd0ef23b6b539c9c0b0b4", size = 1749199, upload-time = "2026-03-31T21:57:41.938Z" }, + { url = "https://files.pythonhosted.org/packages/f0/d3/3c6d610e66b495657622edb6ae7c7fd31b2e9086b4ec50b47897ad6042a9/aiohttp-3.13.5-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:55b3bdd3292283295774ab585160c4004f4f2f203946997f49aac032c84649e9", size = 1721013, upload-time = "2026-03-31T21:57:43.904Z" }, + { url = "https://files.pythonhosted.org/packages/49/a0/24409c12217456df0bae7babe3b014e460b0b38a8e60753d6cb339f6556d/aiohttp-3.13.5-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c2b2355dc094e5f7d45a7bb262fe7207aa0460b37a0d87027dcf21b5d890e7d5", size = 1781501, upload-time = "2026-03-31T21:57:46.285Z" }, + { url = "https://files.pythonhosted.org/packages/98/9d/b65ec649adc5bccc008b0957a9a9c691070aeac4e41cea18559fef49958b/aiohttp-3.13.5-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b38765950832f7d728297689ad78f5f2cf79ff82487131c4d26fe6ceecdc5f8e", size = 1878981, upload-time = "2026-03-31T21:57:48.734Z" }, + { url = "https://files.pythonhosted.org/packages/57/d8/8d44036d7eb7b6a8ec4c5494ea0c8c8b94fbc0ed3991c1a7adf230df03bf/aiohttp-3.13.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b18f31b80d5a33661e08c89e202edabf1986e9b49c42b4504371daeaa11b47c1", size = 1767934, upload-time = "2026-03-31T21:57:51.171Z" }, + { url = "https://files.pythonhosted.org/packages/31/04/d3f8211f273356f158e3464e9e45484d3fb8c4ce5eb2f6fe9405c3273983/aiohttp-3.13.5-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:33add2463dde55c4f2d9635c6ab33ce154e5ecf322bd26d09af95c5f81cfa286", size = 1566671, upload-time = "2026-03-31T21:57:53.326Z" }, + { url = "https://files.pythonhosted.org/packages/41/db/073e4ebe00b78e2dfcacff734291651729a62953b48933d765dc513bf798/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:327cc432fdf1356fb4fbc6fe833ad4e9f6aacb71a8acaa5f1855e4b25910e4a9", size = 1705219, upload-time = "2026-03-31T21:57:55.385Z" }, + { url = "https://files.pythonhosted.org/packages/48/45/7dfba71a2f9fd97b15c95c06819de7eb38113d2cdb6319669195a7d64270/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7c35b0bf0b48a70b4cb4fc5d7bed9b932532728e124874355de1a0af8ec4bc88", size = 1743049, upload-time = "2026-03-31T21:57:57.341Z" }, + { url = "https://files.pythonhosted.org/packages/18/71/901db0061e0f717d226386a7f471bb59b19566f2cae5f0d93874b017271f/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:df23d57718f24badef8656c49743e11a89fd6f5358fa8a7b96e728fda2abf7d3", size = 1749557, upload-time = "2026-03-31T21:57:59.626Z" }, + { url = "https://files.pythonhosted.org/packages/08/d5/41eebd16066e59cd43728fe74bce953d7402f2b4ddfdfef2c0e9f17ca274/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:02e048037a6501a5ec1f6fc9736135aec6eb8a004ce48838cb951c515f32c80b", size = 1558931, upload-time = "2026-03-31T21:58:01.972Z" }, + { url = "https://files.pythonhosted.org/packages/30/e6/4a799798bf05740e66c3a1161079bda7a3dd8e22ca392481d7a7f9af82a6/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31cebae8b26f8a615d2b546fee45d5ffb76852ae6450e2a03f42c9102260d6fe", size = 1774125, upload-time = "2026-03-31T21:58:04.007Z" }, + { url = "https://files.pythonhosted.org/packages/84/63/7749337c90f92bc2cb18f9560d67aa6258c7060d1397d21529b8004fcf6f/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:888e78eb5ca55a615d285c3c09a7a91b42e9dd6fc699b166ebd5dee87c9ccf14", size = 1732427, upload-time = "2026-03-31T21:58:06.337Z" }, + { url = "https://files.pythonhosted.org/packages/98/de/cf2f44ff98d307e72fb97d5f5bbae3bfcb442f0ea9790c0bf5c5c2331404/aiohttp-3.13.5-cp312-cp312-win32.whl", hash = "sha256:8bd3ec6376e68a41f9f95f5ed170e2fcf22d4eb27a1f8cb361d0508f6e0557f3", size = 433534, upload-time = "2026-03-31T21:58:08.712Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ca/eadf6f9c8fa5e31d40993e3db153fb5ed0b11008ad5d9de98a95045bed84/aiohttp-3.13.5-cp312-cp312-win_amd64.whl", hash = "sha256:110e448e02c729bcebb18c60b9214a87ba33bac4a9fa5e9a5f139938b56c6cb1", size = 460446, upload-time = "2026-03-31T21:58:10.945Z" }, + { url = "https://files.pythonhosted.org/packages/78/e9/d76bf503005709e390122d34e15256b88f7008e246c4bdbe915cd4f1adce/aiohttp-3.13.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5029cc80718bbd545123cd8fe5d15025eccaaaace5d0eeec6bd556ad6163d61", size = 742930, upload-time = "2026-03-31T21:58:13.155Z" }, + { url = "https://files.pythonhosted.org/packages/57/00/4b7b70223deaebd9bb85984d01a764b0d7bd6526fcdc73cca83bcbe7243e/aiohttp-3.13.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4bb6bf5811620003614076bdc807ef3b5e38244f9d25ca5fe888eaccea2a9832", size = 496927, upload-time = "2026-03-31T21:58:15.073Z" }, + { url = "https://files.pythonhosted.org/packages/9c/f5/0fb20fb49f8efdcdce6cd8127604ad2c503e754a8f139f5e02b01626523f/aiohttp-3.13.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a84792f8631bf5a94e52d9cc881c0b824ab42717165a5579c760b830d9392ac9", size = 497141, upload-time = "2026-03-31T21:58:17.009Z" }, + { url = "https://files.pythonhosted.org/packages/3b/86/b7c870053e36a94e8951b803cb5b909bfbc9b90ca941527f5fcafbf6b0fa/aiohttp-3.13.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:57653eac22c6a4c13eb22ecf4d673d64a12f266e72785ab1c8b8e5940d0e8090", size = 1732476, upload-time = "2026-03-31T21:58:18.925Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e5/4e161f84f98d80c03a238671b4136e6530453d65262867d989bbe78244d0/aiohttp-3.13.5-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5e5f7debc7a57af53fdf5c5009f9391d9f4c12867049d509bf7bb164a6e295b", size = 1706507, upload-time = "2026-03-31T21:58:21.094Z" }, + { url = "https://files.pythonhosted.org/packages/d4/56/ea11a9f01518bd5a2a2fcee869d248c4b8a0cfa0bb13401574fa31adf4d4/aiohttp-3.13.5-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c719f65bebcdf6716f10e9eff80d27567f7892d8988c06de12bbbd39307c6e3a", size = 1773465, upload-time = "2026-03-31T21:58:23.159Z" }, + { url = "https://files.pythonhosted.org/packages/eb/40/333ca27fb74b0383f17c90570c748f7582501507307350a79d9f9f3c6eb1/aiohttp-3.13.5-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d97f93fdae594d886c5a866636397e2bcab146fd7a132fd6bb9ce182224452f8", size = 1873523, upload-time = "2026-03-31T21:58:25.59Z" }, + { url = "https://files.pythonhosted.org/packages/f0/d2/e2f77eef1acb7111405433c707dc735e63f67a56e176e72e9e7a2cd3f493/aiohttp-3.13.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3df334e39d4c2f899a914f1dba283c1aadc311790733f705182998c6f7cae665", size = 1754113, upload-time = "2026-03-31T21:58:27.624Z" }, + { url = "https://files.pythonhosted.org/packages/fb/56/3f653d7f53c89669301ec9e42c95233e2a0c0a6dd051269e6e678db4fdb0/aiohttp-3.13.5-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540", size = 1562351, upload-time = "2026-03-31T21:58:29.918Z" }, + { url = "https://files.pythonhosted.org/packages/ec/a6/9b3e91eb8ae791cce4ee736da02211c85c6f835f1bdfac0594a8a3b7018c/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7becdf835feff2f4f335d7477f121af787e3504b48b449ff737afb35869ba7bb", size = 1693205, upload-time = "2026-03-31T21:58:32.214Z" }, + { url = "https://files.pythonhosted.org/packages/98/fc/bfb437a99a2fcebd6b6eaec609571954de2ed424f01c352f4b5504371dd3/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:676e5651705ad5d8a70aeb8eb6936c436d8ebbd56e63436cb7dd9bb36d2a9a46", size = 1730618, upload-time = "2026-03-31T21:58:34.728Z" }, + { url = "https://files.pythonhosted.org/packages/e4/b6/c8534862126191a034f68153194c389addc285a0f1347d85096d349bbc15/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9b16c653d38eb1a611cc898c41e76859ca27f119d25b53c12875fd0474ae31a8", size = 1745185, upload-time = "2026-03-31T21:58:36.909Z" }, + { url = "https://files.pythonhosted.org/packages/0b/93/4ca8ee2ef5236e2707e0fd5fecb10ce214aee1ff4ab307af9c558bda3b37/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:999802d5fa0389f58decd24b537c54aa63c01c3219ce17d1214cbda3c2b22d2d", size = 1557311, upload-time = "2026-03-31T21:58:39.38Z" }, + { url = "https://files.pythonhosted.org/packages/57/ae/76177b15f18c5f5d094f19901d284025db28eccc5ae374d1d254181d33f4/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ec707059ee75732b1ba130ed5f9580fe10ff75180c812bc267ded039db5128c6", size = 1773147, upload-time = "2026-03-31T21:58:41.476Z" }, + { url = "https://files.pythonhosted.org/packages/01/a4/62f05a0a98d88af59d93b7fcac564e5f18f513cb7471696ac286db970d6a/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d6d44a5b48132053c2f6cd5c8cb14bc67e99a63594e336b0f2af81e94d5530c", size = 1730356, upload-time = "2026-03-31T21:58:44.049Z" }, + { url = "https://files.pythonhosted.org/packages/e4/85/fc8601f59dfa8c9523808281f2da571f8b4699685f9809a228adcc90838d/aiohttp-3.13.5-cp313-cp313-win32.whl", hash = "sha256:329f292ed14d38a6c4c435e465f48bebb47479fd676a0411936cc371643225cc", size = 432637, upload-time = "2026-03-31T21:58:46.167Z" }, + { url = "https://files.pythonhosted.org/packages/c0/1b/ac685a8882896acf0f6b31d689e3792199cfe7aba37969fa91da63a7fa27/aiohttp-3.13.5-cp313-cp313-win_amd64.whl", hash = "sha256:69f571de7500e0557801c0b51f4780482c0ec5fe2ac851af5a92cfce1af1cb83", size = 458896, upload-time = "2026-03-31T21:58:48.119Z" }, + { url = "https://files.pythonhosted.org/packages/5d/ce/46572759afc859e867a5bc8ec3487315869013f59281ce61764f76d879de/aiohttp-3.13.5-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:eb4639f32fd4a9904ab8fb45bf3383ba71137f3d9d4ba25b3b3f3109977c5b8c", size = 745721, upload-time = "2026-03-31T21:58:50.229Z" }, + { url = "https://files.pythonhosted.org/packages/13/fe/8a2efd7626dbe6049b2ef8ace18ffda8a4dfcbe1bcff3ac30c0c7575c20b/aiohttp-3.13.5-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:7e5dc4311bd5ac493886c63cbf76ab579dbe4641268e7c74e48e774c74b6f2be", size = 497663, upload-time = "2026-03-31T21:58:52.232Z" }, + { url = "https://files.pythonhosted.org/packages/9b/91/cc8cc78a111826c54743d88651e1687008133c37e5ee615fee9b57990fac/aiohttp-3.13.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:756c3c304d394977519824449600adaf2be0ccee76d206ee339c5e76b70ded25", size = 499094, upload-time = "2026-03-31T21:58:54.566Z" }, + { url = "https://files.pythonhosted.org/packages/0a/33/a8362cb15cf16a3af7e86ed11962d5cd7d59b449202dc576cdc731310bde/aiohttp-3.13.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecc26751323224cf8186efcf7fbcbc30f4e1d8c7970659daf25ad995e4032a56", size = 1726701, upload-time = "2026-03-31T21:58:56.864Z" }, + { url = "https://files.pythonhosted.org/packages/45/0c/c091ac5c3a17114bd76cbf85d674650969ddf93387876cf67f754204bd77/aiohttp-3.13.5-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10a75acfcf794edf9d8db50e5a7ec5fc818b2a8d3f591ce93bc7b1210df016d2", size = 1683360, upload-time = "2026-03-31T21:58:59.072Z" }, + { url = "https://files.pythonhosted.org/packages/23/73/bcee1c2b79bc275e964d1446c55c54441a461938e70267c86afaae6fba27/aiohttp-3.13.5-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f7a18f258d124cd678c5fe072fe4432a4d5232b0657fca7c1847f599233c83a", size = 1773023, upload-time = "2026-03-31T21:59:01.776Z" }, + { url = "https://files.pythonhosted.org/packages/c7/ef/720e639df03004fee2d869f771799d8c23046dec47d5b81e396c7cda583a/aiohttp-3.13.5-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:df6104c009713d3a89621096f3e3e88cc323fd269dbd7c20afe18535094320be", size = 1853795, upload-time = "2026-03-31T21:59:04.568Z" }, + { url = "https://files.pythonhosted.org/packages/bd/c9/989f4034fb46841208de7aeeac2c6d8300745ab4f28c42f629ba77c2d916/aiohttp-3.13.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:241a94f7de7c0c3b616627aaad530fe2cb620084a8b144d3be7b6ecfe95bae3b", size = 1730405, upload-time = "2026-03-31T21:59:07.221Z" }, + { url = "https://files.pythonhosted.org/packages/ce/75/ee1fd286ca7dc599d824b5651dad7b3be7ff8d9a7e7b3fe9820d9180f7db/aiohttp-3.13.5-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c974fb66180e58709b6fc402846f13791240d180b74de81d23913abe48e96d94", size = 1558082, upload-time = "2026-03-31T21:59:09.484Z" }, + { url = "https://files.pythonhosted.org/packages/c3/20/1e9e6650dfc436340116b7aa89ff8cb2bbdf0abc11dfaceaad8f74273a10/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:6e27ea05d184afac78aabbac667450c75e54e35f62238d44463131bd3f96753d", size = 1692346, upload-time = "2026-03-31T21:59:12.068Z" }, + { url = "https://files.pythonhosted.org/packages/d8/40/8ebc6658d48ea630ac7903912fe0dd4e262f0e16825aa4c833c56c9f1f56/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a79a6d399cef33a11b6f004c67bb07741d91f2be01b8d712d52c75711b1e07c7", size = 1698891, upload-time = "2026-03-31T21:59:14.552Z" }, + { url = "https://files.pythonhosted.org/packages/d8/78/ea0ae5ec8ba7a5c10bdd6e318f1ba5e76fcde17db8275188772afc7917a4/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c632ce9c0b534fbe25b52c974515ed674937c5b99f549a92127c85f771a78772", size = 1742113, upload-time = "2026-03-31T21:59:17.068Z" }, + { url = "https://files.pythonhosted.org/packages/8a/66/9d308ed71e3f2491be1acb8769d96c6f0c47d92099f3bc9119cada27b357/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5", size = 1553088, upload-time = "2026-03-31T21:59:19.541Z" }, + { url = "https://files.pythonhosted.org/packages/da/a6/6cc25ed8dfc6e00c90f5c6d126a98e2cf28957ad06fa1036bd34b6f24a2c/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f92995dfec9420bb69ae629abf422e516923ba79ba4403bc750d94fb4a6c68c1", size = 1757976, upload-time = "2026-03-31T21:59:22.311Z" }, + { url = "https://files.pythonhosted.org/packages/c1/2b/cce5b0ffe0de99c83e5e36d8f828e4161e415660a9f3e58339d07cce3006/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:20ae0ff08b1f2c8788d6fb85afcb798654ae6ba0b747575f8562de738078457b", size = 1712444, upload-time = "2026-03-31T21:59:24.635Z" }, + { url = "https://files.pythonhosted.org/packages/6c/cf/9e1795b4160c58d29421eafd1a69c6ce351e2f7c8d3c6b7e4ca44aea1a5b/aiohttp-3.13.5-cp314-cp314-win32.whl", hash = "sha256:b20df693de16f42b2472a9c485e1c948ee55524786a0a34345511afdd22246f3", size = 438128, upload-time = "2026-03-31T21:59:27.291Z" }, + { url = "https://files.pythonhosted.org/packages/22/4d/eaedff67fc805aeba4ba746aec891b4b24cebb1a7d078084b6300f79d063/aiohttp-3.13.5-cp314-cp314-win_amd64.whl", hash = "sha256:f85c6f327bf0b8c29da7d93b1cabb6363fb5e4e160a32fa241ed2dce21b73162", size = 464029, upload-time = "2026-03-31T21:59:29.429Z" }, + { url = "https://files.pythonhosted.org/packages/79/11/c27d9332ee20d68dd164dc12a6ecdef2e2e35ecc97ed6cf0d2442844624b/aiohttp-3.13.5-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:1efb06900858bb618ff5cee184ae2de5828896c448403d51fb633f09e109be0a", size = 778758, upload-time = "2026-03-31T21:59:31.547Z" }, + { url = "https://files.pythonhosted.org/packages/04/fb/377aead2e0a3ba5f09b7624f702a964bdf4f08b5b6728a9799830c80041e/aiohttp-3.13.5-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254", size = 512883, upload-time = "2026-03-31T21:59:34.098Z" }, + { url = "https://files.pythonhosted.org/packages/bb/a6/aa109a33671f7a5d3bd78b46da9d852797c5e665bfda7d6b373f56bff2ec/aiohttp-3.13.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:20058e23909b9e65f9da62b396b77dfa95965cbe840f8def6e572538b1d32e36", size = 516668, upload-time = "2026-03-31T21:59:36.497Z" }, + { url = "https://files.pythonhosted.org/packages/79/b3/ca078f9f2fa9563c36fb8ef89053ea2bb146d6f792c5104574d49d8acb63/aiohttp-3.13.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cf20a8d6868cb15a73cab329ffc07291ba8c22b1b88176026106ae39aa6df0f", size = 1883461, upload-time = "2026-03-31T21:59:38.723Z" }, + { url = "https://files.pythonhosted.org/packages/b7/e3/a7ad633ca1ca497b852233a3cce6906a56c3225fb6d9217b5e5e60b7419d/aiohttp-3.13.5-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:330f5da04c987f1d5bdb8ae189137c77139f36bd1cb23779ca1a354a4b027800", size = 1747661, upload-time = "2026-03-31T21:59:41.187Z" }, + { url = "https://files.pythonhosted.org/packages/33/b9/cd6fe579bed34a906d3d783fe60f2fa297ef55b27bb4538438ee49d4dc41/aiohttp-3.13.5-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6f1cbf0c7926d315c3c26c2da41fd2b5d2fe01ac0e157b78caefc51a782196cf", size = 1863800, upload-time = "2026-03-31T21:59:43.84Z" }, + { url = "https://files.pythonhosted.org/packages/c0/3f/2c1e2f5144cefa889c8afd5cf431994c32f3b29da9961698ff4e3811b79a/aiohttp-3.13.5-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:53fc049ed6390d05423ba33103ded7281fe897cf97878f369a527070bd95795b", size = 1958382, upload-time = "2026-03-31T21:59:46.187Z" }, + { url = "https://files.pythonhosted.org/packages/66/1d/f31ec3f1013723b3babe3609e7f119c2c2fb6ef33da90061a705ef3e1bc8/aiohttp-3.13.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:898703aa2667e3c5ca4c54ca36cd73f58b7a38ef87a5606414799ebce4d3fd3a", size = 1803724, upload-time = "2026-03-31T21:59:48.656Z" }, + { url = "https://files.pythonhosted.org/packages/0e/b4/57712dfc6f1542f067daa81eb61da282fab3e6f1966fca25db06c4fc62d5/aiohttp-3.13.5-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0494a01ca9584eea1e5fbd6d748e61ecff218c51b576ee1999c23db7066417d8", size = 1640027, upload-time = "2026-03-31T21:59:51.284Z" }, + { url = "https://files.pythonhosted.org/packages/25/3c/734c878fb43ec083d8e31bf029daae1beafeae582d1b35da234739e82ee7/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6cf81fe010b8c17b09495cbd15c1d35afbc8fb405c0c9cf4738e5ae3af1d65be", size = 1806644, upload-time = "2026-03-31T21:59:53.753Z" }, + { url = "https://files.pythonhosted.org/packages/20/a5/f671e5cbec1c21d044ff3078223f949748f3a7f86b14e34a365d74a5d21f/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:c564dd5f09ddc9d8f2c2d0a301cd30a79a2cc1b46dd1a73bef8f0038863d016b", size = 1791630, upload-time = "2026-03-31T21:59:56.239Z" }, + { url = "https://files.pythonhosted.org/packages/0b/63/fb8d0ad63a0b8a99be97deac8c04dacf0785721c158bdf23d679a87aa99e/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2994be9f6e51046c4f864598fd9abeb4fba6e88f0b2152422c9666dcd4aea9c6", size = 1809403, upload-time = "2026-03-31T21:59:59.103Z" }, + { url = "https://files.pythonhosted.org/packages/59/0c/bfed7f30662fcf12206481c2aac57dedee43fe1c49275e85b3a1e1742294/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:157826e2fa245d2ef46c83ea8a5faf77ca19355d278d425c29fda0beb3318037", size = 1634924, upload-time = "2026-03-31T22:00:02.116Z" }, + { url = "https://files.pythonhosted.org/packages/17/d6/fd518d668a09fd5a3319ae5e984d4d80b9a4b3df4e21c52f02251ef5a32e/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:a8aca50daa9493e9e13c0f566201a9006f080e7c50e5e90d0b06f53146a54500", size = 1836119, upload-time = "2026-03-31T22:00:04.756Z" }, + { url = "https://files.pythonhosted.org/packages/78/b7/15fb7a9d52e112a25b621c67b69c167805cb1f2ab8f1708a5c490d1b52fe/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3b13560160d07e047a93f23aaa30718606493036253d5430887514715b67c9d9", size = 1772072, upload-time = "2026-03-31T22:00:07.494Z" }, + { url = "https://files.pythonhosted.org/packages/7e/df/57ba7f0c4a553fc2bd8b6321df236870ec6fd64a2a473a8a13d4f733214e/aiohttp-3.13.5-cp314-cp314t-win32.whl", hash = "sha256:9a0f4474b6ea6818b41f82172d799e4b3d29e22c2c520ce4357856fced9af2f8", size = 471819, upload-time = "2026-03-31T22:00:10.277Z" }, + { url = "https://files.pythonhosted.org/packages/62/29/2f8418269e46454a26171bfdd6a055d74febf32234e474930f2f60a17145/aiohttp-3.13.5-cp314-cp314t-win_amd64.whl", hash = "sha256:18a2f6c1182c51baa1d28d68fea51513cb2a76612f038853c0ad3c145423d3d9", size = 505441, upload-time = "2026-03-31T22:00:12.791Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "asttokens" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" }, +] + +[[package]] +name = "attrs" +version = "26.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.14.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" }, +] + +[[package]] +name = "certifi" +version = "2026.2.25" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/a1/67fe25fac3c7642725500a3f6cfe5821ad557c3abb11c9d20d12c7008d3e/charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5", size = 144271, upload-time = "2026-04-02T09:28:39.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eca9705049ad3c7345d574e3510665cb2cf844c2f2dcfe675332677f081cbd46", size = 311328, upload-time = "2026-04-02T09:26:24.331Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e3/0fadc706008ac9d7b9b5be6dc767c05f9d3e5df51744ce4cc9605de7b9f4/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6178f72c5508bfc5fd446a5905e698c6212932f25bcdd4b47a757a50605a90e2", size = 208061, upload-time = "2026-04-02T09:26:25.568Z" }, + { url = "https://files.pythonhosted.org/packages/42/f0/3dd1045c47f4a4604df85ec18ad093912ae1344ac706993aff91d38773a2/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e1421b502d83040e6d7fb2fb18dff63957f720da3d77b2fbd3187ceb63755d7b", size = 229031, upload-time = "2026-04-02T09:26:26.865Z" }, + { url = "https://files.pythonhosted.org/packages/dc/67/675a46eb016118a2fbde5a277a5d15f4f69d5f3f5f338e5ee2f8948fcf43/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:edac0f1ab77644605be2cbba52e6b7f630731fc42b34cb0f634be1a6eface56a", size = 225239, upload-time = "2026-04-02T09:26:28.044Z" }, + { url = "https://files.pythonhosted.org/packages/4b/f8/d0118a2f5f23b02cd166fa385c60f9b0d4f9194f574e2b31cef350ad7223/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5649fd1c7bade02f320a462fdefd0b4bd3ce036065836d4f42e0de958038e116", size = 216589, upload-time = "2026-04-02T09:26:29.239Z" }, + { url = "https://files.pythonhosted.org/packages/b1/f1/6d2b0b261b6c4ceef0fcb0d17a01cc5bc53586c2d4796fa04b5c540bc13d/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:203104ed3e428044fd943bc4bf45fa73c0730391f9621e37fe39ecf477b128cb", size = 202733, upload-time = "2026-04-02T09:26:30.5Z" }, + { url = "https://files.pythonhosted.org/packages/6f/c0/7b1f943f7e87cc3db9626ba17807d042c38645f0a1d4415c7a14afb5591f/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:298930cec56029e05497a76988377cbd7457ba864beeea92ad7e844fe74cd1f1", size = 212652, upload-time = "2026-04-02T09:26:31.709Z" }, + { url = "https://files.pythonhosted.org/packages/38/dd/5a9ab159fe45c6e72079398f277b7d2b523e7f716acc489726115a910097/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:708838739abf24b2ceb208d0e22403dd018faeef86ddac04319a62ae884c4f15", size = 211229, upload-time = "2026-04-02T09:26:33.282Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ff/531a1cad5ca855d1c1a8b69cb71abfd6d85c0291580146fda7c82857caa1/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:0f7eb884681e3938906ed0434f20c63046eacd0111c4ba96f27b76084cd679f5", size = 203552, upload-time = "2026-04-02T09:26:34.845Z" }, + { url = "https://files.pythonhosted.org/packages/c1/4c/a5fb52d528a8ca41f7598cb619409ece30a169fbdf9cdce592e53b46c3a6/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4dc1e73c36828f982bfe79fadf5919923f8a6f4df2860804db9a98c48824ce8d", size = 230806, upload-time = "2026-04-02T09:26:36.152Z" }, + { url = "https://files.pythonhosted.org/packages/59/7a/071feed8124111a32b316b33ae4de83d36923039ef8cf48120266844285b/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:aed52fea0513bac0ccde438c188c8a471c4e0f457c2dd20cdbf6ea7a450046c7", size = 212316, upload-time = "2026-04-02T09:26:37.672Z" }, + { url = "https://files.pythonhosted.org/packages/fd/35/f7dba3994312d7ba508e041eaac39a36b120f32d4c8662b8814dab876431/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464", size = 227274, upload-time = "2026-04-02T09:26:38.93Z" }, + { url = "https://files.pythonhosted.org/packages/8a/2d/a572df5c9204ab7688ec1edc895a73ebded3b023bb07364710b05dd1c9be/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb6d88045545b26da47aa879dd4a89a71d1dce0f0e549b1abcb31dfe4a8eac49", size = 218468, upload-time = "2026-04-02T09:26:40.17Z" }, + { url = "https://files.pythonhosted.org/packages/86/eb/890922a8b03a568ca2f336c36585a4713c55d4d67bf0f0c78924be6315ca/charset_normalizer-3.4.7-cp312-cp312-win32.whl", hash = "sha256:2257141f39fe65a3fdf38aeccae4b953e5f3b3324f4ff0daf9f15b8518666a2c", size = 148460, upload-time = "2026-04-02T09:26:41.416Z" }, + { url = "https://files.pythonhosted.org/packages/35/d9/0e7dffa06c5ab081f75b1b786f0aefc88365825dfcd0ac544bdb7b2b6853/charset_normalizer-3.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:5ed6ab538499c8644b8a3e18debabcd7ce684f3fa91cf867521a7a0279cab2d6", size = 159330, upload-time = "2026-04-02T09:26:42.554Z" }, + { url = "https://files.pythonhosted.org/packages/9e/5d/481bcc2a7c88ea6b0878c299547843b2521ccbc40980cb406267088bc701/charset_normalizer-3.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:56be790f86bfb2c98fb742ce566dfb4816e5a83384616ab59c49e0604d49c51d", size = 147828, upload-time = "2026-04-02T09:26:44.075Z" }, + { url = "https://files.pythonhosted.org/packages/c1/3b/66777e39d3ae1ddc77ee606be4ec6d8cbd4c801f65e5a1b6f2b11b8346dd/charset_normalizer-3.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f496c9c3cc02230093d8330875c4c3cdfc3b73612a5fd921c65d39cbcef08063", size = 309627, upload-time = "2026-04-02T09:26:45.198Z" }, + { url = "https://files.pythonhosted.org/packages/2e/4e/b7f84e617b4854ade48a1b7915c8ccfadeba444d2a18c291f696e37f0d3b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ea948db76d31190bf08bd371623927ee1339d5f2a0b4b1b4a4439a65298703c", size = 207008, upload-time = "2026-04-02T09:26:46.824Z" }, + { url = "https://files.pythonhosted.org/packages/c4/bb/ec73c0257c9e11b268f018f068f5d00aa0ef8c8b09f7753ebd5f2880e248/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a277ab8928b9f299723bc1a2dabb1265911b1a76341f90a510368ca44ad9ab66", size = 228303, upload-time = "2026-04-02T09:26:48.397Z" }, + { url = "https://files.pythonhosted.org/packages/85/fb/32d1f5033484494619f701e719429c69b766bfc4dbc61aa9e9c8c166528b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3bec022aec2c514d9cf199522a802bd007cd588ab17ab2525f20f9c34d067c18", size = 224282, upload-time = "2026-04-02T09:26:49.684Z" }, + { url = "https://files.pythonhosted.org/packages/fa/07/330e3a0dda4c404d6da83b327270906e9654a24f6c546dc886a0eb0ffb23/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e044c39e41b92c845bc815e5ae4230804e8e7bc29e399b0437d64222d92809dd", size = 215595, upload-time = "2026-04-02T09:26:50.915Z" }, + { url = "https://files.pythonhosted.org/packages/e3/7c/fc890655786e423f02556e0216d4b8c6bcb6bdfa890160dc66bf52dee468/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:f495a1652cf3fbab2eb0639776dad966c2fb874d79d87ca07f9d5f059b8bd215", size = 201986, upload-time = "2026-04-02T09:26:52.197Z" }, + { url = "https://files.pythonhosted.org/packages/d8/97/bfb18b3db2aed3b90cf54dc292ad79fdd5ad65c4eae454099475cbeadd0d/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e712b419df8ba5e42b226c510472b37bd57b38e897d3eca5e8cfd410a29fa859", size = 211711, upload-time = "2026-04-02T09:26:53.49Z" }, + { url = "https://files.pythonhosted.org/packages/6f/a5/a581c13798546a7fd557c82614a5c65a13df2157e9ad6373166d2a3e645d/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7804338df6fcc08105c7745f1502ba68d900f45fd770d5bdd5288ddccb8a42d8", size = 210036, upload-time = "2026-04-02T09:26:54.975Z" }, + { url = "https://files.pythonhosted.org/packages/8c/bf/b3ab5bcb478e4193d517644b0fb2bf5497fbceeaa7a1bc0f4d5b50953861/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:481551899c856c704d58119b5025793fa6730adda3571971af568f66d2424bb5", size = 202998, upload-time = "2026-04-02T09:26:56.303Z" }, + { url = "https://files.pythonhosted.org/packages/e7/4e/23efd79b65d314fa320ec6017b4b5834d5c12a58ba4610aa353af2e2f577/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f59099f9b66f0d7145115e6f80dd8b1d847176df89b234a5a6b3f00437aa0832", size = 230056, upload-time = "2026-04-02T09:26:57.554Z" }, + { url = "https://files.pythonhosted.org/packages/b9/9f/1e1941bc3f0e01df116e68dc37a55c4d249df5e6fa77f008841aef68264f/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f59ad4c0e8f6bba240a9bb85504faa1ab438237199d4cce5f622761507b8f6a6", size = 211537, upload-time = "2026-04-02T09:26:58.843Z" }, + { url = "https://files.pythonhosted.org/packages/80/0f/088cbb3020d44428964a6c97fe1edfb1b9550396bf6d278330281e8b709c/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3dedcc22d73ec993f42055eff4fcfed9318d1eeb9a6606c55892a26964964e48", size = 226176, upload-time = "2026-04-02T09:27:00.437Z" }, + { url = "https://files.pythonhosted.org/packages/6a/9f/130394f9bbe06f4f63e22641d32fc9b202b7e251c9aef4db044324dac493/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:64f02c6841d7d83f832cd97ccf8eb8a906d06eb95d5276069175c696b024b60a", size = 217723, upload-time = "2026-04-02T09:27:02.021Z" }, + { url = "https://files.pythonhosted.org/packages/73/55/c469897448a06e49f8fa03f6caae97074fde823f432a98f979cc42b90e69/charset_normalizer-3.4.7-cp313-cp313-win32.whl", hash = "sha256:4042d5c8f957e15221d423ba781e85d553722fc4113f523f2feb7b188cc34c5e", size = 148085, upload-time = "2026-04-02T09:27:03.192Z" }, + { url = "https://files.pythonhosted.org/packages/5d/78/1b74c5bbb3f99b77a1715c91b3e0b5bdb6fe302d95ace4f5b1bec37b0167/charset_normalizer-3.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:3946fa46a0cf3e4c8cb1cc52f56bb536310d34f25f01ca9b6c16afa767dab110", size = 158819, upload-time = "2026-04-02T09:27:04.454Z" }, + { url = "https://files.pythonhosted.org/packages/68/86/46bd42279d323deb8687c4a5a811fd548cb7d1de10cf6535d099877a9a9f/charset_normalizer-3.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:80d04837f55fc81da168b98de4f4b797ef007fc8a79ab71c6ec9bc4dd662b15b", size = 147915, upload-time = "2026-04-02T09:27:05.971Z" }, + { url = "https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0", size = 309234, upload-time = "2026-04-02T09:27:07.194Z" }, + { url = "https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a", size = 208042, upload-time = "2026-04-02T09:27:08.749Z" }, + { url = "https://files.pythonhosted.org/packages/87/1c/ab2ce611b984d2fd5d86a5a8a19c1ae26acac6bad967da4967562c75114d/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b", size = 228706, upload-time = "2026-04-02T09:27:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a8/29/2b1d2cb00bf085f59d29eb773ce58ec2d325430f8c216804a0a5cd83cbca/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41", size = 224727, upload-time = "2026-04-02T09:27:11.175Z" }, + { url = "https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e", size = 215882, upload-time = "2026-04-02T09:27:12.446Z" }, + { url = "https://files.pythonhosted.org/packages/2c/c2/356065d5a8b78ed04499cae5f339f091946a6a74f91e03476c33f0ab7100/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae", size = 200860, upload-time = "2026-04-02T09:27:13.721Z" }, + { url = "https://files.pythonhosted.org/packages/0c/cd/a32a84217ced5039f53b29f460962abb2d4420def55afabe45b1c3c7483d/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18", size = 211564, upload-time = "2026-04-02T09:27:15.272Z" }, + { url = "https://files.pythonhosted.org/packages/44/86/58e6f13ce26cc3b8f4a36b94a0f22ae2f00a72534520f4ae6857c4b81f89/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b", size = 211276, upload-time = "2026-04-02T09:27:16.834Z" }, + { url = "https://files.pythonhosted.org/packages/8f/fe/d17c32dc72e17e155e06883efa84514ca375f8a528ba2546bee73fc4df81/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356", size = 201238, upload-time = "2026-04-02T09:27:18.229Z" }, + { url = "https://files.pythonhosted.org/packages/6a/29/f33daa50b06525a237451cdb6c69da366c381a3dadcd833fa5676bc468b3/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab", size = 230189, upload-time = "2026-04-02T09:27:19.445Z" }, + { url = "https://files.pythonhosted.org/packages/b6/6e/52c84015394a6a0bdcd435210a7e944c5f94ea1055f5cc5d56c5fe368e7b/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46", size = 211352, upload-time = "2026-04-02T09:27:20.79Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d7/4353be581b373033fb9198bf1da3cf8f09c1082561e8e922aa7b39bf9fe8/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44", size = 227024, upload-time = "2026-04-02T09:27:22.063Z" }, + { url = "https://files.pythonhosted.org/packages/30/45/99d18aa925bd1740098ccd3060e238e21115fffbfdcb8f3ece837d0ace6c/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72", size = 217869, upload-time = "2026-04-02T09:27:23.486Z" }, + { url = "https://files.pythonhosted.org/packages/5c/05/5ee478aa53f4bb7996482153d4bfe1b89e0f087f0ab6b294fcf92d595873/charset_normalizer-3.4.7-cp314-cp314-win32.whl", hash = "sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10", size = 148541, upload-time = "2026-04-02T09:27:25.146Z" }, + { url = "https://files.pythonhosted.org/packages/48/77/72dcb0921b2ce86420b2d79d454c7022bf5be40202a2a07906b9f2a35c97/charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl", hash = "sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f", size = 159634, upload-time = "2026-04-02T09:27:26.642Z" }, + { url = "https://files.pythonhosted.org/packages/c6/a3/c2369911cd72f02386e4e340770f6e158c7980267da16af8f668217abaa0/charset_normalizer-3.4.7-cp314-cp314-win_arm64.whl", hash = "sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246", size = 148384, upload-time = "2026-04-02T09:27:28.271Z" }, + { url = "https://files.pythonhosted.org/packages/94/09/7e8a7f73d24dba1f0035fbbf014d2c36828fc1bf9c88f84093e57d315935/charset_normalizer-3.4.7-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24", size = 330133, upload-time = "2026-04-02T09:27:29.474Z" }, + { url = "https://files.pythonhosted.org/packages/8d/da/96975ddb11f8e977f706f45cddd8540fd8242f71ecdb5d18a80723dcf62c/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79", size = 216257, upload-time = "2026-04-02T09:27:30.793Z" }, + { url = "https://files.pythonhosted.org/packages/e5/e8/1d63bf8ef2d388e95c64b2098f45f84758f6d102a087552da1485912637b/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960", size = 234851, upload-time = "2026-04-02T09:27:32.44Z" }, + { url = "https://files.pythonhosted.org/packages/9b/40/e5ff04233e70da2681fa43969ad6f66ca5611d7e669be0246c4c7aaf6dc8/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4", size = 233393, upload-time = "2026-04-02T09:27:34.03Z" }, + { url = "https://files.pythonhosted.org/packages/be/c1/06c6c49d5a5450f76899992f1ee40b41d076aee9279b49cf9974d2f313d5/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e", size = 223251, upload-time = "2026-04-02T09:27:35.369Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9f/f2ff16fb050946169e3e1f82134d107e5d4ae72647ec8a1b1446c148480f/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1", size = 206609, upload-time = "2026-04-02T09:27:36.661Z" }, + { url = "https://files.pythonhosted.org/packages/69/d5/a527c0cd8d64d2eab7459784fb4169a0ac76e5a6fc5237337982fd61347e/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44", size = 220014, upload-time = "2026-04-02T09:27:38.019Z" }, + { url = "https://files.pythonhosted.org/packages/7e/80/8a7b8104a3e203074dc9aa2c613d4b726c0e136bad1cc734594b02867972/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e", size = 218979, upload-time = "2026-04-02T09:27:39.37Z" }, + { url = "https://files.pythonhosted.org/packages/02/9a/b759b503d507f375b2b5c153e4d2ee0a75aa215b7f2489cf314f4541f2c0/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3", size = 209238, upload-time = "2026-04-02T09:27:40.722Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/0f3f5d47b86bdb79256e7290b26ac847a2832d9a4033f7eb2cd4bcf4bb5b/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0", size = 236110, upload-time = "2026-04-02T09:27:42.33Z" }, + { url = "https://files.pythonhosted.org/packages/96/23/bce28734eb3ed2c91dcf93abeb8a5cf393a7b2749725030bb630e554fdd8/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e", size = 219824, upload-time = "2026-04-02T09:27:43.924Z" }, + { url = "https://files.pythonhosted.org/packages/2c/6f/6e897c6984cc4d41af319b077f2f600fc8214eb2fe2d6bcb79141b882400/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb", size = 233103, upload-time = "2026-04-02T09:27:45.348Z" }, + { url = "https://files.pythonhosted.org/packages/76/22/ef7bd0fe480a0ae9b656189ec00744b60933f68b4f42a7bb06589f6f576a/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe", size = 225194, upload-time = "2026-04-02T09:27:46.706Z" }, + { url = "https://files.pythonhosted.org/packages/c5/a7/0e0ab3e0b5bc1219bd80a6a0d4d72ca74d9250cb2382b7c699c147e06017/charset_normalizer-3.4.7-cp314-cp314t-win32.whl", hash = "sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0", size = 159827, upload-time = "2026-04-02T09:27:48.053Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1d/29d32e0fb40864b1f878c7f5a0b343ae676c6e2b271a2d55cc3a152391da/charset_normalizer-3.4.7-cp314-cp314t-win_amd64.whl", hash = "sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c", size = 174168, upload-time = "2026-04-02T09:27:49.795Z" }, + { url = "https://files.pythonhosted.org/packages/de/32/d92444ad05c7a6e41fb2036749777c163baf7a0301a040cb672d6b2b1ae9/charset_normalizer-3.4.7-cp314-cp314t-win_arm64.whl", hash = "sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d", size = 153018, upload-time = "2026-04-02T09:27:51.116Z" }, + { url = "https://files.pythonhosted.org/packages/db/8f/61959034484a4a7c527811f4721e75d02d653a35afb0b6054474d8185d4c/charset_normalizer-3.4.7-py3-none-any.whl", hash = "sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d", size = 61958, upload-time = "2026-04-02T09:28:37.794Z" }, +] + +[[package]] +name = "cloudpickle" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size = 22330, upload-time = "2025-11-03T09:25:26.604Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228, upload-time = "2025-11-03T09:25:25.534Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "comm" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, +] + +[[package]] +name = "contourpy" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419, upload-time = "2025-07-26T12:01:21.16Z" }, + { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979, upload-time = "2025-07-26T12:01:22.448Z" }, + { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653, upload-time = "2025-07-26T12:01:24.155Z" }, + { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536, upload-time = "2025-07-26T12:01:25.91Z" }, + { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397, upload-time = "2025-07-26T12:01:27.152Z" }, + { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601, upload-time = "2025-07-26T12:01:28.808Z" }, + { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288, upload-time = "2025-07-26T12:01:31.198Z" }, + { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386, upload-time = "2025-07-26T12:01:33.947Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018, upload-time = "2025-07-26T12:01:35.64Z" }, + { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567, upload-time = "2025-07-26T12:01:36.804Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, + { url = "https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257, upload-time = "2025-07-26T12:01:39.367Z" }, + { url = "https://files.pythonhosted.org/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034, upload-time = "2025-07-26T12:01:40.645Z" }, + { url = "https://files.pythonhosted.org/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672, upload-time = "2025-07-26T12:01:41.942Z" }, + { url = "https://files.pythonhosted.org/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234, upload-time = "2025-07-26T12:01:43.499Z" }, + { url = "https://files.pythonhosted.org/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169, upload-time = "2025-07-26T12:01:45.219Z" }, + { url = "https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859, upload-time = "2025-07-26T12:01:46.519Z" }, + { url = "https://files.pythonhosted.org/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062, upload-time = "2025-07-26T12:01:48.964Z" }, + { url = "https://files.pythonhosted.org/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932, upload-time = "2025-07-26T12:01:51.979Z" }, + { url = "https://files.pythonhosted.org/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024, upload-time = "2025-07-26T12:01:53.245Z" }, + { url = "https://files.pythonhosted.org/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578, upload-time = "2025-07-26T12:01:54.422Z" }, + { url = "https://files.pythonhosted.org/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524, upload-time = "2025-07-26T12:01:55.73Z" }, + { url = "https://files.pythonhosted.org/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730, upload-time = "2025-07-26T12:01:57.051Z" }, + { url = "https://files.pythonhosted.org/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897, upload-time = "2025-07-26T12:01:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751, upload-time = "2025-07-26T12:02:00.343Z" }, + { url = "https://files.pythonhosted.org/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486, upload-time = "2025-07-26T12:02:02.128Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106, upload-time = "2025-07-26T12:02:03.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548, upload-time = "2025-07-26T12:02:05.165Z" }, + { url = "https://files.pythonhosted.org/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297, upload-time = "2025-07-26T12:02:07.379Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023, upload-time = "2025-07-26T12:02:10.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157, upload-time = "2025-07-26T12:02:11.488Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570, upload-time = "2025-07-26T12:02:12.754Z" }, + { url = "https://files.pythonhosted.org/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713, upload-time = "2025-07-26T12:02:14.4Z" }, + { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" }, + { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" }, + { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" }, + { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" }, + { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" }, + { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" }, + { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" }, + { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" }, + { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" }, + { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" }, + { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" }, + { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" }, + { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" }, + { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, +] + +[[package]] +name = "cuda-bindings" +version = "13.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cuda-pathfinder", marker = "(platform_machine != 'x86_64' and sys_platform == 'darwin') or (sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/c8/b2589d68acf7e3d63e2be330b84bc25712e97ed799affbca7edd7eae25d6/cuda_bindings-13.2.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e865447abfb83d6a98ad5130ed3c70b1fc295ae3eeee39fd07b4ddb0671b6788", size = 5722404, upload-time = "2026-03-11T00:12:44.041Z" }, + { url = "https://files.pythonhosted.org/packages/1f/92/f899f7bbb5617bb65ec52a6eac1e9a1447a86b916c4194f8a5001b8cde0c/cuda_bindings-13.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:46d8776a55d6d5da9dd6e9858fba2efcda2abe6743871dee47dd06eb8cb6d955", size = 6320619, upload-time = "2026-03-11T00:12:45.939Z" }, + { url = "https://files.pythonhosted.org/packages/df/93/eef988860a3ca985f82c4f3174fc0cdd94e07331ba9a92e8e064c260337f/cuda_bindings-13.2.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6629ca2df6f795b784752409bcaedbd22a7a651b74b56a165ebc0c9dcbd504d0", size = 5614610, upload-time = "2026-03-11T00:12:50.337Z" }, + { url = "https://files.pythonhosted.org/packages/18/23/6db3aba46864aee357ab2415135b3fe3da7e9f1fa0221fa2a86a5968099c/cuda_bindings-13.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7dca0da053d3b4cc4869eff49c61c03f3c5dbaa0bcd712317a358d5b8f3f385d", size = 6149914, upload-time = "2026-03-11T00:12:52.374Z" }, + { url = "https://files.pythonhosted.org/packages/c0/87/87a014f045b77c6de5c8527b0757fe644417b184e5367db977236a141602/cuda_bindings-13.2.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a6464b30f46692d6c7f65d4a0e0450d81dd29de3afc1bb515653973d01c2cd6e", size = 5685673, upload-time = "2026-03-11T00:12:56.371Z" }, + { url = "https://files.pythonhosted.org/packages/ee/5e/c0fe77a73aaefd3fff25ffaccaac69c5a63eafdf8b9a4c476626ef0ac703/cuda_bindings-13.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4af9f3e1be603fa12d5ad6cfca7844c9d230befa9792b5abdf7dd79979c3626", size = 6191386, upload-time = "2026-03-11T00:12:58.965Z" }, + { url = "https://files.pythonhosted.org/packages/5f/58/ed2c3b39c8dd5f96aa7a4abef0d47a73932c7a988e30f5fa428f00ed0da1/cuda_bindings-13.2.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df850a1ff8ce1b3385257b08e47b70e959932f5f432d0a4e46a355962b4e4771", size = 5507469, upload-time = "2026-03-11T00:13:04.063Z" }, + { url = "https://files.pythonhosted.org/packages/1f/01/0c941b112ceeb21439b05895eace78ca1aa2eaaf695c8521a068fd9b4c00/cuda_bindings-13.2.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8a16384c6494e5485f39314b0b4afb04bee48d49edb16d5d8593fd35bbd231b", size = 6059693, upload-time = "2026-03-11T00:13:06.003Z" }, +] + +[[package]] +name = "cuda-pathfinder" +version = "1.5.2" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/f9/1b9b60a30fc463c14cdea7a77228131a0ccc89572e8df9cb86c9648271ab/cuda_pathfinder-1.5.2-py3-none-any.whl", hash = "sha256:0c5f160a7756c5b072723cbbd6d861e38917ef956c68150b02f0b6e9271c71fa", size = 49988, upload-time = "2026-04-06T23:01:05.17Z" }, +] + +[[package]] +name = "cuda-toolkit" +version = "13.0.2" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/b2/453099f5f3b698d7d0eab38916aac44c7f76229f451709e2eb9db6615dcd/cuda_toolkit-13.0.2-py2.py3-none-any.whl", hash = "sha256:b198824cf2f54003f50d64ada3a0f184b42ca0846c1c94192fa269ecd97a66eb", size = 2364, upload-time = "2025-12-19T23:24:07.328Z" }, +] + +[package.optional-dependencies] +cublas = [ + { name = "nvidia-cublas", marker = "sys_platform == 'linux'" }, +] +cudart = [ + { name = "nvidia-cuda-runtime", marker = "sys_platform == 'linux'" }, +] +cufft = [ + { name = "nvidia-cufft", marker = "sys_platform == 'linux'" }, +] +cufile = [ + { name = "nvidia-cufile", marker = "sys_platform == 'linux'" }, +] +cupti = [ + { name = "nvidia-cuda-cupti", marker = "sys_platform == 'linux'" }, +] +curand = [ + { name = "nvidia-curand", marker = "sys_platform == 'linux'" }, +] +cusolver = [ + { name = "nvidia-cusolver", marker = "sys_platform == 'linux'" }, +] +cusparse = [ + { name = "nvidia-cusparse", marker = "sys_platform == 'linux'" }, +] +nvjitlink = [ + { name = "nvidia-nvjitlink", marker = "sys_platform == 'linux'" }, +] +nvrtc = [ + { name = "nvidia-cuda-nvrtc", marker = "sys_platform == 'linux'" }, +] +nvtx = [ + { name = "nvidia-nvtx", marker = "sys_platform == 'linux'" }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, +] + +[[package]] +name = "decorator" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, +] + +[[package]] +name = "executing" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, +] + +[[package]] +name = "fastjsonschema" +version = "2.21.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/b5/23b216d9d985a956623b6bd12d4086b60f0059b27799f23016af04a74ea1/fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de", size = 374130, upload-time = "2025-08-14T18:49:36.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463", size = 24024, upload-time = "2025-08-14T18:49:34.776Z" }, +] + +[[package]] +name = "filelock" +version = "3.25.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/b8/00651a0f559862f3bb7d6f7477b192afe3f583cc5e26403b44e59a55ab34/filelock-3.25.2.tar.gz", hash = "sha256:b64ece2b38f4ca29dd3e810287aa8c48182bbecd1ae6e9ae126c9b35f1382694", size = 40480, upload-time = "2026-03-11T20:45:38.487Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl", hash = "sha256:ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70", size = 26759, upload-time = "2026-03-11T20:45:37.437Z" }, +] + +[[package]] +name = "fonttools" +version = "4.62.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/08/7012b00a9a5874311b639c3920270c36ee0c445b69d9989a85e5c92ebcb0/fonttools-4.62.1.tar.gz", hash = "sha256:e54c75fd6041f1122476776880f7c3c3295ffa31962dc6ebe2543c00dca58b5d", size = 3580737, upload-time = "2026-03-13T13:54:25.52Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/d4/dbacced3953544b9a93088cc10ef2b596d348c983d5c67a404fa41ec51ba/fonttools-4.62.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:90365821debbd7db678809c7491ca4acd1e0779b9624cdc6ddaf1f31992bf974", size = 2870219, upload-time = "2026-03-13T13:52:53.664Z" }, + { url = "https://files.pythonhosted.org/packages/66/9e/a769c8e99b81e5a87ab7e5e7236684de4e96246aae17274e5347d11ebd78/fonttools-4.62.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:12859ff0b47dd20f110804c3e0d0970f7b832f561630cd879969011541a464a9", size = 2414891, upload-time = "2026-03-13T13:52:56.493Z" }, + { url = "https://files.pythonhosted.org/packages/69/64/f19a9e3911968c37e1e620e14dfc5778299e1474f72f4e57c5ec771d9489/fonttools-4.62.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c125ffa00c3d9003cdaaf7f2c79e6e535628093e14b5de1dccb08859b680936", size = 5033197, upload-time = "2026-03-13T13:52:59.179Z" }, + { url = "https://files.pythonhosted.org/packages/9b/8a/99c8b3c3888c5c474c08dbfd7c8899786de9604b727fcefb055b42c84bba/fonttools-4.62.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:149f7d84afca659d1a97e39a4778794a2f83bf344c5ee5134e09995086cc2392", size = 4988768, upload-time = "2026-03-13T13:53:02.761Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c6/0f904540d3e6ab463c1243a0d803504826a11604c72dd58c2949796a1762/fonttools-4.62.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0aa72c43a601cfa9273bb1ae0518f1acadc01ee181a6fc60cd758d7fdadffc04", size = 4971512, upload-time = "2026-03-13T13:53:05.678Z" }, + { url = "https://files.pythonhosted.org/packages/29/0b/5cbef6588dc9bd6b5c9ad6a4d5a8ca384d0cea089da31711bbeb4f9654a6/fonttools-4.62.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:19177c8d96c7c36359266e571c5173bcee9157b59cfc8cb0153c5673dc5a3a7d", size = 5122723, upload-time = "2026-03-13T13:53:08.662Z" }, + { url = "https://files.pythonhosted.org/packages/4a/47/b3a5342d381595ef439adec67848bed561ab7fdb1019fa522e82101b7d9c/fonttools-4.62.1-cp312-cp312-win32.whl", hash = "sha256:a24decd24d60744ee8b4679d38e88b8303d86772053afc29b19d23bb8207803c", size = 2281278, upload-time = "2026-03-13T13:53:10.998Z" }, + { url = "https://files.pythonhosted.org/packages/28/b1/0c2ab56a16f409c6c8a68816e6af707827ad5d629634691ff60a52879792/fonttools-4.62.1-cp312-cp312-win_amd64.whl", hash = "sha256:9e7863e10b3de72376280b515d35b14f5eeed639d1aa7824f4cf06779ec65e42", size = 2331414, upload-time = "2026-03-13T13:53:13.992Z" }, + { url = "https://files.pythonhosted.org/packages/3b/56/6f389de21c49555553d6a5aeed5ac9767631497ac836c4f076273d15bd72/fonttools-4.62.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c22b1014017111c401469e3acc5433e6acf6ebcc6aa9efb538a533c800971c79", size = 2865155, upload-time = "2026-03-13T13:53:16.132Z" }, + { url = "https://files.pythonhosted.org/packages/03/c5/0e3966edd5ec668d41dfe418787726752bc07e2f5fd8c8f208615e61fa89/fonttools-4.62.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:68959f5fc58ed4599b44aad161c2837477d7f35f5f79402d97439974faebfebe", size = 2412802, upload-time = "2026-03-13T13:53:18.878Z" }, + { url = "https://files.pythonhosted.org/packages/52/94/e6ac4b44026de7786fe46e3bfa0c87e51d5d70a841054065d49cd62bb909/fonttools-4.62.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef46db46c9447103b8f3ff91e8ba009d5fe181b1920a83757a5762551e32bb68", size = 5013926, upload-time = "2026-03-13T13:53:21.379Z" }, + { url = "https://files.pythonhosted.org/packages/e2/98/8b1e801939839d405f1f122e7d175cebe9aeb4e114f95bfc45e3152af9a7/fonttools-4.62.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6706d1cb1d5e6251a97ad3c1b9347505c5615c112e66047abbef0f8545fa30d1", size = 4964575, upload-time = "2026-03-13T13:53:23.857Z" }, + { url = "https://files.pythonhosted.org/packages/46/76/7d051671e938b1881670528fec69cc4044315edd71a229c7fd712eaa5119/fonttools-4.62.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2e7abd2b1e11736f58c1de27819e1955a53267c21732e78243fa2fa2e5c1e069", size = 4953693, upload-time = "2026-03-13T13:53:26.569Z" }, + { url = "https://files.pythonhosted.org/packages/1f/ae/b41f8628ec0be3c1b934fc12b84f4576a5c646119db4d3bdd76a217c90b5/fonttools-4.62.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:403d28ce06ebfc547fbcb0cb8b7f7cc2f7a2d3e1a67ba9a34b14632df9e080f9", size = 5094920, upload-time = "2026-03-13T13:53:29.329Z" }, + { url = "https://files.pythonhosted.org/packages/f2/f6/53a1e9469331a23dcc400970a27a4caa3d9f6edbf5baab0260285238b884/fonttools-4.62.1-cp313-cp313-win32.whl", hash = "sha256:93c316e0f5301b2adbe6a5f658634307c096fd5aae60a5b3412e4f3e1728ab24", size = 2279928, upload-time = "2026-03-13T13:53:32.352Z" }, + { url = "https://files.pythonhosted.org/packages/38/60/35186529de1db3c01f5ad625bde07c1f576305eab6d86bbda4c58445f721/fonttools-4.62.1-cp313-cp313-win_amd64.whl", hash = "sha256:7aa21ff53e28a9c2157acbc44e5b401149d3c9178107130e82d74ceb500e5056", size = 2330514, upload-time = "2026-03-13T13:53:34.991Z" }, + { url = "https://files.pythonhosted.org/packages/36/f0/2888cdac391807d68d90dcb16ef858ddc1b5309bfc6966195a459dd326e2/fonttools-4.62.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fa1d16210b6b10a826d71bed68dd9ec24a9e218d5a5e2797f37c573e7ec215ca", size = 2864442, upload-time = "2026-03-13T13:53:37.509Z" }, + { url = "https://files.pythonhosted.org/packages/4b/b2/e521803081f8dc35990816b82da6360fa668a21b44da4b53fc9e77efcd62/fonttools-4.62.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:aa69d10ed420d8121118e628ad47d86e4caa79ba37f968597b958f6cceab7eca", size = 2410901, upload-time = "2026-03-13T13:53:40.55Z" }, + { url = "https://files.pythonhosted.org/packages/00/a4/8c3511ff06e53110039358dbbdc1a65d72157a054638387aa2ada300a8b8/fonttools-4.62.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd13b7999d59c5eb1c2b442eb2d0c427cb517a0b7a1f5798fc5c9e003f5ff782", size = 4999608, upload-time = "2026-03-13T13:53:42.798Z" }, + { url = "https://files.pythonhosted.org/packages/28/63/cd0c3b26afe60995a5295f37c246a93d454023726c3261cfbb3559969bb9/fonttools-4.62.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8d337fdd49a79b0d51c4da87bc38169d21c3abbf0c1aa9367eff5c6656fb6dae", size = 4912726, upload-time = "2026-03-13T13:53:45.405Z" }, + { url = "https://files.pythonhosted.org/packages/70/b9/ac677cb07c24c685cf34f64e140617d58789d67a3dd524164b63648c6114/fonttools-4.62.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d241cdc4a67b5431c6d7f115fdf63335222414995e3a1df1a41e1182acd4bcc7", size = 4951422, upload-time = "2026-03-13T13:53:48.326Z" }, + { url = "https://files.pythonhosted.org/packages/e6/10/11c08419a14b85b7ca9a9faca321accccc8842dd9e0b1c8a72908de05945/fonttools-4.62.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c05557a78f8fa514da0f869556eeda40887a8abc77c76ee3f74cf241778afd5a", size = 5060979, upload-time = "2026-03-13T13:53:51.366Z" }, + { url = "https://files.pythonhosted.org/packages/4e/3c/12eea4a4cf054e7ab058ed5ceada43b46809fce2bf319017c4d63ae55bb4/fonttools-4.62.1-cp314-cp314-win32.whl", hash = "sha256:49a445d2f544ce4a69338694cad575ba97b9a75fff02720da0882d1a73f12800", size = 2283733, upload-time = "2026-03-13T13:53:53.606Z" }, + { url = "https://files.pythonhosted.org/packages/6b/67/74b070029043186b5dd13462c958cb7c7f811be0d2e634309d9a1ffb1505/fonttools-4.62.1-cp314-cp314-win_amd64.whl", hash = "sha256:1eecc128c86c552fb963fe846ca4e011b1be053728f798185a1687502f6d398e", size = 2335663, upload-time = "2026-03-13T13:53:56.23Z" }, + { url = "https://files.pythonhosted.org/packages/42/c5/4d2ed3ca6e33617fc5624467da353337f06e7f637707478903c785bd8e20/fonttools-4.62.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1596aeaddf7f78e21e68293c011316a25267b3effdaccaf4d59bc9159d681b82", size = 2947288, upload-time = "2026-03-13T13:53:59.397Z" }, + { url = "https://files.pythonhosted.org/packages/1f/e9/7ab11ddfda48ed0f89b13380e5595ba572619c27077be0b2c447a63ff351/fonttools-4.62.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:8f8fca95d3bb3208f59626a4b0ea6e526ee51f5a8ad5d91821c165903e8d9260", size = 2449023, upload-time = "2026-03-13T13:54:01.642Z" }, + { url = "https://files.pythonhosted.org/packages/b2/10/a800fa090b5e8819942e54e19b55fc7c21fe14a08757c3aa3ca8db358939/fonttools-4.62.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee91628c08e76f77b533d65feb3fbe6d9dad699f95be51cf0d022db94089cdc4", size = 5137599, upload-time = "2026-03-13T13:54:04.495Z" }, + { url = "https://files.pythonhosted.org/packages/37/dc/8ccd45033fffd74deb6912fa1ca524643f584b94c87a16036855b498a1ed/fonttools-4.62.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5f37df1cac61d906e7b836abe356bc2f34c99d4477467755c216b72aa3dc748b", size = 4920933, upload-time = "2026-03-13T13:54:07.557Z" }, + { url = "https://files.pythonhosted.org/packages/99/eb/e618adefb839598d25ac8136cd577925d6c513dc0d931d93b8af956210f0/fonttools-4.62.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:92bb00a947e666169c99b43753c4305fc95a890a60ef3aeb2a6963e07902cc87", size = 5016232, upload-time = "2026-03-13T13:54:10.611Z" }, + { url = "https://files.pythonhosted.org/packages/d9/5f/9b5c9bfaa8ec82def8d8168c4f13615990d6ce5996fe52bd49bfb5e05134/fonttools-4.62.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bdfe592802ef939a0e33106ea4a318eeb17822c7ee168c290273cbd5fabd746c", size = 5042987, upload-time = "2026-03-13T13:54:13.569Z" }, + { url = "https://files.pythonhosted.org/packages/90/aa/dfbbe24c6a6afc5c203d90cc0343e24bcbb09e76d67c4d6eef8c2558d7ba/fonttools-4.62.1-cp314-cp314t-win32.whl", hash = "sha256:b820fcb92d4655513d8402d5b219f94481c4443d825b4372c75a2072aa4b357a", size = 2348021, upload-time = "2026-03-13T13:54:16.98Z" }, + { url = "https://files.pythonhosted.org/packages/13/6f/ae9c4e4dd417948407b680855c2c7790efb52add6009aaecff1e3bc50e8e/fonttools-4.62.1-cp314-cp314t-win_amd64.whl", hash = "sha256:59b372b4f0e113d3746b88985f1c796e7bf830dd54b28374cd85c2b8acd7583e", size = 2414147, upload-time = "2026-03-13T13:54:19.416Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ba/56147c165442cc5ba7e82ecf301c9a68353cede498185869e6e02b4c264f/fonttools-4.62.1-py3-none-any.whl", hash = "sha256:7487782e2113861f4ddcc07c3436450659e3caa5e470b27dc2177cade2d8e7fd", size = 1152647, upload-time = "2026-03-13T13:54:22.735Z" }, +] + +[[package]] +name = "frozenlist" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875, upload-time = "2025-10-06T05:38:17.865Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782, upload-time = "2025-10-06T05:36:06.649Z" }, + { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594, upload-time = "2025-10-06T05:36:07.69Z" }, + { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448, upload-time = "2025-10-06T05:36:08.78Z" }, + { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411, upload-time = "2025-10-06T05:36:09.801Z" }, + { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014, upload-time = "2025-10-06T05:36:11.394Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909, upload-time = "2025-10-06T05:36:12.598Z" }, + { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049, upload-time = "2025-10-06T05:36:14.065Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485, upload-time = "2025-10-06T05:36:15.39Z" }, + { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619, upload-time = "2025-10-06T05:36:16.558Z" }, + { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320, upload-time = "2025-10-06T05:36:17.821Z" }, + { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820, upload-time = "2025-10-06T05:36:19.046Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518, upload-time = "2025-10-06T05:36:20.763Z" }, + { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096, upload-time = "2025-10-06T05:36:22.129Z" }, + { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985, upload-time = "2025-10-06T05:36:23.661Z" }, + { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591, upload-time = "2025-10-06T05:36:24.958Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102, upload-time = "2025-10-06T05:36:26.333Z" }, + { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717, upload-time = "2025-10-06T05:36:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651, upload-time = "2025-10-06T05:36:28.855Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417, upload-time = "2025-10-06T05:36:29.877Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391, upload-time = "2025-10-06T05:36:31.301Z" }, + { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048, upload-time = "2025-10-06T05:36:32.531Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549, upload-time = "2025-10-06T05:36:33.706Z" }, + { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833, upload-time = "2025-10-06T05:36:34.947Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363, upload-time = "2025-10-06T05:36:36.534Z" }, + { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314, upload-time = "2025-10-06T05:36:38.582Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365, upload-time = "2025-10-06T05:36:40.152Z" }, + { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763, upload-time = "2025-10-06T05:36:41.355Z" }, + { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110, upload-time = "2025-10-06T05:36:42.716Z" }, + { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717, upload-time = "2025-10-06T05:36:44.251Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628, upload-time = "2025-10-06T05:36:45.423Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882, upload-time = "2025-10-06T05:36:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676, upload-time = "2025-10-06T05:36:47.8Z" }, + { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235, upload-time = "2025-10-06T05:36:48.78Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742, upload-time = "2025-10-06T05:36:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725, upload-time = "2025-10-06T05:36:50.851Z" }, + { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533, upload-time = "2025-10-06T05:36:51.898Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506, upload-time = "2025-10-06T05:36:53.101Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161, upload-time = "2025-10-06T05:36:54.309Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676, upload-time = "2025-10-06T05:36:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638, upload-time = "2025-10-06T05:36:56.758Z" }, + { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067, upload-time = "2025-10-06T05:36:57.965Z" }, + { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101, upload-time = "2025-10-06T05:36:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901, upload-time = "2025-10-06T05:37:00.811Z" }, + { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395, upload-time = "2025-10-06T05:37:02.115Z" }, + { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659, upload-time = "2025-10-06T05:37:03.711Z" }, + { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492, upload-time = "2025-10-06T05:37:04.915Z" }, + { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034, upload-time = "2025-10-06T05:37:06.343Z" }, + { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749, upload-time = "2025-10-06T05:37:07.431Z" }, + { url = "https://files.pythonhosted.org/packages/f1/c8/85da824b7e7b9b6e7f7705b2ecaf9591ba6f79c1177f324c2735e41d36a2/frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0", size = 86127, upload-time = "2025-10-06T05:37:08.438Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e8/a1185e236ec66c20afd72399522f142c3724c785789255202d27ae992818/frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f", size = 49698, upload-time = "2025-10-06T05:37:09.48Z" }, + { url = "https://files.pythonhosted.org/packages/a1/93/72b1736d68f03fda5fdf0f2180fb6caaae3894f1b854d006ac61ecc727ee/frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c", size = 49749, upload-time = "2025-10-06T05:37:10.569Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b2/fabede9fafd976b991e9f1b9c8c873ed86f202889b864756f240ce6dd855/frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2", size = 231298, upload-time = "2025-10-06T05:37:11.993Z" }, + { url = "https://files.pythonhosted.org/packages/3a/3b/d9b1e0b0eed36e70477ffb8360c49c85c8ca8ef9700a4e6711f39a6e8b45/frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8", size = 232015, upload-time = "2025-10-06T05:37:13.194Z" }, + { url = "https://files.pythonhosted.org/packages/dc/94/be719d2766c1138148564a3960fc2c06eb688da592bdc25adcf856101be7/frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686", size = 225038, upload-time = "2025-10-06T05:37:14.577Z" }, + { url = "https://files.pythonhosted.org/packages/e4/09/6712b6c5465f083f52f50cf74167b92d4ea2f50e46a9eea0523d658454ae/frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e", size = 240130, upload-time = "2025-10-06T05:37:15.781Z" }, + { url = "https://files.pythonhosted.org/packages/f8/d4/cd065cdcf21550b54f3ce6a22e143ac9e4836ca42a0de1022da8498eac89/frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a", size = 242845, upload-time = "2025-10-06T05:37:17.037Z" }, + { url = "https://files.pythonhosted.org/packages/62/c3/f57a5c8c70cd1ead3d5d5f776f89d33110b1addae0ab010ad774d9a44fb9/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128", size = 229131, upload-time = "2025-10-06T05:37:18.221Z" }, + { url = "https://files.pythonhosted.org/packages/6c/52/232476fe9cb64f0742f3fde2b7d26c1dac18b6d62071c74d4ded55e0ef94/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f", size = 240542, upload-time = "2025-10-06T05:37:19.771Z" }, + { url = "https://files.pythonhosted.org/packages/5f/85/07bf3f5d0fb5414aee5f47d33c6f5c77bfe49aac680bfece33d4fdf6a246/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7", size = 237308, upload-time = "2025-10-06T05:37:20.969Z" }, + { url = "https://files.pythonhosted.org/packages/11/99/ae3a33d5befd41ac0ca2cc7fd3aa707c9c324de2e89db0e0f45db9a64c26/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30", size = 238210, upload-time = "2025-10-06T05:37:22.252Z" }, + { url = "https://files.pythonhosted.org/packages/b2/60/b1d2da22f4970e7a155f0adde9b1435712ece01b3cd45ba63702aea33938/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7", size = 231972, upload-time = "2025-10-06T05:37:23.5Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ab/945b2f32de889993b9c9133216c068b7fcf257d8595a0ac420ac8677cab0/frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806", size = 40536, upload-time = "2025-10-06T05:37:25.581Z" }, + { url = "https://files.pythonhosted.org/packages/59/ad/9caa9b9c836d9ad6f067157a531ac48b7d36499f5036d4141ce78c230b1b/frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0", size = 44330, upload-time = "2025-10-06T05:37:26.928Z" }, + { url = "https://files.pythonhosted.org/packages/82/13/e6950121764f2676f43534c555249f57030150260aee9dcf7d64efda11dd/frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b", size = 40627, upload-time = "2025-10-06T05:37:28.075Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c7/43200656ecc4e02d3f8bc248df68256cd9572b3f0017f0a0c4e93440ae23/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d", size = 89238, upload-time = "2025-10-06T05:37:29.373Z" }, + { url = "https://files.pythonhosted.org/packages/d1/29/55c5f0689b9c0fb765055629f472c0de484dcaf0acee2f7707266ae3583c/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed", size = 50738, upload-time = "2025-10-06T05:37:30.792Z" }, + { url = "https://files.pythonhosted.org/packages/ba/7d/b7282a445956506fa11da8c2db7d276adcbf2b17d8bb8407a47685263f90/frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930", size = 51739, upload-time = "2025-10-06T05:37:32.127Z" }, + { url = "https://files.pythonhosted.org/packages/62/1c/3d8622e60d0b767a5510d1d3cf21065b9db874696a51ea6d7a43180a259c/frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c", size = 284186, upload-time = "2025-10-06T05:37:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/2d/14/aa36d5f85a89679a85a1d44cd7a6657e0b1c75f61e7cad987b203d2daca8/frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24", size = 292196, upload-time = "2025-10-06T05:37:36.107Z" }, + { url = "https://files.pythonhosted.org/packages/05/23/6bde59eb55abd407d34f77d39a5126fb7b4f109a3f611d3929f14b700c66/frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37", size = 273830, upload-time = "2025-10-06T05:37:37.663Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3f/22cff331bfad7a8afa616289000ba793347fcd7bc275f3b28ecea2a27909/frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a", size = 294289, upload-time = "2025-10-06T05:37:39.261Z" }, + { url = "https://files.pythonhosted.org/packages/a4/89/5b057c799de4838b6c69aa82b79705f2027615e01be996d2486a69ca99c4/frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2", size = 300318, upload-time = "2025-10-06T05:37:43.213Z" }, + { url = "https://files.pythonhosted.org/packages/30/de/2c22ab3eb2a8af6d69dc799e48455813bab3690c760de58e1bf43b36da3e/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef", size = 282814, upload-time = "2025-10-06T05:37:45.337Z" }, + { url = "https://files.pythonhosted.org/packages/59/f7/970141a6a8dbd7f556d94977858cfb36fa9b66e0892c6dd780d2219d8cd8/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe", size = 291762, upload-time = "2025-10-06T05:37:46.657Z" }, + { url = "https://files.pythonhosted.org/packages/c1/15/ca1adae83a719f82df9116d66f5bb28bb95557b3951903d39135620ef157/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8", size = 289470, upload-time = "2025-10-06T05:37:47.946Z" }, + { url = "https://files.pythonhosted.org/packages/ac/83/dca6dc53bf657d371fbc88ddeb21b79891e747189c5de990b9dfff2ccba1/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a", size = 289042, upload-time = "2025-10-06T05:37:49.499Z" }, + { url = "https://files.pythonhosted.org/packages/96/52/abddd34ca99be142f354398700536c5bd315880ed0a213812bc491cff5e4/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e", size = 283148, upload-time = "2025-10-06T05:37:50.745Z" }, + { url = "https://files.pythonhosted.org/packages/af/d3/76bd4ed4317e7119c2b7f57c3f6934aba26d277acc6309f873341640e21f/frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df", size = 44676, upload-time = "2025-10-06T05:37:52.222Z" }, + { url = "https://files.pythonhosted.org/packages/89/76/c615883b7b521ead2944bb3480398cbb07e12b7b4e4d073d3752eb721558/frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd", size = 49451, upload-time = "2025-10-06T05:37:53.425Z" }, + { url = "https://files.pythonhosted.org/packages/e0/a3/5982da14e113d07b325230f95060e2169f5311b1017ea8af2a29b374c289/frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79", size = 42507, upload-time = "2025-10-06T05:37:54.513Z" }, + { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409, upload-time = "2025-10-06T05:38:16.721Z" }, +] + +[[package]] +name = "fsspec" +version = "2026.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/cf/b50ddf667c15276a9ab15a70ef5f257564de271957933ffea49d2cdbcdfb/fsspec-2026.3.0.tar.gz", hash = "sha256:1ee6a0e28677557f8c2f994e3eea77db6392b4de9cd1f5d7a9e87a0ae9d01b41", size = 313547, upload-time = "2026-03-27T19:11:14.892Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl", hash = "sha256:d2ceafaad1b3457968ed14efa28798162f1638dbb5d2a6868a2db002a5ee39a4", size = 202595, upload-time = "2026-03-27T19:11:13.595Z" }, +] + +[[package]] +name = "gdown" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "filelock" }, + { name = "requests", extra = ["socks"] }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/01/9e0280ba321f73295374765dc3c0b1e03058188a592a48a321376f9eb092/gdown-6.0.0.tar.gz", hash = "sha256:1f1f735a174ef3599fca95786aafac1219b9d85d4c729ccb95e674996c47fd44", size = 262729, upload-time = "2026-04-12T06:37:40.182Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/fd/a382bb6684b1fdbe5cd19aa980a04a67f6c91efd0e1e627f93614fe2d24e/gdown-6.0.0-py3-none-any.whl", hash = "sha256:c82d39a6b09ed7778012515c2fa4ab4dc36d7789300cd0b16b87d3a3e4a09955", size = 18243, upload-time = "2026-04-12T06:37:38.209Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "ipython" +version = "9.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "ipython-pygments-lexers" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/73/7114f80a8f9cabdb13c27732dce24af945b2923dcab80723602f7c8bc2d8/ipython-9.12.0.tar.gz", hash = "sha256:01daa83f504b693ba523b5a407246cabde4eb4513285a3c6acaff11a66735ee4", size = 4428879, upload-time = "2026-03-27T09:42:45.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/22/906c8108974c673ebef6356c506cebb6870d48cedea3c41e949e2dd556bb/ipython-9.12.0-py3-none-any.whl", hash = "sha256:0f2701e8ee86e117e37f50563205d36feaa259d2e08d4a6bc6b6d74b18ce128d", size = 625661, upload-time = "2026-03-27T09:42:42.831Z" }, +] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, +] + +[[package]] +name = "ipywidgets" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "comm" }, + { name = "ipython" }, + { name = "jupyterlab-widgets" }, + { name = "traitlets" }, + { name = "widgetsnbextension" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/ae/c5ce1edc1afe042eadb445e95b0671b03cee61895264357956e61c0d2ac0/ipywidgets-8.1.8.tar.gz", hash = "sha256:61f969306b95f85fba6b6986b7fe45d73124d1d9e3023a8068710d47a22ea668", size = 116739, upload-time = "2025-11-01T21:18:12.393Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/6d/0d9848617b9f753b87f214f1c682592f7ca42de085f564352f10f0843026/ipywidgets-8.1.8-py3-none-any.whl", hash = "sha256:ecaca67aed704a338f88f67b1181b58f821ab5dc89c1f0f5ef99db43c1c2921e", size = 139808, upload-time = "2025-11-01T21:18:10.956Z" }, +] + +[[package]] +name = "jedi" +version = "0.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/f2/d34e8b3a08a9cc79a50b2208a93dce981fe615b64d5a4d4abee421d898df/joblib-1.5.3.tar.gz", hash = "sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3", size = 331603, upload-time = "2025-12-15T08:41:46.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/91/984aca2ec129e2757d1e4e3c81c3fcda9d0f85b74670a094cc443d9ee949/joblib-1.5.3-py3-none-any.whl", hash = "sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713", size = 309071, upload-time = "2025-12-15T08:41:44.973Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "jupyter-core" +version = "5.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, +] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.16" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/2d/ef58fed122b268c69c0aa099da20bc67657cdfb2e222688d5731bd5b971d/jupyterlab_widgets-3.0.16.tar.gz", hash = "sha256:423da05071d55cf27a9e602216d35a3a65a3e41cdf9c5d3b643b814ce38c19e0", size = 897423, upload-time = "2025-11-01T21:11:29.724Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl", hash = "sha256:45fa36d9c6422cf2559198e4db481aa243c7a32d9926b500781c830c80f7ecf8", size = 914926, upload-time = "2025-11-01T21:11:28.008Z" }, +] + +[[package]] +name = "kiwisolver" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/67/9c61eccb13f0bdca9307614e782fec49ffdde0f7a2314935d489fa93cd9c/kiwisolver-1.5.0.tar.gz", hash = "sha256:d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a", size = 103482, upload-time = "2026-03-09T13:15:53.382Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/b2/818b74ebea34dabe6d0c51cb1c572e046730e64844da6ed646d5298c40ce/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4e9750bc21b886308024f8a54ccb9a2cc38ac9fa813bf4348434e3d54f337ff9", size = 123158, upload-time = "2026-03-09T13:13:23.127Z" }, + { url = "https://files.pythonhosted.org/packages/bf/d9/405320f8077e8e1c5c4bd6adc45e1e6edf6d727b6da7f2e2533cf58bff71/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:72ec46b7eba5b395e0a7b63025490d3214c11013f4aacb4f5e8d6c3041829588", size = 66388, upload-time = "2026-03-09T13:13:24.765Z" }, + { url = "https://files.pythonhosted.org/packages/99/9f/795fedf35634f746151ca8839d05681ceb6287fbed6cc1c9bf235f7887c2/kiwisolver-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ed3a984b31da7481b103f68776f7128a89ef26ed40f4dc41a2223cda7fb24819", size = 64068, upload-time = "2026-03-09T13:13:25.878Z" }, + { url = "https://files.pythonhosted.org/packages/c4/13/680c54afe3e65767bed7ec1a15571e1a2f1257128733851ade24abcefbcc/kiwisolver-1.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb5136fb5352d3f422df33f0c879a1b0c204004324150cc3b5e3c4f310c9049f", size = 1477934, upload-time = "2026-03-09T13:13:27.166Z" }, + { url = "https://files.pythonhosted.org/packages/c8/2f/cebfcdb60fd6a9b0f6b47a9337198bcbad6fbe15e68189b7011fd914911f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2af221f268f5af85e776a73d62b0845fc8baf8ef0abfae79d29c77d0e776aaf", size = 1278537, upload-time = "2026-03-09T13:13:28.707Z" }, + { url = "https://files.pythonhosted.org/packages/f2/0d/9b782923aada3fafb1d6b84e13121954515c669b18af0c26e7d21f579855/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b0f172dc8ffaccb8522d7c5d899de00133f2f1ca7b0a49b7da98e901de87bf2d", size = 1296685, upload-time = "2026-03-09T13:13:30.528Z" }, + { url = "https://files.pythonhosted.org/packages/27/70/83241b6634b04fe44e892688d5208332bde130f38e610c0418f9ede47ded/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6ab8ba9152203feec73758dad83af9a0bbe05001eb4639e547207c40cfb52083", size = 1346024, upload-time = "2026-03-09T13:13:32.818Z" }, + { url = "https://files.pythonhosted.org/packages/e4/db/30ed226fb271ae1a6431fc0fe0edffb2efe23cadb01e798caeb9f2ceae8f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_39_riscv64.whl", hash = "sha256:cdee07c4d7f6d72008d3f73b9bf027f4e11550224c7c50d8df1ae4a37c1402a6", size = 987241, upload-time = "2026-03-09T13:13:34.435Z" }, + { url = "https://files.pythonhosted.org/packages/ec/bd/c314595208e4c9587652d50959ead9e461995389664e490f4dce7ff0f782/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7c60d3c9b06fb23bd9c6139281ccbdc384297579ae037f08ae90c69f6845c0b1", size = 2227742, upload-time = "2026-03-09T13:13:36.4Z" }, + { url = "https://files.pythonhosted.org/packages/c1/43/0499cec932d935229b5543d073c2b87c9c22846aab48881e9d8d6e742a2d/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e315e5ec90d88e140f57696ff85b484ff68bb311e36f2c414aa4286293e6dee0", size = 2323966, upload-time = "2026-03-09T13:13:38.204Z" }, + { url = "https://files.pythonhosted.org/packages/3d/6f/79b0d760907965acfd9d61826a3d41f8f093c538f55cd2633d3f0db269f6/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:1465387ac63576c3e125e5337a6892b9e99e0627d52317f3ca79e6930d889d15", size = 1977417, upload-time = "2026-03-09T13:13:39.966Z" }, + { url = "https://files.pythonhosted.org/packages/ab/31/01d0537c41cb75a551a438c3c7a80d0c60d60b81f694dac83dd436aec0d0/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:530a3fd64c87cffa844d4b6b9768774763d9caa299e9b75d8eca6a4423b31314", size = 2491238, upload-time = "2026-03-09T13:13:41.698Z" }, + { url = "https://files.pythonhosted.org/packages/e4/34/8aefdd0be9cfd00a44509251ba864f5caf2991e36772e61c408007e7f417/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d9daea4ea6b9be74fe2f01f7fbade8d6ffab263e781274cffca0dba9be9eec9", size = 2294947, upload-time = "2026-03-09T13:13:43.343Z" }, + { url = "https://files.pythonhosted.org/packages/ad/cf/0348374369ca588f8fe9c338fae49fa4e16eeb10ffb3d012f23a54578a9e/kiwisolver-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:f18c2d9782259a6dc132fdc7a63c168cbc74b35284b6d75c673958982a378384", size = 73569, upload-time = "2026-03-09T13:13:45.792Z" }, + { url = "https://files.pythonhosted.org/packages/28/26/192b26196e2316e2bd29deef67e37cdf9870d9af8e085e521afff0fed526/kiwisolver-1.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:f7c7553b13f69c1b29a5bde08ddc6d9d0c8bfb84f9ed01c30db25944aeb852a7", size = 64997, upload-time = "2026-03-09T13:13:46.878Z" }, + { url = "https://files.pythonhosted.org/packages/9d/69/024d6711d5ba575aa65d5538042e99964104e97fa153a9f10bc369182bc2/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fd40bb9cd0891c4c3cb1ddf83f8bbfa15731a248fdc8162669405451e2724b09", size = 123166, upload-time = "2026-03-09T13:13:48.032Z" }, + { url = "https://files.pythonhosted.org/packages/ce/48/adbb40df306f587054a348831220812b9b1d787aff714cfbc8556e38fccd/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0e1403fd7c26d77c1f03e096dc58a5c726503fa0db0456678b8668f76f521e3", size = 66395, upload-time = "2026-03-09T13:13:49.365Z" }, + { url = "https://files.pythonhosted.org/packages/a8/3a/d0a972b34e1c63e2409413104216cd1caa02c5a37cb668d1687d466c1c45/kiwisolver-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dda366d548e89a90d88a86c692377d18d8bd64b39c1fb2b92cb31370e2896bbd", size = 64065, upload-time = "2026-03-09T13:13:50.562Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0a/7b98e1e119878a27ba8618ca1e18b14f992ff1eda40f47bccccf4de44121/kiwisolver-1.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:332b4f0145c30b5f5ad9374881133e5aa64320428a57c2c2b61e9d891a51c2f3", size = 1477903, upload-time = "2026-03-09T13:13:52.084Z" }, + { url = "https://files.pythonhosted.org/packages/18/d8/55638d89ffd27799d5cc3d8aa28e12f4ce7a64d67b285114dbedc8ea4136/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c50b89ffd3e1a911c69a1dd3de7173c0cd10b130f56222e57898683841e4f96", size = 1278751, upload-time = "2026-03-09T13:13:54.673Z" }, + { url = "https://files.pythonhosted.org/packages/b8/97/b4c8d0d18421ecceba20ad8701358453b88e32414e6f6950b5a4bad54e65/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4db576bb8c3ef9365f8b40fe0f671644de6736ae2c27a2c62d7d8a1b4329f099", size = 1296793, upload-time = "2026-03-09T13:13:56.287Z" }, + { url = "https://files.pythonhosted.org/packages/c4/10/f862f94b6389d8957448ec9df59450b81bec4abb318805375c401a1e6892/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0b85aad90cea8ac6797a53b5d5f2e967334fa4d1149f031c4537569972596cb8", size = 1346041, upload-time = "2026-03-09T13:13:58.269Z" }, + { url = "https://files.pythonhosted.org/packages/a3/6a/f1650af35821eaf09de398ec0bc2aefc8f211f0cda50204c9f1673741ba9/kiwisolver-1.5.0-cp313-cp313-manylinux_2_39_riscv64.whl", hash = "sha256:d36ca54cb4c6c4686f7cbb7b817f66f5911c12ddb519450bbe86707155028f87", size = 987292, upload-time = "2026-03-09T13:13:59.871Z" }, + { url = "https://files.pythonhosted.org/packages/de/19/d7fb82984b9238115fe629c915007be608ebd23dc8629703d917dbfaffd4/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:38f4a703656f493b0ad185211ccfca7f0386120f022066b018eb5296d8613e23", size = 2227865, upload-time = "2026-03-09T13:14:01.401Z" }, + { url = "https://files.pythonhosted.org/packages/7f/b9/46b7f386589fd222dac9e9de9c956ce5bcefe2ee73b4e79891381dda8654/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3ac2360e93cb41be81121755c6462cff3beaa9967188c866e5fce5cf13170859", size = 2324369, upload-time = "2026-03-09T13:14:02.972Z" }, + { url = "https://files.pythonhosted.org/packages/92/8b/95e237cf3d9c642960153c769ddcbe278f182c8affb20cecc1cc983e7cc5/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c95cab08d1965db3d84a121f1c7ce7479bdd4072c9b3dafd8fecce48a2e6b902", size = 1977989, upload-time = "2026-03-09T13:14:04.503Z" }, + { url = "https://files.pythonhosted.org/packages/1b/95/980c9df53501892784997820136c01f62bc1865e31b82b9560f980c0e649/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc20894c3d21194d8041a28b65622d5b86db786da6e3cfe73f0c762951a61167", size = 2491645, upload-time = "2026-03-09T13:14:06.106Z" }, + { url = "https://files.pythonhosted.org/packages/cb/32/900647fd0840abebe1561792c6b31e6a7c0e278fc3973d30572a965ca14c/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7a32f72973f0f950c1920475d5c5ea3d971b81b6f0ec53b8d0a956cc965f22e0", size = 2295237, upload-time = "2026-03-09T13:14:08.891Z" }, + { url = "https://files.pythonhosted.org/packages/be/8a/be60e3bbcf513cc5a50f4a3e88e1dcecebb79c1ad607a7222877becaa101/kiwisolver-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bf3acf1419fa93064a4c2189ac0b58e3be7872bf6ee6177b0d4c63dc4cea276", size = 73573, upload-time = "2026-03-09T13:14:12.327Z" }, + { url = "https://files.pythonhosted.org/packages/4d/d2/64be2e429eb4fca7f7e1c52a91b12663aeaf25de3895e5cca0f47ef2a8d0/kiwisolver-1.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:fa8eb9ecdb7efb0b226acec134e0d709e87a909fa4971a54c0c4f6e88635484c", size = 64998, upload-time = "2026-03-09T13:14:13.469Z" }, + { url = "https://files.pythonhosted.org/packages/b0/69/ce68dd0c85755ae2de490bf015b62f2cea5f6b14ff00a463f9d0774449ff/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:db485b3847d182b908b483b2ed133c66d88d49cacf98fd278fadafe11b4478d1", size = 125700, upload-time = "2026-03-09T13:14:14.636Z" }, + { url = "https://files.pythonhosted.org/packages/74/aa/937aac021cf9d4349990d47eb319309a51355ed1dbdc9c077cdc9224cb11/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:be12f931839a3bdfe28b584db0e640a65a8bcbc24560ae3fdb025a449b3d754e", size = 67537, upload-time = "2026-03-09T13:14:15.808Z" }, + { url = "https://files.pythonhosted.org/packages/ee/20/3a87fbece2c40ad0f6f0aefa93542559159c5f99831d596050e8afae7a9f/kiwisolver-1.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:16b85d37c2cbb3253226d26e64663f755d88a03439a9c47df6246b35defbdfb7", size = 65514, upload-time = "2026-03-09T13:14:18.035Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7f/f943879cda9007c45e1f7dba216d705c3a18d6b35830e488b6c6a4e7cdf0/kiwisolver-1.5.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4432b835675f0ea7414aab3d37d119f7226d24869b7a829caeab49ebda407b0c", size = 1584848, upload-time = "2026-03-09T13:14:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/37/f8/4d4f85cc1870c127c88d950913370dd76138482161cd07eabbc450deff01/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b0feb50971481a2cc44d94e88bdb02cdd497618252ae226b8eb1201b957e368", size = 1391542, upload-time = "2026-03-09T13:14:21.54Z" }, + { url = "https://files.pythonhosted.org/packages/04/0b/65dd2916c84d252b244bd405303220f729e7c17c9d7d33dca6feeff9ffc4/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56fa888f10d0f367155e76ce849fa1166fc9730d13bd2d65a2aa13b6f5424489", size = 1404447, upload-time = "2026-03-09T13:14:23.205Z" }, + { url = "https://files.pythonhosted.org/packages/39/5c/2606a373247babce9b1d056c03a04b65f3cf5290a8eac5d7bdead0a17e21/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:940dda65d5e764406b9fb92761cbf462e4e63f712ab60ed98f70552e496f3bf1", size = 1455918, upload-time = "2026-03-09T13:14:24.74Z" }, + { url = "https://files.pythonhosted.org/packages/d5/d1/c6078b5756670658e9192a2ef11e939c92918833d2745f85cd14a6004bdf/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_39_riscv64.whl", hash = "sha256:89fc958c702ee9a745e4700378f5d23fddbc46ff89e8fdbf5395c24d5c1452a3", size = 1072856, upload-time = "2026-03-09T13:14:26.597Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c8/7def6ddf16eb2b3741d8b172bdaa9af882b03c78e9b0772975408801fa63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9027d773c4ff81487181a925945743413f6069634d0b122d0b37684ccf4f1e18", size = 2333580, upload-time = "2026-03-09T13:14:28.237Z" }, + { url = "https://files.pythonhosted.org/packages/9e/87/2ac1fce0eb1e616fcd3c35caa23e665e9b1948bb984f4764790924594128/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:5b233ea3e165e43e35dba1d2b8ecc21cf070b45b65ae17dd2747d2713d942021", size = 2423018, upload-time = "2026-03-09T13:14:30.018Z" }, + { url = "https://files.pythonhosted.org/packages/67/13/c6700ccc6cc218716bfcda4935e4b2997039869b4ad8a94f364c5a3b8e63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:ce9bf03dad3b46408c08649c6fbd6ca28a9fce0eb32fdfffa6775a13103b5310", size = 2062804, upload-time = "2026-03-09T13:14:32.888Z" }, + { url = "https://files.pythonhosted.org/packages/1b/bd/877056304626943ff0f1f44c08f584300c199b887cb3176cd7e34f1515f1/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:fc4d3f1fb9ca0ae9f97b095963bc6326f1dbfd3779d6679a1e016b9baaa153d3", size = 2597482, upload-time = "2026-03-09T13:14:34.971Z" }, + { url = "https://files.pythonhosted.org/packages/75/19/c60626c47bf0f8ac5dcf72c6c98e266d714f2fbbfd50cf6dab5ede3aaa50/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f443b4825c50a51ee68585522ab4a1d1257fac65896f282b4c6763337ac9f5d2", size = 2394328, upload-time = "2026-03-09T13:14:36.816Z" }, + { url = "https://files.pythonhosted.org/packages/47/84/6a6d5e5bb8273756c27b7d810d47f7ef2f1f9b9fd23c9ee9a3f8c75c9cef/kiwisolver-1.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:893ff3a711d1b515ba9da14ee090519bad4610ed1962fbe298a434e8c5f8db53", size = 68410, upload-time = "2026-03-09T13:14:38.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/060f45052f2a01ad5762c8fdecd6d7a752b43400dc29ff75cd47225a40fd/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8df31fe574b8b3993cc61764f40941111b25c2d9fea13d3ce24a49907cd2d615", size = 123231, upload-time = "2026-03-09T13:14:41.323Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a7/78da680eadd06ff35edef6ef68a1ad273bad3e2a0936c9a885103230aece/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1d49a49ac4cbfb7c1375301cd1ec90169dfeae55ff84710d782260ce77a75a02", size = 66489, upload-time = "2026-03-09T13:14:42.534Z" }, + { url = "https://files.pythonhosted.org/packages/49/b2/97980f3ad4fae37dd7fe31626e2bf75fbf8bdf5d303950ec1fab39a12da8/kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0cbe94b69b819209a62cb27bdfa5dc2a8977d8de2f89dfd97ba4f53ed3af754e", size = 64063, upload-time = "2026-03-09T13:14:44.759Z" }, + { url = "https://files.pythonhosted.org/packages/e7/f9/b06c934a6aa8bc91f566bd2a214fd04c30506c2d9e2b6b171953216a65b6/kiwisolver-1.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:80aa065ffd378ff784822a6d7c3212f2d5f5e9c3589614b5c228b311fd3063ac", size = 1475913, upload-time = "2026-03-09T13:14:46.247Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f0/f768ae564a710135630672981231320bc403cf9152b5596ec5289de0f106/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e7f886f47ab881692f278ae901039a234e4025a68e6dfab514263a0b1c4ae05", size = 1282782, upload-time = "2026-03-09T13:14:48.458Z" }, + { url = "https://files.pythonhosted.org/packages/e2/9f/1de7aad00697325f05238a5f2eafbd487fb637cc27a558b5367a5f37fb7f/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5060731cc3ed12ca3a8b57acd4aeca5bbc2f49216dd0bec1650a1acd89486bcd", size = 1300815, upload-time = "2026-03-09T13:14:50.721Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c2/297f25141d2e468e0ce7f7a7b92e0cf8918143a0cbd3422c1ad627e85a06/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a4aa69609f40fce3cbc3f87b2061f042eee32f94b8f11db707b66a26461591a", size = 1347925, upload-time = "2026-03-09T13:14:52.304Z" }, + { url = "https://files.pythonhosted.org/packages/b9/d3/f4c73a02eb41520c47610207b21afa8cdd18fdbf64ffd94674ae21c4812d/kiwisolver-1.5.0-cp314-cp314-manylinux_2_39_riscv64.whl", hash = "sha256:d168fda2dbff7b9b5f38e693182d792a938c31db4dac3a80a4888de603c99554", size = 991322, upload-time = "2026-03-09T13:14:54.637Z" }, + { url = "https://files.pythonhosted.org/packages/7b/46/d3f2efef7732fcda98d22bf4ad5d3d71d545167a852ca710a494f4c15343/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:413b820229730d358efd838ecbab79902fe97094565fdc80ddb6b0a18c18a581", size = 2232857, upload-time = "2026-03-09T13:14:56.471Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ec/2d9756bf2b6d26ae4349b8d3662fb3993f16d80c1f971c179ce862b9dbae/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5124d1ea754509b09e53738ec185584cc609aae4a3b510aaf4ed6aa047ef9303", size = 2329376, upload-time = "2026-03-09T13:14:58.072Z" }, + { url = "https://files.pythonhosted.org/packages/8f/9f/876a0a0f2260f1bde92e002b3019a5fabc35e0939c7d945e0fa66185eb20/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e4415a8db000bf49a6dd1c478bf70062eaacff0f462b92b0ba68791a905861f9", size = 1982549, upload-time = "2026-03-09T13:14:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4f/ba3624dfac23a64d54ac4179832860cb537c1b0af06024936e82ca4154a0/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d618fd27420381a4f6044faa71f46d8bfd911bd077c555f7138ed88729bfbe79", size = 2494680, upload-time = "2026-03-09T13:15:01.364Z" }, + { url = "https://files.pythonhosted.org/packages/39/b7/97716b190ab98911b20d10bf92eca469121ec483b8ce0edd314f51bc85af/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5092eb5b1172947f57d6ea7d89b2f29650414e4293c47707eb499ec07a0ac796", size = 2297905, upload-time = "2026-03-09T13:15:03.925Z" }, + { url = "https://files.pythonhosted.org/packages/a3/36/4e551e8aa55c9188bca9abb5096805edbf7431072b76e2298e34fd3a3008/kiwisolver-1.5.0-cp314-cp314-win_amd64.whl", hash = "sha256:d76e2d8c75051d58177e762164d2e9ab92886534e3a12e795f103524f221dd8e", size = 75086, upload-time = "2026-03-09T13:15:07.775Z" }, + { url = "https://files.pythonhosted.org/packages/70/15/9b90f7df0e31a003c71649cf66ef61c3c1b862f48c81007fa2383c8bd8d7/kiwisolver-1.5.0-cp314-cp314-win_arm64.whl", hash = "sha256:fa6248cd194edff41d7ea9425ced8ca3a6f838bfb295f6f1d6e6bb694a8518df", size = 66577, upload-time = "2026-03-09T13:15:09.139Z" }, + { url = "https://files.pythonhosted.org/packages/17/01/7dc8c5443ff42b38e72731643ed7cf1ed9bf01691ae5cdca98501999ed83/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d1ffeb80b5676463d7a7d56acbe8e37a20ce725570e09549fe738e02ca6b7e1e", size = 125794, upload-time = "2026-03-09T13:15:10.525Z" }, + { url = "https://files.pythonhosted.org/packages/46/8a/b4ebe46ebaac6a303417fab10c2e165c557ddaff558f9699d302b256bc53/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc4d8e252f532ab46a1de9349e2d27b91fce46736a9eedaa37beaca66f574ed4", size = 67646, upload-time = "2026-03-09T13:15:12.016Z" }, + { url = "https://files.pythonhosted.org/packages/60/35/10a844afc5f19d6f567359bf4789e26661755a2f36200d5d1ed8ad0126e5/kiwisolver-1.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6783e069732715ad0c3ce96dbf21dbc2235ab0593f2baf6338101f70371f4028", size = 65511, upload-time = "2026-03-09T13:15:13.311Z" }, + { url = "https://files.pythonhosted.org/packages/f8/8a/685b297052dd041dcebce8e8787b58923b6e78acc6115a0dc9189011c44b/kiwisolver-1.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e7c4c09a490dc4d4a7f8cbee56c606a320f9dc28cf92a7157a39d1ce7676a657", size = 1584858, upload-time = "2026-03-09T13:15:15.103Z" }, + { url = "https://files.pythonhosted.org/packages/9e/80/04865e3d4638ac5bddec28908916df4a3075b8c6cc101786a96803188b96/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a075bd7bd19c70cf67c8badfa36cf7c5d8de3c9ddb8420c51e10d9c50e94920", size = 1392539, upload-time = "2026-03-09T13:15:16.661Z" }, + { url = "https://files.pythonhosted.org/packages/ba/01/77a19cacc0893fa13fafa46d1bba06fb4dc2360b3292baf4b56d8e067b24/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bdd3e53429ff02aa319ba59dfe4ceeec345bf46cf180ec2cf6fd5b942e7975e9", size = 1405310, upload-time = "2026-03-09T13:15:18.229Z" }, + { url = "https://files.pythonhosted.org/packages/53/39/bcaf5d0cca50e604cfa9b4e3ae1d64b50ca1ae5b754122396084599ef903/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cdcb35dc9d807259c981a85531048ede628eabcffb3239adf3d17463518992d", size = 1456244, upload-time = "2026-03-09T13:15:20.444Z" }, + { url = "https://files.pythonhosted.org/packages/d0/7a/72c187abc6975f6978c3e39b7cf67aeb8b3c0a8f9790aa7fd412855e9e1f/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_39_riscv64.whl", hash = "sha256:70d593af6a6ca332d1df73d519fddb5148edb15cd90d5f0155e3746a6d4fcc65", size = 1073154, upload-time = "2026-03-09T13:15:22.039Z" }, + { url = "https://files.pythonhosted.org/packages/c7/ca/cf5b25783ebbd59143b4371ed0c8428a278abe68d6d0104b01865b1bbd0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:377815a8616074cabbf3f53354e1d040c35815a134e01d7614b7692e4bf8acfa", size = 2334377, upload-time = "2026-03-09T13:15:23.741Z" }, + { url = "https://files.pythonhosted.org/packages/4a/e5/b1f492adc516796e88751282276745340e2a72dcd0d36cf7173e0daf3210/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0255a027391d52944eae1dbb5d4cc5903f57092f3674e8e544cdd2622826b3f0", size = 2425288, upload-time = "2026-03-09T13:15:25.789Z" }, + { url = "https://files.pythonhosted.org/packages/e6/e5/9b21fbe91a61b8f409d74a26498706e97a48008bfcd1864373d32a6ba31c/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:012b1eb16e28718fa782b5e61dc6f2da1f0792ca73bd05d54de6cb9561665fc9", size = 2063158, upload-time = "2026-03-09T13:15:27.63Z" }, + { url = "https://files.pythonhosted.org/packages/b1/02/83f47986138310f95ea95531f851b2a62227c11cbc3e690ae1374fe49f0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0e3aafb33aed7479377e5e9a82e9d4bf87063741fc99fc7ae48b0f16e32bdd6f", size = 2597260, upload-time = "2026-03-09T13:15:29.421Z" }, + { url = "https://files.pythonhosted.org/packages/07/18/43a5f24608d8c313dd189cf838c8e68d75b115567c6279de7796197cfb6a/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7a116ae737f0000343218c4edf5bd45893bfeaff0993c0b215d7124c9f77646", size = 2394403, upload-time = "2026-03-09T13:15:31.517Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b5/98222136d839b8afabcaa943b09bd05888c2d36355b7e448550211d1fca4/kiwisolver-1.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1dd9b0b119a350976a6d781e7278ec7aca0b201e1a9e2d23d9804afecb6ca681", size = 79687, upload-time = "2026-03-09T13:15:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/99/a2/ca7dc962848040befed12732dff6acae7fb3c4f6fc4272b3f6c9a30b8713/kiwisolver-1.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:58f812017cd2985c21fbffb4864d59174d4903dd66fa23815e74bbc7a0e2dd57", size = 70032, upload-time = "2026-03-09T13:15:34.411Z" }, + { url = "https://files.pythonhosted.org/packages/1c/fa/2910df836372d8761bb6eff7d8bdcb1613b5c2e03f260efe7abe34d388a7/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_10_13_x86_64.whl", hash = "sha256:5ae8e62c147495b01a0f4765c878e9bfdf843412446a247e28df59936e99e797", size = 130262, upload-time = "2026-03-09T13:15:35.629Z" }, + { url = "https://files.pythonhosted.org/packages/0f/41/c5f71f9f00aabcc71fee8b7475e3f64747282580c2fe748961ba29b18385/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f6764a4ccab3078db14a632420930f6186058750df066b8ea2a7106df91d3203", size = 138036, upload-time = "2026-03-09T13:15:36.894Z" }, + { url = "https://files.pythonhosted.org/packages/fa/06/7399a607f434119c6e1fdc8ec89a8d51ccccadf3341dee4ead6bd14caaf5/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c31c13da98624f957b0fb1b5bae5383b2333c2c3f6793d9825dd5ce79b525cb7", size = 194295, upload-time = "2026-03-09T13:15:38.22Z" }, + { url = "https://files.pythonhosted.org/packages/b5/91/53255615acd2a1eaca307ede3c90eb550bae9c94581f8c00081b6b1c8f44/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-win_amd64.whl", hash = "sha256:1f1489f769582498610e015a8ef2d36f28f505ab3096d0e16b4858a9ec214f57", size = 75987, upload-time = "2026-03-09T13:15:39.65Z" }, +] + +[[package]] +name = "llvmlite" +version = "0.36.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", + "python_full_version < '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", +] +sdist = { url = "https://files.pythonhosted.org/packages/19/66/6b2c49c7c68da48d17059882fdb9ad9ac9e5ac3f22b00874d7996e3c44a8/llvmlite-0.36.0.tar.gz", hash = "sha256:765128fdf5f149ed0b889ffbe2b05eb1717f8e20a5c87fa2b4018fbcce0fcfc9", size = 126219, upload-time = "2021-03-12T13:41:52.064Z" } + +[[package]] +name = "llvmlite" +version = "0.47.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "(python_full_version >= '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", + "python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version < '3.14' and sys_platform == 'emscripten'", + "(python_full_version < '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", +] +sdist = { url = "https://files.pythonhosted.org/packages/01/88/a8952b6d5c21e74cbf158515b779666f692846502623e9e3c39d8e8ba25f/llvmlite-0.47.0.tar.gz", hash = "sha256:62031ce968ec74e95092184d4b0e857e444f8fdff0b8f9213707699570c33ccc", size = 193614, upload-time = "2026-03-31T18:29:53.497Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/48/4b7fe0e34c169fa2f12532916133e0b219d2823b540733651b34fdac509a/llvmlite-0.47.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:306a265f408c259067257a732c8e159284334018b4083a9e35f67d19792b164f", size = 37232769, upload-time = "2026-03-31T18:28:43.735Z" }, + { url = "https://files.pythonhosted.org/packages/e6/4b/e3f2cd17822cf772a4a51a0a8080b0032e6d37b2dbe8cfb724eac4e31c52/llvmlite-0.47.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5853bf26160857c0c2573415ff4efe01c4c651e59e2c55c2a088740acfee51cd", size = 56275178, upload-time = "2026-03-31T18:28:48.342Z" }, + { url = "https://files.pythonhosted.org/packages/b6/55/a3b4a543185305a9bdf3d9759d53646ed96e55e7dfd43f53e7a421b8fbae/llvmlite-0.47.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:003bcf7fa579e14db59c1a1e113f93ab8a06b56a4be31c7f08264d1d4072d077", size = 55128632, upload-time = "2026-03-31T18:28:52.901Z" }, + { url = "https://files.pythonhosted.org/packages/2f/f5/d281ae0f79378a5a91f308ea9fdb9f9cc068fddd09629edc0725a5a8fde1/llvmlite-0.47.0-cp312-cp312-win_amd64.whl", hash = "sha256:f3079f25bdc24cd9d27c4b2b5e68f5f60c4fdb7e8ad5ee2b9b006007558f9df7", size = 38138692, upload-time = "2026-03-31T18:28:57.147Z" }, + { url = "https://files.pythonhosted.org/packages/77/6f/4615353e016799f80fa52ccb270a843c413b22361fadda2589b2922fb9b0/llvmlite-0.47.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:a3c6a735d4e1041808434f9d440faa3d78d9b4af2ee64d05a66f351883b6ceec", size = 37232771, upload-time = "2026-03-31T18:29:01.324Z" }, + { url = "https://files.pythonhosted.org/packages/31/b8/69f5565f1a280d032525878a86511eebed0645818492feeb169dfb20ae8e/llvmlite-0.47.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2699a74321189e812d476a43d6d7f652f51811e7b5aad9d9bba842a1c7927acb", size = 56275178, upload-time = "2026-03-31T18:29:05.748Z" }, + { url = "https://files.pythonhosted.org/packages/d6/da/b32cafcb926fb0ce2aa25553bf32cb8764af31438f40e2481df08884c947/llvmlite-0.47.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c6951e2b29930227963e53ee152441f0e14be92e9d4231852102d986c761e40", size = 55128632, upload-time = "2026-03-31T18:29:11.235Z" }, + { url = "https://files.pythonhosted.org/packages/46/9f/4898b44e4042c60fafcb1162dfb7014f6f15b1ec19bf29cfea6bf26df90d/llvmlite-0.47.0-cp313-cp313-win_amd64.whl", hash = "sha256:c2e9adf8698d813a9a5efb2d4370caf344dbc1e145019851fee6a6f319ba760e", size = 38138695, upload-time = "2026-03-31T18:29:15.43Z" }, + { url = "https://files.pythonhosted.org/packages/1c/d4/33c8af00f0bf6f552d74f3a054f648af2c5bc6bece97972f3bfadce4f5ec/llvmlite-0.47.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:de966c626c35c9dff5ae7bf12db25637738d0df83fc370cf793bc94d43d92d14", size = 37232773, upload-time = "2026-03-31T18:29:19.453Z" }, + { url = "https://files.pythonhosted.org/packages/64/1d/a760e993e0c0ba6db38d46b9f48f6c7dceb8ac838824997fb9e25f97bc04/llvmlite-0.47.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ddbccff2aeaff8670368340a158abefc032fe9b3ccf7d9c496639263d00151aa", size = 56275176, upload-time = "2026-03-31T18:29:24.149Z" }, + { url = "https://files.pythonhosted.org/packages/84/3b/e679bc3b29127182a7f4aa2d2e9e5bea42adb93fb840484147d59c236299/llvmlite-0.47.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4a7b778a2e144fc64468fb9bf509ac1226c9813a00b4d7afea5d988c4e22fca", size = 55128631, upload-time = "2026-03-31T18:29:29.536Z" }, + { url = "https://files.pythonhosted.org/packages/be/f7/19e2a09c62809c9e63bbd14ce71fb92c6ff7b7b3045741bb00c781efc3c9/llvmlite-0.47.0-cp314-cp314-win_amd64.whl", hash = "sha256:694e3c2cdc472ed2bd8bd4555ca002eec4310961dd58ef791d508f57b5cc4c94", size = 39153826, upload-time = "2026-03-31T18:29:33.681Z" }, + { url = "https://files.pythonhosted.org/packages/40/a1/581a8c707b5e80efdbbe1dd94527404d33fe50bceb71f39d5a7e11bd57b7/llvmlite-0.47.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:92ec8a169a20b473c1c54d4695e371bde36489fc1efa3688e11e99beba0abf9c", size = 37232772, upload-time = "2026-03-31T18:29:37.952Z" }, + { url = "https://files.pythonhosted.org/packages/11/03/16090dd6f74ba2b8b922276047f15962fbeea0a75d5601607edb301ba945/llvmlite-0.47.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fa1cbd800edd3b20bc141521f7fd45a6185a5b84109aa6855134e81397ffe72b", size = 56275178, upload-time = "2026-03-31T18:29:42.58Z" }, + { url = "https://files.pythonhosted.org/packages/f5/cb/0abf1dd4c5286a95ffe0c1d8c67aec06b515894a0dd2ac97f5e27b82ab0b/llvmlite-0.47.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f6725179b89f03b17dabe236ff3422cb8291b4c1bf40af152826dfd34e350ae8", size = 55128632, upload-time = "2026-03-31T18:29:46.939Z" }, + { url = "https://files.pythonhosted.org/packages/4f/79/d3bbab197e86e0ff4f9c07122895b66a3e0d024247fcff7f12c473cb36d9/llvmlite-0.47.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6842cf6f707ec4be3d985a385ad03f72b2d724439e118fcbe99b2929964f0453", size = 39153839, upload-time = "2026-03-31T18:29:51.004Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "matplotlib" +version = "3.10.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/76/d3c6e3a13fe484ebe7718d14e269c9569c4eb0020a968a327acb3b9a8fe6/matplotlib-3.10.8.tar.gz", hash = "sha256:2299372c19d56bcd35cf05a2738308758d32b9eaed2371898d8f5bd33f084aa3", size = 34806269, upload-time = "2025-12-10T22:56:51.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/67/f997cdcbb514012eb0d10cd2b4b332667997fb5ebe26b8d41d04962fa0e6/matplotlib-3.10.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:64fcc24778ca0404ce0cb7b6b77ae1f4c7231cdd60e6778f999ee05cbd581b9a", size = 8260453, upload-time = "2025-12-10T22:55:30.709Z" }, + { url = "https://files.pythonhosted.org/packages/7e/65/07d5f5c7f7c994f12c768708bd2e17a4f01a2b0f44a1c9eccad872433e2e/matplotlib-3.10.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9a5ca4ac220a0cdd1ba6bcba3608547117d30468fefce49bb26f55c1a3d5c58", size = 8148321, upload-time = "2025-12-10T22:55:33.265Z" }, + { url = "https://files.pythonhosted.org/packages/3e/f3/c5195b1ae57ef85339fd7285dfb603b22c8b4e79114bae5f4f0fcf688677/matplotlib-3.10.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3ab4aabc72de4ff77b3ec33a6d78a68227bf1123465887f9905ba79184a1cc04", size = 8716944, upload-time = "2025-12-10T22:55:34.922Z" }, + { url = "https://files.pythonhosted.org/packages/00/f9/7638f5cc82ec8a7aa005de48622eecc3ed7c9854b96ba15bd76b7fd27574/matplotlib-3.10.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24d50994d8c5816ddc35411e50a86ab05f575e2530c02752e02538122613371f", size = 9550099, upload-time = "2025-12-10T22:55:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/57/61/78cd5920d35b29fd2a0fe894de8adf672ff52939d2e9b43cb83cd5ce1bc7/matplotlib-3.10.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:99eefd13c0dc3b3c1b4d561c1169e65fe47aab7b8158754d7c084088e2329466", size = 9613040, upload-time = "2025-12-10T22:55:38.715Z" }, + { url = "https://files.pythonhosted.org/packages/30/4e/c10f171b6e2f44d9e3a2b96efa38b1677439d79c99357600a62cc1e9594e/matplotlib-3.10.8-cp312-cp312-win_amd64.whl", hash = "sha256:dd80ecb295460a5d9d260df63c43f4afbdd832d725a531f008dad1664f458adf", size = 8142717, upload-time = "2025-12-10T22:55:41.103Z" }, + { url = "https://files.pythonhosted.org/packages/f1/76/934db220026b5fef85f45d51a738b91dea7d70207581063cd9bd8fafcf74/matplotlib-3.10.8-cp312-cp312-win_arm64.whl", hash = "sha256:3c624e43ed56313651bc18a47f838b60d7b8032ed348911c54906b130b20071b", size = 8012751, upload-time = "2025-12-10T22:55:42.684Z" }, + { url = "https://files.pythonhosted.org/packages/3d/b9/15fd5541ef4f5b9a17eefd379356cf12175fe577424e7b1d80676516031a/matplotlib-3.10.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3f2e409836d7f5ac2f1c013110a4d50b9f7edc26328c108915f9075d7d7a91b6", size = 8261076, upload-time = "2025-12-10T22:55:44.648Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a0/2ba3473c1b66b9c74dc7107c67e9008cb1782edbe896d4c899d39ae9cf78/matplotlib-3.10.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56271f3dac49a88d7fca5060f004d9d22b865f743a12a23b1e937a0be4818ee1", size = 8148794, upload-time = "2025-12-10T22:55:46.252Z" }, + { url = "https://files.pythonhosted.org/packages/75/97/a471f1c3eb1fd6f6c24a31a5858f443891d5127e63a7788678d14e249aea/matplotlib-3.10.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a0a7f52498f72f13d4a25ea70f35f4cb60642b466cbb0a9be951b5bc3f45a486", size = 8718474, upload-time = "2025-12-10T22:55:47.864Z" }, + { url = "https://files.pythonhosted.org/packages/01/be/cd478f4b66f48256f42927d0acbcd63a26a893136456cd079c0cc24fbabf/matplotlib-3.10.8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:646d95230efb9ca614a7a594d4fcacde0ac61d25e37dd51710b36477594963ce", size = 9549637, upload-time = "2025-12-10T22:55:50.048Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7c/8dc289776eae5109e268c4fb92baf870678dc048a25d4ac903683b86d5bf/matplotlib-3.10.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f89c151aab2e2e23cb3fe0acad1e8b82841fd265379c4cecd0f3fcb34c15e0f6", size = 9613678, upload-time = "2025-12-10T22:55:52.21Z" }, + { url = "https://files.pythonhosted.org/packages/64/40/37612487cc8a437d4dd261b32ca21fe2d79510fe74af74e1f42becb1bdb8/matplotlib-3.10.8-cp313-cp313-win_amd64.whl", hash = "sha256:e8ea3e2d4066083e264e75c829078f9e149fa119d27e19acd503de65e0b13149", size = 8142686, upload-time = "2025-12-10T22:55:54.253Z" }, + { url = "https://files.pythonhosted.org/packages/66/52/8d8a8730e968185514680c2a6625943f70269509c3dcfc0dcf7d75928cb8/matplotlib-3.10.8-cp313-cp313-win_arm64.whl", hash = "sha256:c108a1d6fa78a50646029cb6d49808ff0fc1330fda87fa6f6250c6b5369b6645", size = 8012917, upload-time = "2025-12-10T22:55:56.268Z" }, + { url = "https://files.pythonhosted.org/packages/b5/27/51fe26e1062f298af5ef66343d8ef460e090a27fea73036c76c35821df04/matplotlib-3.10.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ad3d9833a64cf48cc4300f2b406c3d0f4f4724a91c0bd5640678a6ba7c102077", size = 8305679, upload-time = "2025-12-10T22:55:57.856Z" }, + { url = "https://files.pythonhosted.org/packages/2c/1e/4de865bc591ac8e3062e835f42dd7fe7a93168d519557837f0e37513f629/matplotlib-3.10.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:eb3823f11823deade26ce3b9f40dcb4a213da7a670013929f31d5f5ed1055b22", size = 8198336, upload-time = "2025-12-10T22:55:59.371Z" }, + { url = "https://files.pythonhosted.org/packages/c6/cb/2f7b6e75fb4dce87ef91f60cac4f6e34f4c145ab036a22318ec837971300/matplotlib-3.10.8-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d9050fee89a89ed57b4fb2c1bfac9a3d0c57a0d55aed95949eedbc42070fea39", size = 8731653, upload-time = "2025-12-10T22:56:01.032Z" }, + { url = "https://files.pythonhosted.org/packages/46/b3/bd9c57d6ba670a37ab31fb87ec3e8691b947134b201f881665b28cc039ff/matplotlib-3.10.8-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b44d07310e404ba95f8c25aa5536f154c0a8ec473303535949e52eb71d0a1565", size = 9561356, upload-time = "2025-12-10T22:56:02.95Z" }, + { url = "https://files.pythonhosted.org/packages/c0/3d/8b94a481456dfc9dfe6e39e93b5ab376e50998cddfd23f4ae3b431708f16/matplotlib-3.10.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0a33deb84c15ede243aead39f77e990469fff93ad1521163305095b77b72ce4a", size = 9614000, upload-time = "2025-12-10T22:56:05.411Z" }, + { url = "https://files.pythonhosted.org/packages/bd/cd/bc06149fe5585ba800b189a6a654a75f1f127e8aab02fd2be10df7fa500c/matplotlib-3.10.8-cp313-cp313t-win_amd64.whl", hash = "sha256:3a48a78d2786784cc2413e57397981fb45c79e968d99656706018d6e62e57958", size = 8220043, upload-time = "2025-12-10T22:56:07.551Z" }, + { url = "https://files.pythonhosted.org/packages/e3/de/b22cf255abec916562cc04eef457c13e58a1990048de0c0c3604d082355e/matplotlib-3.10.8-cp313-cp313t-win_arm64.whl", hash = "sha256:15d30132718972c2c074cd14638c7f4592bd98719e2308bccea40e0538bc0cb5", size = 8062075, upload-time = "2025-12-10T22:56:09.178Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/9c0ff7a2f11615e516c3b058e1e6e8f9614ddeca53faca06da267c48345d/matplotlib-3.10.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b53285e65d4fa4c86399979e956235deb900be5baa7fc1218ea67fbfaeaadd6f", size = 8262481, upload-time = "2025-12-10T22:56:10.885Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ca/e8ae28649fcdf039fda5ef554b40a95f50592a3c47e6f7270c9561c12b07/matplotlib-3.10.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:32f8dce744be5569bebe789e46727946041199030db8aeb2954d26013a0eb26b", size = 8151473, upload-time = "2025-12-10T22:56:12.377Z" }, + { url = "https://files.pythonhosted.org/packages/f1/6f/009d129ae70b75e88cbe7e503a12a4c0670e08ed748a902c2568909e9eb5/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4cf267add95b1c88300d96ca837833d4112756045364f5c734a2276038dae27d", size = 9553896, upload-time = "2025-12-10T22:56:14.432Z" }, + { url = "https://files.pythonhosted.org/packages/f5/26/4221a741eb97967bc1fd5e4c52b9aa5a91b2f4ec05b59f6def4d820f9df9/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2cf5bd12cecf46908f286d7838b2abc6c91cda506c0445b8223a7c19a00df008", size = 9824193, upload-time = "2025-12-10T22:56:16.29Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/3abf75f38605772cf48a9daf5821cd4f563472f38b4b828c6fba6fa6d06e/matplotlib-3.10.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:41703cc95688f2516b480f7f339d8851a6035f18e100ee6a32bc0b8536a12a9c", size = 9615444, upload-time = "2025-12-10T22:56:18.155Z" }, + { url = "https://files.pythonhosted.org/packages/93/a5/de89ac80f10b8dc615807ee1133cd99ac74082581196d4d9590bea10690d/matplotlib-3.10.8-cp314-cp314-win_amd64.whl", hash = "sha256:83d282364ea9f3e52363da262ce32a09dfe241e4080dcedda3c0db059d3c1f11", size = 8272719, upload-time = "2025-12-10T22:56:20.366Z" }, + { url = "https://files.pythonhosted.org/packages/69/ce/b006495c19ccc0a137b48083168a37bd056392dee02f87dba0472f2797fe/matplotlib-3.10.8-cp314-cp314-win_arm64.whl", hash = "sha256:2c1998e92cd5999e295a731bcb2911c75f597d937341f3030cc24ef2733d78a8", size = 8144205, upload-time = "2025-12-10T22:56:22.239Z" }, + { url = "https://files.pythonhosted.org/packages/68/d9/b31116a3a855bd313c6fcdb7226926d59b041f26061c6c5b1be66a08c826/matplotlib-3.10.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b5a2b97dbdc7d4f353ebf343744f1d1f1cca8aa8bfddb4262fcf4306c3761d50", size = 8305785, upload-time = "2025-12-10T22:56:24.218Z" }, + { url = "https://files.pythonhosted.org/packages/1e/90/6effe8103f0272685767ba5f094f453784057072f49b393e3ea178fe70a5/matplotlib-3.10.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3f5c3e4da343bba819f0234186b9004faba952cc420fbc522dc4e103c1985908", size = 8198361, upload-time = "2025-12-10T22:56:26.787Z" }, + { url = "https://files.pythonhosted.org/packages/d7/65/a73188711bea603615fc0baecca1061429ac16940e2385433cc778a9d8e7/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f62550b9a30afde8c1c3ae450e5eb547d579dd69b25c2fc7a1c67f934c1717a", size = 9561357, upload-time = "2025-12-10T22:56:28.953Z" }, + { url = "https://files.pythonhosted.org/packages/f4/3d/b5c5d5d5be8ce63292567f0e2c43dde9953d3ed86ac2de0a72e93c8f07a1/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:495672de149445ec1b772ff2c9ede9b769e3cb4f0d0aa7fa730d7f59e2d4e1c1", size = 9823610, upload-time = "2025-12-10T22:56:31.455Z" }, + { url = "https://files.pythonhosted.org/packages/4d/4b/e7beb6bbd49f6bae727a12b270a2654d13c397576d25bd6786e47033300f/matplotlib-3.10.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:595ba4d8fe983b88f0eec8c26a241e16d6376fe1979086232f481f8f3f67494c", size = 9614011, upload-time = "2025-12-10T22:56:33.85Z" }, + { url = "https://files.pythonhosted.org/packages/7c/e6/76f2813d31f032e65f6f797e3f2f6e4aab95b65015924b1c51370395c28a/matplotlib-3.10.8-cp314-cp314t-win_amd64.whl", hash = "sha256:25d380fe8b1dc32cf8f0b1b448470a77afb195438bafdf1d858bfb876f3edf7b", size = 8362801, upload-time = "2025-12-10T22:56:36.107Z" }, + { url = "https://files.pythonhosted.org/packages/5d/49/d651878698a0b67f23aa28e17f45a6d6dd3d3f933fa29087fa4ce5947b5a/matplotlib-3.10.8-cp314-cp314t-win_arm64.whl", hash = "sha256:113bb52413ea508ce954a02c10ffd0d565f9c3bc7f2eddc27dfe1731e71c7b5f", size = 8192560, upload-time = "2025-12-10T22:56:38.008Z" }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c7/74/97e72a36efd4ae2bccb3463284300f8953f199b5ffbc04cbbb0ec78f74b1/matplotlib_inline-0.2.1.tar.gz", hash = "sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe", size = 8110, upload-time = "2025-10-23T09:00:22.126Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/33/ee4519fa02ed11a94aef9559552f3b17bb863f2ecfe1a35dc7f548cde231/matplotlib_inline-0.2.1-py3-none-any.whl", hash = "sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76", size = 9516, upload-time = "2025-10-23T09:00:20.675Z" }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, +] + +[[package]] +name = "multidict" +version = "6.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d", size = 102010, upload-time = "2026-01-26T02:46:45.979Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/9c/f20e0e2cf80e4b2e4b1c365bf5fe104ee633c751a724246262db8f1a0b13/multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172", size = 76893, upload-time = "2026-01-26T02:43:52.754Z" }, + { url = "https://files.pythonhosted.org/packages/fe/cf/18ef143a81610136d3da8193da9d80bfe1cb548a1e2d1c775f26b23d024a/multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd", size = 45456, upload-time = "2026-01-26T02:43:53.893Z" }, + { url = "https://files.pythonhosted.org/packages/a9/65/1caac9d4cd32e8433908683446eebc953e82d22b03d10d41a5f0fefe991b/multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7", size = 43872, upload-time = "2026-01-26T02:43:55.041Z" }, + { url = "https://files.pythonhosted.org/packages/cf/3b/d6bd75dc4f3ff7c73766e04e705b00ed6dbbaccf670d9e05a12b006f5a21/multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53", size = 251018, upload-time = "2026-01-26T02:43:56.198Z" }, + { url = "https://files.pythonhosted.org/packages/fd/80/c959c5933adedb9ac15152e4067c702a808ea183a8b64cf8f31af8ad3155/multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75", size = 258883, upload-time = "2026-01-26T02:43:57.499Z" }, + { url = "https://files.pythonhosted.org/packages/86/85/7ed40adafea3d4f1c8b916e3b5cc3a8e07dfcdcb9cd72800f4ed3ca1b387/multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b", size = 242413, upload-time = "2026-01-26T02:43:58.755Z" }, + { url = "https://files.pythonhosted.org/packages/d2/57/b8565ff533e48595503c785f8361ff9a4fde4d67de25c207cd0ba3befd03/multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733", size = 268404, upload-time = "2026-01-26T02:44:00.216Z" }, + { url = "https://files.pythonhosted.org/packages/e0/50/9810c5c29350f7258180dfdcb2e52783a0632862eb334c4896ac717cebcb/multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a", size = 269456, upload-time = "2026-01-26T02:44:02.202Z" }, + { url = "https://files.pythonhosted.org/packages/f3/8d/5e5be3ced1d12966fefb5c4ea3b2a5b480afcea36406559442c6e31d4a48/multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961", size = 256322, upload-time = "2026-01-26T02:44:03.56Z" }, + { url = "https://files.pythonhosted.org/packages/31/6e/d8a26d81ac166a5592782d208dd90dfdc0a7a218adaa52b45a672b46c122/multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582", size = 253955, upload-time = "2026-01-26T02:44:04.845Z" }, + { url = "https://files.pythonhosted.org/packages/59/4c/7c672c8aad41534ba619bcd4ade7a0dc87ed6b8b5c06149b85d3dd03f0cd/multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e", size = 251254, upload-time = "2026-01-26T02:44:06.133Z" }, + { url = "https://files.pythonhosted.org/packages/7b/bd/84c24de512cbafbdbc39439f74e967f19570ce7924e3007174a29c348916/multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3", size = 252059, upload-time = "2026-01-26T02:44:07.518Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ba/f5449385510825b73d01c2d4087bf6d2fccc20a2d42ac34df93191d3dd03/multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6", size = 263588, upload-time = "2026-01-26T02:44:09.382Z" }, + { url = "https://files.pythonhosted.org/packages/d7/11/afc7c677f68f75c84a69fe37184f0f82fce13ce4b92f49f3db280b7e92b3/multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a", size = 259642, upload-time = "2026-01-26T02:44:10.73Z" }, + { url = "https://files.pythonhosted.org/packages/2b/17/ebb9644da78c4ab36403739e0e6e0e30ebb135b9caf3440825001a0bddcb/multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba", size = 251377, upload-time = "2026-01-26T02:44:12.042Z" }, + { url = "https://files.pythonhosted.org/packages/ca/a4/840f5b97339e27846c46307f2530a2805d9d537d8b8bd416af031cad7fa0/multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511", size = 41887, upload-time = "2026-01-26T02:44:14.245Z" }, + { url = "https://files.pythonhosted.org/packages/80/31/0b2517913687895f5904325c2069d6a3b78f66cc641a86a2baf75a05dcbb/multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19", size = 46053, upload-time = "2026-01-26T02:44:15.371Z" }, + { url = "https://files.pythonhosted.org/packages/0c/5b/aba28e4ee4006ae4c7df8d327d31025d760ffa992ea23812a601d226e682/multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf", size = 43307, upload-time = "2026-01-26T02:44:16.852Z" }, + { url = "https://files.pythonhosted.org/packages/f2/22/929c141d6c0dba87d3e1d38fbdf1ba8baba86b7776469f2bc2d3227a1e67/multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23", size = 76174, upload-time = "2026-01-26T02:44:18.509Z" }, + { url = "https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2", size = 45116, upload-time = "2026-01-26T02:44:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/79/76/55cd7186f498ed080a18440c9013011eb548f77ae1b297206d030eb1180a/multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445", size = 43524, upload-time = "2026-01-26T02:44:21.571Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3c/414842ef8d5a1628d68edee29ba0e5bcf235dbfb3ccd3ea303a7fe8c72ff/multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177", size = 249368, upload-time = "2026-01-26T02:44:22.803Z" }, + { url = "https://files.pythonhosted.org/packages/f6/32/befed7f74c458b4a525e60519fe8d87eef72bb1e99924fa2b0f9d97a221e/multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23", size = 256952, upload-time = "2026-01-26T02:44:24.306Z" }, + { url = "https://files.pythonhosted.org/packages/03/d6/c878a44ba877f366630c860fdf74bfb203c33778f12b6ac274936853c451/multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060", size = 240317, upload-time = "2026-01-26T02:44:25.772Z" }, + { url = "https://files.pythonhosted.org/packages/68/49/57421b4d7ad2e9e60e25922b08ceb37e077b90444bde6ead629095327a6f/multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d", size = 267132, upload-time = "2026-01-26T02:44:27.648Z" }, + { url = "https://files.pythonhosted.org/packages/b7/fe/ec0edd52ddbcea2a2e89e174f0206444a61440b40f39704e64dc807a70bd/multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed", size = 268140, upload-time = "2026-01-26T02:44:29.588Z" }, + { url = "https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429", size = 254277, upload-time = "2026-01-26T02:44:30.902Z" }, + { url = "https://files.pythonhosted.org/packages/6a/b2/5fb8c124d7561a4974c342bc8c778b471ebbeb3cc17df696f034a7e9afe7/multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6", size = 252291, upload-time = "2026-01-26T02:44:32.31Z" }, + { url = "https://files.pythonhosted.org/packages/5a/96/51d4e4e06bcce92577fcd488e22600bd38e4fd59c20cb49434d054903bd2/multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9", size = 250156, upload-time = "2026-01-26T02:44:33.734Z" }, + { url = "https://files.pythonhosted.org/packages/db/6b/420e173eec5fba721a50e2a9f89eda89d9c98fded1124f8d5c675f7a0c0f/multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c", size = 249742, upload-time = "2026-01-26T02:44:35.222Z" }, + { url = "https://files.pythonhosted.org/packages/44/a3/ec5b5bd98f306bc2aa297b8c6f11a46714a56b1e6ef5ebda50a4f5d7c5fb/multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84", size = 262221, upload-time = "2026-01-26T02:44:36.604Z" }, + { url = "https://files.pythonhosted.org/packages/cd/f7/e8c0d0da0cd1e28d10e624604e1a36bcc3353aaebdfdc3a43c72bc683a12/multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d", size = 258664, upload-time = "2026-01-26T02:44:38.008Z" }, + { url = "https://files.pythonhosted.org/packages/52/da/151a44e8016dd33feed44f730bd856a66257c1ee7aed4f44b649fb7edeb3/multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33", size = 249490, upload-time = "2026-01-26T02:44:39.386Z" }, + { url = "https://files.pythonhosted.org/packages/87/af/a3b86bf9630b732897f6fc3f4c4714b90aa4361983ccbdcd6c0339b21b0c/multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3", size = 41695, upload-time = "2026-01-26T02:44:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/b2/35/e994121b0e90e46134673422dd564623f93304614f5d11886b1b3e06f503/multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5", size = 45884, upload-time = "2026-01-26T02:44:42.488Z" }, + { url = "https://files.pythonhosted.org/packages/ca/61/42d3e5dbf661242a69c97ea363f2d7b46c567da8eadef8890022be6e2ab0/multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df", size = 43122, upload-time = "2026-01-26T02:44:43.664Z" }, + { url = "https://files.pythonhosted.org/packages/6d/b3/e6b21c6c4f314bb956016b0b3ef2162590a529b84cb831c257519e7fde44/multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1", size = 83175, upload-time = "2026-01-26T02:44:44.894Z" }, + { url = "https://files.pythonhosted.org/packages/fb/76/23ecd2abfe0957b234f6c960f4ade497f55f2c16aeb684d4ecdbf1c95791/multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963", size = 48460, upload-time = "2026-01-26T02:44:46.106Z" }, + { url = "https://files.pythonhosted.org/packages/c4/57/a0ed92b23f3a042c36bc4227b72b97eca803f5f1801c1ab77c8a212d455e/multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34", size = 46930, upload-time = "2026-01-26T02:44:47.278Z" }, + { url = "https://files.pythonhosted.org/packages/b5/66/02ec7ace29162e447f6382c495dc95826bf931d3818799bbef11e8f7df1a/multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65", size = 242582, upload-time = "2026-01-26T02:44:48.604Z" }, + { url = "https://files.pythonhosted.org/packages/58/18/64f5a795e7677670e872673aca234162514696274597b3708b2c0d276cce/multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292", size = 250031, upload-time = "2026-01-26T02:44:50.544Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ed/e192291dbbe51a8290c5686f482084d31bcd9d09af24f63358c3d42fd284/multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43", size = 228596, upload-time = "2026-01-26T02:44:51.951Z" }, + { url = "https://files.pythonhosted.org/packages/1e/7e/3562a15a60cf747397e7f2180b0a11dc0c38d9175a650e75fa1b4d325e15/multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca", size = 257492, upload-time = "2026-01-26T02:44:53.902Z" }, + { url = "https://files.pythonhosted.org/packages/24/02/7d0f9eae92b5249bb50ac1595b295f10e263dd0078ebb55115c31e0eaccd/multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd", size = 255899, upload-time = "2026-01-26T02:44:55.316Z" }, + { url = "https://files.pythonhosted.org/packages/00/e3/9b60ed9e23e64c73a5cde95269ef1330678e9c6e34dd4eb6b431b85b5a10/multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7", size = 247970, upload-time = "2026-01-26T02:44:56.783Z" }, + { url = "https://files.pythonhosted.org/packages/3e/06/538e58a63ed5cfb0bd4517e346b91da32fde409d839720f664e9a4ae4f9d/multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3", size = 245060, upload-time = "2026-01-26T02:44:58.195Z" }, + { url = "https://files.pythonhosted.org/packages/b2/2f/d743a3045a97c895d401e9bd29aaa09b94f5cbdf1bd561609e5a6c431c70/multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4", size = 235888, upload-time = "2026-01-26T02:44:59.57Z" }, + { url = "https://files.pythonhosted.org/packages/38/83/5a325cac191ab28b63c52f14f1131f3b0a55ba3b9aa65a6d0bf2a9b921a0/multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8", size = 243554, upload-time = "2026-01-26T02:45:01.054Z" }, + { url = "https://files.pythonhosted.org/packages/20/1f/9d2327086bd15da2725ef6aae624208e2ef828ed99892b17f60c344e57ed/multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c", size = 252341, upload-time = "2026-01-26T02:45:02.484Z" }, + { url = "https://files.pythonhosted.org/packages/e8/2c/2a1aa0280cf579d0f6eed8ee5211c4f1730bd7e06c636ba2ee6aafda302e/multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52", size = 246391, upload-time = "2026-01-26T02:45:03.862Z" }, + { url = "https://files.pythonhosted.org/packages/e5/03/7ca022ffc36c5a3f6e03b179a5ceb829be9da5783e6fe395f347c0794680/multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108", size = 243422, upload-time = "2026-01-26T02:45:05.296Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1d/b31650eab6c5778aceed46ba735bd97f7c7d2f54b319fa916c0f96e7805b/multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32", size = 47770, upload-time = "2026-01-26T02:45:06.754Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5b/2d2d1d522e51285bd61b1e20df8f47ae1a9d80839db0b24ea783b3832832/multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8", size = 53109, upload-time = "2026-01-26T02:45:08.044Z" }, + { url = "https://files.pythonhosted.org/packages/3d/a3/cc409ba012c83ca024a308516703cf339bdc4b696195644a7215a5164a24/multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118", size = 45573, upload-time = "2026-01-26T02:45:09.349Z" }, + { url = "https://files.pythonhosted.org/packages/91/cc/db74228a8be41884a567e88a62fd589a913708fcf180d029898c17a9a371/multidict-6.7.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f333ec9c5eb1b7105e3b84b53141e66ca05a19a605368c55450b6ba208cb9ee", size = 75190, upload-time = "2026-01-26T02:45:10.651Z" }, + { url = "https://files.pythonhosted.org/packages/d5/22/492f2246bb5b534abd44804292e81eeaf835388901f0c574bac4eeec73c5/multidict-6.7.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a407f13c188f804c759fc6a9f88286a565c242a76b27626594c133b82883b5c2", size = 44486, upload-time = "2026-01-26T02:45:11.938Z" }, + { url = "https://files.pythonhosted.org/packages/f1/4f/733c48f270565d78b4544f2baddc2fb2a245e5a8640254b12c36ac7ac68e/multidict-6.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e161ddf326db5577c3a4cc2d8648f81456e8a20d40415541587a71620d7a7d1", size = 43219, upload-time = "2026-01-26T02:45:14.346Z" }, + { url = "https://files.pythonhosted.org/packages/24/bb/2c0c2287963f4259c85e8bcbba9182ced8d7fca65c780c38e99e61629d11/multidict-6.7.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1e3a8bb24342a8201d178c3b4984c26ba81a577c80d4d525727427460a50c22d", size = 245132, upload-time = "2026-01-26T02:45:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/a7/f9/44d4b3064c65079d2467888794dea218d1601898ac50222ab8a9a8094460/multidict-6.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97231140a50f5d447d3164f994b86a0bed7cd016e2682f8650d6a9158e14fd31", size = 252420, upload-time = "2026-01-26T02:45:17.293Z" }, + { url = "https://files.pythonhosted.org/packages/8b/13/78f7275e73fa17b24c9a51b0bd9d73ba64bb32d0ed51b02a746eb876abe7/multidict-6.7.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b10359683bd8806a200fd2909e7c8ca3a7b24ec1d8132e483d58e791d881048", size = 233510, upload-time = "2026-01-26T02:45:19.356Z" }, + { url = "https://files.pythonhosted.org/packages/4b/25/8167187f62ae3cbd52da7893f58cb036b47ea3fb67138787c76800158982/multidict-6.7.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:283ddac99f7ac25a4acadbf004cb5ae34480bbeb063520f70ce397b281859362", size = 264094, upload-time = "2026-01-26T02:45:20.834Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e7/69a3a83b7b030cf283fb06ce074a05a02322359783424d7edf0f15fe5022/multidict-6.7.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:538cec1e18c067d0e6103aa9a74f9e832904c957adc260e61cd9d8cf0c3b3d37", size = 260786, upload-time = "2026-01-26T02:45:22.818Z" }, + { url = "https://files.pythonhosted.org/packages/fe/3b/8ec5074bcfc450fe84273713b4b0a0dd47c0249358f5d82eb8104ffe2520/multidict-6.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eee46ccb30ff48a1e35bb818cc90846c6be2b68240e42a78599166722cea709", size = 248483, upload-time = "2026-01-26T02:45:24.368Z" }, + { url = "https://files.pythonhosted.org/packages/48/5a/d5a99e3acbca0e29c5d9cba8f92ceb15dce78bab963b308ae692981e3a5d/multidict-6.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa263a02f4f2dd2d11a7b1bb4362aa7cb1049f84a9235d31adf63f30143469a0", size = 248403, upload-time = "2026-01-26T02:45:25.982Z" }, + { url = "https://files.pythonhosted.org/packages/35/48/e58cd31f6c7d5102f2a4bf89f96b9cf7e00b6c6f3d04ecc44417c00a5a3c/multidict-6.7.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2e1425e2f99ec5bd36c15a01b690a1a2456209c5deed58f95469ffb46039ccbb", size = 240315, upload-time = "2026-01-26T02:45:27.487Z" }, + { url = "https://files.pythonhosted.org/packages/94/33/1cd210229559cb90b6786c30676bb0c58249ff42f942765f88793b41fdce/multidict-6.7.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:497394b3239fc6f0e13a78a3e1b61296e72bf1c5f94b4c4eb80b265c37a131cd", size = 245528, upload-time = "2026-01-26T02:45:28.991Z" }, + { url = "https://files.pythonhosted.org/packages/64/f2/6e1107d226278c876c783056b7db43d800bb64c6131cec9c8dfb6903698e/multidict-6.7.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:233b398c29d3f1b9676b4b6f75c518a06fcb2ea0b925119fb2c1bc35c05e1601", size = 258784, upload-time = "2026-01-26T02:45:30.503Z" }, + { url = "https://files.pythonhosted.org/packages/4d/c1/11f664f14d525e4a1b5327a82d4de61a1db604ab34c6603bb3c2cc63ad34/multidict-6.7.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:93b1818e4a6e0930454f0f2af7dfce69307ca03cdcfb3739bf4d91241967b6c1", size = 251980, upload-time = "2026-01-26T02:45:32.603Z" }, + { url = "https://files.pythonhosted.org/packages/e1/9f/75a9ac888121d0c5bbd4ecf4eead45668b1766f6baabfb3b7f66a410e231/multidict-6.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f33dc2a3abe9249ea5d8360f969ec7f4142e7ac45ee7014d8f8d5acddf178b7b", size = 243602, upload-time = "2026-01-26T02:45:34.043Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e7/50bf7b004cc8525d80dbbbedfdc7aed3e4c323810890be4413e589074032/multidict-6.7.1-cp314-cp314-win32.whl", hash = "sha256:3ab8b9d8b75aef9df299595d5388b14530839f6422333357af1339443cff777d", size = 40930, upload-time = "2026-01-26T02:45:36.278Z" }, + { url = "https://files.pythonhosted.org/packages/e0/bf/52f25716bbe93745595800f36fb17b73711f14da59ed0bb2eba141bc9f0f/multidict-6.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:5e01429a929600e7dab7b166062d9bb54a5eed752384c7384c968c2afab8f50f", size = 45074, upload-time = "2026-01-26T02:45:37.546Z" }, + { url = "https://files.pythonhosted.org/packages/97/ab/22803b03285fa3a525f48217963da3a65ae40f6a1b6f6cf2768879e208f9/multidict-6.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:4885cb0e817aef5d00a2e8451d4665c1808378dc27c2705f1bf4ef8505c0d2e5", size = 42471, upload-time = "2026-01-26T02:45:38.889Z" }, + { url = "https://files.pythonhosted.org/packages/e0/6d/f9293baa6146ba9507e360ea0292b6422b016907c393e2f63fc40ab7b7b5/multidict-6.7.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0458c978acd8e6ea53c81eefaddbbee9c6c5e591f41b3f5e8e194780fe026581", size = 82401, upload-time = "2026-01-26T02:45:40.254Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/53b5494738d83558d87c3c71a486504d8373421c3e0dbb6d0db48ad42ee0/multidict-6.7.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c0abd12629b0af3cf590982c0b413b1e7395cd4ec026f30986818ab95bfaa94a", size = 48143, upload-time = "2026-01-26T02:45:41.635Z" }, + { url = "https://files.pythonhosted.org/packages/37/e8/5284c53310dcdc99ce5d66563f6e5773531a9b9fe9ec7a615e9bc306b05f/multidict-6.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:14525a5f61d7d0c94b368a42cff4c9a4e7ba2d52e2672a7b23d84dc86fb02b0c", size = 46507, upload-time = "2026-01-26T02:45:42.99Z" }, + { url = "https://files.pythonhosted.org/packages/e4/fc/6800d0e5b3875568b4083ecf5f310dcf91d86d52573160834fb4bfcf5e4f/multidict-6.7.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17307b22c217b4cf05033dabefe68255a534d637c6c9b0cc8382718f87be4262", size = 239358, upload-time = "2026-01-26T02:45:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/41/75/4ad0973179361cdf3a113905e6e088173198349131be2b390f9fa4da5fc6/multidict-6.7.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a7e590ff876a3eaf1c02a4dfe0724b6e69a9e9de6d8f556816f29c496046e59", size = 246884, upload-time = "2026-01-26T02:45:47.167Z" }, + { url = "https://files.pythonhosted.org/packages/c3/9c/095bb28b5da139bd41fb9a5d5caff412584f377914bd8787c2aa98717130/multidict-6.7.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5fa6a95dfee63893d80a34758cd0e0c118a30b8dcb46372bf75106c591b77889", size = 225878, upload-time = "2026-01-26T02:45:48.698Z" }, + { url = "https://files.pythonhosted.org/packages/07/d0/c0a72000243756e8f5a277b6b514fa005f2c73d481b7d9e47cd4568aa2e4/multidict-6.7.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0543217a6a017692aa6ae5cc39adb75e587af0f3a82288b1492eb73dd6cc2a4", size = 253542, upload-time = "2026-01-26T02:45:50.164Z" }, + { url = "https://files.pythonhosted.org/packages/c0/6b/f69da15289e384ecf2a68837ec8b5ad8c33e973aa18b266f50fe55f24b8c/multidict-6.7.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f99fe611c312b3c1c0ace793f92464d8cd263cc3b26b5721950d977b006b6c4d", size = 252403, upload-time = "2026-01-26T02:45:51.779Z" }, + { url = "https://files.pythonhosted.org/packages/a2/76/b9669547afa5a1a25cd93eaca91c0da1c095b06b6d2d8ec25b713588d3a1/multidict-6.7.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9004d8386d133b7e6135679424c91b0b854d2d164af6ea3f289f8f2761064609", size = 244889, upload-time = "2026-01-26T02:45:53.27Z" }, + { url = "https://files.pythonhosted.org/packages/7e/a9/a50d2669e506dad33cfc45b5d574a205587b7b8a5f426f2fbb2e90882588/multidict-6.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e628ef0e6859ffd8273c69412a2465c4be4a9517d07261b33334b5ec6f3c7489", size = 241982, upload-time = "2026-01-26T02:45:54.919Z" }, + { url = "https://files.pythonhosted.org/packages/c5/bb/1609558ad8b456b4827d3c5a5b775c93b87878fd3117ed3db3423dfbce1b/multidict-6.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:841189848ba629c3552035a6a7f5bf3b02eb304e9fea7492ca220a8eda6b0e5c", size = 232415, upload-time = "2026-01-26T02:45:56.981Z" }, + { url = "https://files.pythonhosted.org/packages/d8/59/6f61039d2aa9261871e03ab9dc058a550d240f25859b05b67fd70f80d4b3/multidict-6.7.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ce1bbd7d780bb5a0da032e095c951f7014d6b0a205f8318308140f1a6aba159e", size = 240337, upload-time = "2026-01-26T02:45:58.698Z" }, + { url = "https://files.pythonhosted.org/packages/a1/29/fdc6a43c203890dc2ae9249971ecd0c41deaedfe00d25cb6564b2edd99eb/multidict-6.7.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b26684587228afed0d50cf804cc71062cc9c1cdf55051c4c6345d372947b268c", size = 248788, upload-time = "2026-01-26T02:46:00.862Z" }, + { url = "https://files.pythonhosted.org/packages/a9/14/a153a06101323e4cf086ecee3faadba52ff71633d471f9685c42e3736163/multidict-6.7.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9f9af11306994335398293f9958071019e3ab95e9a707dc1383a35613f6abcb9", size = 242842, upload-time = "2026-01-26T02:46:02.824Z" }, + { url = "https://files.pythonhosted.org/packages/41/5f/604ae839e64a4a6efc80db94465348d3b328ee955e37acb24badbcd24d83/multidict-6.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b4938326284c4f1224178a560987b6cf8b4d38458b113d9b8c1db1a836e640a2", size = 240237, upload-time = "2026-01-26T02:46:05.898Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/c3a5187bf66f6fb546ff4ab8fb5a077cbdd832d7b1908d4365c7f74a1917/multidict-6.7.1-cp314-cp314t-win32.whl", hash = "sha256:98655c737850c064a65e006a3df7c997cd3b220be4ec8fe26215760b9697d4d7", size = 48008, upload-time = "2026-01-26T02:46:07.468Z" }, + { url = "https://files.pythonhosted.org/packages/0c/f7/addf1087b860ac60e6f382240f64fb99f8bfb532bb06f7c542b83c29ca61/multidict-6.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:497bde6223c212ba11d462853cfa4f0ae6ef97465033e7dc9940cdb3ab5b48e5", size = 53542, upload-time = "2026-01-26T02:46:08.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/81/4629d0aa32302ef7b2ec65c75a728cc5ff4fa410c50096174c1632e70b3e/multidict-6.7.1-cp314-cp314t-win_arm64.whl", hash = "sha256:2bbd113e0d4af5db41d5ebfe9ccaff89de2120578164f86a5d17d5a576d1e5b2", size = 44719, upload-time = "2026-01-26T02:46:11.146Z" }, + { url = "https://files.pythonhosted.org/packages/81/08/7036c080d7117f28a4af526d794aab6a84463126db031b007717c1a6676e/multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56", size = 12319, upload-time = "2026-01-26T02:46:44.004Z" }, +] + +[[package]] +name = "narwhals" +version = "2.19.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4e/1a/bd3317c0bdbcd9ffb710ddf5250b32898f8f2c240be99494fe137feb77a7/narwhals-2.19.0.tar.gz", hash = "sha256:14fd7040b5ff211d415a82e4827b9d04c354e213e72a6d0730205ffd72e3b7ff", size = 623698, upload-time = "2026-04-06T15:50:58.786Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/72/e61e3091e0e00fae9d3a8ef85ece9d2cd4b5966058e1f2901ce42679eebf/narwhals-2.19.0-py3-none-any.whl", hash = "sha256:1f8dfa4a33a6dbff878c3e9be4c3b455dfcaf2a9322f1357db00e4e92e95b84b", size = 446991, upload-time = "2026-04-06T15:50:57.046Z" }, +] + +[[package]] +name = "nbformat" +version = "5.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastjsonschema" }, + { name = "jsonschema" }, + { name = "jupyter-core" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749, upload-time = "2024-04-04T11:20:37.371Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454, upload-time = "2024-04-04T11:20:34.895Z" }, +] + +[[package]] +name = "networkx" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, +] + +[[package]] +name = "numba" +version = "0.53.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", + "python_full_version < '3.14' and platform_machine == 'x86_64' and sys_platform == 'darwin'", +] +dependencies = [ + { name = "llvmlite", version = "0.36.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, + { name = "numpy", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, + { name = "setuptools", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e3/7d/3d61160836e49f40913741c464f119551c15ed371c1d91ea50308495b93b/numba-0.53.1.tar.gz", hash = "sha256:9cd4e5216acdc66c4e9dab2dfd22ddb5bef151185c070d4a3cd8e78638aff5b0", size = 2213956, upload-time = "2021-03-26T09:15:50.402Z" } + +[[package]] +name = "numba" +version = "0.65.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "(python_full_version >= '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", + "python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version < '3.14' and sys_platform == 'emscripten'", + "(python_full_version < '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.14' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", +] +dependencies = [ + { name = "llvmlite", version = "0.47.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, + { name = "numpy", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/61/7299643b9c18d669e04be7c5bcb64d985070d07553274817b45b049e7bfe/numba-0.65.0.tar.gz", hash = "sha256:edad0d9f6682e93624c00125a471ae4df186175d71fd604c983c377cdc03e68b", size = 2764131, upload-time = "2026-04-01T03:52:01.946Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/2f/8bd31a1ea43c01ac215283d83aa5f8d5acbe7a36c85b82f1757bfe9ccb31/numba-0.65.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:b27ee4847e1bfb17e9604d100417ee7c1d10f15a6711c6213404b3da13a0b2aa", size = 2680705, upload-time = "2026-04-01T03:51:32.597Z" }, + { url = "https://files.pythonhosted.org/packages/73/36/88406bd58600cc696417b8e5dd6a056478da808f3eaf48d18e2421e0c2d9/numba-0.65.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a52d92ffd297c10364bce60cd1fcb88f99284ab5df085f2c6bcd1cb33b529a6f", size = 3801411, upload-time = "2026-04-01T03:51:34.321Z" }, + { url = "https://files.pythonhosted.org/packages/0c/61/ce753a1d7646dd477e16d15e89473703faebb8995d2f71d7ad69a540b565/numba-0.65.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:da8e371e328c06d0010c3d8b44b21858652831b85bcfba78cb22c042e22dbd8e", size = 3501622, upload-time = "2026-04-01T03:51:36.348Z" }, + { url = "https://files.pythonhosted.org/packages/7d/86/db87a5393f1b1fabef53ac3ba4e6b938bb27e40a04ad7cc512098fcae032/numba-0.65.0-cp312-cp312-win_amd64.whl", hash = "sha256:59bb9f2bb9f1238dfd8e927ba50645c18ae769fef4f3d58ea0ea22a2683b91f5", size = 2749979, upload-time = "2026-04-01T03:51:37.88Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f8/eee0f1ff456218db036bfc9023995ec1f85a9dc8f2422f1594f6a87829e0/numba-0.65.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:c6334094563a456a695c812e6846288376ca02327cf246cdcc83e1bb27862367", size = 2680679, upload-time = "2026-04-01T03:51:39.491Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8f/3d116e4b8e92f6abace431afa4b2b944f4d65bdee83af886f5c4b263df95/numba-0.65.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b8a9008411615c69d083d1dcf477f75a5aa727b30beb16e139799e2be945cdfd", size = 3809537, upload-time = "2026-04-01T03:51:41.42Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2c/6a3ca4128e253cb67affe06deb47688f51ce968f5111e2a06d010e6f1fa6/numba-0.65.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af96c0cba53664efcb361528b8c75e011a6556c859c7e08424c2715201c6cf7a", size = 3508615, upload-time = "2026-04-01T03:51:43.444Z" }, + { url = "https://files.pythonhosted.org/packages/96/0e/267f9a36fb282c104a971d7eecb685b411c47dce2a740fe69cf5fc2945d9/numba-0.65.0-cp313-cp313-win_amd64.whl", hash = "sha256:6254e73b9c929dc736a1fbd3d6f5680789709a5067cae1fa7198707385129c04", size = 2749938, upload-time = "2026-04-01T03:51:45.218Z" }, + { url = "https://files.pythonhosted.org/packages/56/a4/90edb01e9176053578e343d7a7276bc28356741ee67059aed8ed2c1a4e59/numba-0.65.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:ee336b398a6fca51b1f626034de99f50cb1bd87d537a166275158a3cee744b82", size = 2680878, upload-time = "2026-04-01T03:51:46.91Z" }, + { url = "https://files.pythonhosted.org/packages/24/8d/e12d6ff4b9119db3cbf7b2db1ce257576441bd3c76388c786dea74f20b02/numba-0.65.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:05c0a9fdf75d85f57dee47b719e8d6415707b80aae45d75f63f9dc1b935c29f7", size = 3778456, upload-time = "2026-04-01T03:51:48.552Z" }, + { url = "https://files.pythonhosted.org/packages/17/89/abcd83e76f6a773276fe76244140671bcc5bf820f6e2ae1a15362ae4c8c9/numba-0.65.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:583680e0e8faf124d362df23b4b593f3221a8996341a63d1b664c122401bec2f", size = 3478464, upload-time = "2026-04-01T03:51:50.527Z" }, + { url = "https://files.pythonhosted.org/packages/73/5b/fbce55ce3d933afbc7ade04df826853e4a846aaa47d58d2fbb669b8f2d08/numba-0.65.0-cp314-cp314-win_amd64.whl", hash = "sha256:add297d3e1c08dd884f44100152612fa41e66a51d15fdf91307f9dde31d06830", size = 2752012, upload-time = "2026-04-01T03:51:52.691Z" }, + { url = "https://files.pythonhosted.org/packages/1e/ab/af705f4257d9388fb2fd6d7416573e98b6ca9c786e8b58f02720978557bd/numba-0.65.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:194a243ba53a9157c8538cbb3166ec015d785a8c5d584d06cdd88bee902233c7", size = 2683961, upload-time = "2026-04-01T03:51:54.281Z" }, + { url = "https://files.pythonhosted.org/packages/ff/e5/8267b0adb0c01b52b553df5062fbbb42c30ed5362d08b85cc913a36f838f/numba-0.65.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c7fa502960f7a2f3f5cb025bc7bff888a3551277b92431bfdc5ba2f11a375749", size = 3816373, upload-time = "2026-04-01T03:51:56.18Z" }, + { url = "https://files.pythonhosted.org/packages/b0/f5/b8397ca360971669a93706b9274592b6864e4367a37d498fbbcb62aa2d48/numba-0.65.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5046c63f783ca3eb6195f826a50797465e7c4ce811daa17c9bea47e310c9b964", size = 3532782, upload-time = "2026-04-01T03:51:58.387Z" }, + { url = "https://files.pythonhosted.org/packages/f5/21/1e73fa16bf0393ebb74c5bb208d712152ffdfc84600a8e93a3180317856e/numba-0.65.0-cp314-cp314t-win_amd64.whl", hash = "sha256:46fd679ae4f68c7a5d5721efbd29ecee0b0f3013211591891d79b51bfdf73113", size = 2757611, upload-time = "2026-04-01T03:52:00.083Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/9f/b8cef5bffa569759033adda9481211426f12f53299629b410340795c2514/numpy-2.4.4.tar.gz", hash = "sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0", size = 20731587, upload-time = "2026-03-29T13:22:01.298Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/05/32396bec30fb2263770ee910142f49c1476d08e8ad41abf8403806b520ce/numpy-2.4.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:15716cfef24d3a9762e3acdf87e27f58dc823d1348f765bbea6bef8c639bfa1b", size = 16689272, upload-time = "2026-03-29T13:18:49.223Z" }, + { url = "https://files.pythonhosted.org/packages/c5/f3/a983d28637bfcd763a9c7aafdb6d5c0ebf3d487d1e1459ffdb57e2f01117/numpy-2.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23cbfd4c17357c81021f21540da84ee282b9c8fba38a03b7b9d09ba6b951421e", size = 14699573, upload-time = "2026-03-29T13:18:52.629Z" }, + { url = "https://files.pythonhosted.org/packages/9b/fd/e5ecca1e78c05106d98028114f5c00d3eddb41207686b2b7de3e477b0e22/numpy-2.4.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8b3b60bb7cba2c8c81837661c488637eee696f59a877788a396d33150c35d842", size = 5204782, upload-time = "2026-03-29T13:18:55.579Z" }, + { url = "https://files.pythonhosted.org/packages/de/2f/702a4594413c1a8632092beae8aba00f1d67947389369b3777aed783fdca/numpy-2.4.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e4a010c27ff6f210ff4c6ef34394cd61470d01014439b192ec22552ee867f2a8", size = 6552038, upload-time = "2026-03-29T13:18:57.769Z" }, + { url = "https://files.pythonhosted.org/packages/7f/37/eed308a8f56cba4d1fdf467a4fc67ef4ff4bf1c888f5fc980481890104b1/numpy-2.4.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f9e75681b59ddaa5e659898085ae0eaea229d054f2ac0c7e563a62205a700121", size = 15670666, upload-time = "2026-03-29T13:19:00.341Z" }, + { url = "https://files.pythonhosted.org/packages/0a/0d/0e3ecece05b7a7e87ab9fb587855548da437a061326fff64a223b6dcb78a/numpy-2.4.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:81f4a14bee47aec54f883e0cad2d73986640c1590eb9bfaaba7ad17394481e6e", size = 16645480, upload-time = "2026-03-29T13:19:03.63Z" }, + { url = "https://files.pythonhosted.org/packages/34/49/f2312c154b82a286758ee2f1743336d50651f8b5195db18cdb63675ff649/numpy-2.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:62d6b0f03b694173f9fcb1fb317f7222fd0b0b103e784c6549f5e53a27718c44", size = 17020036, upload-time = "2026-03-29T13:19:07.428Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e9/736d17bd77f1b0ec4f9901aaec129c00d59f5d84d5e79bba540ef12c2330/numpy-2.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fbc356aae7adf9e6336d336b9c8111d390a05df88f1805573ebb0807bd06fd1d", size = 18368643, upload-time = "2026-03-29T13:19:10.775Z" }, + { url = "https://files.pythonhosted.org/packages/63/f6/d417977c5f519b17c8a5c3bc9e8304b0908b0e21136fe43bf628a1343914/numpy-2.4.4-cp312-cp312-win32.whl", hash = "sha256:0d35aea54ad1d420c812bfa0385c71cd7cc5bcf7c65fed95fc2cd02fe8c79827", size = 5961117, upload-time = "2026-03-29T13:19:13.464Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5b/e1deebf88ff431b01b7406ca3583ab2bbb90972bbe1c568732e49c844f7e/numpy-2.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:b5f0362dc928a6ecd9db58868fca5e48485205e3855957bdedea308f8672ea4a", size = 12320584, upload-time = "2026-03-29T13:19:16.155Z" }, + { url = "https://files.pythonhosted.org/packages/58/89/e4e856ac82a68c3ed64486a544977d0e7bdd18b8da75b78a577ca31c4395/numpy-2.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:846300f379b5b12cc769334464656bc882e0735d27d9726568bc932fdc49d5ec", size = 10221450, upload-time = "2026-03-29T13:19:18.994Z" }, + { url = "https://files.pythonhosted.org/packages/14/1d/d0a583ce4fefcc3308806a749a536c201ed6b5ad6e1322e227ee4848979d/numpy-2.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:08f2e31ed5e6f04b118e49821397f12767934cfdd12a1ce86a058f91e004ee50", size = 16684933, upload-time = "2026-03-29T13:19:22.47Z" }, + { url = "https://files.pythonhosted.org/packages/c1/62/2b7a48fbb745d344742c0277f01286dead15f3f68e4f359fbfcf7b48f70f/numpy-2.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115", size = 14694532, upload-time = "2026-03-29T13:19:25.581Z" }, + { url = "https://files.pythonhosted.org/packages/e5/87/499737bfba066b4a3bebff24a8f1c5b2dee410b209bc6668c9be692580f0/numpy-2.4.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af", size = 5199661, upload-time = "2026-03-29T13:19:28.31Z" }, + { url = "https://files.pythonhosted.org/packages/cd/da/464d551604320d1491bc345efed99b4b7034143a85787aab78d5691d5a0e/numpy-2.4.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d2a8490669bfe99a233298348acc2d824d496dee0e66e31b66a6022c2ad74a5c", size = 6547539, upload-time = "2026-03-29T13:19:30.97Z" }, + { url = "https://files.pythonhosted.org/packages/7d/90/8d23e3b0dafd024bf31bdec225b3bb5c2dbfa6912f8a53b8659f21216cbf/numpy-2.4.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:45dbed2ab436a9e826e302fcdcbe9133f9b0006e5af7168afb8963a6520da103", size = 15668806, upload-time = "2026-03-29T13:19:33.887Z" }, + { url = "https://files.pythonhosted.org/packages/d1/73/a9d864e42a01896bb5974475438f16086be9ba1f0d19d0bb7a07427c4a8b/numpy-2.4.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83", size = 16632682, upload-time = "2026-03-29T13:19:37.336Z" }, + { url = "https://files.pythonhosted.org/packages/34/fb/14570d65c3bde4e202a031210475ae9cde9b7686a2e7dc97ee67d2833b35/numpy-2.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:99d838547ace2c4aace6c4f76e879ddfe02bb58a80c1549928477862b7a6d6ed", size = 17019810, upload-time = "2026-03-29T13:19:40.963Z" }, + { url = "https://files.pythonhosted.org/packages/8a/77/2ba9d87081fd41f6d640c83f26fb7351e536b7ce6dd9061b6af5904e8e46/numpy-2.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959", size = 18357394, upload-time = "2026-03-29T13:19:44.859Z" }, + { url = "https://files.pythonhosted.org/packages/a2/23/52666c9a41708b0853fa3b1a12c90da38c507a3074883823126d4e9d5b30/numpy-2.4.4-cp313-cp313-win32.whl", hash = "sha256:07077278157d02f65c43b1b26a3886bce886f95d20aabd11f87932750dfb14ed", size = 5959556, upload-time = "2026-03-29T13:19:47.661Z" }, + { url = "https://files.pythonhosted.org/packages/57/fb/48649b4971cde70d817cf97a2a2fdc0b4d8308569f1dd2f2611959d2e0cf/numpy-2.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:5c70f1cc1c4efbe316a572e2d8b9b9cc44e89b95f79ca3331553fbb63716e2bf", size = 12317311, upload-time = "2026-03-29T13:19:50.67Z" }, + { url = "https://files.pythonhosted.org/packages/ba/d8/11490cddd564eb4de97b4579ef6bfe6a736cc07e94c1598590ae25415e01/numpy-2.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:ef4059d6e5152fa1a39f888e344c73fdc926e1b2dd58c771d67b0acfbf2aa67d", size = 10222060, upload-time = "2026-03-29T13:19:54.229Z" }, + { url = "https://files.pythonhosted.org/packages/99/5d/dab4339177a905aad3e2221c915b35202f1ec30d750dd2e5e9d9a72b804b/numpy-2.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5", size = 14822302, upload-time = "2026-03-29T13:19:57.585Z" }, + { url = "https://files.pythonhosted.org/packages/eb/e4/0564a65e7d3d97562ed6f9b0fd0fb0a6f559ee444092f105938b50043876/numpy-2.4.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7", size = 5327407, upload-time = "2026-03-29T13:20:00.601Z" }, + { url = "https://files.pythonhosted.org/packages/29/8d/35a3a6ce5ad371afa58b4700f1c820f8f279948cca32524e0a695b0ded83/numpy-2.4.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:4636de7fd195197b7535f231b5de9e4b36d2c440b6e566d2e4e4746e6af0ca93", size = 6647631, upload-time = "2026-03-29T13:20:02.855Z" }, + { url = "https://files.pythonhosted.org/packages/f4/da/477731acbd5a58a946c736edfdabb2ac5b34c3d08d1ba1a7b437fa0884df/numpy-2.4.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ad2e2ef14e0b04e544ea2fa0a36463f847f113d314aa02e5b402fdf910ef309e", size = 15727691, upload-time = "2026-03-29T13:20:06.004Z" }, + { url = "https://files.pythonhosted.org/packages/e6/db/338535d9b152beabeb511579598418ba0212ce77cf9718edd70262cc4370/numpy-2.4.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40", size = 16681241, upload-time = "2026-03-29T13:20:09.417Z" }, + { url = "https://files.pythonhosted.org/packages/e2/a9/ad248e8f58beb7a0219b413c9c7d8151c5d285f7f946c3e26695bdbbe2df/numpy-2.4.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f8474c4241bc18b750be2abea9d7a9ec84f46ef861dbacf86a4f6e043401f79e", size = 17085767, upload-time = "2026-03-29T13:20:13.126Z" }, + { url = "https://files.pythonhosted.org/packages/b5/1a/3b88ccd3694681356f70da841630e4725a7264d6a885c8d442a697e1146b/numpy-2.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392", size = 18403169, upload-time = "2026-03-29T13:20:17.096Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c9/fcfd5d0639222c6eac7f304829b04892ef51c96a75d479214d77e3ce6e33/numpy-2.4.4-cp313-cp313t-win32.whl", hash = "sha256:9c585a1790d5436a5374bac930dad6ed244c046ed91b2b2a3634eb2971d21008", size = 6083477, upload-time = "2026-03-29T13:20:20.195Z" }, + { url = "https://files.pythonhosted.org/packages/d5/e3/3938a61d1c538aaec8ed6fd6323f57b0c2d2d2219512434c5c878db76553/numpy-2.4.4-cp313-cp313t-win_amd64.whl", hash = "sha256:93e15038125dc1e5345d9b5b68aa7f996ec33b98118d18c6ca0d0b7d6198b7e8", size = 12457487, upload-time = "2026-03-29T13:20:22.946Z" }, + { url = "https://files.pythonhosted.org/packages/97/6a/7e345032cc60501721ef94e0e30b60f6b0bd601f9174ebd36389a2b86d40/numpy-2.4.4-cp313-cp313t-win_arm64.whl", hash = "sha256:0dfd3f9d3adbe2920b68b5cd3d51444e13a10792ec7154cd0a2f6e74d4ab3233", size = 10292002, upload-time = "2026-03-29T13:20:25.909Z" }, + { url = "https://files.pythonhosted.org/packages/6e/06/c54062f85f673dd5c04cbe2f14c3acb8c8b95e3384869bb8cc9bff8cb9df/numpy-2.4.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:f169b9a863d34f5d11b8698ead99febeaa17a13ca044961aa8e2662a6c7766a0", size = 16684353, upload-time = "2026-03-29T13:20:29.504Z" }, + { url = "https://files.pythonhosted.org/packages/4c/39/8a320264a84404c74cc7e79715de85d6130fa07a0898f67fb5cd5bd79908/numpy-2.4.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2483e4584a1cb3092da4470b38866634bafb223cbcd551ee047633fd2584599a", size = 14704914, upload-time = "2026-03-29T13:20:33.547Z" }, + { url = "https://files.pythonhosted.org/packages/91/fb/287076b2614e1d1044235f50f03748f31fa287e3dbe6abeb35cdfa351eca/numpy-2.4.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:2d19e6e2095506d1736b7d80595e0f252d76b89f5e715c35e06e937679ea7d7a", size = 5210005, upload-time = "2026-03-29T13:20:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/63/eb/fcc338595309910de6ecabfcef2419a9ce24399680bfb149421fa2df1280/numpy-2.4.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:6a246d5914aa1c820c9443ddcee9c02bec3e203b0c080349533fae17727dfd1b", size = 6544974, upload-time = "2026-03-29T13:20:39.014Z" }, + { url = "https://files.pythonhosted.org/packages/44/5d/e7e9044032a716cdfaa3fba27a8e874bf1c5f1912a1ddd4ed071bf8a14a6/numpy-2.4.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:989824e9faf85f96ec9c7761cd8d29c531ad857bfa1daa930cba85baaecf1a9a", size = 15684591, upload-time = "2026-03-29T13:20:42.146Z" }, + { url = "https://files.pythonhosted.org/packages/98/7c/21252050676612625449b4807d6b695b9ce8a7c9e1c197ee6216c8a65c7c/numpy-2.4.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:27a8d92cd10f1382a67d7cf4db7ce18341b66438bdd9f691d7b0e48d104c2a9d", size = 16637700, upload-time = "2026-03-29T13:20:46.204Z" }, + { url = "https://files.pythonhosted.org/packages/b1/29/56d2bbef9465db24ef25393383d761a1af4f446a1df9b8cded4fe3a5a5d7/numpy-2.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e44319a2953c738205bf3354537979eaa3998ed673395b964c1176083dd46252", size = 17035781, upload-time = "2026-03-29T13:20:50.242Z" }, + { url = "https://files.pythonhosted.org/packages/e3/2b/a35a6d7589d21f44cea7d0a98de5ddcbb3d421b2622a5c96b1edf18707c3/numpy-2.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e892aff75639bbef0d2a2cfd55535510df26ff92f63c92cd84ef8d4ba5a5557f", size = 18362959, upload-time = "2026-03-29T13:20:54.019Z" }, + { url = "https://files.pythonhosted.org/packages/64/c9/d52ec581f2390e0f5f85cbfd80fb83d965fc15e9f0e1aec2195faa142cde/numpy-2.4.4-cp314-cp314-win32.whl", hash = "sha256:1378871da56ca8943c2ba674530924bb8ca40cd228358a3b5f302ad60cf875fc", size = 6008768, upload-time = "2026-03-29T13:20:56.912Z" }, + { url = "https://files.pythonhosted.org/packages/fa/22/4cc31a62a6c7b74a8730e31a4274c5dc80e005751e277a2ce38e675e4923/numpy-2.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:715d1c092715954784bc79e1174fc2a90093dc4dc84ea15eb14dad8abdcdeb74", size = 12449181, upload-time = "2026-03-29T13:20:59.548Z" }, + { url = "https://files.pythonhosted.org/packages/70/2e/14cda6f4d8e396c612d1bf97f22958e92148801d7e4f110cabebdc0eef4b/numpy-2.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:2c194dd721e54ecad9ad387c1d35e63dce5c4450c6dc7dd5611283dda239aabb", size = 10496035, upload-time = "2026-03-29T13:21:02.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e8/8fed8c8d848d7ecea092dc3469643f9d10bc3a134a815a3b033da1d2039b/numpy-2.4.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2aa0613a5177c264ff5921051a5719d20095ea586ca88cc802c5c218d1c67d3e", size = 14824958, upload-time = "2026-03-29T13:21:05.671Z" }, + { url = "https://files.pythonhosted.org/packages/05/1a/d8007a5138c179c2bf33ef44503e83d70434d2642877ee8fbb230e7c0548/numpy-2.4.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:42c16925aa5a02362f986765f9ebabf20de75cdefdca827d14315c568dcab113", size = 5330020, upload-time = "2026-03-29T13:21:08.635Z" }, + { url = "https://files.pythonhosted.org/packages/99/64/ffb99ac6ae93faf117bcbd5c7ba48a7f45364a33e8e458545d3633615dda/numpy-2.4.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:874f200b2a981c647340f841730fc3a2b54c9d940566a3c4149099591e2c4c3d", size = 6650758, upload-time = "2026-03-29T13:21:10.949Z" }, + { url = "https://files.pythonhosted.org/packages/6e/6e/795cc078b78a384052e73b2f6281ff7a700e9bf53bcce2ee579d4f6dd879/numpy-2.4.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c9b39d38a9bd2ae1becd7eac1303d031c5c110ad31f2b319c6e7d98b135c934d", size = 15729948, upload-time = "2026-03-29T13:21:14.047Z" }, + { url = "https://files.pythonhosted.org/packages/5f/86/2acbda8cc2af5f3d7bfc791192863b9e3e19674da7b5e533fded124d1299/numpy-2.4.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b268594bccac7d7cf5844c7732e3f20c50921d94e36d7ec9b79e9857694b1b2f", size = 16679325, upload-time = "2026-03-29T13:21:17.561Z" }, + { url = "https://files.pythonhosted.org/packages/bc/59/cafd83018f4aa55e0ac6fa92aa066c0a1877b77a615ceff1711c260ffae8/numpy-2.4.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ac6b31e35612a26483e20750126d30d0941f949426974cace8e6b5c58a3657b0", size = 17084883, upload-time = "2026-03-29T13:21:21.106Z" }, + { url = "https://files.pythonhosted.org/packages/f0/85/a42548db84e65ece46ab2caea3d3f78b416a47af387fcbb47ec28e660dc2/numpy-2.4.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8e3ed142f2728df44263aaf5fb1f5b0b99f4070c553a0d7f033be65338329150", size = 18403474, upload-time = "2026-03-29T13:21:24.828Z" }, + { url = "https://files.pythonhosted.org/packages/ed/ad/483d9e262f4b831000062e5d8a45e342166ec8aaa1195264982bca267e62/numpy-2.4.4-cp314-cp314t-win32.whl", hash = "sha256:dddbbd259598d7240b18c9d87c56a9d2fb3b02fe266f49a7c101532e78c1d871", size = 6155500, upload-time = "2026-03-29T13:21:28.205Z" }, + { url = "https://files.pythonhosted.org/packages/c7/03/2fc4e14c7bd4ff2964b74ba90ecb8552540b6315f201df70f137faa5c589/numpy-2.4.4-cp314-cp314t-win_amd64.whl", hash = "sha256:a7164afb23be6e37ad90b2f10426149fd75aee07ca55653d2aa41e66c4ef697e", size = 12637755, upload-time = "2026-03-29T13:21:31.107Z" }, + { url = "https://files.pythonhosted.org/packages/58/78/548fb8e07b1a341746bfbecb32f2c268470f45fa028aacdbd10d9bc73aab/numpy-2.4.4-cp314-cp314t-win_arm64.whl", hash = "sha256:ba203255017337d39f89bdd58417f03c4426f12beed0440cfd933cb15f8669c7", size = 10566643, upload-time = "2026-03-29T13:21:34.339Z" }, +] + +[[package]] +name = "nvidia-cublas" +version = "13.1.0.3" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/a5/fce49e2ae977e0ccc084e5adafceb4f0ac0c8333cb6863501618a7277f67/nvidia_cublas-13.1.0.3-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:c86fc7f7ae36d7528288c5d88098edcb7b02c633d262e7ddbb86b0ad91be5df2", size = 542851226, upload-time = "2025-10-09T08:59:04.818Z" }, + { url = "https://files.pythonhosted.org/packages/e7/44/423ac00af4dd95a5aeb27207e2c0d9b7118702149bf4704c3ddb55bb7429/nvidia_cublas-13.1.0.3-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:ee8722c1f0145ab246bccb9e452153b5e0515fd094c3678df50b2a0888b8b171", size = 423133236, upload-time = "2025-10-09T08:59:32.536Z" }, +] + +[[package]] +name = "nvidia-cuda-cupti" +version = "13.0.85" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/2a/80353b103fc20ce05ef51e928daed4b6015db4aaa9162ed0997090fe2250/nvidia_cuda_cupti-13.0.85-py3-none-manylinux_2_25_aarch64.whl", hash = "sha256:796bd679890ee55fb14a94629b698b6db54bcfd833d391d5e94017dd9d7d3151", size = 10310827, upload-time = "2025-09-04T08:26:42.012Z" }, + { url = "https://files.pythonhosted.org/packages/33/6d/737d164b4837a9bbd202f5ae3078975f0525a55730fe871d8ed4e3b952b0/nvidia_cuda_cupti-13.0.85-py3-none-manylinux_2_25_x86_64.whl", hash = "sha256:4eb01c08e859bf924d222250d2e8f8b8ff6d3db4721288cf35d14252a4d933c8", size = 10715597, upload-time = "2025-09-04T08:26:51.312Z" }, +] + +[[package]] +name = "nvidia-cuda-nvrtc" +version = "13.0.88" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/68/483a78f5e8f31b08fb1bb671559968c0ca3a065ac7acabfc7cee55214fd6/nvidia_cuda_nvrtc-13.0.88-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:ad9b6d2ead2435f11cbb6868809d2adeeee302e9bb94bcf0539c7a40d80e8575", size = 90215200, upload-time = "2025-09-04T08:28:44.204Z" }, + { url = "https://files.pythonhosted.org/packages/b7/dc/6bb80850e0b7edd6588d560758f17e0550893a1feaf436807d64d2da040f/nvidia_cuda_nvrtc-13.0.88-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d27f20a0ca67a4bb34268a5e951033496c5b74870b868bacd046b1b8e0c3267b", size = 43015449, upload-time = "2025-09-04T08:28:20.239Z" }, +] + +[[package]] +name = "nvidia-cuda-runtime" +version = "13.0.96" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/4f/17d7b9b8e285199c58ce28e31b5c5bbaa4d8271af06a89b6405258245de2/nvidia_cuda_runtime-13.0.96-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ef9bcbe90493a2b9d810e43d249adb3d02e98dd30200d86607d8d02687c43f55", size = 2261060, upload-time = "2025-10-09T08:55:15.78Z" }, + { url = "https://files.pythonhosted.org/packages/2e/24/d1558f3b68b1d26e706813b1d10aa1d785e4698c425af8db8edc3dced472/nvidia_cuda_runtime-13.0.96-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7f82250d7782aa23b6cfe765ecc7db554bd3c2870c43f3d1821f1d18aebf0548", size = 2243632, upload-time = "2025-10-09T08:55:36.117Z" }, +] + +[[package]] +name = "nvidia-cudnn-cu13" +version = "9.19.0.56" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas", marker = "(platform_machine != 'x86_64' and sys_platform == 'darwin') or (sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/84/26025437c1e6b61a707442184fa0c03d083b661adf3a3eecfd6d21677740/nvidia_cudnn_cu13-9.19.0.56-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:6ed29ffaee1176c612daf442e4dd6cfeb6a0caa43ddcbeb59da94953030b1be4", size = 433781201, upload-time = "2026-02-03T20:40:53.805Z" }, + { url = "https://files.pythonhosted.org/packages/a3/22/0b4b932655d17a6da1b92fa92ab12844b053bb2ac2475e179ba6f043da1e/nvidia_cudnn_cu13-9.19.0.56-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:d20e1734305e9d68889a96e3f35094d733ff1f83932ebe462753973e53a572bf", size = 366066321, upload-time = "2026-02-03T20:44:52.837Z" }, +] + +[[package]] +name = "nvidia-cufft" +version = "12.0.0.61" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink", marker = "(platform_machine != 'x86_64' and sys_platform == 'darwin') or (sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/ae/f417a75c0259e85c1d2f83ca4e960289a5f814ed0cea74d18c353d3e989d/nvidia_cufft-12.0.0.61-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2708c852ef8cd89d1d2068bdbece0aa188813a0c934db3779b9b1faa8442e5f5", size = 214053554, upload-time = "2025-09-04T08:31:38.196Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2f/7b57e29836ea8714f81e9898409196f47d772d5ddedddf1592eadb8ab743/nvidia_cufft-12.0.0.61-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6c44f692dce8fd5ffd3e3df134b6cdb9c2f72d99cf40b62c32dde45eea9ddad3", size = 214085489, upload-time = "2025-09-04T08:31:56.044Z" }, +] + +[[package]] +name = "nvidia-cufile" +version = "1.15.1.6" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/70/4f193de89a48b71714e74602ee14d04e4019ad36a5a9f20c425776e72cd6/nvidia_cufile-1.15.1.6-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:08a3ecefae5a01c7f5117351c64f17c7c62efa5fffdbe24fc7d298da19cd0b44", size = 1223672, upload-time = "2025-09-04T08:32:22.779Z" }, + { url = "https://files.pythonhosted.org/packages/ab/73/cc4a14c9813a8a0d509417cf5f4bdaba76e924d58beb9864f5a7baceefbf/nvidia_cufile-1.15.1.6-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:bdc0deedc61f548bddf7733bdc216456c2fdb101d020e1ab4b88d232d5e2f6d1", size = 1136992, upload-time = "2025-09-04T08:32:14.119Z" }, +] + +[[package]] +name = "nvidia-curand" +version = "10.4.0.35" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/72/7c2ae24fb6b63a32e6ae5d241cc65263ea18d08802aaae087d9f013335a2/nvidia_curand-10.4.0.35-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:133df5a7509c3e292aaa2b477afd0194f06ce4ea24d714d616ff36439cee349a", size = 61962106, upload-time = "2025-08-04T10:21:41.128Z" }, + { url = "https://files.pythonhosted.org/packages/a5/9f/be0a41ca4a4917abf5cb9ae0daff1a6060cc5de950aec0396de9f3b52bc5/nvidia_curand-10.4.0.35-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:1aee33a5da6e1db083fe2b90082def8915f30f3248d5896bcec36a579d941bfc", size = 59544258, upload-time = "2025-08-04T10:22:03.992Z" }, +] + +[[package]] +name = "nvidia-cusolver" +version = "12.0.4.66" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas", marker = "(platform_machine != 'x86_64' and sys_platform == 'darwin') or (sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')" }, + { name = "nvidia-cusparse", marker = "(platform_machine != 'x86_64' and sys_platform == 'darwin') or (sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')" }, + { name = "nvidia-nvjitlink", marker = "(platform_machine != 'x86_64' and sys_platform == 'darwin') or (sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/c8/c3/b30c9e935fc01e3da443ec0116ed1b2a009bb867f5324d3f2d7e533e776b/nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:02c2457eaa9e39de20f880f4bd8820e6a1cfb9f9a34f820eb12a155aa5bc92d2", size = 223467760, upload-time = "2025-09-04T08:33:04.222Z" }, + { url = "https://files.pythonhosted.org/packages/5f/67/cba3777620cdacb99102da4042883709c41c709f4b6323c10781a9c3aa34/nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:0a759da5dea5c0ea10fd307de75cdeb59e7ea4fcb8add0924859b944babf1112", size = 200941980, upload-time = "2025-09-04T08:33:22.767Z" }, +] + +[[package]] +name = "nvidia-cusparse" +version = "12.6.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink", marker = "(platform_machine != 'x86_64' and sys_platform == 'darwin') or (sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/94/5c26f33738ae35276672f12615a64bd008ed5be6d1ebcb23579285d960a9/nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:80bcc4662f23f1054ee334a15c72b8940402975e0eab63178fc7e670aa59472c", size = 162155568, upload-time = "2025-09-04T08:33:42.864Z" }, + { url = "https://files.pythonhosted.org/packages/fa/18/623c77619c31d62efd55302939756966f3ecc8d724a14dab2b75f1508850/nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2b3c89c88d01ee0e477cb7f82ef60a11a4bcd57b6b87c33f789350b59759360b", size = 145942937, upload-time = "2025-09-04T08:33:58.029Z" }, +] + +[[package]] +name = "nvidia-cusparselt-cu13" +version = "0.8.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/10/8dcd1175260706a2fc92a16a52e306b71d4c1ea0b0cc4a9484183399818a/nvidia_cusparselt_cu13-0.8.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:400c6ed1cf6780fc6efedd64ec9f1345871767e6a1a0a552a1ea0578117ea77c", size = 220791277, upload-time = "2025-08-13T19:22:40.982Z" }, + { url = "https://files.pythonhosted.org/packages/fd/53/43b0d71f4e702fa9733f8b4571fdca50a8813f1e450b656c239beff12315/nvidia_cusparselt_cu13-0.8.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:25e30a8a7323935d4ad0340b95a0b69926eee755767e8e0b1cf8dd85b197d3fd", size = 169884119, upload-time = "2025-08-13T19:23:41.967Z" }, +] + +[[package]] +name = "nvidia-nccl-cu13" +version = "2.28.9" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/55/1920646a2e43ffd4fc958536b276197ed740e9e0c54105b4bb3521591fc7/nvidia_nccl_cu13-2.28.9-py3-none-manylinux_2_18_aarch64.whl", hash = "sha256:01c873ba1626b54caa12272ed228dc5b2781545e0ae8ba3f432a8ef1c6d78643", size = 196561677, upload-time = "2025-11-18T05:49:03.45Z" }, + { url = "https://files.pythonhosted.org/packages/b0/b4/878fefaad5b2bcc6fcf8d474a25e3e3774bc5133e4b58adff4d0bca238bc/nvidia_nccl_cu13-2.28.9-py3-none-manylinux_2_18_x86_64.whl", hash = "sha256:e4553a30f34195f3fa1da02a6da3d6337d28f2003943aa0a3d247bbc25fefc42", size = 196493177, upload-time = "2025-11-18T05:49:17.677Z" }, +] + +[[package]] +name = "nvidia-nvjitlink" +version = "13.0.88" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/7a/123e033aaff487c77107195fa5a2b8686795ca537935a24efae476c41f05/nvidia_nvjitlink-13.0.88-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:13a74f429e23b921c1109976abefacc69835f2f433ebd323d3946e11d804e47b", size = 40713933, upload-time = "2025-09-04T08:35:43.553Z" }, + { url = "https://files.pythonhosted.org/packages/ab/2c/93c5250e64df4f894f1cbb397c6fd71f79813f9fd79d7cd61de3f97b3c2d/nvidia_nvjitlink-13.0.88-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e931536ccc7d467a98ba1d8b89ff7fa7f1fa3b13f2b0069118cd7f47bff07d0c", size = 38768748, upload-time = "2025-09-04T08:35:20.008Z" }, +] + +[[package]] +name = "nvidia-nvshmem-cu13" +version = "3.4.5" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/0f/05cc9c720236dcd2db9c1ab97fff629e96821be2e63103569da0c9b72f19/nvidia_nvshmem_cu13-3.4.5-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6dc2a197f38e5d0376ad52cd1a2a3617d3cdc150fd5966f4aee9bcebb1d68fe9", size = 60215947, upload-time = "2025-09-06T00:32:20.022Z" }, + { url = "https://files.pythonhosted.org/packages/3c/35/a9bf80a609e74e3b000fef598933235c908fcefcef9026042b8e6dfde2a9/nvidia_nvshmem_cu13-3.4.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:290f0a2ee94c9f3687a02502f3b9299a9f9fe826e6d0287ee18482e78d495b80", size = 60412546, upload-time = "2025-09-06T00:32:41.564Z" }, +] + +[[package]] +name = "nvidia-nvtx" +version = "13.0.85" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/f3/d86c845465a2723ad7e1e5c36dcd75ddb82898b3f53be47ebd429fb2fa5d/nvidia_nvtx-13.0.85-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4936d1d6780fbe68db454f5e72a42ff64d1fd6397df9f363ae786930fd5c1cd4", size = 148047, upload-time = "2025-09-04T08:29:01.761Z" }, + { url = "https://files.pythonhosted.org/packages/a8/64/3708a90d1ebe202ffdeb7185f878a3c84d15c2b2c31858da2ce0583e2def/nvidia_nvtx-13.0.85-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cb7780edb6b14107373c835bf8b72e7a178bac7367e23da7acb108f973f157a6", size = 148878, upload-time = "2025-09-04T08:28:53.627Z" }, +] + +[[package]] +name = "packaging" +version = "26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, +] + +[[package]] +name = "pandas" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/da/99/b342345300f13440fe9fe385c3c481e2d9a595ee3bab4d3219247ac94e9a/pandas-3.0.2.tar.gz", hash = "sha256:f4753e73e34c8d83221ba58f232433fca2748be8b18dbca02d242ed153945043", size = 4645855, upload-time = "2026-03-31T06:48:30.816Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/b0/c20bd4d6d3f736e6bd6b55794e9cd0a617b858eaad27c8f410ea05d953b7/pandas-3.0.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:232a70ebb568c0c4d2db4584f338c1577d81e3af63292208d615907b698a0f18", size = 10347921, upload-time = "2026-03-31T06:46:33.36Z" }, + { url = "https://files.pythonhosted.org/packages/35/d0/4831af68ce30cc2d03c697bea8450e3225a835ef497d0d70f31b8cdde965/pandas-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:970762605cff1ca0d3f71ed4f3a769ea8f85fc8e6348f6e110b8fea7e6eb5a14", size = 9888127, upload-time = "2026-03-31T06:46:36.253Z" }, + { url = "https://files.pythonhosted.org/packages/61/a9/16ea9346e1fc4a96e2896242d9bc674764fb9049b0044c0132502f7a771e/pandas-3.0.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aff4e6f4d722e0652707d7bcb190c445fe58428500c6d16005b02401764b1b3d", size = 10399577, upload-time = "2026-03-31T06:46:39.224Z" }, + { url = "https://files.pythonhosted.org/packages/c4/a8/3a61a721472959ab0ce865ef05d10b0d6bfe27ce8801c99f33d4fa996e65/pandas-3.0.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ef8b27695c3d3dc78403c9a7d5e59a62d5464a7e1123b4e0042763f7104dc74f", size = 10880030, upload-time = "2026-03-31T06:46:42.412Z" }, + { url = "https://files.pythonhosted.org/packages/da/65/7225c0ea4d6ce9cb2160a7fb7f39804871049f016e74782e5dade4d14109/pandas-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f8d68083e49e16b84734eb1a4dcae4259a75c90fb6e2251ab9a00b61120c06ab", size = 11409468, upload-time = "2026-03-31T06:46:45.2Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5b/46e7c76032639f2132359b5cf4c785dd8cf9aea5ea64699eac752f02b9db/pandas-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:32cc41f310ebd4a296d93515fcac312216adfedb1894e879303987b8f1e2b97d", size = 11936381, upload-time = "2026-03-31T06:46:48.293Z" }, + { url = "https://files.pythonhosted.org/packages/7b/8b/721a9cff6fa6a91b162eb51019c6243b82b3226c71bb6c8ef4a9bd65cbc6/pandas-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:a4785e1d6547d8427c5208b748ae2efb64659a21bd82bf440d4262d02bfa02a4", size = 9744993, upload-time = "2026-03-31T06:46:51.488Z" }, + { url = "https://files.pythonhosted.org/packages/d5/18/7f0bd34ae27b28159aa80f2a6799f47fda34f7fb938a76e20c7b7fe3b200/pandas-3.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:08504503f7101300107ecdc8df73658e4347586db5cfdadabc1592e9d7e7a0fd", size = 9056118, upload-time = "2026-03-31T06:46:54.548Z" }, + { url = "https://files.pythonhosted.org/packages/bf/ca/3e639a1ea6fcd0617ca4e8ca45f62a74de33a56ae6cd552735470b22c8d3/pandas-3.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b5918ba197c951dec132b0c5929a00c0bf05d5942f590d3c10a807f6e15a57d3", size = 10321105, upload-time = "2026-03-31T06:46:57.327Z" }, + { url = "https://files.pythonhosted.org/packages/0b/77/dbc82ff2fb0e63c6564356682bf201edff0ba16c98630d21a1fb312a8182/pandas-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d606a041c89c0a474a4702d532ab7e73a14fe35c8d427b972a625c8e46373668", size = 9864088, upload-time = "2026-03-31T06:46:59.935Z" }, + { url = "https://files.pythonhosted.org/packages/5c/2b/341f1b04bbca2e17e13cd3f08c215b70ef2c60c5356ef1e8c6857449edc7/pandas-3.0.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:710246ba0616e86891b58ab95f2495143bb2bc83ab6b06747c74216f583a6ac9", size = 10369066, upload-time = "2026-03-31T06:47:02.792Z" }, + { url = "https://files.pythonhosted.org/packages/12/c5/cbb1ffefb20a93d3f0e1fdcda699fb84976210d411b008f97f48bf6ce27e/pandas-3.0.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5d3cfe227c725b1f3dff4278b43d8c784656a42a9325b63af6b1492a8232209e", size = 10876780, upload-time = "2026-03-31T06:47:06.205Z" }, + { url = "https://files.pythonhosted.org/packages/98/fe/2249ae5e0a69bd0ddf17353d0a5d26611d70970111f5b3600cdc8be883e7/pandas-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c3b723df9087a9a9a840e263ebd9f88b64a12075d1bf2ea401a5a42f254f084d", size = 11375181, upload-time = "2026-03-31T06:47:09.383Z" }, + { url = "https://files.pythonhosted.org/packages/de/64/77a38b09e70b6464883b8d7584ab543e748e42c1b5d337a2ee088e0df741/pandas-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a3096110bf9eac0070b7208465f2740e2d8a670d5cb6530b5bb884eca495fd39", size = 11928899, upload-time = "2026-03-31T06:47:12.686Z" }, + { url = "https://files.pythonhosted.org/packages/5e/52/42855bf626868413f761addd574acc6195880ae247a5346477a4361c3acb/pandas-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:07a10f5c36512eead51bc578eb3354ad17578b22c013d89a796ab5eee90cd991", size = 9746574, upload-time = "2026-03-31T06:47:15.64Z" }, + { url = "https://files.pythonhosted.org/packages/88/39/21304ae06a25e8bf9fc820d69b29b2c495b2ae580d1e143146c309941760/pandas-3.0.2-cp313-cp313-win_arm64.whl", hash = "sha256:5fdbfa05931071aba28b408e59226186b01eb5e92bea2ab78b65863ca3228d84", size = 9047156, upload-time = "2026-03-31T06:47:18.595Z" }, + { url = "https://files.pythonhosted.org/packages/72/20/7defa8b27d4f330a903bb68eea33be07d839c5ea6bdda54174efcec0e1d2/pandas-3.0.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:dbc20dea3b9e27d0e66d74c42b2d0c1bed9c2ffe92adea33633e3bedeb5ac235", size = 10756238, upload-time = "2026-03-31T06:47:22.012Z" }, + { url = "https://files.pythonhosted.org/packages/e9/95/49433c14862c636afc0e9b2db83ff16b3ad92959364e52b2955e44c8e94c/pandas-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b75c347eff42497452116ce05ef461822d97ce5b9ff8df6edacb8076092c855d", size = 10408520, upload-time = "2026-03-31T06:47:25.197Z" }, + { url = "https://files.pythonhosted.org/packages/3b/f8/462ad2b5881d6b8ec8e5f7ed2ea1893faa02290d13870a1600fe72ad8efc/pandas-3.0.2-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1478075142e83a5571782ad007fb201ed074bdeac7ebcc8890c71442e96adf7", size = 10324154, upload-time = "2026-03-31T06:47:28.097Z" }, + { url = "https://files.pythonhosted.org/packages/0a/65/d1e69b649cbcddda23ad6e4c40ef935340f6f652a006e5cbc3555ac8adb3/pandas-3.0.2-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5880314e69e763d4c8b27937090de570f1fb8d027059a7ada3f7f8e98bdcb677", size = 10714449, upload-time = "2026-03-31T06:47:30.85Z" }, + { url = "https://files.pythonhosted.org/packages/47/a4/85b59bc65b8190ea3689882db6cdf32a5003c0ccd5a586c30fdcc3ffc4fc/pandas-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b5329e26898896f06035241a626d7c335daa479b9bbc82be7c2742d048e41172", size = 11338475, upload-time = "2026-03-31T06:47:34.026Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c4/bc6966c6e38e5d9478b935272d124d80a589511ed1612a5d21d36f664c68/pandas-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:81526c4afd31971f8b62671442a4b2b51e0aa9acc3819c9f0f12a28b6fcf85f1", size = 11786568, upload-time = "2026-03-31T06:47:36.941Z" }, + { url = "https://files.pythonhosted.org/packages/e8/74/09298ca9740beed1d3504e073d67e128aa07e5ca5ca2824b0c674c0b8676/pandas-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:7cadd7e9a44ec13b621aec60f9150e744cfc7a3dd32924a7e2f45edff31823b0", size = 10488652, upload-time = "2026-03-31T06:47:40.612Z" }, + { url = "https://files.pythonhosted.org/packages/bb/40/c6ea527147c73b24fc15c891c3fcffe9c019793119c5742b8784a062c7db/pandas-3.0.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:db0dbfd2a6cdf3770aa60464d50333d8f3d9165b2f2671bcc299b72de5a6677b", size = 10326084, upload-time = "2026-03-31T06:47:43.834Z" }, + { url = "https://files.pythonhosted.org/packages/95/25/bdb9326c3b5455f8d4d3549fce7abcf967259de146fe2cf7a82368141948/pandas-3.0.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0555c5882688a39317179ab4a0ed41d3ebc8812ab14c69364bbee8fb7a3f6288", size = 9914146, upload-time = "2026-03-31T06:47:46.67Z" }, + { url = "https://files.pythonhosted.org/packages/8d/77/3a227ff3337aa376c60d288e1d61c5d097131d0ac71f954d90a8f369e422/pandas-3.0.2-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:01f31a546acd5574ef77fe199bc90b55527c225c20ccda6601cf6b0fd5ed597c", size = 10444081, upload-time = "2026-03-31T06:47:49.681Z" }, + { url = "https://files.pythonhosted.org/packages/15/88/3cdd54fa279341afa10acf8d2b503556b1375245dccc9315659f795dd2e9/pandas-3.0.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:deeca1b5a931fdf0c2212c8a659ade6d3b1edc21f0914ce71ef24456ca7a6535", size = 10897535, upload-time = "2026-03-31T06:47:53.033Z" }, + { url = "https://files.pythonhosted.org/packages/06/9d/98cc7a7624f7932e40f434299260e2917b090a579d75937cb8a57b9d2de3/pandas-3.0.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0f48afd9bb13300ffb5a3316973324c787054ba6665cda0da3fbd67f451995db", size = 11446992, upload-time = "2026-03-31T06:47:56.193Z" }, + { url = "https://files.pythonhosted.org/packages/9a/cd/19ff605cc3760e80602e6826ddef2824d8e7050ed80f2e11c4b079741dc3/pandas-3.0.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6c4d8458b97a35717b62469a4ea0e85abd5ed8687277f5ccfc67f8a5126f8c53", size = 11968257, upload-time = "2026-03-31T06:47:59.137Z" }, + { url = "https://files.pythonhosted.org/packages/db/60/aba6a38de456e7341285102bede27514795c1eaa353bc0e7638b6b785356/pandas-3.0.2-cp314-cp314-win_amd64.whl", hash = "sha256:b35d14bb5d8285d9494fe93815a9e9307c0876e10f1e8e89ac5b88f728ec8dcf", size = 9865893, upload-time = "2026-03-31T06:48:02.038Z" }, + { url = "https://files.pythonhosted.org/packages/08/71/e5ec979dd2e8a093dacb8864598c0ff59a0cee0bbcdc0bfec16a51684d4f/pandas-3.0.2-cp314-cp314-win_arm64.whl", hash = "sha256:63d141b56ef686f7f0d714cfb8de4e320475b86bf4b620aa0b7da89af8cbdbbb", size = 9188644, upload-time = "2026-03-31T06:48:05.045Z" }, + { url = "https://files.pythonhosted.org/packages/f1/6c/7b45d85db19cae1eb524f2418ceaa9d85965dcf7b764ed151386b7c540f0/pandas-3.0.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:140f0cffb1fa2524e874dde5b477d9defe10780d8e9e220d259b2c0874c89d9d", size = 10776246, upload-time = "2026-03-31T06:48:07.789Z" }, + { url = "https://files.pythonhosted.org/packages/a8/3e/7b00648b086c106e81766f25322b48aa8dfa95b55e621dbdf2fdd413a117/pandas-3.0.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ae37e833ff4fed0ba352f6bdd8b73ba3ab3256a85e54edfd1ab51ae40cca0af8", size = 10424801, upload-time = "2026-03-31T06:48:10.897Z" }, + { url = "https://files.pythonhosted.org/packages/da/6e/558dd09a71b53b4008e7fc8a98ec6d447e9bfb63cdaeea10e5eb9b2dabe8/pandas-3.0.2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4d888a5c678a419a5bb41a2a93818e8ed9fd3172246555c0b37b7cc27027effd", size = 10345643, upload-time = "2026-03-31T06:48:13.7Z" }, + { url = "https://files.pythonhosted.org/packages/be/e3/921c93b4d9a280409451dc8d07b062b503bbec0531d2627e73a756e99a82/pandas-3.0.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b444dc64c079e84df91baa8bf613d58405645461cabca929d9178f2cd392398d", size = 10743641, upload-time = "2026-03-31T06:48:16.659Z" }, + { url = "https://files.pythonhosted.org/packages/56/ca/fd17286f24fa3b4d067965d8d5d7e14fe557dd4f979a0b068ac0deaf8228/pandas-3.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4544c7a54920de8eeacaa1466a6b7268ecfbc9bc64ab4dbb89c6bbe94d5e0660", size = 11361993, upload-time = "2026-03-31T06:48:19.475Z" }, + { url = "https://files.pythonhosted.org/packages/e4/a5/2f6ed612056819de445a433ca1f2821ac3dab7f150d569a59e9cc105de1d/pandas-3.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:734be7551687c00fbd760dc0522ed974f82ad230d4a10f54bf51b80d44a08702", size = 11815274, upload-time = "2026-03-31T06:48:22.695Z" }, + { url = "https://files.pythonhosted.org/packages/00/2f/b622683e99ec3ce00b0854bac9e80868592c5b051733f2cf3a868e5fea26/pandas-3.0.2-cp314-cp314t-win_amd64.whl", hash = "sha256:57a07209bebcbcf768d2d13c9b78b852f9a15978dac41b9e6421a81ad4cdd276", size = 10888530, upload-time = "2026-03-31T06:48:25.806Z" }, + { url = "https://files.pythonhosted.org/packages/cb/2b/f8434233fab2bd66a02ec014febe4e5adced20e2693e0e90a07d118ed30e/pandas-3.0.2-cp314-cp314t-win_arm64.whl", hash = "sha256:5371b72c2d4d415d08765f32d689217a43227484e81b2305b52076e328f6f482", size = 9455341, upload-time = "2026-03-31T06:48:28.418Z" }, +] + +[[package]] +name = "parso" +version = "0.8.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/81/76/a1e769043c0c0c9fe391b702539d594731a4362334cdf4dc25d0c09761e7/parso-0.8.6.tar.gz", hash = "sha256:2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd", size = 401621, upload-time = "2026-02-09T15:45:24.425Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b6/61/fae042894f4296ec49e3f193aff5d7c18440da9e48102c3315e1bc4519a7/parso-0.8.6-py2.py3-none-any.whl", hash = "sha256:2c549f800b70a5c4952197248825584cb00f033b29c692671d3bf08bf380baff", size = 106894, upload-time = "2026-02-09T15:45:21.391Z" }, +] + +[[package]] +name = "path" +version = "17.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dd/52/a7bdd5ef8488977d354b7915d1e75009bebbd04f73eff14e52372d5e9435/path-17.1.1.tar.gz", hash = "sha256:2dfcbfec8b4d960f3469c52acf133113c2a8bf12ac7b98d629fa91af87248d42", size = 50528, upload-time = "2025-07-27T20:40:23.79Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/50/11c9ee1ede64b45d687fd36eb8768dafc57afc78b4d83396920cfd69ed30/path-17.1.1-py3-none-any.whl", hash = "sha256:ec7e136df29172e5030dd07e037d55f676bdb29d15bfa09b80da29d07d3b9303", size = 23936, upload-time = "2025-07-27T20:40:22.453Z" }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, +] + +[[package]] +name = "pillow" +version = "12.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/21/c2bcdd5906101a30244eaffc1b6e6ce71a31bd0742a01eb89e660ebfac2d/pillow-12.2.0.tar.gz", hash = "sha256:a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5", size = 46987819, upload-time = "2026-04-01T14:46:17.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/be/7482c8a5ebebbc6470b3eb791812fff7d5e0216c2be3827b30b8bb6603ed/pillow-12.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2d192a155bbcec180f8564f693e6fd9bccff5a7af9b32e2e4bf8c9c69dbad6b5", size = 5308279, upload-time = "2026-04-01T14:43:13.246Z" }, + { url = "https://files.pythonhosted.org/packages/d8/95/0a351b9289c2b5cbde0bacd4a83ebc44023e835490a727b2a3bd60ddc0f4/pillow-12.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3f40b3c5a968281fd507d519e444c35f0ff171237f4fdde090dd60699458421", size = 4695490, upload-time = "2026-04-01T14:43:15.584Z" }, + { url = "https://files.pythonhosted.org/packages/de/af/4e8e6869cbed569d43c416fad3dc4ecb944cb5d9492defaed89ddd6fe871/pillow-12.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:03e7e372d5240cc23e9f07deca4d775c0817bffc641b01e9c3af208dbd300987", size = 6284462, upload-time = "2026-04-01T14:43:18.268Z" }, + { url = "https://files.pythonhosted.org/packages/e9/9e/c05e19657fd57841e476be1ab46c4d501bffbadbafdc31a6d665f8b737b6/pillow-12.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b86024e52a1b269467a802258c25521e6d742349d760728092e1bc2d135b4d76", size = 8094744, upload-time = "2026-04-01T14:43:20.716Z" }, + { url = "https://files.pythonhosted.org/packages/2b/54/1789c455ed10176066b6e7e6da1b01e50e36f94ba584dc68d9eebfe9156d/pillow-12.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7371b48c4fa448d20d2714c9a1f775a81155050d383333e0a6c15b1123dda005", size = 6398371, upload-time = "2026-04-01T14:43:23.443Z" }, + { url = "https://files.pythonhosted.org/packages/43/e3/fdc657359e919462369869f1c9f0e973f353f9a9ee295a39b1fea8ee1a77/pillow-12.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62f5409336adb0663b7caa0da5c7d9e7bdbaae9ce761d34669420c2a801b2780", size = 7087215, upload-time = "2026-04-01T14:43:26.758Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f8/2f6825e441d5b1959d2ca5adec984210f1ec086435b0ed5f52c19b3b8a6e/pillow-12.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:01afa7cf67f74f09523699b4e88c73fb55c13346d212a59a2db1f86b0a63e8c5", size = 6509783, upload-time = "2026-04-01T14:43:29.56Z" }, + { url = "https://files.pythonhosted.org/packages/67/f9/029a27095ad20f854f9dba026b3ea6428548316e057e6fc3545409e86651/pillow-12.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc3d34d4a8fbec3e88a79b92e5465e0f9b842b628675850d860b8bd300b159f5", size = 7212112, upload-time = "2026-04-01T14:43:32.091Z" }, + { url = "https://files.pythonhosted.org/packages/be/42/025cfe05d1be22dbfdb4f264fe9de1ccda83f66e4fc3aac94748e784af04/pillow-12.2.0-cp312-cp312-win32.whl", hash = "sha256:58f62cc0f00fd29e64b29f4fd923ffdb3859c9f9e6105bfc37ba1d08994e8940", size = 6378489, upload-time = "2026-04-01T14:43:34.601Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7b/25a221d2c761c6a8ae21bfa3874988ff2583e19cf8a27bf2fee358df7942/pillow-12.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:7f84204dee22a783350679a0333981df803dac21a0190d706a50475e361c93f5", size = 7084129, upload-time = "2026-04-01T14:43:37.213Z" }, + { url = "https://files.pythonhosted.org/packages/10/e1/542a474affab20fd4a0f1836cb234e8493519da6b76899e30bcc5d990b8b/pillow-12.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:af73337013e0b3b46f175e79492d96845b16126ddf79c438d7ea7ff27783a414", size = 2463612, upload-time = "2026-04-01T14:43:39.421Z" }, + { url = "https://files.pythonhosted.org/packages/4a/01/53d10cf0dbad820a8db274d259a37ba50b88b24768ddccec07355382d5ad/pillow-12.2.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:8297651f5b5679c19968abefd6bb84d95fe30ef712eb1b2d9b2d31ca61267f4c", size = 4100837, upload-time = "2026-04-01T14:43:41.506Z" }, + { url = "https://files.pythonhosted.org/packages/0f/98/f3a6657ecb698c937f6c76ee564882945f29b79bad496abcba0e84659ec5/pillow-12.2.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:50d8520da2a6ce0af445fa6d648c4273c3eeefbc32d7ce049f22e8b5c3daecc2", size = 4176528, upload-time = "2026-04-01T14:43:43.773Z" }, + { url = "https://files.pythonhosted.org/packages/69/bc/8986948f05e3ea490b8442ea1c1d4d990b24a7e43d8a51b2c7d8b1dced36/pillow-12.2.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:766cef22385fa1091258ad7e6216792b156dc16d8d3fa607e7545b2b72061f1c", size = 3640401, upload-time = "2026-04-01T14:43:45.87Z" }, + { url = "https://files.pythonhosted.org/packages/34/46/6c717baadcd62bc8ed51d238d521ab651eaa74838291bda1f86fe1f864c9/pillow-12.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5d2fd0fa6b5d9d1de415060363433f28da8b1526c1c129020435e186794b3795", size = 5308094, upload-time = "2026-04-01T14:43:48.438Z" }, + { url = "https://files.pythonhosted.org/packages/71/43/905a14a8b17fdb1ccb58d282454490662d2cb89a6bfec26af6d3520da5ec/pillow-12.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56b25336f502b6ed02e889f4ece894a72612fe885889a6e8c4c80239ff6e5f5f", size = 4695402, upload-time = "2026-04-01T14:43:51.292Z" }, + { url = "https://files.pythonhosted.org/packages/73/dd/42107efcb777b16fa0393317eac58f5b5cf30e8392e266e76e51cff28c3d/pillow-12.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f1c943e96e85df3d3478f7b691f229887e143f81fedab9b20205349ab04d73ed", size = 6280005, upload-time = "2026-04-01T14:43:54.242Z" }, + { url = "https://files.pythonhosted.org/packages/a8/68/b93e09e5e8549019e61acf49f65b1a8530765a7f812c77a7461bca7e4494/pillow-12.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:03f6fab9219220f041c74aeaa2939ff0062bd5c364ba9ce037197f4c6d498cd9", size = 8090669, upload-time = "2026-04-01T14:43:57.335Z" }, + { url = "https://files.pythonhosted.org/packages/4b/6e/3ccb54ce8ec4ddd1accd2d89004308b7b0b21c4ac3d20fa70af4760a4330/pillow-12.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5cdfebd752ec52bf5bb4e35d9c64b40826bc5b40a13df7c3cda20a2c03a0f5ed", size = 6395194, upload-time = "2026-04-01T14:43:59.864Z" }, + { url = "https://files.pythonhosted.org/packages/67/ee/21d4e8536afd1a328f01b359b4d3997b291ffd35a237c877b331c1c3b71c/pillow-12.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eedf4b74eda2b5a4b2b2fb4c006d6295df3bf29e459e198c90ea48e130dc75c3", size = 7082423, upload-time = "2026-04-01T14:44:02.74Z" }, + { url = "https://files.pythonhosted.org/packages/78/5f/e9f86ab0146464e8c133fe85df987ed9e77e08b29d8d35f9f9f4d6f917ba/pillow-12.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:00a2865911330191c0b818c59103b58a5e697cae67042366970a6b6f1b20b7f9", size = 6505667, upload-time = "2026-04-01T14:44:05.381Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1e/409007f56a2fdce61584fd3acbc2bbc259857d555196cedcadc68c015c82/pillow-12.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1e1757442ed87f4912397c6d35a0db6a7b52592156014706f17658ff58bbf795", size = 7208580, upload-time = "2026-04-01T14:44:08.39Z" }, + { url = "https://files.pythonhosted.org/packages/23/c4/7349421080b12fb35414607b8871e9534546c128a11965fd4a7002ccfbee/pillow-12.2.0-cp313-cp313-win32.whl", hash = "sha256:144748b3af2d1b358d41286056d0003f47cb339b8c43a9ea42f5fea4d8c66b6e", size = 6375896, upload-time = "2026-04-01T14:44:11.197Z" }, + { url = "https://files.pythonhosted.org/packages/3f/82/8a3739a5e470b3c6cbb1d21d315800d8e16bff503d1f16b03a4ec3212786/pillow-12.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:390ede346628ccc626e5730107cde16c42d3836b89662a115a921f28440e6a3b", size = 7081266, upload-time = "2026-04-01T14:44:13.947Z" }, + { url = "https://files.pythonhosted.org/packages/c3/25/f968f618a062574294592f668218f8af564830ccebdd1fa6200f598e65c5/pillow-12.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:8023abc91fba39036dbce14a7d6535632f99c0b857807cbbbf21ecc9f4717f06", size = 2463508, upload-time = "2026-04-01T14:44:16.312Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a4/b342930964e3cb4dce5038ae34b0eab4653334995336cd486c5a8c25a00c/pillow-12.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:042db20a421b9bafecc4b84a8b6e444686bd9d836c7fd24542db3e7df7baad9b", size = 5309927, upload-time = "2026-04-01T14:44:18.89Z" }, + { url = "https://files.pythonhosted.org/packages/9f/de/23198e0a65a9cf06123f5435a5d95cea62a635697f8f03d134d3f3a96151/pillow-12.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:dd025009355c926a84a612fecf58bb315a3f6814b17ead51a8e48d3823d9087f", size = 4698624, upload-time = "2026-04-01T14:44:21.115Z" }, + { url = "https://files.pythonhosted.org/packages/01/a6/1265e977f17d93ea37aa28aa81bad4fa597933879fac2520d24e021c8da3/pillow-12.2.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88ddbc66737e277852913bd1e07c150cc7bb124539f94c4e2df5344494e0a612", size = 6321252, upload-time = "2026-04-01T14:44:23.663Z" }, + { url = "https://files.pythonhosted.org/packages/3c/83/5982eb4a285967baa70340320be9f88e57665a387e3a53a7f0db8231a0cd/pillow-12.2.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d362d1878f00c142b7e1a16e6e5e780f02be8195123f164edf7eddd911eefe7c", size = 8126550, upload-time = "2026-04-01T14:44:26.772Z" }, + { url = "https://files.pythonhosted.org/packages/4e/48/6ffc514adce69f6050d0753b1a18fd920fce8cac87620d5a31231b04bfc5/pillow-12.2.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c727a6d53cb0018aadd8018c2b938376af27914a68a492f59dfcaca650d5eea", size = 6433114, upload-time = "2026-04-01T14:44:29.615Z" }, + { url = "https://files.pythonhosted.org/packages/36/a3/f9a77144231fb8d40ee27107b4463e205fa4677e2ca2548e14da5cf18dce/pillow-12.2.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:efd8c21c98c5cc60653bcb311bef2ce0401642b7ce9d09e03a7da87c878289d4", size = 7115667, upload-time = "2026-04-01T14:44:32.773Z" }, + { url = "https://files.pythonhosted.org/packages/c1/fc/ac4ee3041e7d5a565e1c4fd72a113f03b6394cc72ab7089d27608f8aaccb/pillow-12.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f08483a632889536b8139663db60f6724bfcb443c96f1b18855860d7d5c0fd4", size = 6538966, upload-time = "2026-04-01T14:44:35.252Z" }, + { url = "https://files.pythonhosted.org/packages/c0/a8/27fb307055087f3668f6d0a8ccb636e7431d56ed0750e07a60547b1e083e/pillow-12.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dac8d77255a37e81a2efcbd1fc05f1c15ee82200e6c240d7e127e25e365c39ea", size = 7238241, upload-time = "2026-04-01T14:44:37.875Z" }, + { url = "https://files.pythonhosted.org/packages/ad/4b/926ab182c07fccae9fcb120043464e1ff1564775ec8864f21a0ebce6ac25/pillow-12.2.0-cp313-cp313t-win32.whl", hash = "sha256:ee3120ae9dff32f121610bb08e4313be87e03efeadfc6c0d18f89127e24d0c24", size = 6379592, upload-time = "2026-04-01T14:44:40.336Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c4/f9e476451a098181b30050cc4c9a3556b64c02cf6497ea421ac047e89e4b/pillow-12.2.0-cp313-cp313t-win_amd64.whl", hash = "sha256:325ca0528c6788d2a6c3d40e3568639398137346c3d6e66bb61db96b96511c98", size = 7085542, upload-time = "2026-04-01T14:44:43.251Z" }, + { url = "https://files.pythonhosted.org/packages/00/a4/285f12aeacbe2d6dc36c407dfbbe9e96d4a80b0fb710a337f6d2ad978c75/pillow-12.2.0-cp313-cp313t-win_arm64.whl", hash = "sha256:2e5a76d03a6c6dcef67edabda7a52494afa4035021a79c8558e14af25313d453", size = 2465765, upload-time = "2026-04-01T14:44:45.996Z" }, + { url = "https://files.pythonhosted.org/packages/bf/98/4595daa2365416a86cb0d495248a393dfc84e96d62ad080c8546256cb9c0/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:3adc9215e8be0448ed6e814966ecf3d9952f0ea40eb14e89a102b87f450660d8", size = 4100848, upload-time = "2026-04-01T14:44:48.48Z" }, + { url = "https://files.pythonhosted.org/packages/0b/79/40184d464cf89f6663e18dfcf7ca21aae2491fff1a16127681bf1fa9b8cf/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:6a9adfc6d24b10f89588096364cc726174118c62130c817c2837c60cf08a392b", size = 4176515, upload-time = "2026-04-01T14:44:51.353Z" }, + { url = "https://files.pythonhosted.org/packages/b0/63/703f86fd4c422a9cf722833670f4f71418fb116b2853ff7da722ea43f184/pillow-12.2.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:6a6e67ea2e6feda684ed370f9a1c52e7a243631c025ba42149a2cc5934dec295", size = 3640159, upload-time = "2026-04-01T14:44:53.588Z" }, + { url = "https://files.pythonhosted.org/packages/71/e0/fb22f797187d0be2270f83500aab851536101b254bfa1eae10795709d283/pillow-12.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2bb4a8d594eacdfc59d9e5ad972aa8afdd48d584ffd5f13a937a664c3e7db0ed", size = 5312185, upload-time = "2026-04-01T14:44:56.039Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8c/1a9e46228571de18f8e28f16fabdfc20212a5d019f3e3303452b3f0a580d/pillow-12.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:80b2da48193b2f33ed0c32c38140f9d3186583ce7d516526d462645fd98660ae", size = 4695386, upload-time = "2026-04-01T14:44:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/70/62/98f6b7f0c88b9addd0e87c217ded307b36be024d4ff8869a812b241d1345/pillow-12.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22db17c68434de69d8ecfc2fe821569195c0c373b25cccb9cbdacf2c6e53c601", size = 6280384, upload-time = "2026-04-01T14:45:01.5Z" }, + { url = "https://files.pythonhosted.org/packages/5e/03/688747d2e91cfbe0e64f316cd2e8005698f76ada3130d0194664174fa5de/pillow-12.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7b14cc0106cd9aecda615dd6903840a058b4700fcb817687d0ee4fc8b6e389be", size = 8091599, upload-time = "2026-04-01T14:45:04.5Z" }, + { url = "https://files.pythonhosted.org/packages/f6/35/577e22b936fcdd66537329b33af0b4ccfefaeabd8aec04b266528cddb33c/pillow-12.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cbeb542b2ebc6fcdacabf8aca8c1a97c9b3ad3927d46b8723f9d4f033288a0f", size = 6396021, upload-time = "2026-04-01T14:45:07.117Z" }, + { url = "https://files.pythonhosted.org/packages/11/8d/d2532ad2a603ca2b93ad9f5135732124e57811d0168155852f37fbce2458/pillow-12.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4bfd07bc812fbd20395212969e41931001fd59eb55a60658b0e5710872e95286", size = 7083360, upload-time = "2026-04-01T14:45:09.763Z" }, + { url = "https://files.pythonhosted.org/packages/5e/26/d325f9f56c7e039034897e7380e9cc202b1e368bfd04d4cbe6a441f02885/pillow-12.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9aba9a17b623ef750a4d11b742cbafffeb48a869821252b30ee21b5e91392c50", size = 6507628, upload-time = "2026-04-01T14:45:12.378Z" }, + { url = "https://files.pythonhosted.org/packages/5f/f7/769d5632ffb0988f1c5e7660b3e731e30f7f8ec4318e94d0a5d674eb65a4/pillow-12.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:deede7c263feb25dba4e82ea23058a235dcc2fe1f6021025dc71f2b618e26104", size = 7209321, upload-time = "2026-04-01T14:45:15.122Z" }, + { url = "https://files.pythonhosted.org/packages/6a/7a/c253e3c645cd47f1aceea6a8bacdba9991bf45bb7dfe927f7c893e89c93c/pillow-12.2.0-cp314-cp314-win32.whl", hash = "sha256:632ff19b2778e43162304d50da0181ce24ac5bb8180122cbe1bf4673428328c7", size = 6479723, upload-time = "2026-04-01T14:45:17.797Z" }, + { url = "https://files.pythonhosted.org/packages/cd/8b/601e6566b957ca50e28725cb6c355c59c2c8609751efbecd980db44e0349/pillow-12.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:4e6c62e9d237e9b65fac06857d511e90d8461a32adcc1b9065ea0c0fa3a28150", size = 7217400, upload-time = "2026-04-01T14:45:20.529Z" }, + { url = "https://files.pythonhosted.org/packages/d6/94/220e46c73065c3e2951bb91c11a1fb636c8c9ad427ac3ce7d7f3359b9b2f/pillow-12.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:b1c1fbd8a5a1af3412a0810d060a78b5136ec0836c8a4ef9aa11807f2a22f4e1", size = 2554835, upload-time = "2026-04-01T14:45:23.162Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ab/1b426a3974cb0e7da5c29ccff4807871d48110933a57207b5a676cccc155/pillow-12.2.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:57850958fe9c751670e49b2cecf6294acc99e562531f4bd317fa5ddee2068463", size = 5314225, upload-time = "2026-04-01T14:45:25.637Z" }, + { url = "https://files.pythonhosted.org/packages/19/1e/dce46f371be2438eecfee2a1960ee2a243bbe5e961890146d2dee1ff0f12/pillow-12.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d5d38f1411c0ed9f97bcb49b7bd59b6b7c314e0e27420e34d99d844b9ce3b6f3", size = 4698541, upload-time = "2026-04-01T14:45:28.355Z" }, + { url = "https://files.pythonhosted.org/packages/55/c3/7fbecf70adb3a0c33b77a300dc52e424dc22ad8cdc06557a2e49523b703d/pillow-12.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5c0a9f29ca8e79f09de89293f82fc9b0270bb4af1d58bc98f540cc4aedf03166", size = 6322251, upload-time = "2026-04-01T14:45:30.924Z" }, + { url = "https://files.pythonhosted.org/packages/1c/3c/7fbc17cfb7e4fe0ef1642e0abc17fc6c94c9f7a16be41498e12e2ba60408/pillow-12.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1610dd6c61621ae1cf811bef44d77e149ce3f7b95afe66a4512f8c59f25d9ebe", size = 8127807, upload-time = "2026-04-01T14:45:33.908Z" }, + { url = "https://files.pythonhosted.org/packages/ff/c3/a8ae14d6defd2e448493ff512fae903b1e9bd40b72efb6ec55ce0048c8ce/pillow-12.2.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a34329707af4f73cf1782a36cd2289c0368880654a2c11f027bcee9052d35dd", size = 6433935, upload-time = "2026-04-01T14:45:36.623Z" }, + { url = "https://files.pythonhosted.org/packages/6e/32/2880fb3a074847ac159d8f902cb43278a61e85f681661e7419e6596803ed/pillow-12.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e9c4f5b3c546fa3458a29ab22646c1c6c787ea8f5ef51300e5a60300736905e", size = 7116720, upload-time = "2026-04-01T14:45:39.258Z" }, + { url = "https://files.pythonhosted.org/packages/46/87/495cc9c30e0129501643f24d320076f4cc54f718341df18cc70ec94c44e1/pillow-12.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fb043ee2f06b41473269765c2feae53fc2e2fbf96e5e22ca94fb5ad677856f06", size = 6540498, upload-time = "2026-04-01T14:45:41.879Z" }, + { url = "https://files.pythonhosted.org/packages/18/53/773f5edca692009d883a72211b60fdaf8871cbef075eaa9d577f0a2f989e/pillow-12.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f278f034eb75b4e8a13a54a876cc4a5ab39173d2cdd93a638e1b467fc545ac43", size = 7239413, upload-time = "2026-04-01T14:45:44.705Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e4/4b64a97d71b2a83158134abbb2f5bd3f8a2ea691361282f010998f339ec7/pillow-12.2.0-cp314-cp314t-win32.whl", hash = "sha256:6bb77b2dcb06b20f9f4b4a8454caa581cd4dd0643a08bacf821216a16d9c8354", size = 6482084, upload-time = "2026-04-01T14:45:47.568Z" }, + { url = "https://files.pythonhosted.org/packages/ba/13/306d275efd3a3453f72114b7431c877d10b1154014c1ebbedd067770d629/pillow-12.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6562ace0d3fb5f20ed7290f1f929cae41b25ae29528f2af1722966a0a02e2aa1", size = 7225152, upload-time = "2026-04-01T14:45:50.032Z" }, + { url = "https://files.pythonhosted.org/packages/ff/6e/cf826fae916b8658848d7b9f38d88da6396895c676e8086fc0988073aaf8/pillow-12.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:aa88ccfe4e32d362816319ed727a004423aab09c5cea43c01a4b435643fa34eb", size = 2556579, upload-time = "2026-04-01T14:45:52.529Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.9.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/4a/0883b8e3802965322523f0b200ecf33d31f10991d0401162f4b23c698b42/platformdirs-4.9.6.tar.gz", hash = "sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a", size = 29400, upload-time = "2026-04-09T00:04:10.812Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917", size = 21348, upload-time = "2026-04-09T00:04:09.463Z" }, +] + +[[package]] +name = "plotly" +version = "6.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "narwhals" }, + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/7f/0f100df1172aadf88a929a9dbb902656b0880ba4b960fe5224867159d8f4/plotly-6.7.0.tar.gz", hash = "sha256:45eea0ff27e2a23ccd62776f77eb43aa1ca03df4192b76036e380bb479b892c6", size = 6911286, upload-time = "2026-04-09T20:36:45.738Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/ad/cba91b3bcf04073e4d1655a5c1710ef3f457f56f7d1b79dcc3d72f4dd912/plotly-6.7.0-py3-none-any.whl", hash = "sha256:ac8aca1c25c663a59b5b9140a549264a5badde2e057d79b8c772ae2920e32ff0", size = 9898444, upload-time = "2026-04-09T20:36:39.812Z" }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.52" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, +] + +[[package]] +name = "propcache" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442, upload-time = "2025-10-08T19:49:02.291Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061, upload-time = "2025-10-08T19:46:46.075Z" }, + { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037, upload-time = "2025-10-08T19:46:47.23Z" }, + { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324, upload-time = "2025-10-08T19:46:48.384Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505, upload-time = "2025-10-08T19:46:50.055Z" }, + { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242, upload-time = "2025-10-08T19:46:51.815Z" }, + { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474, upload-time = "2025-10-08T19:46:53.208Z" }, + { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575, upload-time = "2025-10-08T19:46:54.511Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736, upload-time = "2025-10-08T19:46:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019, upload-time = "2025-10-08T19:46:57.595Z" }, + { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376, upload-time = "2025-10-08T19:46:59.067Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988, upload-time = "2025-10-08T19:47:00.544Z" }, + { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615, upload-time = "2025-10-08T19:47:01.968Z" }, + { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066, upload-time = "2025-10-08T19:47:03.503Z" }, + { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655, upload-time = "2025-10-08T19:47:04.973Z" }, + { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789, upload-time = "2025-10-08T19:47:06.077Z" }, + { url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750, upload-time = "2025-10-08T19:47:07.648Z" }, + { url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780, upload-time = "2025-10-08T19:47:08.851Z" }, + { url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308, upload-time = "2025-10-08T19:47:09.982Z" }, + { url = "https://files.pythonhosted.org/packages/2d/48/c5ac64dee5262044348d1d78a5f85dd1a57464a60d30daee946699963eb3/propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe", size = 208182, upload-time = "2025-10-08T19:47:11.319Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0c/cd762dd011a9287389a6a3eb43aa30207bde253610cca06824aeabfe9653/propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af", size = 211215, upload-time = "2025-10-08T19:47:13.146Z" }, + { url = "https://files.pythonhosted.org/packages/30/3e/49861e90233ba36890ae0ca4c660e95df565b2cd15d4a68556ab5865974e/propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c", size = 218112, upload-time = "2025-10-08T19:47:14.913Z" }, + { url = "https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f", size = 204442, upload-time = "2025-10-08T19:47:16.277Z" }, + { url = "https://files.pythonhosted.org/packages/50/a6/4282772fd016a76d3e5c0df58380a5ea64900afd836cec2c2f662d1b9bb3/propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1", size = 199398, upload-time = "2025-10-08T19:47:17.962Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ec/d8a7cd406ee1ddb705db2139f8a10a8a427100347bd698e7014351c7af09/propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24", size = 196920, upload-time = "2025-10-08T19:47:19.355Z" }, + { url = "https://files.pythonhosted.org/packages/f6/6c/f38ab64af3764f431e359f8baf9e0a21013e24329e8b85d2da32e8ed07ca/propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa", size = 203748, upload-time = "2025-10-08T19:47:21.338Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e3/fa846bd70f6534d647886621388f0a265254d30e3ce47e5c8e6e27dbf153/propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61", size = 205877, upload-time = "2025-10-08T19:47:23.059Z" }, + { url = "https://files.pythonhosted.org/packages/e2/39/8163fc6f3133fea7b5f2827e8eba2029a0277ab2c5beee6c1db7b10fc23d/propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66", size = 199437, upload-time = "2025-10-08T19:47:24.445Z" }, + { url = "https://files.pythonhosted.org/packages/93/89/caa9089970ca49c7c01662bd0eeedfe85494e863e8043565aeb6472ce8fe/propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81", size = 37586, upload-time = "2025-10-08T19:47:25.736Z" }, + { url = "https://files.pythonhosted.org/packages/f5/ab/f76ec3c3627c883215b5c8080debb4394ef5a7a29be811f786415fc1e6fd/propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e", size = 40790, upload-time = "2025-10-08T19:47:26.847Z" }, + { url = "https://files.pythonhosted.org/packages/59/1b/e71ae98235f8e2ba5004d8cb19765a74877abf189bc53fc0c80d799e56c3/propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1", size = 37158, upload-time = "2025-10-08T19:47:27.961Z" }, + { url = "https://files.pythonhosted.org/packages/83/ce/a31bbdfc24ee0dcbba458c8175ed26089cf109a55bbe7b7640ed2470cfe9/propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b", size = 81451, upload-time = "2025-10-08T19:47:29.445Z" }, + { url = "https://files.pythonhosted.org/packages/25/9c/442a45a470a68456e710d96cacd3573ef26a1d0a60067e6a7d5e655621ed/propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566", size = 46374, upload-time = "2025-10-08T19:47:30.579Z" }, + { url = "https://files.pythonhosted.org/packages/f4/bf/b1d5e21dbc3b2e889ea4327044fb16312a736d97640fb8b6aa3f9c7b3b65/propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835", size = 48396, upload-time = "2025-10-08T19:47:31.79Z" }, + { url = "https://files.pythonhosted.org/packages/f4/04/5b4c54a103d480e978d3c8a76073502b18db0c4bc17ab91b3cb5092ad949/propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e", size = 275950, upload-time = "2025-10-08T19:47:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/b4/c1/86f846827fb969c4b78b0af79bba1d1ea2156492e1b83dea8b8a6ae27395/propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859", size = 273856, upload-time = "2025-10-08T19:47:34.906Z" }, + { url = "https://files.pythonhosted.org/packages/36/1d/fc272a63c8d3bbad6878c336c7a7dea15e8f2d23a544bda43205dfa83ada/propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b", size = 280420, upload-time = "2025-10-08T19:47:36.338Z" }, + { url = "https://files.pythonhosted.org/packages/07/0c/01f2219d39f7e53d52e5173bcb09c976609ba30209912a0680adfb8c593a/propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0", size = 263254, upload-time = "2025-10-08T19:47:37.692Z" }, + { url = "https://files.pythonhosted.org/packages/2d/18/cd28081658ce597898f0c4d174d4d0f3c5b6d4dc27ffafeef835c95eb359/propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af", size = 261205, upload-time = "2025-10-08T19:47:39.659Z" }, + { url = "https://files.pythonhosted.org/packages/7a/71/1f9e22eb8b8316701c2a19fa1f388c8a3185082607da8e406a803c9b954e/propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393", size = 247873, upload-time = "2025-10-08T19:47:41.084Z" }, + { url = "https://files.pythonhosted.org/packages/4a/65/3d4b61f36af2b4eddba9def857959f1016a51066b4f1ce348e0cf7881f58/propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874", size = 262739, upload-time = "2025-10-08T19:47:42.51Z" }, + { url = "https://files.pythonhosted.org/packages/2a/42/26746ab087faa77c1c68079b228810436ccd9a5ce9ac85e2b7307195fd06/propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7", size = 263514, upload-time = "2025-10-08T19:47:43.927Z" }, + { url = "https://files.pythonhosted.org/packages/94/13/630690fe201f5502d2403dd3cfd451ed8858fe3c738ee88d095ad2ff407b/propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1", size = 257781, upload-time = "2025-10-08T19:47:45.448Z" }, + { url = "https://files.pythonhosted.org/packages/92/f7/1d4ec5841505f423469efbfc381d64b7b467438cd5a4bbcbb063f3b73d27/propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717", size = 41396, upload-time = "2025-10-08T19:47:47.202Z" }, + { url = "https://files.pythonhosted.org/packages/48/f0/615c30622316496d2cbbc29f5985f7777d3ada70f23370608c1d3e081c1f/propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37", size = 44897, upload-time = "2025-10-08T19:47:48.336Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ca/6002e46eccbe0e33dcd4069ef32f7f1c9e243736e07adca37ae8c4830ec3/propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a", size = 39789, upload-time = "2025-10-08T19:47:49.876Z" }, + { url = "https://files.pythonhosted.org/packages/8e/5c/bca52d654a896f831b8256683457ceddd490ec18d9ec50e97dfd8fc726a8/propcache-0.4.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12", size = 78152, upload-time = "2025-10-08T19:47:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/65/9b/03b04e7d82a5f54fb16113d839f5ea1ede58a61e90edf515f6577c66fa8f/propcache-0.4.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c", size = 44869, upload-time = "2025-10-08T19:47:52.594Z" }, + { url = "https://files.pythonhosted.org/packages/b2/fa/89a8ef0468d5833a23fff277b143d0573897cf75bd56670a6d28126c7d68/propcache-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded", size = 46596, upload-time = "2025-10-08T19:47:54.073Z" }, + { url = "https://files.pythonhosted.org/packages/86/bd/47816020d337f4a746edc42fe8d53669965138f39ee117414c7d7a340cfe/propcache-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641", size = 206981, upload-time = "2025-10-08T19:47:55.715Z" }, + { url = "https://files.pythonhosted.org/packages/df/f6/c5fa1357cc9748510ee55f37173eb31bfde6d94e98ccd9e6f033f2fc06e1/propcache-0.4.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4", size = 211490, upload-time = "2025-10-08T19:47:57.499Z" }, + { url = "https://files.pythonhosted.org/packages/80/1e/e5889652a7c4a3846683401a48f0f2e5083ce0ec1a8a5221d8058fbd1adf/propcache-0.4.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44", size = 215371, upload-time = "2025-10-08T19:47:59.317Z" }, + { url = "https://files.pythonhosted.org/packages/b2/f2/889ad4b2408f72fe1a4f6a19491177b30ea7bf1a0fd5f17050ca08cfc882/propcache-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d", size = 201424, upload-time = "2025-10-08T19:48:00.67Z" }, + { url = "https://files.pythonhosted.org/packages/27/73/033d63069b57b0812c8bd19f311faebeceb6ba31b8f32b73432d12a0b826/propcache-0.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b", size = 197566, upload-time = "2025-10-08T19:48:02.604Z" }, + { url = "https://files.pythonhosted.org/packages/dc/89/ce24f3dc182630b4e07aa6d15f0ff4b14ed4b9955fae95a0b54c58d66c05/propcache-0.4.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e", size = 193130, upload-time = "2025-10-08T19:48:04.499Z" }, + { url = "https://files.pythonhosted.org/packages/a9/24/ef0d5fd1a811fb5c609278d0209c9f10c35f20581fcc16f818da959fc5b4/propcache-0.4.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f", size = 202625, upload-time = "2025-10-08T19:48:06.213Z" }, + { url = "https://files.pythonhosted.org/packages/f5/02/98ec20ff5546f68d673df2f7a69e8c0d076b5abd05ca882dc7ee3a83653d/propcache-0.4.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49", size = 204209, upload-time = "2025-10-08T19:48:08.432Z" }, + { url = "https://files.pythonhosted.org/packages/a0/87/492694f76759b15f0467a2a93ab68d32859672b646aa8a04ce4864e7932d/propcache-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144", size = 197797, upload-time = "2025-10-08T19:48:09.968Z" }, + { url = "https://files.pythonhosted.org/packages/ee/36/66367de3575db1d2d3f3d177432bd14ee577a39d3f5d1b3d5df8afe3b6e2/propcache-0.4.1-cp314-cp314-win32.whl", hash = "sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f", size = 38140, upload-time = "2025-10-08T19:48:11.232Z" }, + { url = "https://files.pythonhosted.org/packages/0c/2a/a758b47de253636e1b8aef181c0b4f4f204bf0dd964914fb2af90a95b49b/propcache-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153", size = 41257, upload-time = "2025-10-08T19:48:12.707Z" }, + { url = "https://files.pythonhosted.org/packages/34/5e/63bd5896c3fec12edcbd6f12508d4890d23c265df28c74b175e1ef9f4f3b/propcache-0.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992", size = 38097, upload-time = "2025-10-08T19:48:13.923Z" }, + { url = "https://files.pythonhosted.org/packages/99/85/9ff785d787ccf9bbb3f3106f79884a130951436f58392000231b4c737c80/propcache-0.4.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f", size = 81455, upload-time = "2025-10-08T19:48:15.16Z" }, + { url = "https://files.pythonhosted.org/packages/90/85/2431c10c8e7ddb1445c1f7c4b54d886e8ad20e3c6307e7218f05922cad67/propcache-0.4.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393", size = 46372, upload-time = "2025-10-08T19:48:16.424Z" }, + { url = "https://files.pythonhosted.org/packages/01/20/b0972d902472da9bcb683fa595099911f4d2e86e5683bcc45de60dd05dc3/propcache-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0", size = 48411, upload-time = "2025-10-08T19:48:17.577Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e3/7dc89f4f21e8f99bad3d5ddb3a3389afcf9da4ac69e3deb2dcdc96e74169/propcache-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a", size = 275712, upload-time = "2025-10-08T19:48:18.901Z" }, + { url = "https://files.pythonhosted.org/packages/20/67/89800c8352489b21a8047c773067644e3897f02ecbbd610f4d46b7f08612/propcache-0.4.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be", size = 273557, upload-time = "2025-10-08T19:48:20.762Z" }, + { url = "https://files.pythonhosted.org/packages/e2/a1/b52b055c766a54ce6d9c16d9aca0cad8059acd9637cdf8aa0222f4a026ef/propcache-0.4.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc", size = 280015, upload-time = "2025-10-08T19:48:22.592Z" }, + { url = "https://files.pythonhosted.org/packages/48/c8/33cee30bd890672c63743049f3c9e4be087e6780906bfc3ec58528be59c1/propcache-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a", size = 262880, upload-time = "2025-10-08T19:48:23.947Z" }, + { url = "https://files.pythonhosted.org/packages/0c/b1/8f08a143b204b418285c88b83d00edbd61afbc2c6415ffafc8905da7038b/propcache-0.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89", size = 260938, upload-time = "2025-10-08T19:48:25.656Z" }, + { url = "https://files.pythonhosted.org/packages/cf/12/96e4664c82ca2f31e1c8dff86afb867348979eb78d3cb8546a680287a1e9/propcache-0.4.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726", size = 247641, upload-time = "2025-10-08T19:48:27.207Z" }, + { url = "https://files.pythonhosted.org/packages/18/ed/e7a9cfca28133386ba52278136d42209d3125db08d0a6395f0cba0c0285c/propcache-0.4.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367", size = 262510, upload-time = "2025-10-08T19:48:28.65Z" }, + { url = "https://files.pythonhosted.org/packages/f5/76/16d8bf65e8845dd62b4e2b57444ab81f07f40caa5652b8969b87ddcf2ef6/propcache-0.4.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36", size = 263161, upload-time = "2025-10-08T19:48:30.133Z" }, + { url = "https://files.pythonhosted.org/packages/e7/70/c99e9edb5d91d5ad8a49fa3c1e8285ba64f1476782fed10ab251ff413ba1/propcache-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455", size = 257393, upload-time = "2025-10-08T19:48:31.567Z" }, + { url = "https://files.pythonhosted.org/packages/08/02/87b25304249a35c0915d236575bc3574a323f60b47939a2262b77632a3ee/propcache-0.4.1-cp314-cp314t-win32.whl", hash = "sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85", size = 42546, upload-time = "2025-10-08T19:48:32.872Z" }, + { url = "https://files.pythonhosted.org/packages/cb/ef/3c6ecf8b317aa982f309835e8f96987466123c6e596646d4e6a1dfcd080f/propcache-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1", size = 46259, upload-time = "2025-10-08T19:48:34.226Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2d/346e946d4951f37eca1e4f55be0f0174c52cd70720f84029b02f296f4a38/propcache-0.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9", size = 40428, upload-time = "2025-10-08T19:48:35.441Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305, upload-time = "2025-10-08T19:49:00.792Z" }, +] + +[[package]] +name = "psutil" +version = "7.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595, upload-time = "2026-01-28T18:14:57.293Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082, upload-time = "2026-01-28T18:14:59.732Z" }, + { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476, upload-time = "2026-01-28T18:15:01.884Z" }, + { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062, upload-time = "2026-01-28T18:15:04.436Z" }, + { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893, upload-time = "2026-01-28T18:15:06.378Z" }, + { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589, upload-time = "2026-01-28T18:15:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, + { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, +] + +[[package]] +name = "pygments" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, +] + +[[package]] +name = "pysocks" +version = "1.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload-time = "2019-09-20T02:07:35.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload-time = "2019-09-20T02:06:22.938Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "requests" +version = "2.33.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/a4/98b9c7c6428a668bf7e42ebb7c79d576a1c3c1e3ae2d47e674b468388871/requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517", size = 134120, upload-time = "2026-03-30T16:09:15.531Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947, upload-time = "2026-03-30T16:09:13.83Z" }, +] + +[package.optional-dependencies] +socks = [ + { name = "pysocks" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, + { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, + { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, + { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, +] + +[[package]] +name = "scikit-learn" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "threadpoolctl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/d4/40988bf3b8e34feec1d0e6a051446b1f66225f8529b9309becaeef62b6c4/scikit_learn-1.8.0.tar.gz", hash = "sha256:9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd", size = 7335585, upload-time = "2025-12-10T07:08:53.618Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/74/e6a7cc4b820e95cc38cf36cd74d5aa2b42e8ffc2d21fe5a9a9c45c1c7630/scikit_learn-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5fb63362b5a7ddab88e52b6dbb47dac3fd7dafeee740dc6c8d8a446ddedade8e", size = 8548242, upload-time = "2025-12-10T07:07:51.568Z" }, + { url = "https://files.pythonhosted.org/packages/49/d8/9be608c6024d021041c7f0b3928d4749a706f4e2c3832bbede4fb4f58c95/scikit_learn-1.8.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:5025ce924beccb28298246e589c691fe1b8c1c96507e6d27d12c5fadd85bfd76", size = 8079075, upload-time = "2025-12-10T07:07:53.697Z" }, + { url = "https://files.pythonhosted.org/packages/dd/47/f187b4636ff80cc63f21cd40b7b2d177134acaa10f6bb73746130ee8c2e5/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4496bb2cf7a43ce1a2d7524a79e40bc5da45cf598dbf9545b7e8316ccba47bb4", size = 8660492, upload-time = "2025-12-10T07:07:55.574Z" }, + { url = "https://files.pythonhosted.org/packages/97/74/b7a304feb2b49df9fafa9382d4d09061a96ee9a9449a7cbea7988dda0828/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0bcfe4d0d14aec44921545fd2af2338c7471de9cb701f1da4c9d85906ab847a", size = 8931904, upload-time = "2025-12-10T07:07:57.666Z" }, + { url = "https://files.pythonhosted.org/packages/9f/c4/0ab22726a04ede56f689476b760f98f8f46607caecff993017ac1b64aa5d/scikit_learn-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:35c007dedb2ffe38fe3ee7d201ebac4a2deccd2408e8621d53067733e3c74809", size = 8019359, upload-time = "2025-12-10T07:07:59.838Z" }, + { url = "https://files.pythonhosted.org/packages/24/90/344a67811cfd561d7335c1b96ca21455e7e472d281c3c279c4d3f2300236/scikit_learn-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:8c497fff237d7b4e07e9ef1a640887fa4fb765647f86fbe00f969ff6280ce2bb", size = 7641898, upload-time = "2025-12-10T07:08:01.36Z" }, + { url = "https://files.pythonhosted.org/packages/03/aa/e22e0768512ce9255eba34775be2e85c2048da73da1193e841707f8f039c/scikit_learn-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0d6ae97234d5d7079dc0040990a6f7aeb97cb7fa7e8945f1999a429b23569e0a", size = 8513770, upload-time = "2025-12-10T07:08:03.251Z" }, + { url = "https://files.pythonhosted.org/packages/58/37/31b83b2594105f61a381fc74ca19e8780ee923be2d496fcd8d2e1147bd99/scikit_learn-1.8.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:edec98c5e7c128328124a029bceb09eda2d526997780fef8d65e9a69eead963e", size = 8044458, upload-time = "2025-12-10T07:08:05.336Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5a/3f1caed8765f33eabb723596666da4ebbf43d11e96550fb18bdec42b467b/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:74b66d8689d52ed04c271e1329f0c61635bcaf5b926db9b12d58914cdc01fe57", size = 8610341, upload-time = "2025-12-10T07:08:07.732Z" }, + { url = "https://files.pythonhosted.org/packages/38/cf/06896db3f71c75902a8e9943b444a56e727418f6b4b4a90c98c934f51ed4/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8fdf95767f989b0cfedb85f7ed8ca215d4be728031f56ff5a519ee1e3276dc2e", size = 8900022, upload-time = "2025-12-10T07:08:09.862Z" }, + { url = "https://files.pythonhosted.org/packages/1c/f9/9b7563caf3ec8873e17a31401858efab6b39a882daf6c1bfa88879c0aa11/scikit_learn-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:2de443b9373b3b615aec1bb57f9baa6bb3a9bd093f1269ba95c17d870422b271", size = 7989409, upload-time = "2025-12-10T07:08:12.028Z" }, + { url = "https://files.pythonhosted.org/packages/49/bd/1f4001503650e72c4f6009ac0c4413cb17d2d601cef6f71c0453da2732fc/scikit_learn-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:eddde82a035681427cbedded4e6eff5e57fa59216c2e3e90b10b19ab1d0a65c3", size = 7619760, upload-time = "2025-12-10T07:08:13.688Z" }, + { url = "https://files.pythonhosted.org/packages/d2/7d/a630359fc9dcc95496588c8d8e3245cc8fd81980251079bc09c70d41d951/scikit_learn-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7cc267b6108f0a1499a734167282c00c4ebf61328566b55ef262d48e9849c735", size = 8826045, upload-time = "2025-12-10T07:08:15.215Z" }, + { url = "https://files.pythonhosted.org/packages/cc/56/a0c86f6930cfcd1c7054a2bc417e26960bb88d32444fe7f71d5c2cfae891/scikit_learn-1.8.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:fe1c011a640a9f0791146011dfd3c7d9669785f9fed2b2a5f9e207536cf5c2fd", size = 8420324, upload-time = "2025-12-10T07:08:17.561Z" }, + { url = "https://files.pythonhosted.org/packages/46/1e/05962ea1cebc1cf3876667ecb14c283ef755bf409993c5946ade3b77e303/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72358cce49465d140cc4e7792015bb1f0296a9742d5622c67e31399b75468b9e", size = 8680651, upload-time = "2025-12-10T07:08:19.952Z" }, + { url = "https://files.pythonhosted.org/packages/fe/56/a85473cd75f200c9759e3a5f0bcab2d116c92a8a02ee08ccd73b870f8bb4/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80832434a6cc114f5219211eec13dcbc16c2bac0e31ef64c6d346cde3cf054cb", size = 8925045, upload-time = "2025-12-10T07:08:22.11Z" }, + { url = "https://files.pythonhosted.org/packages/cc/b7/64d8cfa896c64435ae57f4917a548d7ac7a44762ff9802f75a79b77cb633/scikit_learn-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ee787491dbfe082d9c3013f01f5991658b0f38aa8177e4cd4bf434c58f551702", size = 8507994, upload-time = "2025-12-10T07:08:23.943Z" }, + { url = "https://files.pythonhosted.org/packages/5e/37/e192ea709551799379958b4c4771ec507347027bb7c942662c7fbeba31cb/scikit_learn-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf97c10a3f5a7543f9b88cbf488d33d175e9146115a451ae34568597ba33dcde", size = 7869518, upload-time = "2025-12-10T07:08:25.71Z" }, + { url = "https://files.pythonhosted.org/packages/24/05/1af2c186174cc92dcab2233f327336058c077d38f6fe2aceb08e6ab4d509/scikit_learn-1.8.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c22a2da7a198c28dd1a6e1136f19c830beab7fdca5b3e5c8bba8394f8a5c45b3", size = 8528667, upload-time = "2025-12-10T07:08:27.541Z" }, + { url = "https://files.pythonhosted.org/packages/a8/25/01c0af38fe969473fb292bba9dc2b8f9b451f3112ff242c647fee3d0dfe7/scikit_learn-1.8.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:6b595b07a03069a2b1740dc08c2299993850ea81cce4fe19b2421e0c970de6b7", size = 8066524, upload-time = "2025-12-10T07:08:29.822Z" }, + { url = "https://files.pythonhosted.org/packages/be/ce/a0623350aa0b68647333940ee46fe45086c6060ec604874e38e9ab7d8e6c/scikit_learn-1.8.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:29ffc74089f3d5e87dfca4c2c8450f88bdc61b0fc6ed5d267f3988f19a1309f6", size = 8657133, upload-time = "2025-12-10T07:08:31.865Z" }, + { url = "https://files.pythonhosted.org/packages/b8/cb/861b41341d6f1245e6ca80b1c1a8c4dfce43255b03df034429089ca2a2c5/scikit_learn-1.8.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fb65db5d7531bccf3a4f6bec3462223bea71384e2cda41da0f10b7c292b9e7c4", size = 8923223, upload-time = "2025-12-10T07:08:34.166Z" }, + { url = "https://files.pythonhosted.org/packages/76/18/a8def8f91b18cd1ba6e05dbe02540168cb24d47e8dcf69e8d00b7da42a08/scikit_learn-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:56079a99c20d230e873ea40753102102734c5953366972a71d5cb39a32bc40c6", size = 8096518, upload-time = "2025-12-10T07:08:36.339Z" }, + { url = "https://files.pythonhosted.org/packages/d1/77/482076a678458307f0deb44e29891d6022617b2a64c840c725495bee343f/scikit_learn-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:3bad7565bc9cf37ce19a7c0d107742b320c1285df7aab1a6e2d28780df167242", size = 7754546, upload-time = "2025-12-10T07:08:38.128Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d1/ef294ca754826daa043b2a104e59960abfab4cf653891037d19dd5b6f3cf/scikit_learn-1.8.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:4511be56637e46c25721e83d1a9cea9614e7badc7040c4d573d75fbe257d6fd7", size = 8848305, upload-time = "2025-12-10T07:08:41.013Z" }, + { url = "https://files.pythonhosted.org/packages/5b/e2/b1f8b05138ee813b8e1a4149f2f0d289547e60851fd1bb268886915adbda/scikit_learn-1.8.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:a69525355a641bf8ef136a7fa447672fb54fe8d60cab5538d9eb7c6438543fb9", size = 8432257, upload-time = "2025-12-10T07:08:42.873Z" }, + { url = "https://files.pythonhosted.org/packages/26/11/c32b2138a85dcb0c99f6afd13a70a951bfdff8a6ab42d8160522542fb647/scikit_learn-1.8.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c2656924ec73e5939c76ac4c8b026fc203b83d8900362eb2599d8aee80e4880f", size = 8678673, upload-time = "2025-12-10T07:08:45.362Z" }, + { url = "https://files.pythonhosted.org/packages/c7/57/51f2384575bdec454f4fe4e7a919d696c9ebce914590abf3e52d47607ab8/scikit_learn-1.8.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15fc3b5d19cc2be65404786857f2e13c70c83dd4782676dd6814e3b89dc8f5b9", size = 8922467, upload-time = "2025-12-10T07:08:47.408Z" }, + { url = "https://files.pythonhosted.org/packages/35/4d/748c9e2872637a57981a04adc038dacaa16ba8ca887b23e34953f0b3f742/scikit_learn-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:00d6f1d66fbcf4eba6e356e1420d33cc06c70a45bb1363cd6f6a8e4ebbbdece2", size = 8774395, upload-time = "2025-12-10T07:08:49.337Z" }, + { url = "https://files.pythonhosted.org/packages/60/22/d7b2ebe4704a5e50790ba089d5c2ae308ab6bb852719e6c3bd4f04c3a363/scikit_learn-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f28dd15c6bb0b66ba09728cf09fd8736c304be29409bd8445a080c1280619e8c", size = 8002647, upload-time = "2025-12-10T07:08:51.601Z" }, +] + +[[package]] +name = "scipy" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/97/5a3609c4f8d58b039179648e62dd220f89864f56f7357f5d4f45c29eb2cc/scipy-1.17.1.tar.gz", hash = "sha256:95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0", size = 30573822, upload-time = "2026-02-23T00:26:24.851Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/48/b992b488d6f299dbe3f11a20b24d3dda3d46f1a635ede1c46b5b17a7b163/scipy-1.17.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:35c3a56d2ef83efc372eaec584314bd0ef2e2f0d2adb21c55e6ad5b344c0dcb8", size = 31610954, upload-time = "2026-02-23T00:17:49.855Z" }, + { url = "https://files.pythonhosted.org/packages/b2/02/cf107b01494c19dc100f1d0b7ac3cc08666e96ba2d64db7626066cee895e/scipy-1.17.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:fcb310ddb270a06114bb64bbe53c94926b943f5b7f0842194d585c65eb4edd76", size = 28172662, upload-time = "2026-02-23T00:18:01.64Z" }, + { url = "https://files.pythonhosted.org/packages/cf/a9/599c28631bad314d219cf9ffd40e985b24d603fc8a2f4ccc5ae8419a535b/scipy-1.17.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:cc90d2e9c7e5c7f1a482c9875007c095c3194b1cfedca3c2f3291cdc2bc7c086", size = 20344366, upload-time = "2026-02-23T00:18:12.015Z" }, + { url = "https://files.pythonhosted.org/packages/35/f5/906eda513271c8deb5af284e5ef0206d17a96239af79f9fa0aebfe0e36b4/scipy-1.17.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:c80be5ede8f3f8eded4eff73cc99a25c388ce98e555b17d31da05287015ffa5b", size = 22704017, upload-time = "2026-02-23T00:18:21.502Z" }, + { url = "https://files.pythonhosted.org/packages/da/34/16f10e3042d2f1d6b66e0428308ab52224b6a23049cb2f5c1756f713815f/scipy-1.17.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e19ebea31758fac5893a2ac360fedd00116cbb7628e650842a6691ba7ca28a21", size = 32927842, upload-time = "2026-02-23T00:18:35.367Z" }, + { url = "https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02ae3b274fde71c5e92ac4d54bc06c42d80e399fec704383dcd99b301df37458", size = 35235890, upload-time = "2026-02-23T00:18:49.188Z" }, + { url = "https://files.pythonhosted.org/packages/c5/5c/9d7f4c88bea6e0d5a4f1bc0506a53a00e9fcb198de372bfe4d3652cef482/scipy-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a604bae87c6195d8b1045eddece0514d041604b14f2727bbc2b3020172045eb", size = 35003557, upload-time = "2026-02-23T00:18:54.74Z" }, + { url = "https://files.pythonhosted.org/packages/65/94/7698add8f276dbab7a9de9fb6b0e02fc13ee61d51c7c3f85ac28b65e1239/scipy-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f590cd684941912d10becc07325a3eeb77886fe981415660d9265c4c418d0bea", size = 37625856, upload-time = "2026-02-23T00:19:00.307Z" }, + { url = "https://files.pythonhosted.org/packages/a2/84/dc08d77fbf3d87d3ee27f6a0c6dcce1de5829a64f2eae85a0ecc1f0daa73/scipy-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:41b71f4a3a4cab9d366cd9065b288efc4d4f3c0b37a91a8e0947fb5bd7f31d87", size = 36549682, upload-time = "2026-02-23T00:19:07.67Z" }, + { url = "https://files.pythonhosted.org/packages/bc/98/fe9ae9ffb3b54b62559f52dedaebe204b408db8109a8c66fdd04869e6424/scipy-1.17.1-cp312-cp312-win_arm64.whl", hash = "sha256:f4115102802df98b2b0db3cce5cb9b92572633a1197c77b7553e5203f284a5b3", size = 24547340, upload-time = "2026-02-23T00:19:12.024Z" }, + { url = "https://files.pythonhosted.org/packages/76/27/07ee1b57b65e92645f219b37148a7e7928b82e2b5dbeccecb4dff7c64f0b/scipy-1.17.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:5e3c5c011904115f88a39308379c17f91546f77c1667cea98739fe0fccea804c", size = 31590199, upload-time = "2026-02-23T00:19:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ae/db19f8ab842e9b724bf5dbb7db29302a91f1e55bc4d04b1025d6d605a2c5/scipy-1.17.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:6fac755ca3d2c3edcb22f479fceaa241704111414831ddd3bc6056e18516892f", size = 28154001, upload-time = "2026-02-23T00:19:22.241Z" }, + { url = "https://files.pythonhosted.org/packages/5b/58/3ce96251560107b381cbd6e8413c483bbb1228a6b919fa8652b0d4090e7f/scipy-1.17.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:7ff200bf9d24f2e4d5dc6ee8c3ac64d739d3a89e2326ba68aaf6c4a2b838fd7d", size = 20325719, upload-time = "2026-02-23T00:19:26.329Z" }, + { url = "https://files.pythonhosted.org/packages/b2/83/15087d945e0e4d48ce2377498abf5ad171ae013232ae31d06f336e64c999/scipy-1.17.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4b400bdc6f79fa02a4d86640310dde87a21fba0c979efff5248908c6f15fad1b", size = 22683595, upload-time = "2026-02-23T00:19:30.304Z" }, + { url = "https://files.pythonhosted.org/packages/b4/e0/e58fbde4a1a594c8be8114eb4aac1a55bcd6587047efc18a61eb1f5c0d30/scipy-1.17.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b64ca7d4aee0102a97f3ba22124052b4bd2152522355073580bf4845e2550b6", size = 32896429, upload-time = "2026-02-23T00:19:35.536Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5f/f17563f28ff03c7b6799c50d01d5d856a1d55f2676f537ca8d28c7f627cd/scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:581b2264fc0aa555f3f435a5944da7504ea3a065d7029ad60e7c3d1ae09c5464", size = 35203952, upload-time = "2026-02-23T00:19:42.259Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a5/9afd17de24f657fdfe4df9a3f1ea049b39aef7c06000c13db1530d81ccca/scipy-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:beeda3d4ae615106d7094f7e7cef6218392e4465cc95d25f900bebabfded0950", size = 34979063, upload-time = "2026-02-23T00:19:47.547Z" }, + { url = "https://files.pythonhosted.org/packages/8b/13/88b1d2384b424bf7c924f2038c1c409f8d88bb2a8d49d097861dd64a57b2/scipy-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6609bc224e9568f65064cfa72edc0f24ee6655b47575954ec6339534b2798369", size = 37598449, upload-time = "2026-02-23T00:19:53.238Z" }, + { url = "https://files.pythonhosted.org/packages/35/e5/d6d0e51fc888f692a35134336866341c08655d92614f492c6860dc45bb2c/scipy-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:37425bc9175607b0268f493d79a292c39f9d001a357bebb6b88fdfaff13f6448", size = 36510943, upload-time = "2026-02-23T00:20:50.89Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fd/3be73c564e2a01e690e19cc618811540ba5354c67c8680dce3281123fb79/scipy-1.17.1-cp313-cp313-win_arm64.whl", hash = "sha256:5cf36e801231b6a2059bf354720274b7558746f3b1a4efb43fcf557ccd484a87", size = 24545621, upload-time = "2026-02-23T00:20:55.871Z" }, + { url = "https://files.pythonhosted.org/packages/6f/6b/17787db8b8114933a66f9dcc479a8272e4b4da75fe03b0c282f7b0ade8cd/scipy-1.17.1-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:d59c30000a16d8edc7e64152e30220bfbd724c9bbb08368c054e24c651314f0a", size = 31936708, upload-time = "2026-02-23T00:19:58.694Z" }, + { url = "https://files.pythonhosted.org/packages/38/2e/524405c2b6392765ab1e2b722a41d5da33dc5c7b7278184a8ad29b6cb206/scipy-1.17.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:010f4333c96c9bb1a4516269e33cb5917b08ef2166d5556ca2fd9f082a9e6ea0", size = 28570135, upload-time = "2026-02-23T00:20:03.934Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c3/5bd7199f4ea8556c0c8e39f04ccb014ac37d1468e6cfa6a95c6b3562b76e/scipy-1.17.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:2ceb2d3e01c5f1d83c4189737a42d9cb2fc38a6eeed225e7515eef71ad301dce", size = 20741977, upload-time = "2026-02-23T00:20:07.935Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b8/8ccd9b766ad14c78386599708eb745f6b44f08400a5fd0ade7cf89b6fc93/scipy-1.17.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:844e165636711ef41f80b4103ed234181646b98a53c8f05da12ca5ca289134f6", size = 23029601, upload-time = "2026-02-23T00:20:12.161Z" }, + { url = "https://files.pythonhosted.org/packages/6d/a0/3cb6f4d2fb3e17428ad2880333cac878909ad1a89f678527b5328b93c1d4/scipy-1.17.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:158dd96d2207e21c966063e1635b1063cd7787b627b6f07305315dd73d9c679e", size = 33019667, upload-time = "2026-02-23T00:20:17.208Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c3/2d834a5ac7bf3a0c806ad1508efc02dda3c8c61472a56132d7894c312dea/scipy-1.17.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74cbb80d93260fe2ffa334efa24cb8f2f0f622a9b9febf8b483c0b865bfb3475", size = 35264159, upload-time = "2026-02-23T00:20:23.087Z" }, + { url = "https://files.pythonhosted.org/packages/4d/77/d3ed4becfdbd217c52062fafe35a72388d1bd82c2d0ba5ca19d6fcc93e11/scipy-1.17.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dbc12c9f3d185f5c737d801da555fb74b3dcfa1a50b66a1a93e09190f41fab50", size = 35102771, upload-time = "2026-02-23T00:20:28.636Z" }, + { url = "https://files.pythonhosted.org/packages/bd/12/d19da97efde68ca1ee5538bb261d5d2c062f0c055575128f11a2730e3ac1/scipy-1.17.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94055a11dfebe37c656e70317e1996dc197e1a15bbcc351bcdd4610e128fe1ca", size = 37665910, upload-time = "2026-02-23T00:20:34.743Z" }, + { url = "https://files.pythonhosted.org/packages/06/1c/1172a88d507a4baaf72c5a09bb6c018fe2ae0ab622e5830b703a46cc9e44/scipy-1.17.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e30bdeaa5deed6bc27b4cc490823cd0347d7dae09119b8803ae576ea0ce52e4c", size = 36562980, upload-time = "2026-02-23T00:20:40.575Z" }, + { url = "https://files.pythonhosted.org/packages/70/b0/eb757336e5a76dfa7911f63252e3b7d1de00935d7705cf772db5b45ec238/scipy-1.17.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a720477885a9d2411f94a93d16f9d89bad0f28ca23c3f8daa521e2dcc3f44d49", size = 24856543, upload-time = "2026-02-23T00:20:45.313Z" }, + { url = "https://files.pythonhosted.org/packages/cf/83/333afb452af6f0fd70414dc04f898647ee1423979ce02efa75c3b0f2c28e/scipy-1.17.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:a48a72c77a310327f6a3a920092fa2b8fd03d7deaa60f093038f22d98e096717", size = 31584510, upload-time = "2026-02-23T00:21:01.015Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a6/d05a85fd51daeb2e4ea71d102f15b34fedca8e931af02594193ae4fd25f7/scipy-1.17.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:45abad819184f07240d8a696117a7aacd39787af9e0b719d00285549ed19a1e9", size = 28170131, upload-time = "2026-02-23T00:21:05.888Z" }, + { url = "https://files.pythonhosted.org/packages/db/7b/8624a203326675d7746a254083a187398090a179335b2e4a20e2ddc46e83/scipy-1.17.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:3fd1fcdab3ea951b610dc4cef356d416d5802991e7e32b5254828d342f7b7e0b", size = 20342032, upload-time = "2026-02-23T00:21:09.904Z" }, + { url = "https://files.pythonhosted.org/packages/c9/35/2c342897c00775d688d8ff3987aced3426858fd89d5a0e26e020b660b301/scipy-1.17.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:7bdf2da170b67fdf10bca777614b1c7d96ae3ca5794fd9587dce41eb2966e866", size = 22678766, upload-time = "2026-02-23T00:21:14.313Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f2/7cdb8eb308a1a6ae1e19f945913c82c23c0c442a462a46480ce487fdc0ac/scipy-1.17.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:adb2642e060a6549c343603a3851ba76ef0b74cc8c079a9a58121c7ec9fe2350", size = 32957007, upload-time = "2026-02-23T00:21:19.663Z" }, + { url = "https://files.pythonhosted.org/packages/0b/2e/7eea398450457ecb54e18e9d10110993fa65561c4f3add5e8eccd2b9cd41/scipy-1.17.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eee2cfda04c00a857206a4330f0c5e3e56535494e30ca445eb19ec624ae75118", size = 35221333, upload-time = "2026-02-23T00:21:25.278Z" }, + { url = "https://files.pythonhosted.org/packages/d9/77/5b8509d03b77f093a0d52e606d3c4f79e8b06d1d38c441dacb1e26cacf46/scipy-1.17.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d2650c1fb97e184d12d8ba010493ee7b322864f7d3d00d3f9bb97d9c21de4068", size = 35042066, upload-time = "2026-02-23T00:21:31.358Z" }, + { url = "https://files.pythonhosted.org/packages/f9/df/18f80fb99df40b4070328d5ae5c596f2f00fffb50167e31439e932f29e7d/scipy-1.17.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:08b900519463543aa604a06bec02461558a6e1cef8fdbb8098f77a48a83c8118", size = 37612763, upload-time = "2026-02-23T00:21:37.247Z" }, + { url = "https://files.pythonhosted.org/packages/4b/39/f0e8ea762a764a9dc52aa7dabcfad51a354819de1f0d4652b6a1122424d6/scipy-1.17.1-cp314-cp314-win_amd64.whl", hash = "sha256:3877ac408e14da24a6196de0ddcace62092bfc12a83823e92e49e40747e52c19", size = 37290984, upload-time = "2026-02-23T00:22:35.023Z" }, + { url = "https://files.pythonhosted.org/packages/7c/56/fe201e3b0f93d1a8bcf75d3379affd228a63d7e2d80ab45467a74b494947/scipy-1.17.1-cp314-cp314-win_arm64.whl", hash = "sha256:f8885db0bc2bffa59d5c1b72fad7a6a92d3e80e7257f967dd81abb553a90d293", size = 25192877, upload-time = "2026-02-23T00:22:39.798Z" }, + { url = "https://files.pythonhosted.org/packages/96/ad/f8c414e121f82e02d76f310f16db9899c4fcde36710329502a6b2a3c0392/scipy-1.17.1-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:1cc682cea2ae55524432f3cdff9e9a3be743d52a7443d0cba9017c23c87ae2f6", size = 31949750, upload-time = "2026-02-23T00:21:42.289Z" }, + { url = "https://files.pythonhosted.org/packages/7c/b0/c741e8865d61b67c81e255f4f0a832846c064e426636cd7de84e74d209be/scipy-1.17.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:2040ad4d1795a0ae89bfc7e8429677f365d45aa9fd5e4587cf1ea737f927b4a1", size = 28585858, upload-time = "2026-02-23T00:21:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1b/3985219c6177866628fa7c2595bfd23f193ceebbe472c98a08824b9466ff/scipy-1.17.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:131f5aaea57602008f9822e2115029b55d4b5f7c070287699fe45c661d051e39", size = 20757723, upload-time = "2026-02-23T00:21:52.039Z" }, + { url = "https://files.pythonhosted.org/packages/c0/19/2a04aa25050d656d6f7b9e7b685cc83d6957fb101665bfd9369ca6534563/scipy-1.17.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9cdc1a2fcfd5c52cfb3045feb399f7b3ce822abdde3a193a6b9a60b3cb5854ca", size = 23043098, upload-time = "2026-02-23T00:21:56.185Z" }, + { url = "https://files.pythonhosted.org/packages/86/f1/3383beb9b5d0dbddd030335bf8a8b32d4317185efe495374f134d8be6cce/scipy-1.17.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e3dcd57ab780c741fde8dc68619de988b966db759a3c3152e8e9142c26295ad", size = 33030397, upload-time = "2026-02-23T00:22:01.404Z" }, + { url = "https://files.pythonhosted.org/packages/41/68/8f21e8a65a5a03f25a79165ec9d2b28c00e66dc80546cf5eb803aeeff35b/scipy-1.17.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9956e4d4f4a301ebf6cde39850333a6b6110799d470dbbb1e25326ac447f52a", size = 35281163, upload-time = "2026-02-23T00:22:07.024Z" }, + { url = "https://files.pythonhosted.org/packages/84/8d/c8a5e19479554007a5632ed7529e665c315ae7492b4f946b0deb39870e39/scipy-1.17.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a4328d245944d09fd639771de275701ccadf5f781ba0ff092ad141e017eccda4", size = 35116291, upload-time = "2026-02-23T00:22:12.585Z" }, + { url = "https://files.pythonhosted.org/packages/52/52/e57eceff0e342a1f50e274264ed47497b59e6a4e3118808ee58ddda7b74a/scipy-1.17.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a77cbd07b940d326d39a1d1b37817e2ee4d79cb30e7338f3d0cddffae70fcaa2", size = 37682317, upload-time = "2026-02-23T00:22:18.513Z" }, + { url = "https://files.pythonhosted.org/packages/11/2f/b29eafe4a3fbc3d6de9662b36e028d5f039e72d345e05c250e121a230dd4/scipy-1.17.1-cp314-cp314t-win_amd64.whl", hash = "sha256:eb092099205ef62cd1782b006658db09e2fed75bffcae7cc0d44052d8aa0f484", size = 37345327, upload-time = "2026-02-23T00:22:24.442Z" }, + { url = "https://files.pythonhosted.org/packages/07/39/338d9219c4e87f3e708f18857ecd24d22a0c3094752393319553096b98af/scipy-1.17.1-cp314-cp314t-win_arm64.whl", hash = "sha256:200e1050faffacc162be6a486a984a0497866ec54149a01270adc8a59b7c7d21", size = 25489165, upload-time = "2026-02-23T00:22:29.563Z" }, +] + +[[package]] +name = "seaborn" +version = "0.13.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "matplotlib" }, + { name = "numpy" }, + { name = "pandas" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/59/a451d7420a77ab0b98f7affa3a1d78a313d2f7281a57afb1a34bae8ab412/seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7", size = 1457696, upload-time = "2024-01-25T13:21:52.551Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/11/00d3c3dfc25ad54e731d91449895a79e4bf2384dc3ac01809010ba88f6d5/seaborn-0.13.2-py3-none-any.whl", hash = "sha256:636f8336facf092165e27924f223d3c62ca560b1f2bb5dff7ab7fad265361987", size = 294914, upload-time = "2024-01-25T13:21:49.598Z" }, +] + +[[package]] +name = "setuptools" +version = "81.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0d/1c/73e719955c59b8e424d015ab450f51c0af856ae46ea2da83eba51cc88de1/setuptools-81.0.0.tar.gz", hash = "sha256:487b53915f52501f0a79ccfd0c02c165ffe06631443a886740b91af4b7a5845a", size = 1198299, upload-time = "2026-02-06T21:10:39.601Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/e3/c164c88b2e5ce7b24d667b9bd83589cf4f3520d97cad01534cd3c4f55fdb/setuptools-81.0.0-py3-none-any.whl", hash = "sha256:fdd925d5c5d9f62e4b74b30d6dd7828ce236fd6ed998a08d81de62ce5a6310d6", size = 1062021, upload-time = "2026-02-06T21:10:37.175Z" }, +] + +[[package]] +name = "shap" +version = "0.51.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cloudpickle" }, + { name = "llvmlite", version = "0.36.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, + { name = "llvmlite", version = "0.47.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, + { name = "numba", version = "0.53.1", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, + { name = "numba", version = "0.65.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "slicer" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a4/0a/4a3ee4b1a3654f2a9ae038a64bb3e91a42af3da07577d69b65241f010970/shap-0.51.0.tar.gz", hash = "sha256:cfa17ff213657c9d50285aa923d79b0037a62e2ee1a31bc3eec7e196b00bdb59", size = 4108336, upload-time = "2026-03-04T09:18:19.985Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/ba/8c8fac8506327febada7dc58f90dc459287995bb7b8aadbc44506e61be55/shap-0.51.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:07b0367408b1b9fc51556f2ddac5ee4209cc51be592099e6d51d0834c9b037d8", size = 565741, upload-time = "2026-03-04T09:17:37.286Z" }, + { url = "https://files.pythonhosted.org/packages/49/fd/07f7c454ff5dff455576e5bb08cdb2cab05a4c1eb5e1b9959ef2ac28366d/shap-0.51.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e412bb475c9074ffd6684abb88d86d93275729b344cbfb37b4e4db37db759fbf", size = 562281, upload-time = "2026-03-04T09:17:39.006Z" }, + { url = "https://files.pythonhosted.org/packages/93/a1/37e7229be000cf608ece024dcd76edae4cc618b22b402ea78270849cac3f/shap-0.51.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1aa9f659d2028e26ac7ec34cafbc14585fdc14d0c8973e9442c65af1af1ff781", size = 1051009, upload-time = "2026-03-04T09:17:40.989Z" }, + { url = "https://files.pythonhosted.org/packages/af/c1/a9152876b04f9a05ca18bd3e8bc4bc72468ae32429bfbb30a9cbd4ad35b9/shap-0.51.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0b1f9e62d6a3fa28765d7b61abda7caf76aba21e769423fbf3ce8a7a5e498243", size = 1062849, upload-time = "2026-03-04T09:17:42.587Z" }, + { url = "https://files.pythonhosted.org/packages/80/89/38c903c438b33063b006f41d00684af8b424bb95f0fcfd8963d1501bf427/shap-0.51.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:dee16e81082dec5ce2a37c41c2b9cbebcb4bf7de79133a72d84a4093b7d4158c", size = 2014842, upload-time = "2026-03-04T09:17:44.212Z" }, + { url = "https://files.pythonhosted.org/packages/c9/fd/9b295ad15420566dca713b792d9beb65692804b96c69cc99ffec5e31db58/shap-0.51.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3b878f6414213a12247faa00d609957fdfbcc33cfd48a6751500c4708b5666d", size = 2090611, upload-time = "2026-03-04T09:17:46.728Z" }, + { url = "https://files.pythonhosted.org/packages/20/0e/6f581645b66efff6bf091953f474eb16e64da499cfac0c552dd77559f205/shap-0.51.0-cp312-cp312-win_amd64.whl", hash = "sha256:ee76aa705927ac64acd4f506722f52596e77d3ced87078bc86bfcb4571c7b976", size = 556117, upload-time = "2026-03-04T09:17:48.68Z" }, + { url = "https://files.pythonhosted.org/packages/36/4a/77f8dc2c6874d8a27123afffcb79f540a80ed3ccfd640604e4d8beb9cc5e/shap-0.51.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3efeef8a76e2ee735fad50f82e5a8e56ba8639f42e2fa50dc1997caed77c488", size = 564931, upload-time = "2026-03-04T09:17:51.022Z" }, + { url = "https://files.pythonhosted.org/packages/e6/5e/5c6d37992e93b3fa44509d8544281cd5ae357c8946bc0e756e78139b4baf/shap-0.51.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:724cdd8298450ae22b08ca40e07136c73e4e75dbdf8e3f07d741a291bf636dad", size = 561686, upload-time = "2026-03-04T09:17:52.462Z" }, + { url = "https://files.pythonhosted.org/packages/ec/b7/76dbca9c4b83602841c016fec7201e4146c5e6347a8b0428e7c0617ba424/shap-0.51.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13eb21626ea671604769c847ac0604871a03df0842522087ffc00181683780a4", size = 1050719, upload-time = "2026-03-04T09:17:54.252Z" }, + { url = "https://files.pythonhosted.org/packages/64/b1/472ca0adf25215dfdbca9f398d853536413091fe47dd69bb3f67dbd445f4/shap-0.51.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f32d006680708513efff07f67dcbe44a531b242ae042dee99b7024e210391ac2", size = 1063794, upload-time = "2026-03-04T09:17:56.154Z" }, + { url = "https://files.pythonhosted.org/packages/c6/8e/9072acfcbe6abc79fbfe87360c7dcfe16d7498cdb13dc560820912eb5dd5/shap-0.51.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:33540a7e3c70bd1a742a4d0576c19b5e000165038de953d3ebf31a7bb53d01f4", size = 2012838, upload-time = "2026-03-04T09:17:57.835Z" }, + { url = "https://files.pythonhosted.org/packages/f3/65/b95588a1f48eb9e98aa61e6db31cf63a388970e4c11341d40ddece3b54f8/shap-0.51.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f461e5a1d6b0cae3fd9c6bd00c95111ed95b9e0020ec71f14291429ed17d49f4", size = 2090245, upload-time = "2026-03-04T09:17:59.501Z" }, + { url = "https://files.pythonhosted.org/packages/79/d5/1ec3120f461f31a03d1d2f1d339f5058f12c7a542d22bfcc350511eccc8a/shap-0.51.0-cp313-cp313-win_amd64.whl", hash = "sha256:5f51ca55bda10b3fa2125f2b8e08e9d6a6edcbb0e752c67050e87a6d3ca7d53b", size = 555927, upload-time = "2026-03-04T09:18:01.274Z" }, + { url = "https://files.pythonhosted.org/packages/1f/57/f48dd00ac0d9f75a1f34f5ae47ed3269e8acd541189555f39e49e6f126f4/shap-0.51.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d0c33498ed7042f7259ff207bd3aa1cc814fb759240e5f1500e018660b597c17", size = 562390, upload-time = "2026-03-04T09:18:02.722Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c8/c3b067d10c7a792fd1a32ea93f218b2c217fa99d125f79f26d31376ae246/shap-0.51.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6afaeac1fdd7883a058fb071c7044aff6c44699377a35a5d73e75b68564d0d47", size = 1050124, upload-time = "2026-03-04T09:18:04.172Z" }, + { url = "https://files.pythonhosted.org/packages/31/81/cf180b20ac0c1323b78386667a24dfc2f6d827baa0b223d84bfd5818aa03/shap-0.51.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da930d73fa23d7a296660431f01726ae47ef2e7d9fee7e1632fb674be7b150b9", size = 1059129, upload-time = "2026-03-04T09:18:05.815Z" }, + { url = "https://files.pythonhosted.org/packages/e8/c3/45ab3242f055980938671d568540ff1dbd84eb9bf4fe0d3235432f7bad35/shap-0.51.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:331d80a993e32404dd76254f5a82cb481453b4d9e58c0e7da13a3b700a381b03", size = 2012487, upload-time = "2026-03-04T09:18:07.919Z" }, + { url = "https://files.pythonhosted.org/packages/aa/38/a25863c3c8d344e3e322b8dcbac41929b9d00cfb9df3166ac9c350d89c53/shap-0.51.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c52aa8fb311502d5d25e8d631806326656318ab4094459ddbf1410837aaeb139", size = 2086328, upload-time = "2026-03-04T09:18:09.851Z" }, + { url = "https://files.pythonhosted.org/packages/6a/5e/60fbf1ffe0c150c4db0e80e31b3f9428e633d33ccf072e1e75227679cbfc/shap-0.51.0-cp314-cp314-win_amd64.whl", hash = "sha256:86f24dab2c64d78f38170d490a03ff6fb1b48cf3bd0a1527e9bed23e74ad5d2c", size = 559185, upload-time = "2026-03-04T09:18:11.64Z" }, + { url = "https://files.pythonhosted.org/packages/d2/56/8c5f94ae86590e612487c77b9b9bef3fd2f3c91969b3c6e8743ce06440f3/shap-0.51.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:80132eca5679e7e8da7a0d9bfee58d0a3979be25630fd6598ef608bbcefce784", size = 568928, upload-time = "2026-03-04T09:18:13.2Z" }, + { url = "https://files.pythonhosted.org/packages/a6/16/04467bf7b8430c3a5c709401ab065022a72340bc50dfaf67a1cc117ce15e/shap-0.51.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:18828bc4f78adb644ae35c50e79a246d262fa6cf17143c78cca091796b21c27b", size = 1082574, upload-time = "2026-03-04T09:18:14.899Z" }, + { url = "https://files.pythonhosted.org/packages/12/d1/3f7b841dd943a1cbb9c693ed65366c6afc1ac54c70065e0281fa82b57075/shap-0.51.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:71e18a6850af4cdeece1a3f9d4b633a421885fcfda079125e3d35ea08433d3eb", size = 2034618, upload-time = "2026-03-04T09:18:16.542Z" }, + { url = "https://files.pythonhosted.org/packages/d6/42/3668db63cb38e9648e97087d60a0d4ce569c2e8c2b8828124e6da433026f/shap-0.51.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:23c33eae29f887153ef952846ec3bff6abc0aed3aa01594e4ae66cd94a227a49", size = 2096224, upload-time = "2026-03-04T09:18:18.094Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "slicer" +version = "0.0.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/f9/b4bce2825b39b57760b361e6131a3dacee3d8951c58cb97ad120abb90317/slicer-0.0.8.tar.gz", hash = "sha256:2e7553af73f0c0c2d355f4afcc3ecf97c6f2156fcf4593955c3f56cf6c4d6eb7", size = 14894, upload-time = "2024-03-09T23:35:26.826Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/81/9ef641ff4e12cbcca30e54e72fb0951a2ba195d0cda0ba4100e532d929db/slicer-0.0.8-py3-none-any.whl", hash = "sha256:6c206258543aecd010d497dc2eca9d2805860a0b3758673903456b7df7934dc3", size = 15251, upload-time = "2024-03-09T07:03:07.708Z" }, +] + +[[package]] +name = "soupsieve" +version = "2.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/ae/2d9c981590ed9999a0d91755b47fc74f74de286b0f5cee14c9269041e6c4/soupsieve-2.8.3.tar.gz", hash = "sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349", size = 118627, upload-time = "2026-01-20T04:27:02.457Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl", hash = "sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95", size = 37016, upload-time = "2026-01-20T04:27:01.012Z" }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, +] + +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload-time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" }, +] + +[[package]] +name = "torch" +version = "2.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cuda-bindings", marker = "sys_platform == 'linux'" }, + { name = "cuda-toolkit", extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"], marker = "sys_platform == 'linux'" }, + { name = "filelock" }, + { name = "fsspec" }, + { name = "jinja2" }, + { name = "networkx" }, + { name = "nvidia-cudnn-cu13", marker = "sys_platform == 'linux'" }, + { name = "nvidia-cusparselt-cu13", marker = "sys_platform == 'linux'" }, + { name = "nvidia-nccl-cu13", marker = "sys_platform == 'linux'" }, + { name = "nvidia-nvshmem-cu13", marker = "sys_platform == 'linux'" }, + { name = "setuptools" }, + { name = "sympy" }, + { name = "triton", marker = "sys_platform == 'linux'" }, + { name = "typing-extensions" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/8b/69e3008d78e5cee2b30183340cc425081b78afc5eff3d080daab0adda9aa/torch-2.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4b5866312ee6e52ea625cd211dcb97d6a2cdc1131a5f15cc0d87eec948f6dd34", size = 80606338, upload-time = "2026-03-23T18:11:34.781Z" }, + { url = "https://files.pythonhosted.org/packages/13/16/42e5915ebe4868caa6bac83a8ed59db57f12e9a61b7d749d584776ed53d5/torch-2.11.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f99924682ef0aa6a4ab3b1b76f40dc6e273fca09f367d15a524266db100a723f", size = 419731115, upload-time = "2026-03-23T18:11:06.944Z" }, + { url = "https://files.pythonhosted.org/packages/1a/c9/82638ef24d7877510f83baf821f5619a61b45568ce21c0a87a91576510aa/torch-2.11.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:0f68f4ac6d95d12e896c3b7a912b5871619542ec54d3649cf48cc1edd4dd2756", size = 530712279, upload-time = "2026-03-23T18:10:31.481Z" }, + { url = "https://files.pythonhosted.org/packages/1c/ff/6756f1c7ee302f6d202120e0f4f05b432b839908f9071157302cedfc5232/torch-2.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:fbf39280699d1b869f55eac536deceaa1b60bd6788ba74f399cc67e60a5fab10", size = 114556047, upload-time = "2026-03-23T18:10:55.931Z" }, + { url = "https://files.pythonhosted.org/packages/87/89/5ea6722763acee56b045435fb84258db7375c48165ec8be7880ab2b281c5/torch-2.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1e6debd97ccd3205bbb37eb806a9d8219e1139d15419982c09e23ef7d4369d18", size = 80606801, upload-time = "2026-03-23T18:10:18.649Z" }, + { url = "https://files.pythonhosted.org/packages/32/d1/8ed2173589cbfe744ed54e5a73efc107c0085ba5777ee93a5f4c1ab90553/torch-2.11.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:63a68fa59de8f87acc7e85a5478bb2dddbb3392b7593ec3e78827c793c4b73fd", size = 419732382, upload-time = "2026-03-23T18:08:30.835Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e1/b73f7c575a4b8f87a5928f50a1e35416b5e27295d8be9397d5293e7e8d4c/torch-2.11.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:cc89b9b173d9adfab59fd227f0ab5e5516d9a52b658ae41d64e59d2e55a418db", size = 530711509, upload-time = "2026-03-23T18:08:47.213Z" }, + { url = "https://files.pythonhosted.org/packages/66/82/3e3fcdd388fbe54e29fd3f991f36846ff4ac90b0d0181e9c8f7236565f82/torch-2.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:4dda3b3f52d121063a731ddb835f010dc137b920d7fec2778e52f60d8e4bf0cd", size = 114555842, upload-time = "2026-03-23T18:09:52.111Z" }, + { url = "https://files.pythonhosted.org/packages/db/38/8ac78069621b8c2b4979c2f96dc8409ef5e9c4189f6aac629189a78677ca/torch-2.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8b394322f49af4362d4f80e424bcaca7efcd049619af03a4cf4501520bdf0fb4", size = 80959574, upload-time = "2026-03-23T18:10:14.214Z" }, + { url = "https://files.pythonhosted.org/packages/6d/6c/56bfb37073e7136e6dd86bfc6af7339946dd684e0ecf2155ac0eee687ae1/torch-2.11.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:2658f34ce7e2dabf4ec73b45e2ca68aedad7a5be87ea756ad656eaf32bf1e1ea", size = 419732324, upload-time = "2026-03-23T18:09:36.604Z" }, + { url = "https://files.pythonhosted.org/packages/07/f4/1b666b6d61d3394cca306ea543ed03a64aad0a201b6cd159f1d41010aeb1/torch-2.11.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:98bb213c3084cfe176302949bdc360074b18a9da7ab59ef2edc9d9f742504778", size = 530596026, upload-time = "2026-03-23T18:09:20.842Z" }, + { url = "https://files.pythonhosted.org/packages/48/6b/30d1459fa7e4b67e9e3fe1685ca1d8bb4ce7c62ef436c3a615963c6c866c/torch-2.11.0-cp313-cp313t-win_amd64.whl", hash = "sha256:a97b94bbf62992949b4730c6cd2cc9aee7b335921ee8dc207d930f2ed09ae2db", size = 114793702, upload-time = "2026-03-23T18:09:47.304Z" }, + { url = "https://files.pythonhosted.org/packages/26/0d/8603382f61abd0db35841148ddc1ffd607bf3100b11c6e1dab6d2fc44e72/torch-2.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:01018087326984a33b64e04c8cb5c2795f9120e0d775ada1f6638840227b04d7", size = 80573442, upload-time = "2026-03-23T18:09:10.117Z" }, + { url = "https://files.pythonhosted.org/packages/c7/86/7cd7c66cb9cec6be330fff36db5bd0eef386d80c031b581ec81be1d4b26c/torch-2.11.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:2bb3cc54bd0dea126b0060bb1ec9de0f9c7f7342d93d436646516b0330cd5be7", size = 419749385, upload-time = "2026-03-23T18:07:33.77Z" }, + { url = "https://files.pythonhosted.org/packages/47/e8/b98ca2d39b2e0e4730c0ee52537e488e7008025bc77ca89552ff91021f7c/torch-2.11.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:4dc8b3809469b6c30b411bb8c4cad3828efd26236153d9beb6a3ec500f211a60", size = 530716756, upload-time = "2026-03-23T18:07:50.02Z" }, + { url = "https://files.pythonhosted.org/packages/78/88/d4a4cda8362f8a30d1ed428564878c3cafb0d87971fbd3947d4c84552095/torch-2.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:2b4e811728bd0cc58fb2b0948fe939a1ee2bf1422f6025be2fca4c7bd9d79718", size = 114552300, upload-time = "2026-03-23T18:09:05.617Z" }, + { url = "https://files.pythonhosted.org/packages/bf/46/4419098ed6d801750f26567b478fc185c3432e11e2cad712bc6b4c2ab0d0/torch-2.11.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8245477871c3700d4370352ffec94b103cfcb737229445cf9946cddb7b2ca7cd", size = 80959460, upload-time = "2026-03-23T18:09:00.818Z" }, + { url = "https://files.pythonhosted.org/packages/fd/66/54a56a4a6ceaffb567231994a9745821d3af922a854ed33b0b3a278e0a99/torch-2.11.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:ab9a8482f475f9ba20e12db84b0e55e2f58784bdca43a854a6ccd3fd4b9f75e6", size = 419735835, upload-time = "2026-03-23T18:07:18.974Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e7/0b6665f533aa9e337662dc190425abc0af1fe3234088f4454c52393ded61/torch-2.11.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:563ed3d25542d7e7bbc5b235ccfacfeb97fb470c7fee257eae599adb8005c8a2", size = 530613405, upload-time = "2026-03-23T18:08:07.014Z" }, + { url = "https://files.pythonhosted.org/packages/cf/bf/c8d12a2c86dbfd7f40fb2f56fbf5a505ccf2d9ce131eb559dfc7c51e1a04/torch-2.11.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b2a43985ff5ef6ddd923bbcf99943e5f58059805787c5c9a2622bf05ca2965b0", size = 114792991, upload-time = "2026-03-23T18:08:19.216Z" }, +] + +[[package]] +name = "torch-geometric" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "fsspec" }, + { name = "jinja2" }, + { name = "numpy" }, + { name = "psutil" }, + { name = "pyparsing" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "xxhash" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/75/63/b210152635902da7fe79fcdd16517fae108f457a0ed22c737e702a9afbae/torch_geometric-2.7.0.tar.gz", hash = "sha256:f9099e4aece1a9f618c84dbaac33a77f43139736698c7e8bddf3301ef1f2e8d4", size = 876725, upload-time = "2025-10-15T20:48:03.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/4dffd7300500465e0b4a2ae917dcb2ce771de0b9a772670365799a27c024/torch_geometric-2.7.0-py3-none-any.whl", hash = "sha256:6e0cd3ad824d484651ef5d308fc66c687bfcf5ba040d56d1e0fe0f81f365e292", size = 1275346, upload-time = "2025-10-15T20:48:01.949Z" }, +] + +[[package]] +name = "torchvision" +version = "0.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "pillow" }, + { name = "torch" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/e7/56b47cc3b132aea90ccce22bcb8975dec688b002150012acc842846039d0/torchvision-0.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c409e1c3fdebec7a3834465086dbda8bf7680eff79abf7fd2f10c6b59520a7a4", size = 1863502, upload-time = "2026-03-23T18:12:57.326Z" }, + { url = "https://files.pythonhosted.org/packages/f4/ec/5c31c92c08b65662fe9604a4067ae8232582805949f11ddc042cebe818ed/torchvision-0.26.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:406557718e62fdf10f5706e88d8a5ec000f872da913bf629aab9297622585547", size = 7767944, upload-time = "2026-03-23T18:12:42.805Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d8/cb6ccda1a1f35a6597645818641701207b3e8e13553e75fce5d86bac74b2/torchvision-0.26.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d61a5abb6b42a0c0c311996c2ac4b83a94418a97182c83b055a2a4ae985e05aa", size = 7522205, upload-time = "2026-03-23T18:12:54.654Z" }, + { url = "https://files.pythonhosted.org/packages/1c/a9/c272623a0f735c35f0f6cd6dc74784d4f970e800cf063bb76687895a2ab9/torchvision-0.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:7993c01648e7c61d191b018e84d38fe0825c8fcb2720cd0f37caf7ba14404aa1", size = 4255155, upload-time = "2026-03-23T18:12:32.652Z" }, + { url = "https://files.pythonhosted.org/packages/da/80/0762f77f53605d10c9477be39bb47722cc8e383bbbc2531471ce0e396c07/torchvision-0.26.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:5d63dd43162691258b1b3529b9041bac7d54caa37eae0925f997108268cbf7c4", size = 1860809, upload-time = "2026-03-23T18:12:47.629Z" }, + { url = "https://files.pythonhosted.org/packages/e6/81/0b3e58d1478c660a5af4268713486b2df7203f35abd9195fea87348a5178/torchvision-0.26.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:a39c7a26538c41fda453f9a9692b5ff9b35a5437db1d94f3027f6f509c160eac", size = 7727494, upload-time = "2026-03-23T18:12:46.062Z" }, + { url = "https://files.pythonhosted.org/packages/b6/dc/d9ab5d29115aa05e12e30f1397a3eeae1d88a511241dc3bce48dc4342675/torchvision-0.26.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:b7e6213620bbf97742e5f79832f9e9d769e6cf0f744c5b53dad80b76db633691", size = 7521747, upload-time = "2026-03-23T18:12:36.815Z" }, + { url = "https://files.pythonhosted.org/packages/a9/1b/f1bc86a918c5f6feab1eeff11982e2060f4704332e96185463d27855bdf5/torchvision-0.26.0-cp313-cp313-win_amd64.whl", hash = "sha256:4280c35ec8cba1fcc8294fb87e136924708726864c379e4c54494797d86bc474", size = 4319880, upload-time = "2026-03-23T18:12:38.168Z" }, + { url = "https://files.pythonhosted.org/packages/66/28/b4ad0a723ed95b003454caffcc41894b34bd8379df340848cae2c33871de/torchvision-0.26.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:358fc4726d0c08615b6d83b3149854f11efb2a564ed1acb6fce882e151412d23", size = 1951973, upload-time = "2026-03-23T18:12:48.781Z" }, + { url = "https://files.pythonhosted.org/packages/71/e2/7a89096e6cf2f3336353b5338ba925e0addf9d8601920340e6bdf47e8eb3/torchvision-0.26.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:3daf9cc149cf3cdcbd4df9c59dae69ffca86c6823250442c3bbfd63fc2e26c61", size = 7728679, upload-time = "2026-03-23T18:12:26.196Z" }, + { url = "https://files.pythonhosted.org/packages/69/1d/4e1eebc17d18ce080a11dcf3df3f8f717f0efdfa00983f06e8ba79259f61/torchvision-0.26.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:82c3965eca27e86a316e31e4c3e5a16d353e0bcbe0ef8efa2e66502c54493c4b", size = 7609138, upload-time = "2026-03-23T18:12:35.327Z" }, + { url = "https://files.pythonhosted.org/packages/f3/a4/f1155e943ae5b32400d7000adc81c79bb0392b16ceb33bcf13e02e48cced/torchvision-0.26.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ebc043cc5a4f0bf22e7680806dbba37ffb19e70f6953bbb44ed1a90aeb5c9bea", size = 4248202, upload-time = "2026-03-23T18:12:41.423Z" }, + { url = "https://files.pythonhosted.org/packages/7f/c8/9bffa9c7f7bdf95b2a0a2dc535c290b9f1cc580c3fb3033ab1246ffffdeb/torchvision-0.26.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:eb61804eb9dbe88c5a2a6c4da8dec1d80d2d0a6f18c999c524e32266cb1ebcd3", size = 1860813, upload-time = "2026-03-23T18:12:39.636Z" }, + { url = "https://files.pythonhosted.org/packages/7b/ac/48f28ffd227991f2e14f4392dde7e8dc14352bb9428c1ef4a4bbf5f7ed85/torchvision-0.26.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:9a904f2131cbfadab4df828088a9f66291ad33f49ff853872aed1f86848ef776", size = 7727777, upload-time = "2026-03-23T18:12:22.549Z" }, + { url = "https://files.pythonhosted.org/packages/a4/21/a2266f7f1b0e58e624ff15fd6f01041f59182c49551ece0db9a183071329/torchvision-0.26.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:0f3e572efe62ad645017ea847e0b5e4f2f638d4e39f05bc011d1eb9ac68d4806", size = 7522174, upload-time = "2026-03-23T18:12:29.565Z" }, + { url = "https://files.pythonhosted.org/packages/fc/ba/1666f90bc0bdd77aaa11dcc42bb9f621a9c3668819c32430452e3d404730/torchvision-0.26.0-cp314-cp314-win_amd64.whl", hash = "sha256:114bec0c0e98aa4ba446f63e2fe7a2cbca37b39ac933987ee4804f65de121800", size = 4348469, upload-time = "2026-03-23T18:12:24.44Z" }, + { url = "https://files.pythonhosted.org/packages/45/8f/1f0402ac55c2ae15651ff831957d083fe70b2d12282e72612a30ba601512/torchvision-0.26.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:b7d3e295624a28b3b1769228ce1345d94cf4d390dd31136766f76f2d20f718da", size = 1860826, upload-time = "2026-03-23T18:12:34.1Z" }, + { url = "https://files.pythonhosted.org/packages/d2/6a/18a582fe3c5ee26f49b5c9fb21ad8016b4d1c06d10178894a58653946fda/torchvision-0.26.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:7058c5878262937e876f20c25867b33724586aa4499e2853b2d52b99a5e51953", size = 7729089, upload-time = "2026-03-23T18:12:31.394Z" }, + { url = "https://files.pythonhosted.org/packages/c5/9b/f7e119b59499edc00c55c03adc9ec3bd96144d9b81c46852c431f9c64a9a/torchvision-0.26.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:8008474855623c6ba52876589dc52df0aa66e518c25eca841445348e5f79844c", size = 7522704, upload-time = "2026-03-23T18:12:20.301Z" }, + { url = "https://files.pythonhosted.org/packages/d0/6a/09f3844c10643f6c0de5d95abc863420cfaf194c88c7dffd0ac523e2015f/torchvision-0.26.0-cp314-cp314t-win_amd64.whl", hash = "sha256:e9d0e022c19a78552fb055d0414d47fecb4a649309b9968573daea160ba6869c", size = 4454275, upload-time = "2026-03-23T18:12:27.487Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598, upload-time = "2026-02-03T17:35:53.048Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, +] + +[[package]] +name = "triton" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/5d/08201db32823bdf77a0e2b9039540080b2e5c23a20706ddba942924ebcd6/triton-3.6.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:374f52c11a711fd062b4bfbb201fd9ac0a5febd28a96fb41b4a0f51dde3157f4", size = 176128243, upload-time = "2026-01-20T16:16:07.857Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a8/cdf8b3e4c98132f965f88c2313a4b493266832ad47fb52f23d14d4f86bb5/triton-3.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74caf5e34b66d9f3a429af689c1c7128daba1d8208df60e81106b115c00d6fca", size = 188266850, upload-time = "2026-01-20T16:00:43.041Z" }, + { url = "https://files.pythonhosted.org/packages/3c/12/34d71b350e89a204c2c7777a9bba0dcf2f19a5bfdd70b57c4dbc5ffd7154/triton-3.6.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:448e02fe6dc898e9e5aa89cf0ee5c371e99df5aa5e8ad976a80b93334f3494fd", size = 176133521, upload-time = "2026-01-20T16:16:13.321Z" }, + { url = "https://files.pythonhosted.org/packages/f9/0b/37d991d8c130ce81a8728ae3c25b6e60935838e9be1b58791f5997b24a54/triton-3.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:10c7f76c6e72d2ef08df639e3d0d30729112f47a56b0c81672edc05ee5116ac9", size = 188289450, upload-time = "2026-01-20T16:00:49.136Z" }, + { url = "https://files.pythonhosted.org/packages/ce/4e/41b0c8033b503fd3cfcd12392cdd256945026a91ff02452bef40ec34bee7/triton-3.6.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1722e172d34e32abc3eb7711d0025bb69d7959ebea84e3b7f7a341cd7ed694d6", size = 176276087, upload-time = "2026-01-20T16:16:18.989Z" }, + { url = "https://files.pythonhosted.org/packages/35/f8/9c66bfc55361ec6d0e4040a0337fb5924ceb23de4648b8a81ae9d33b2b38/triton-3.6.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d002e07d7180fd65e622134fbd980c9a3d4211fb85224b56a0a0efbd422ab72f", size = 188400296, upload-time = "2026-01-20T16:00:56.042Z" }, + { url = "https://files.pythonhosted.org/packages/49/55/5ecf0dcaa0f2fbbd4420f7ef227ee3cb172e91e5fede9d0ecaddc43363b4/triton-3.6.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef5523241e7d1abca00f1d240949eebdd7c673b005edbbce0aca95b8191f1d43", size = 176138577, upload-time = "2026-01-20T16:16:25.426Z" }, + { url = "https://files.pythonhosted.org/packages/df/3d/9e7eee57b37c80cec63322c0231bb6da3cfe535a91d7a4d64896fcb89357/triton-3.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a17a5d5985f0ac494ed8a8e54568f092f7057ef60e1b0fa09d3fd1512064e803", size = 188273063, upload-time = "2026-01-20T16:01:07.278Z" }, + { url = "https://files.pythonhosted.org/packages/48/db/56ee649cab5eaff4757541325aca81f52d02d4a7cd3506776cad2451e060/triton-3.6.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b3a97e8ed304dfa9bd23bb41ca04cdf6b2e617d5e782a8653d616037a5d537d", size = 176274804, upload-time = "2026-01-20T16:16:31.528Z" }, + { url = "https://files.pythonhosted.org/packages/f6/56/6113c23ff46c00aae423333eb58b3e60bdfe9179d542781955a5e1514cb3/triton-3.6.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:46bd1c1af4b6704e554cad2eeb3b0a6513a980d470ccfa63189737340c7746a7", size = 188397994, upload-time = "2026-01-20T16:01:14.236Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "tzdata" +version = "2026.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/f5/cd531b2d15a671a40c0f66cf06bc3570a12cd56eef98960068ebbad1bf5a/tzdata-2026.1.tar.gz", hash = "sha256:67658a1903c75917309e753fdc349ac0efd8c27db7a0cb406a25be4840f87f98", size = 197639, upload-time = "2026-04-03T11:25:22.002Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b0/70/d460bd685a170790ec89317e9bd33047988e4bce507b831f5db771e142de/tzdata-2026.1-py2.py3-none-any.whl", hash = "sha256:4b1d2be7ac37ceafd7327b961aa3a54e467efbdb563a23655fbfe0d39cfc42a9", size = 348952, upload-time = "2026-04-03T11:25:20.313Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/a2/8e3becb46433538a38726c948d3399905a4c7cabd0df578ede5dc51f0ec2/wcwidth-0.6.0.tar.gz", hash = "sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159", size = 159684, upload-time = "2026-02-06T19:19:40.919Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/5a/199c59e0a824a3db2b89c5d2dade7ab5f9624dbf6448dc291b46d5ec94d3/wcwidth-0.6.0-py3-none-any.whl", hash = "sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad", size = 94189, upload-time = "2026-02-06T19:19:39.646Z" }, +] + +[[package]] +name = "widgetsnbextension" +version = "4.0.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/f4/c67440c7fb409a71b7404b7aefcd7569a9c0d6bd071299bf4198ae7a5d95/widgetsnbextension-4.0.15.tar.gz", hash = "sha256:de8610639996f1567952d763a5a41af8af37f2575a41f9852a38f947eb82a3b9", size = 1097402, upload-time = "2025-11-01T21:15:55.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl", hash = "sha256:8156704e4346a571d9ce73b84bee86a29906c9abfd7223b7228a28899ccf3366", size = 2196503, upload-time = "2025-11-01T21:15:53.565Z" }, +] + +[[package]] +name = "xxhash" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/02/84/30869e01909fb37a6cc7e18688ee8bf1e42d57e7e0777636bd47524c43c7/xxhash-3.6.0.tar.gz", hash = "sha256:f0162a78b13a0d7617b2845b90c763339d1f1d82bb04a4b07f4ab535cc5e05d6", size = 85160, upload-time = "2025-10-02T14:37:08.097Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/07/d9412f3d7d462347e4511181dea65e47e0d0e16e26fbee2ea86a2aefb657/xxhash-3.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:01362c4331775398e7bb34e3ab403bc9ee9f7c497bc7dee6272114055277dd3c", size = 32744, upload-time = "2025-10-02T14:34:34.622Z" }, + { url = "https://files.pythonhosted.org/packages/79/35/0429ee11d035fc33abe32dca1b2b69e8c18d236547b9a9b72c1929189b9a/xxhash-3.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b7b2df81a23f8cb99656378e72501b2cb41b1827c0f5a86f87d6b06b69f9f204", size = 30816, upload-time = "2025-10-02T14:34:36.043Z" }, + { url = "https://files.pythonhosted.org/packages/b7/f2/57eb99aa0f7d98624c0932c5b9a170e1806406cdbcdb510546634a1359e0/xxhash-3.6.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:dc94790144e66b14f67b10ac8ed75b39ca47536bf8800eb7c24b50271ea0c490", size = 194035, upload-time = "2025-10-02T14:34:37.354Z" }, + { url = "https://files.pythonhosted.org/packages/4c/ed/6224ba353690d73af7a3f1c7cdb1fc1b002e38f783cb991ae338e1eb3d79/xxhash-3.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93f107c673bccf0d592cdba077dedaf52fe7f42dcd7676eba1f6d6f0c3efffd2", size = 212914, upload-time = "2025-10-02T14:34:38.6Z" }, + { url = "https://files.pythonhosted.org/packages/38/86/fb6b6130d8dd6b8942cc17ab4d90e223653a89aa32ad2776f8af7064ed13/xxhash-3.6.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aa5ee3444c25b69813663c9f8067dcfaa2e126dc55e8dddf40f4d1c25d7effa", size = 212163, upload-time = "2025-10-02T14:34:39.872Z" }, + { url = "https://files.pythonhosted.org/packages/ee/dc/e84875682b0593e884ad73b2d40767b5790d417bde603cceb6878901d647/xxhash-3.6.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7f99123f0e1194fa59cc69ad46dbae2e07becec5df50a0509a808f90a0f03f0", size = 445411, upload-time = "2025-10-02T14:34:41.569Z" }, + { url = "https://files.pythonhosted.org/packages/11/4f/426f91b96701ec2f37bb2b8cec664eff4f658a11f3fa9d94f0a887ea6d2b/xxhash-3.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49e03e6fe2cac4a1bc64952dd250cf0dbc5ef4ebb7b8d96bce82e2de163c82a2", size = 193883, upload-time = "2025-10-02T14:34:43.249Z" }, + { url = "https://files.pythonhosted.org/packages/53/5a/ddbb83eee8e28b778eacfc5a85c969673e4023cdeedcfcef61f36731610b/xxhash-3.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bd17fede52a17a4f9a7bc4472a5867cb0b160deeb431795c0e4abe158bc784e9", size = 210392, upload-time = "2025-10-02T14:34:45.042Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c2/ff69efd07c8c074ccdf0a4f36fcdd3d27363665bcdf4ba399abebe643465/xxhash-3.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6fb5f5476bef678f69db04f2bd1efbed3030d2aba305b0fc1773645f187d6a4e", size = 197898, upload-time = "2025-10-02T14:34:46.302Z" }, + { url = "https://files.pythonhosted.org/packages/58/ca/faa05ac19b3b622c7c9317ac3e23954187516298a091eb02c976d0d3dd45/xxhash-3.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:843b52f6d88071f87eba1631b684fcb4b2068cd2180a0224122fe4ef011a9374", size = 210655, upload-time = "2025-10-02T14:34:47.571Z" }, + { url = "https://files.pythonhosted.org/packages/d4/7a/06aa7482345480cc0cb597f5c875b11a82c3953f534394f620b0be2f700c/xxhash-3.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7d14a6cfaf03b1b6f5f9790f76880601ccc7896aff7ab9cd8978a939c1eb7e0d", size = 414001, upload-time = "2025-10-02T14:34:49.273Z" }, + { url = "https://files.pythonhosted.org/packages/23/07/63ffb386cd47029aa2916b3d2f454e6cc5b9f5c5ada3790377d5430084e7/xxhash-3.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:418daf3db71e1413cfe211c2f9a528456936645c17f46b5204705581a45390ae", size = 191431, upload-time = "2025-10-02T14:34:50.798Z" }, + { url = "https://files.pythonhosted.org/packages/0f/93/14fde614cadb4ddf5e7cebf8918b7e8fac5ae7861c1875964f17e678205c/xxhash-3.6.0-cp312-cp312-win32.whl", hash = "sha256:50fc255f39428a27299c20e280d6193d8b63b8ef8028995323bf834a026b4fbb", size = 30617, upload-time = "2025-10-02T14:34:51.954Z" }, + { url = "https://files.pythonhosted.org/packages/13/5d/0d125536cbe7565a83d06e43783389ecae0c0f2ed037b48ede185de477c0/xxhash-3.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0f2ab8c715630565ab8991b536ecded9416d615538be8ecddce43ccf26cbc7c", size = 31534, upload-time = "2025-10-02T14:34:53.276Z" }, + { url = "https://files.pythonhosted.org/packages/54/85/6ec269b0952ec7e36ba019125982cf11d91256a778c7c3f98a4c5043d283/xxhash-3.6.0-cp312-cp312-win_arm64.whl", hash = "sha256:eae5c13f3bc455a3bbb68bdc513912dc7356de7e2280363ea235f71f54064829", size = 27876, upload-time = "2025-10-02T14:34:54.371Z" }, + { url = "https://files.pythonhosted.org/packages/33/76/35d05267ac82f53ae9b0e554da7c5e281ee61f3cad44c743f0fcd354f211/xxhash-3.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:599e64ba7f67472481ceb6ee80fa3bd828fd61ba59fb11475572cc5ee52b89ec", size = 32738, upload-time = "2025-10-02T14:34:55.839Z" }, + { url = "https://files.pythonhosted.org/packages/31/a8/3fbce1cd96534a95e35d5120637bf29b0d7f5d8fa2f6374e31b4156dd419/xxhash-3.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d8b8aaa30fca4f16f0c84a5c8d7ddee0e25250ec2796c973775373257dde8f1", size = 30821, upload-time = "2025-10-02T14:34:57.219Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ea/d387530ca7ecfa183cb358027f1833297c6ac6098223fd14f9782cd0015c/xxhash-3.6.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d597acf8506d6e7101a4a44a5e428977a51c0fadbbfd3c39650cca9253f6e5a6", size = 194127, upload-time = "2025-10-02T14:34:59.21Z" }, + { url = "https://files.pythonhosted.org/packages/ba/0c/71435dcb99874b09a43b8d7c54071e600a7481e42b3e3ce1eb5226a5711a/xxhash-3.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:858dc935963a33bc33490128edc1c12b0c14d9c7ebaa4e387a7869ecc4f3e263", size = 212975, upload-time = "2025-10-02T14:35:00.816Z" }, + { url = "https://files.pythonhosted.org/packages/84/7a/c2b3d071e4bb4a90b7057228a99b10d51744878f4a8a6dd643c8bd897620/xxhash-3.6.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba284920194615cb8edf73bf52236ce2e1664ccd4a38fdb543506413529cc546", size = 212241, upload-time = "2025-10-02T14:35:02.207Z" }, + { url = "https://files.pythonhosted.org/packages/81/5f/640b6eac0128e215f177df99eadcd0f1b7c42c274ab6a394a05059694c5a/xxhash-3.6.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b54219177f6c6674d5378bd862c6aedf64725f70dd29c472eaae154df1a2e89", size = 445471, upload-time = "2025-10-02T14:35:03.61Z" }, + { url = "https://files.pythonhosted.org/packages/5e/1e/3c3d3ef071b051cc3abbe3721ffb8365033a172613c04af2da89d5548a87/xxhash-3.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42c36dd7dbad2f5238950c377fcbf6811b1cdb1c444fab447960030cea60504d", size = 193936, upload-time = "2025-10-02T14:35:05.013Z" }, + { url = "https://files.pythonhosted.org/packages/2c/bd/4a5f68381939219abfe1c22a9e3a5854a4f6f6f3c4983a87d255f21f2e5d/xxhash-3.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f22927652cba98c44639ffdc7aaf35828dccf679b10b31c4ad72a5b530a18eb7", size = 210440, upload-time = "2025-10-02T14:35:06.239Z" }, + { url = "https://files.pythonhosted.org/packages/eb/37/b80fe3d5cfb9faff01a02121a0f4d565eb7237e9e5fc66e73017e74dcd36/xxhash-3.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b45fad44d9c5c119e9c6fbf2e1c656a46dc68e280275007bbfd3d572b21426db", size = 197990, upload-time = "2025-10-02T14:35:07.735Z" }, + { url = "https://files.pythonhosted.org/packages/d7/fd/2c0a00c97b9e18f72e1f240ad4e8f8a90fd9d408289ba9c7c495ed7dc05c/xxhash-3.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:6f2580ffab1a8b68ef2b901cde7e55fa8da5e4be0977c68f78fc80f3c143de42", size = 210689, upload-time = "2025-10-02T14:35:09.438Z" }, + { url = "https://files.pythonhosted.org/packages/93/86/5dd8076a926b9a95db3206aba20d89a7fc14dd5aac16e5c4de4b56033140/xxhash-3.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40c391dd3cd041ebc3ffe6f2c862f402e306eb571422e0aa918d8070ba31da11", size = 414068, upload-time = "2025-10-02T14:35:11.162Z" }, + { url = "https://files.pythonhosted.org/packages/af/3c/0bb129170ee8f3650f08e993baee550a09593462a5cddd8e44d0011102b1/xxhash-3.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f205badabde7aafd1a31e8ca2a3e5a763107a71c397c4481d6a804eb5063d8bd", size = 191495, upload-time = "2025-10-02T14:35:12.971Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3a/6797e0114c21d1725e2577508e24006fd7ff1d8c0c502d3b52e45c1771d8/xxhash-3.6.0-cp313-cp313-win32.whl", hash = "sha256:2577b276e060b73b73a53042ea5bd5203d3e6347ce0d09f98500f418a9fcf799", size = 30620, upload-time = "2025-10-02T14:35:14.129Z" }, + { url = "https://files.pythonhosted.org/packages/86/15/9bc32671e9a38b413a76d24722a2bf8784a132c043063a8f5152d390b0f9/xxhash-3.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:757320d45d2fbcce8f30c42a6b2f47862967aea7bf458b9625b4bbe7ee390392", size = 31542, upload-time = "2025-10-02T14:35:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/39/c5/cc01e4f6188656e56112d6a8e0dfe298a16934b8c47a247236549a3f7695/xxhash-3.6.0-cp313-cp313-win_arm64.whl", hash = "sha256:457b8f85dec5825eed7b69c11ae86834a018b8e3df5e77783c999663da2f96d6", size = 27880, upload-time = "2025-10-02T14:35:16.315Z" }, + { url = "https://files.pythonhosted.org/packages/f3/30/25e5321c8732759e930c555176d37e24ab84365482d257c3b16362235212/xxhash-3.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a42e633d75cdad6d625434e3468126c73f13f7584545a9cf34e883aa1710e702", size = 32956, upload-time = "2025-10-02T14:35:17.413Z" }, + { url = "https://files.pythonhosted.org/packages/9f/3c/0573299560d7d9f8ab1838f1efc021a280b5ae5ae2e849034ef3dee18810/xxhash-3.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:568a6d743219e717b07b4e03b0a828ce593833e498c3b64752e0f5df6bfe84db", size = 31072, upload-time = "2025-10-02T14:35:18.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1c/52d83a06e417cd9d4137722693424885cc9878249beb3a7c829e74bf7ce9/xxhash-3.6.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:bec91b562d8012dae276af8025a55811b875baace6af510412a5e58e3121bc54", size = 196409, upload-time = "2025-10-02T14:35:20.31Z" }, + { url = "https://files.pythonhosted.org/packages/e3/8e/c6d158d12a79bbd0b878f8355432075fc82759e356ab5a111463422a239b/xxhash-3.6.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78e7f2f4c521c30ad5e786fdd6bae89d47a32672a80195467b5de0480aa97b1f", size = 215736, upload-time = "2025-10-02T14:35:21.616Z" }, + { url = "https://files.pythonhosted.org/packages/bc/68/c4c80614716345d55071a396cf03d06e34b5f4917a467faf43083c995155/xxhash-3.6.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3ed0df1b11a79856df5ffcab572cbd6b9627034c1c748c5566fa79df9048a7c5", size = 214833, upload-time = "2025-10-02T14:35:23.32Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e9/ae27c8ffec8b953efa84c7c4a6c6802c263d587b9fc0d6e7cea64e08c3af/xxhash-3.6.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0e4edbfc7d420925b0dd5e792478ed393d6e75ff8fc219a6546fb446b6a417b1", size = 448348, upload-time = "2025-10-02T14:35:25.111Z" }, + { url = "https://files.pythonhosted.org/packages/d7/6b/33e21afb1b5b3f46b74b6bd1913639066af218d704cc0941404ca717fc57/xxhash-3.6.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fba27a198363a7ef87f8c0f6b171ec36b674fe9053742c58dd7e3201c1ab30ee", size = 196070, upload-time = "2025-10-02T14:35:26.586Z" }, + { url = "https://files.pythonhosted.org/packages/96/b6/fcabd337bc5fa624e7203aa0fa7d0c49eed22f72e93229431752bddc83d9/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:794fe9145fe60191c6532fa95063765529770edcdd67b3d537793e8004cabbfd", size = 212907, upload-time = "2025-10-02T14:35:28.087Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d3/9ee6160e644d660fcf176c5825e61411c7f62648728f69c79ba237250143/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:6105ef7e62b5ac73a837778efc331a591d8442f8ef5c7e102376506cb4ae2729", size = 200839, upload-time = "2025-10-02T14:35:29.857Z" }, + { url = "https://files.pythonhosted.org/packages/0d/98/e8de5baa5109394baf5118f5e72ab21a86387c4f89b0e77ef3e2f6b0327b/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f01375c0e55395b814a679b3eea205db7919ac2af213f4a6682e01220e5fe292", size = 213304, upload-time = "2025-10-02T14:35:31.222Z" }, + { url = "https://files.pythonhosted.org/packages/7b/1d/71056535dec5c3177eeb53e38e3d367dd1d16e024e63b1cee208d572a033/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:d706dca2d24d834a4661619dcacf51a75c16d65985718d6a7d73c1eeeb903ddf", size = 416930, upload-time = "2025-10-02T14:35:32.517Z" }, + { url = "https://files.pythonhosted.org/packages/dc/6c/5cbde9de2cd967c322e651c65c543700b19e7ae3e0aae8ece3469bf9683d/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f059d9faeacd49c0215d66f4056e1326c80503f51a1532ca336a385edadd033", size = 193787, upload-time = "2025-10-02T14:35:33.827Z" }, + { url = "https://files.pythonhosted.org/packages/19/fa/0172e350361d61febcea941b0cc541d6e6c8d65d153e85f850a7b256ff8a/xxhash-3.6.0-cp313-cp313t-win32.whl", hash = "sha256:1244460adc3a9be84731d72b8e80625788e5815b68da3da8b83f78115a40a7ec", size = 30916, upload-time = "2025-10-02T14:35:35.107Z" }, + { url = "https://files.pythonhosted.org/packages/ad/e6/e8cf858a2b19d6d45820f072eff1bea413910592ff17157cabc5f1227a16/xxhash-3.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:b1e420ef35c503869c4064f4a2f2b08ad6431ab7b229a05cce39d74268bca6b8", size = 31799, upload-time = "2025-10-02T14:35:36.165Z" }, + { url = "https://files.pythonhosted.org/packages/56/15/064b197e855bfb7b343210e82490ae672f8bc7cdf3ddb02e92f64304ee8a/xxhash-3.6.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ec44b73a4220623235f67a996c862049f375df3b1052d9899f40a6382c32d746", size = 28044, upload-time = "2025-10-02T14:35:37.195Z" }, + { url = "https://files.pythonhosted.org/packages/7e/5e/0138bc4484ea9b897864d59fce9be9086030825bc778b76cb5a33a906d37/xxhash-3.6.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:a40a3d35b204b7cc7643cbcf8c9976d818cb47befcfac8bbefec8038ac363f3e", size = 32754, upload-time = "2025-10-02T14:35:38.245Z" }, + { url = "https://files.pythonhosted.org/packages/18/d7/5dac2eb2ec75fd771957a13e5dda560efb2176d5203f39502a5fc571f899/xxhash-3.6.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a54844be970d3fc22630b32d515e79a90d0a3ddb2644d8d7402e3c4c8da61405", size = 30846, upload-time = "2025-10-02T14:35:39.6Z" }, + { url = "https://files.pythonhosted.org/packages/fe/71/8bc5be2bb00deb5682e92e8da955ebe5fa982da13a69da5a40a4c8db12fb/xxhash-3.6.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:016e9190af8f0a4e3741343777710e3d5717427f175adfdc3e72508f59e2a7f3", size = 194343, upload-time = "2025-10-02T14:35:40.69Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3b/52badfb2aecec2c377ddf1ae75f55db3ba2d321c5e164f14461c90837ef3/xxhash-3.6.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f6f72232f849eb9d0141e2ebe2677ece15adfd0fa599bc058aad83c714bb2c6", size = 213074, upload-time = "2025-10-02T14:35:42.29Z" }, + { url = "https://files.pythonhosted.org/packages/a2/2b/ae46b4e9b92e537fa30d03dbc19cdae57ed407e9c26d163895e968e3de85/xxhash-3.6.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:63275a8aba7865e44b1813d2177e0f5ea7eadad3dd063a21f7cf9afdc7054063", size = 212388, upload-time = "2025-10-02T14:35:43.929Z" }, + { url = "https://files.pythonhosted.org/packages/f5/80/49f88d3afc724b4ac7fbd664c8452d6db51b49915be48c6982659e0e7942/xxhash-3.6.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cd01fa2aa00d8b017c97eb46b9a794fbdca53fc14f845f5a328c71254b0abb7", size = 445614, upload-time = "2025-10-02T14:35:45.216Z" }, + { url = "https://files.pythonhosted.org/packages/ed/ba/603ce3961e339413543d8cd44f21f2c80e2a7c5cfe692a7b1f2cccf58f3c/xxhash-3.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0226aa89035b62b6a86d3c68df4d7c1f47a342b8683da2b60cedcddb46c4d95b", size = 194024, upload-time = "2025-10-02T14:35:46.959Z" }, + { url = "https://files.pythonhosted.org/packages/78/d1/8e225ff7113bf81545cfdcd79eef124a7b7064a0bba53605ff39590b95c2/xxhash-3.6.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c6e193e9f56e4ca4923c61238cdaced324f0feac782544eb4c6d55ad5cc99ddd", size = 210541, upload-time = "2025-10-02T14:35:48.301Z" }, + { url = "https://files.pythonhosted.org/packages/6f/58/0f89d149f0bad89def1a8dd38feb50ccdeb643d9797ec84707091d4cb494/xxhash-3.6.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:9176dcaddf4ca963d4deb93866d739a343c01c969231dbe21680e13a5d1a5bf0", size = 198305, upload-time = "2025-10-02T14:35:49.584Z" }, + { url = "https://files.pythonhosted.org/packages/11/38/5eab81580703c4df93feb5f32ff8fa7fe1e2c51c1f183ee4e48d4bb9d3d7/xxhash-3.6.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c1ce4009c97a752e682b897aa99aef84191077a9433eb237774689f14f8ec152", size = 210848, upload-time = "2025-10-02T14:35:50.877Z" }, + { url = "https://files.pythonhosted.org/packages/5e/6b/953dc4b05c3ce678abca756416e4c130d2382f877a9c30a20d08ee6a77c0/xxhash-3.6.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:8cb2f4f679b01513b7adbb9b1b2f0f9cdc31b70007eaf9d59d0878809f385b11", size = 414142, upload-time = "2025-10-02T14:35:52.15Z" }, + { url = "https://files.pythonhosted.org/packages/08/a9/238ec0d4e81a10eb5026d4a6972677cbc898ba6c8b9dbaec12ae001b1b35/xxhash-3.6.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:653a91d7c2ab54a92c19ccf43508b6a555440b9be1bc8be553376778be7f20b5", size = 191547, upload-time = "2025-10-02T14:35:53.547Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ee/3cf8589e06c2164ac77c3bf0aa127012801128f1feebf2a079272da5737c/xxhash-3.6.0-cp314-cp314-win32.whl", hash = "sha256:a756fe893389483ee8c394d06b5ab765d96e68fbbfe6fde7aa17e11f5720559f", size = 31214, upload-time = "2025-10-02T14:35:54.746Z" }, + { url = "https://files.pythonhosted.org/packages/02/5d/a19552fbc6ad4cb54ff953c3908bbc095f4a921bc569433d791f755186f1/xxhash-3.6.0-cp314-cp314-win_amd64.whl", hash = "sha256:39be8e4e142550ef69629c9cd71b88c90e9a5db703fecbcf265546d9536ca4ad", size = 32290, upload-time = "2025-10-02T14:35:55.791Z" }, + { url = "https://files.pythonhosted.org/packages/b1/11/dafa0643bc30442c887b55baf8e73353a344ee89c1901b5a5c54a6c17d39/xxhash-3.6.0-cp314-cp314-win_arm64.whl", hash = "sha256:25915e6000338999236f1eb68a02a32c3275ac338628a7eaa5a269c401995679", size = 28795, upload-time = "2025-10-02T14:35:57.162Z" }, + { url = "https://files.pythonhosted.org/packages/2c/db/0e99732ed7f64182aef4a6fb145e1a295558deec2a746265dcdec12d191e/xxhash-3.6.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c5294f596a9017ca5a3e3f8884c00b91ab2ad2933cf288f4923c3fd4346cf3d4", size = 32955, upload-time = "2025-10-02T14:35:58.267Z" }, + { url = "https://files.pythonhosted.org/packages/55/f4/2a7c3c68e564a099becfa44bb3d398810cc0ff6749b0d3cb8ccb93f23c14/xxhash-3.6.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1cf9dcc4ab9cff01dfbba78544297a3a01dafd60f3bde4e2bfd016cf7e4ddc67", size = 31072, upload-time = "2025-10-02T14:35:59.382Z" }, + { url = "https://files.pythonhosted.org/packages/c6/d9/72a29cddc7250e8a5819dad5d466facb5dc4c802ce120645630149127e73/xxhash-3.6.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:01262da8798422d0685f7cef03b2bd3f4f46511b02830861df548d7def4402ad", size = 196579, upload-time = "2025-10-02T14:36:00.838Z" }, + { url = "https://files.pythonhosted.org/packages/63/93/b21590e1e381040e2ca305a884d89e1c345b347404f7780f07f2cdd47ef4/xxhash-3.6.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51a73fb7cb3a3ead9f7a8b583ffd9b8038e277cdb8cb87cf890e88b3456afa0b", size = 215854, upload-time = "2025-10-02T14:36:02.207Z" }, + { url = "https://files.pythonhosted.org/packages/ce/b8/edab8a7d4fa14e924b29be877d54155dcbd8b80be85ea00d2be3413a9ed4/xxhash-3.6.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b9c6df83594f7df8f7f708ce5ebeacfc69f72c9fbaaababf6cf4758eaada0c9b", size = 214965, upload-time = "2025-10-02T14:36:03.507Z" }, + { url = "https://files.pythonhosted.org/packages/27/67/dfa980ac7f0d509d54ea0d5a486d2bb4b80c3f1bb22b66e6a05d3efaf6c0/xxhash-3.6.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:627f0af069b0ea56f312fd5189001c24578868643203bca1abbc2c52d3a6f3ca", size = 448484, upload-time = "2025-10-02T14:36:04.828Z" }, + { url = "https://files.pythonhosted.org/packages/8c/63/8ffc2cc97e811c0ca5d00ab36604b3ea6f4254f20b7bc658ca825ce6c954/xxhash-3.6.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aa912c62f842dfd013c5f21a642c9c10cd9f4c4e943e0af83618b4a404d9091a", size = 196162, upload-time = "2025-10-02T14:36:06.182Z" }, + { url = "https://files.pythonhosted.org/packages/4b/77/07f0e7a3edd11a6097e990f6e5b815b6592459cb16dae990d967693e6ea9/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b465afd7909db30168ab62afe40b2fcf79eedc0b89a6c0ab3123515dc0df8b99", size = 213007, upload-time = "2025-10-02T14:36:07.733Z" }, + { url = "https://files.pythonhosted.org/packages/ae/d8/bc5fa0d152837117eb0bef6f83f956c509332ce133c91c63ce07ee7c4873/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:a881851cf38b0a70e7c4d3ce81fc7afd86fbc2a024f4cfb2a97cf49ce04b75d3", size = 200956, upload-time = "2025-10-02T14:36:09.106Z" }, + { url = "https://files.pythonhosted.org/packages/26/a5/d749334130de9411783873e9b98ecc46688dad5db64ca6e04b02acc8b473/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9b3222c686a919a0f3253cfc12bb118b8b103506612253b5baeaac10d8027cf6", size = 213401, upload-time = "2025-10-02T14:36:10.585Z" }, + { url = "https://files.pythonhosted.org/packages/89/72/abed959c956a4bfc72b58c0384bb7940663c678127538634d896b1195c10/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:c5aa639bc113e9286137cec8fadc20e9cd732b2cc385c0b7fa673b84fc1f2a93", size = 417083, upload-time = "2025-10-02T14:36:12.276Z" }, + { url = "https://files.pythonhosted.org/packages/0c/b3/62fd2b586283b7d7d665fb98e266decadf31f058f1cf6c478741f68af0cb/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5c1343d49ac102799905e115aee590183c3921d475356cb24b4de29a4bc56518", size = 193913, upload-time = "2025-10-02T14:36:14.025Z" }, + { url = "https://files.pythonhosted.org/packages/9a/9a/c19c42c5b3f5a4aad748a6d5b4f23df3bed7ee5445accc65a0fb3ff03953/xxhash-3.6.0-cp314-cp314t-win32.whl", hash = "sha256:5851f033c3030dd95c086b4a36a2683c2ff4a799b23af60977188b057e467119", size = 31586, upload-time = "2025-10-02T14:36:15.603Z" }, + { url = "https://files.pythonhosted.org/packages/03/d6/4cc450345be9924fd5dc8c590ceda1db5b43a0a889587b0ae81a95511360/xxhash-3.6.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0444e7967dac37569052d2409b00a8860c2135cff05502df4da80267d384849f", size = 32526, upload-time = "2025-10-02T14:36:16.708Z" }, + { url = "https://files.pythonhosted.org/packages/0f/c9/7243eb3f9eaabd1a88a5a5acadf06df2d83b100c62684b7425c6a11bcaa8/xxhash-3.6.0-cp314-cp314t-win_arm64.whl", hash = "sha256:bb79b1e63f6fd84ec778a4b1916dfe0a7c3fdb986c06addd5db3a0d413819d95", size = 28898, upload-time = "2025-10-02T14:36:17.843Z" }, +] + +[[package]] +name = "yarl" +version = "1.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/6e/beb1beec874a72f23815c1434518bfc4ed2175065173fb138c3705f658d4/yarl-1.23.0.tar.gz", hash = "sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5", size = 194676, upload-time = "2026-03-01T22:07:53.373Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/8a/94615bc31022f711add374097ad4144d569e95ff3c38d39215d07ac153a0/yarl-1.23.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860", size = 124737, upload-time = "2026-03-01T22:05:12.897Z" }, + { url = "https://files.pythonhosted.org/packages/e3/6f/c6554045d59d64052698add01226bc867b52fe4a12373415d7991fdca95d/yarl-1.23.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069", size = 87029, upload-time = "2026-03-01T22:05:14.376Z" }, + { url = "https://files.pythonhosted.org/packages/19/2a/725ecc166d53438bc88f76822ed4b1e3b10756e790bafd7b523fe97c322d/yarl-1.23.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25", size = 86310, upload-time = "2026-03-01T22:05:15.71Z" }, + { url = "https://files.pythonhosted.org/packages/99/30/58260ed98e6ff7f90ba84442c1ddd758c9170d70327394a6227b310cd60f/yarl-1.23.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8", size = 97587, upload-time = "2026-03-01T22:05:17.384Z" }, + { url = "https://files.pythonhosted.org/packages/76/0a/8b08aac08b50682e65759f7f8dde98ae8168f72487e7357a5d684c581ef9/yarl-1.23.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072", size = 92528, upload-time = "2026-03-01T22:05:18.804Z" }, + { url = "https://files.pythonhosted.org/packages/52/07/0b7179101fe5f8385ec6c6bb5d0cb9f76bd9fb4a769591ab6fb5cdbfc69a/yarl-1.23.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8", size = 105339, upload-time = "2026-03-01T22:05:20.235Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8a/36d82869ab5ec829ca8574dfcb92b51286fcfb1e9c7a73659616362dc880/yarl-1.23.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7", size = 105061, upload-time = "2026-03-01T22:05:22.268Z" }, + { url = "https://files.pythonhosted.org/packages/66/3e/868e5c3364b6cee19ff3e1a122194fa4ce51def02c61023970442162859e/yarl-1.23.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51", size = 100132, upload-time = "2026-03-01T22:05:23.638Z" }, + { url = "https://files.pythonhosted.org/packages/cf/26/9c89acf82f08a52cb52d6d39454f8d18af15f9d386a23795389d1d423823/yarl-1.23.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67", size = 99289, upload-time = "2026-03-01T22:05:25.749Z" }, + { url = "https://files.pythonhosted.org/packages/6f/54/5b0db00d2cb056922356104468019c0a132e89c8d3ab67d8ede9f4483d2a/yarl-1.23.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7", size = 96950, upload-time = "2026-03-01T22:05:27.318Z" }, + { url = "https://files.pythonhosted.org/packages/f6/40/10fa93811fd439341fad7e0718a86aca0de9548023bbb403668d6555acab/yarl-1.23.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d", size = 93960, upload-time = "2026-03-01T22:05:28.738Z" }, + { url = "https://files.pythonhosted.org/packages/bc/d2/8ae2e6cd77d0805f4526e30ec43b6f9a3dfc542d401ac4990d178e4bf0cf/yarl-1.23.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760", size = 104703, upload-time = "2026-03-01T22:05:30.438Z" }, + { url = "https://files.pythonhosted.org/packages/2f/0c/b3ceacf82c3fe21183ce35fa2acf5320af003d52bc1fcf5915077681142e/yarl-1.23.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2", size = 98325, upload-time = "2026-03-01T22:05:31.835Z" }, + { url = "https://files.pythonhosted.org/packages/9d/e0/12900edd28bdab91a69bd2554b85ad7b151f64e8b521fe16f9ad2f56477a/yarl-1.23.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86", size = 105067, upload-time = "2026-03-01T22:05:33.358Z" }, + { url = "https://files.pythonhosted.org/packages/15/61/74bb1182cf79c9bbe4eb6b1f14a57a22d7a0be5e9cedf8e2d5c2086474c3/yarl-1.23.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34", size = 100285, upload-time = "2026-03-01T22:05:35.4Z" }, + { url = "https://files.pythonhosted.org/packages/69/7f/cd5ef733f2550de6241bd8bd8c3febc78158b9d75f197d9c7baa113436af/yarl-1.23.0-cp312-cp312-win32.whl", hash = "sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d", size = 82359, upload-time = "2026-03-01T22:05:36.811Z" }, + { url = "https://files.pythonhosted.org/packages/f5/be/25216a49daeeb7af2bec0db22d5e7df08ed1d7c9f65d78b14f3b74fd72fc/yarl-1.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e", size = 87674, upload-time = "2026-03-01T22:05:38.171Z" }, + { url = "https://files.pythonhosted.org/packages/d2/35/aeab955d6c425b227d5b7247eafb24f2653fedc32f95373a001af5dfeb9e/yarl-1.23.0-cp312-cp312-win_arm64.whl", hash = "sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9", size = 81879, upload-time = "2026-03-01T22:05:40.006Z" }, + { url = "https://files.pythonhosted.org/packages/9a/4b/a0a6e5d0ee8a2f3a373ddef8a4097d74ac901ac363eea1440464ccbe0898/yarl-1.23.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e", size = 123796, upload-time = "2026-03-01T22:05:41.412Z" }, + { url = "https://files.pythonhosted.org/packages/67/b6/8925d68af039b835ae876db5838e82e76ec87b9782ecc97e192b809c4831/yarl-1.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5", size = 86547, upload-time = "2026-03-01T22:05:42.841Z" }, + { url = "https://files.pythonhosted.org/packages/ae/50/06d511cc4b8e0360d3c94af051a768e84b755c5eb031b12adaaab6dec6e5/yarl-1.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b", size = 85854, upload-time = "2026-03-01T22:05:44.85Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f4/4e30b250927ffdab4db70da08b9b8d2194d7c7b400167b8fbeca1e4701ca/yarl-1.23.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035", size = 98351, upload-time = "2026-03-01T22:05:46.836Z" }, + { url = "https://files.pythonhosted.org/packages/86/fc/4118c5671ea948208bdb1492d8b76bdf1453d3e73df051f939f563e7dcc5/yarl-1.23.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5", size = 92711, upload-time = "2026-03-01T22:05:48.316Z" }, + { url = "https://files.pythonhosted.org/packages/56/11/1ed91d42bd9e73c13dc9e7eb0dd92298d75e7ac4dd7f046ad0c472e231cd/yarl-1.23.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735", size = 106014, upload-time = "2026-03-01T22:05:50.028Z" }, + { url = "https://files.pythonhosted.org/packages/ce/c9/74e44e056a23fbc33aca71779ef450ca648a5bc472bdad7a82339918f818/yarl-1.23.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401", size = 105557, upload-time = "2026-03-01T22:05:51.416Z" }, + { url = "https://files.pythonhosted.org/packages/66/fe/b1e10b08d287f518994f1e2ff9b6d26f0adeecd8dd7d533b01bab29a3eda/yarl-1.23.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4", size = 101559, upload-time = "2026-03-01T22:05:52.872Z" }, + { url = "https://files.pythonhosted.org/packages/72/59/c5b8d94b14e3d3c2a9c20cb100119fd534ab5a14b93673ab4cc4a4141ea5/yarl-1.23.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f", size = 100502, upload-time = "2026-03-01T22:05:54.954Z" }, + { url = "https://files.pythonhosted.org/packages/77/4f/96976cb54cbfc5c9fd73ed4c51804f92f209481d1fb190981c0f8a07a1d7/yarl-1.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a", size = 98027, upload-time = "2026-03-01T22:05:56.409Z" }, + { url = "https://files.pythonhosted.org/packages/63/6e/904c4f476471afdbad6b7e5b70362fb5810e35cd7466529a97322b6f5556/yarl-1.23.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2", size = 95369, upload-time = "2026-03-01T22:05:58.141Z" }, + { url = "https://files.pythonhosted.org/packages/9d/40/acfcdb3b5f9d68ef499e39e04d25e141fe90661f9d54114556cf83be8353/yarl-1.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f", size = 105565, upload-time = "2026-03-01T22:06:00.286Z" }, + { url = "https://files.pythonhosted.org/packages/5e/c6/31e28f3a6ba2869c43d124f37ea5260cac9c9281df803c354b31f4dd1f3c/yarl-1.23.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b", size = 99813, upload-time = "2026-03-01T22:06:01.712Z" }, + { url = "https://files.pythonhosted.org/packages/08/1f/6f65f59e72d54aa467119b63fc0b0b1762eff0232db1f4720cd89e2f4a17/yarl-1.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a", size = 105632, upload-time = "2026-03-01T22:06:03.188Z" }, + { url = "https://files.pythonhosted.org/packages/a3/c4/18b178a69935f9e7a338127d5b77d868fdc0f0e49becd286d51b3a18c61d/yarl-1.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543", size = 101895, upload-time = "2026-03-01T22:06:04.651Z" }, + { url = "https://files.pythonhosted.org/packages/8f/54/f5b870b5505663911dba950a8e4776a0dbd51c9c54c0ae88e823e4b874a0/yarl-1.23.0-cp313-cp313-win32.whl", hash = "sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957", size = 82356, upload-time = "2026-03-01T22:06:06.04Z" }, + { url = "https://files.pythonhosted.org/packages/7a/84/266e8da36879c6edcd37b02b547e2d9ecdfea776be49598e75696e3316e1/yarl-1.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3", size = 87515, upload-time = "2026-03-01T22:06:08.107Z" }, + { url = "https://files.pythonhosted.org/packages/00/fd/7e1c66efad35e1649114fa13f17485f62881ad58edeeb7f49f8c5e748bf9/yarl-1.23.0-cp313-cp313-win_arm64.whl", hash = "sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3", size = 81785, upload-time = "2026-03-01T22:06:10.181Z" }, + { url = "https://files.pythonhosted.org/packages/9c/fc/119dd07004f17ea43bb91e3ece6587759edd7519d6b086d16bfbd3319982/yarl-1.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa", size = 130719, upload-time = "2026-03-01T22:06:11.708Z" }, + { url = "https://files.pythonhosted.org/packages/e6/0d/9f2348502fbb3af409e8f47730282cd6bc80dec6630c1e06374d882d6eb2/yarl-1.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120", size = 89690, upload-time = "2026-03-01T22:06:13.429Z" }, + { url = "https://files.pythonhosted.org/packages/50/93/e88f3c80971b42cfc83f50a51b9d165a1dbf154b97005f2994a79f212a07/yarl-1.23.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59", size = 89851, upload-time = "2026-03-01T22:06:15.53Z" }, + { url = "https://files.pythonhosted.org/packages/1c/07/61c9dd8ba8f86473263b4036f70fb594c09e99c0d9737a799dfd8bc85651/yarl-1.23.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512", size = 95874, upload-time = "2026-03-01T22:06:17.553Z" }, + { url = "https://files.pythonhosted.org/packages/9e/e9/f9ff8ceefba599eac6abddcfb0b3bee9b9e636e96dbf54342a8577252379/yarl-1.23.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4", size = 88710, upload-time = "2026-03-01T22:06:19.004Z" }, + { url = "https://files.pythonhosted.org/packages/eb/78/0231bfcc5d4c8eec220bc2f9ef82cb4566192ea867a7c5b4148f44f6cbcd/yarl-1.23.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1", size = 101033, upload-time = "2026-03-01T22:06:21.203Z" }, + { url = "https://files.pythonhosted.org/packages/cd/9b/30ea5239a61786f18fd25797151a17fbb3be176977187a48d541b5447dd4/yarl-1.23.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea", size = 100817, upload-time = "2026-03-01T22:06:22.738Z" }, + { url = "https://files.pythonhosted.org/packages/62/e2/a4980481071791bc83bce2b7a1a1f7adcabfa366007518b4b845e92eeee3/yarl-1.23.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9", size = 97482, upload-time = "2026-03-01T22:06:24.21Z" }, + { url = "https://files.pythonhosted.org/packages/e5/1e/304a00cf5f6100414c4b5a01fc7ff9ee724b62158a08df2f8170dfc72a2d/yarl-1.23.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123", size = 95949, upload-time = "2026-03-01T22:06:25.697Z" }, + { url = "https://files.pythonhosted.org/packages/68/03/093f4055ed4cae649ac53bca3d180bd37102e9e11d048588e9ab0c0108d0/yarl-1.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24", size = 95839, upload-time = "2026-03-01T22:06:27.309Z" }, + { url = "https://files.pythonhosted.org/packages/b9/28/4c75ebb108f322aa8f917ae10a8ffa4f07cae10a8a627b64e578617df6a0/yarl-1.23.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de", size = 90696, upload-time = "2026-03-01T22:06:29.048Z" }, + { url = "https://files.pythonhosted.org/packages/23/9c/42c2e2dd91c1a570402f51bdf066bfdb1241c2240ba001967bad778e77b7/yarl-1.23.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b", size = 100865, upload-time = "2026-03-01T22:06:30.525Z" }, + { url = "https://files.pythonhosted.org/packages/74/05/1bcd60a8a0a914d462c305137246b6f9d167628d73568505fce3f1cb2e65/yarl-1.23.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6", size = 96234, upload-time = "2026-03-01T22:06:32.692Z" }, + { url = "https://files.pythonhosted.org/packages/90/b2/f52381aac396d6778ce516b7bc149c79e65bfc068b5de2857ab69eeea3b7/yarl-1.23.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6", size = 100295, upload-time = "2026-03-01T22:06:34.268Z" }, + { url = "https://files.pythonhosted.org/packages/e5/e8/638bae5bbf1113a659b2435d8895474598afe38b4a837103764f603aba56/yarl-1.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5", size = 97784, upload-time = "2026-03-01T22:06:35.864Z" }, + { url = "https://files.pythonhosted.org/packages/80/25/a3892b46182c586c202629fc2159aa13975d3741d52ebd7347fd501d48d5/yarl-1.23.0-cp313-cp313t-win32.whl", hash = "sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595", size = 88313, upload-time = "2026-03-01T22:06:37.39Z" }, + { url = "https://files.pythonhosted.org/packages/43/68/8c5b36aa5178900b37387937bc2c2fe0e9505537f713495472dcf6f6fccc/yarl-1.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090", size = 94932, upload-time = "2026-03-01T22:06:39.579Z" }, + { url = "https://files.pythonhosted.org/packages/c6/cc/d79ba8292f51f81f4dc533a8ccfb9fc6992cabf0998ed3245de7589dc07c/yarl-1.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144", size = 84786, upload-time = "2026-03-01T22:06:41.988Z" }, + { url = "https://files.pythonhosted.org/packages/90/98/b85a038d65d1b92c3903ab89444f48d3cee490a883477b716d7a24b1a78c/yarl-1.23.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912", size = 124455, upload-time = "2026-03-01T22:06:43.615Z" }, + { url = "https://files.pythonhosted.org/packages/39/54/bc2b45559f86543d163b6e294417a107bb87557609007c007ad889afec18/yarl-1.23.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474", size = 86752, upload-time = "2026-03-01T22:06:45.425Z" }, + { url = "https://files.pythonhosted.org/packages/24/f9/e8242b68362bffe6fb536c8db5076861466fc780f0f1b479fc4ffbebb128/yarl-1.23.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719", size = 86291, upload-time = "2026-03-01T22:06:46.974Z" }, + { url = "https://files.pythonhosted.org/packages/ea/d8/d1cb2378c81dd729e98c716582b1ccb08357e8488e4c24714658cc6630e8/yarl-1.23.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319", size = 99026, upload-time = "2026-03-01T22:06:48.459Z" }, + { url = "https://files.pythonhosted.org/packages/0a/ff/7196790538f31debe3341283b5b0707e7feb947620fc5e8236ef28d44f72/yarl-1.23.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434", size = 92355, upload-time = "2026-03-01T22:06:50.306Z" }, + { url = "https://files.pythonhosted.org/packages/c1/56/25d58c3eddde825890a5fe6aa1866228377354a3c39262235234ab5f616b/yarl-1.23.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723", size = 106417, upload-time = "2026-03-01T22:06:52.1Z" }, + { url = "https://files.pythonhosted.org/packages/51/8a/882c0e7bc8277eb895b31bce0138f51a1ba551fc2e1ec6753ffc1e7c1377/yarl-1.23.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039", size = 106422, upload-time = "2026-03-01T22:06:54.424Z" }, + { url = "https://files.pythonhosted.org/packages/42/2b/fef67d616931055bf3d6764885990a3ac647d68734a2d6a9e1d13de437a2/yarl-1.23.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52", size = 101915, upload-time = "2026-03-01T22:06:55.895Z" }, + { url = "https://files.pythonhosted.org/packages/18/6a/530e16aebce27c5937920f3431c628a29a4b6b430fab3fd1c117b26ff3f6/yarl-1.23.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c", size = 100690, upload-time = "2026-03-01T22:06:58.21Z" }, + { url = "https://files.pythonhosted.org/packages/88/08/93749219179a45e27b036e03260fda05190b911de8e18225c294ac95bbc9/yarl-1.23.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae", size = 98750, upload-time = "2026-03-01T22:06:59.794Z" }, + { url = "https://files.pythonhosted.org/packages/d9/cf/ea424a004969f5d81a362110a6ac1496d79efdc6d50c2c4b2e3ea0fc2519/yarl-1.23.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e", size = 94685, upload-time = "2026-03-01T22:07:01.375Z" }, + { url = "https://files.pythonhosted.org/packages/e2/b7/14341481fe568e2b0408bcf1484c652accafe06a0ade9387b5d3fd9df446/yarl-1.23.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85", size = 106009, upload-time = "2026-03-01T22:07:03.151Z" }, + { url = "https://files.pythonhosted.org/packages/0a/e6/5c744a9b54f4e8007ad35bce96fbc9218338e84812d36f3390cea616881a/yarl-1.23.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd", size = 100033, upload-time = "2026-03-01T22:07:04.701Z" }, + { url = "https://files.pythonhosted.org/packages/0c/23/e3bfc188d0b400f025bc49d99793d02c9abe15752138dcc27e4eaf0c4a9e/yarl-1.23.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6", size = 106483, upload-time = "2026-03-01T22:07:06.231Z" }, + { url = "https://files.pythonhosted.org/packages/72/42/f0505f949a90b3f8b7a363d6cbdf398f6e6c58946d85c6d3a3bc70595b26/yarl-1.23.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe", size = 102175, upload-time = "2026-03-01T22:07:08.4Z" }, + { url = "https://files.pythonhosted.org/packages/aa/65/b39290f1d892a9dd671d1c722014ca062a9c35d60885d57e5375db0404b5/yarl-1.23.0-cp314-cp314-win32.whl", hash = "sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169", size = 83871, upload-time = "2026-03-01T22:07:09.968Z" }, + { url = "https://files.pythonhosted.org/packages/a9/5b/9b92f54c784c26e2a422e55a8d2607ab15b7ea3349e28359282f84f01d43/yarl-1.23.0-cp314-cp314-win_amd64.whl", hash = "sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70", size = 89093, upload-time = "2026-03-01T22:07:11.501Z" }, + { url = "https://files.pythonhosted.org/packages/e0/7d/8a84dc9381fd4412d5e7ff04926f9865f6372b4c2fd91e10092e65d29eb8/yarl-1.23.0-cp314-cp314-win_arm64.whl", hash = "sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e", size = 83384, upload-time = "2026-03-01T22:07:13.069Z" }, + { url = "https://files.pythonhosted.org/packages/dd/8d/d2fad34b1c08aa161b74394183daa7d800141aaaee207317e82c790b418d/yarl-1.23.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679", size = 131019, upload-time = "2026-03-01T22:07:14.903Z" }, + { url = "https://files.pythonhosted.org/packages/19/ff/33009a39d3ccf4b94d7d7880dfe17fb5816c5a4fe0096d9b56abceea9ac7/yarl-1.23.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412", size = 89894, upload-time = "2026-03-01T22:07:17.372Z" }, + { url = "https://files.pythonhosted.org/packages/0c/f1/dab7ac5e7306fb79c0190766a3c00b4cb8d09a1f390ded68c85a5934faf5/yarl-1.23.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4", size = 89979, upload-time = "2026-03-01T22:07:19.361Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b1/08e95f3caee1fad6e65017b9f26c1d79877b502622d60e517de01e72f95d/yarl-1.23.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c", size = 95943, upload-time = "2026-03-01T22:07:21.266Z" }, + { url = "https://files.pythonhosted.org/packages/c0/cc/6409f9018864a6aa186c61175b977131f373f1988e198e031236916e87e4/yarl-1.23.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4", size = 88786, upload-time = "2026-03-01T22:07:23.129Z" }, + { url = "https://files.pythonhosted.org/packages/76/40/cc22d1d7714b717fde2006fad2ced5efe5580606cb059ae42117542122f3/yarl-1.23.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94", size = 101307, upload-time = "2026-03-01T22:07:24.689Z" }, + { url = "https://files.pythonhosted.org/packages/8f/0d/476c38e85ddb4c6ec6b20b815bdd779aa386a013f3d8b85516feee55c8dc/yarl-1.23.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28", size = 100904, upload-time = "2026-03-01T22:07:26.287Z" }, + { url = "https://files.pythonhosted.org/packages/72/32/0abe4a76d59adf2081dcb0397168553ece4616ada1c54d1c49d8936c74f8/yarl-1.23.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6", size = 97728, upload-time = "2026-03-01T22:07:27.906Z" }, + { url = "https://files.pythonhosted.org/packages/b7/35/7b30f4810fba112f60f5a43237545867504e15b1c7647a785fbaf588fac2/yarl-1.23.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277", size = 95964, upload-time = "2026-03-01T22:07:30.198Z" }, + { url = "https://files.pythonhosted.org/packages/2d/86/ed7a73ab85ef00e8bb70b0cb5421d8a2a625b81a333941a469a6f4022828/yarl-1.23.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4", size = 95882, upload-time = "2026-03-01T22:07:32.132Z" }, + { url = "https://files.pythonhosted.org/packages/19/90/d56967f61a29d8498efb7afb651e0b2b422a1e9b47b0ab5f4e40a19b699b/yarl-1.23.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a", size = 90797, upload-time = "2026-03-01T22:07:34.404Z" }, + { url = "https://files.pythonhosted.org/packages/72/00/8b8f76909259f56647adb1011d7ed8b321bcf97e464515c65016a47ecdf0/yarl-1.23.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb", size = 101023, upload-time = "2026-03-01T22:07:35.953Z" }, + { url = "https://files.pythonhosted.org/packages/ac/e2/cab11b126fb7d440281b7df8e9ddbe4851e70a4dde47a202b6642586b8d9/yarl-1.23.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41", size = 96227, upload-time = "2026-03-01T22:07:37.594Z" }, + { url = "https://files.pythonhosted.org/packages/c2/9b/2c893e16bfc50e6b2edf76c1a9eb6cb0c744346197e74c65e99ad8d634d0/yarl-1.23.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2", size = 100302, upload-time = "2026-03-01T22:07:39.334Z" }, + { url = "https://files.pythonhosted.org/packages/28/ec/5498c4e3a6d5f1003beb23405671c2eb9cdbf3067d1c80f15eeafe301010/yarl-1.23.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4", size = 98202, upload-time = "2026-03-01T22:07:41.717Z" }, + { url = "https://files.pythonhosted.org/packages/fe/c3/cd737e2d45e70717907f83e146f6949f20cc23cd4bf7b2688727763aa458/yarl-1.23.0-cp314-cp314t-win32.whl", hash = "sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4", size = 90558, upload-time = "2026-03-01T22:07:43.433Z" }, + { url = "https://files.pythonhosted.org/packages/e1/19/3774d162f6732d1cfb0b47b4140a942a35ca82bb19b6db1f80e9e7bdc8f8/yarl-1.23.0-cp314-cp314t-win_amd64.whl", hash = "sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2", size = 97610, upload-time = "2026-03-01T22:07:45.773Z" }, + { url = "https://files.pythonhosted.org/packages/51/47/3fa2286c3cb162c71cdb34c4224d5745a1ceceb391b2bd9b19b668a8d724/yarl-1.23.0-cp314-cp314t-win_arm64.whl", hash = "sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25", size = 86041, upload-time = "2026-03-01T22:07:49.026Z" }, + { url = "https://files.pythonhosted.org/packages/69/68/c8739671f5699c7dc470580a4f821ef37c32c4cb0b047ce223a7f115757f/yarl-1.23.0-py3-none-any.whl", hash = "sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f", size = 48288, upload-time = "2026-03-01T22:07:51.388Z" }, +]